diff --git a/decompiler/analysis/atomic_op_builder.cpp b/decompiler/analysis/atomic_op_builder.cpp index 418484677c..d9297c785c 100644 --- a/decompiler/analysis/atomic_op_builder.cpp +++ b/decompiler/analysis/atomic_op_builder.cpp @@ -1855,9 +1855,11 @@ std::unique_ptr convert_5(const Instruction& i0, break; case GameVersion::Jak2: case GameVersion::Jak3: - case GameVersion::JakX: process_offset = 48; break; + case GameVersion::JakX: + process_offset = 56; + break; default: ASSERT(false); } diff --git a/decompiler/config/jak3/ntsc_v1/hacks.jsonc b/decompiler/config/jak3/ntsc_v1/hacks.jsonc index 125378450e..a27b48abc0 100644 --- a/decompiler/config/jak3/ntsc_v1/hacks.jsonc +++ b/decompiler/config/jak3/ntsc_v1/hacks.jsonc @@ -1,47 +1,29 @@ { - //////////////////////////// - // HACKS and ASM FUNCTIONS - //////////////////////////// - "types_with_bad_inspect_methods": [ "game-task-event", "game-task-control", "predator-edge", "manipy" ], - "no_type_analysis_functions_by_name": [], - - // this limits the number of cases in a cond. The first argument is the name of the function. - // the second argument is the name of the first condition in the cond. Use print_cfg to find it out. - // The third argument is the number of cases. If you set it too small it may fail to build the CFG. "cond_with_else_max_lengths": [ ["(method 20 res-lump)", "b0", 2], ["(method 11 res-lump)", "b0", 1], ["(method 12 res-lump)", "b0", 1] ], - - // if a cond with an else case is being used a value in a place where it looks wrong - // you can add the function name to this list and it will more aggressively reject this rewrite. "aggressively_reject_cond_to_value_rewrite": [ "(method 10 res-lump)", "(method 11 res-lump)", "(method 12 res-lump)" ], - - // this provides a hint to the decompiler that these functions will have a lot of inline assembly. - // currently it just leaves pcpyld as an asm op. "hint_inline_assembly_functions": [], - "asm_functions_by_name": [ - // checking boxed type is different now - these make the cfg stuff sad "name=", "(method 77 grenadier)", "display-list-control", "anim-test-anim-list-handler", "anim-test-sequence-list-handler", "anim-tester-get-playing-item", - // actual asm "quad-copy!", "return-from-thread", "return-from-thread-dead", @@ -69,7 +51,6 @@ "qword-read-time", "dma-test-func", "move-test-func", - "symlink2", "blerc-a-fragment", "blerc-execute", @@ -79,13 +60,7 @@ "(method 10 collide-cache-prim)", "(method 17 collide-cache)", "(method 16 ocean)", - - // unknown instructions - // logand with #f arg - // "bugfix?", - // CFG failed "draw-inline-array-instance-shrub", - "test-to-from-spr", "test-from-spr", "test-to-spr", @@ -93,16 +68,10 @@ "test-worst-read", "test-seq-write", "test-worst-write", - // texture "adgif-shader<-texture!", - - // jak 3 "(method 46 ff-squad-control)", "memcpy" ], - - // these functions use pairs and the decompiler - // will be less picky about types related to pairs. "pair_functions_by_name": [ "ref", "ref&", @@ -124,7 +93,6 @@ "lookup-level-info", "(method 24 level-group)", "(method 19 level-group)", - // script "command-get-time", "command-get-param", "command-get-quoted-param", @@ -144,31 +112,26 @@ "command-get-trans", "key-assoc", "(anon-function 0 script)", - // default-menu "dm-scene-load-pick-func", "debug-menu-make-continue-sub-menu", "debug-menu-make-from-template", "debug-menu-context-make-default-menus", "debug-menu-make-task-menu", "(method 19 gui-control)", - // menu "debug-menu-rebuild", "debug-menu-find-from-template", "debug-menu-render", "debug-menu-context-select-next-or-prev-item", "debug-menu-context-select-new-item", "debug-menu-send-msg", - // airlock "(method 24 com-airlock)", "(method 19 gui-control)", "(method 28 editable)", "execute-select", "(method 29 editable)", "(method 25 editable)", - // game-info "(method 20 game-info)", "print-continues", - // task-control "(anon-function 55 task-control)", "(method 17 load-state)", "(method 12 level)", @@ -213,24 +176,17 @@ "mark-permanent-holds", "update-sound-info", "insert-into-sound-list", - // title-obs "(anon-function 22 title-obs)", "cty-faction-evaluate-commands", "traffic-manager-event-handler", "(method 20 cty-faction-manager)" ], - - // If format is used with the wrong number of arguments, - // it will often mess up the decompilation, as the decompiler assumes - // that they used the correct number. This will override the decompiler's - // automatic detection. "bad_format_strings": { "~170h~5d~220h~5d~280h~5,,2f": 3, "~338h~5d~388h~5d~448h~5,,2f": 3, "~30Htf: ~8D~134Hpr: ~8D~252Hsh: ~8D~370Hhd: ~8D~%": 4, "~30Hal: ~8D~131Hwa: ~8D~252Hsp: ~8D~370Hwp: ~8D~%": 4, "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~": 3, - // TODO - these should be automatic " tfrag ~192H~5DK ~280Htfragment~456H~5DK~%": 2, " tie-proto ~192H~5DK ~280Hsky~456H~5DK~%": 2, " tie-instance ~192H~5DK ~280Htie-fragment~456H~5DK~%": 2, @@ -270,16 +226,13 @@ "~32L~S~44L ~S": 2, "~44L~S ~32L~S~1L": 2 }, - "blocks_ending_in_asm_branch": { "light-merge!": [1, 2, 3, 5, 7], "bsp-camera-asm": [1, 2, 3, 4, 6, 7], "level-remap-texture": [2, 3, 4, 5, 6], "start-perf-stat-collection": [26], "end-perf-stat-collection": [0], - "(method 23 gui-control)": [10, 46, 50, 58, 81, 90, 101], - "find-offending-process-focusable": [16, 19], "(method 19 process-drawable)": [0, 2, 3, 7, 10, 11, 30], "(anon-function 11 game-save)": [0, 3, 4, 5], @@ -302,36 +255,8 @@ "unpack-comp-rle": [1, 3, 5, 6], "unpack-comp-huf": [2, 4, 5, 6, 7, 8, 9], "unpack-comp-lzo": [ - 0, - 1, - 4, - 5, - 6, - 7, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, // branch fwd 39 - 39, // branch fwd no delay - 43, // goto 18 - 45 // goto 6 + 0, 1, 4, 5, 6, 7, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 39, 43, 45 ], "(method 16 level)": [0, 1, 5, 13, 14, 15], "upload-vis-bits": [2, 6, 3, 0], @@ -467,12 +392,6 @@ "(method 18 mysql-nav-graph)": [0, 1, 2, 3, 4, 7, 9], "(method 17 nav-mesh-editable)": [0, 1, 2, 7, 9, 24, 28, 33] }, - - // Sometimes the game might use format strings that are fetched dynamically, - // for example using the game text lookup method - // Add information about those format instructions here. - // e.g. "function-name":[[op, argc], [op, argc], ...] - // where "op" is the op number for the call to format. "dynamic_format_arg_counts": { "auto-save-post": [[182, 1]], "(method 10 menu-secret-option)": [[289, 0]], @@ -584,13 +503,11 @@ "(trans carry precur-bomb)": [[60, 0]], "hover-nav-graph-output": [[319, 0]] }, - "mips2c_functions_by_name": [ "collide-do-primitives", "moving-sphere-triangle-intersect", "calc-animation-from-spr", "draw-string-asm", - // "draw-string", "get-string-length", "adgif-shader<-texture-with-update!", "init-boundary-regs", @@ -669,12 +586,8 @@ "light-hash-add-items", "light-hash-count-items", "light-hash-get-bucket-index", - // nav-mesh / nav-control related - // TODO - it would be nice to eventually figure out the asm blocks for the majority of these "nav-state-patch-pointers", "(method 20 nav-engine)", - // "find-closest-circle-ray-intersection", - // "(method 18 nav-control)", "nav-dma-send-to-spr-no-flush", "nav-dma-send-from-spr-no-flush", "(method 17 nav-engine)", @@ -733,11 +646,7 @@ "shadow-add-verts", "shadow-add-single-tris" ], - "mips2c_jump_table_functions": {}, - - // there are some missing textures. I don't know what the game actually does here. - // the format for entries is [level, tpage, index] "missing_textures": [ ["wasintro", 0, 0], ["lfacctyb", 0, 0], @@ -747,9 +656,5 @@ ["powergd", 0, 0], ["lcitysml", 0, 0] ], - - // some object files have garbage pad data at the end which makes the decompiler - // assume they must be different files, such as the art group for orb-cache-top. - // this just suppresses a message. "expected_merged_objs": [] } diff --git a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc index e90766ecb7..3fc1cafc34 100644 --- a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc +++ b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc @@ -194,11 +194,7 @@ "arrive-at-continue": [[16, "event-message-block"]], "(code target-hit)": [[16, "vector"]], "apply-pos-from-entity": [[208, "collide-query"]], - "target-death-main": [ - [16, "event-message-block"] - // this wrong stack cast was the reason Daxter's death quotes scenes didn't work - //[96, ["array", "level", 1]] - ], + "target-death-main": [[16, "event-message-block"]], "find-nearest-focusable": [[48, "vector"]], "target-gun-joint-pre0": [ [640, ["inline-array", "sphere", 1]], diff --git a/decompiler/config/jakx/all-types.gc b/decompiler/config/jakx/all-types.gc index 473bfd7e9a..867c142f40 100644 --- a/decompiler/config/jakx/all-types.gc +++ b/decompiler/config/jakx/all-types.gc @@ -4498,7 +4498,9 @@ (bucket788 788) + (bucket793 793) (bucket794 794) + (bucket795 795) ) ;; ---vu1-user-h:bucket-id @@ -4534,6 +4536,52 @@ ) ;; ---vu1-user-h:texture-enable-mask-u32 +;; +++vu1-user-h:vu1-renderer-mask +;; TODO stolen from Jak 2 (and it was all wrong...) +(defenum vu1-renderer-mask + :type uint64 + :bitfield #t + (rn0) + (rn1) + (rn2) + (sky) + (rn4) + (rn5) + (hfrag) + (hfrag-scissor) + (tfrag) + (tie-scissor) + (tie) + (etie) + (etie-scissor) + (tie-vanish) + (generic) ;; right + (merc) ;; right + (emerc) ;; right + (shrubbery) + (shrub-near) + (billboard) + (shrub-vanish) + (tfrag-trans) + (tie-scissor-trans) + (tie-trans) + (etie-trans) + (etie-scissor-trans) + (tfrag-water) + (tie-scissor-water) + (tie-water) + (etie-water) + (etie-scissor-water) + (sprite) + (rn32) + (rn33) + (rn34) + (rn35) + (depth-cue) + (rn37) + ) +;; ---vu1-user-h:vu1-renderer-mask + (deftype dma-foreground-sink (basic) "A specification for where a foreground renderer should output its DMA data." ((bucket bucket-id :offset-assert 4) @@ -5018,7 +5066,6 @@ :flag-assert #x900000070 ) -#| (deftype keybd-info (basic) ((active symbol :offset-assert 4) ;; guessed by decompiler (valid symbol :offset-assert 8) ;; guessed by decompiler @@ -5029,19 +5076,18 @@ :size-assert #x11c :flag-assert #x90000011c ) -|# -;; (define-extern *cheat-mode* object) ;; symbol +(define-extern *cheat-mode* symbol) ;; ;; (define-extern cpad-invalid! function) ;; (function cpad-info cpad-info) ;; (define-extern analog-input function) ;; (function int float float float float float) ;; (define-extern cpad-set-buzz! function) ;; (function cpad-info int int time-frame none) (define-extern *cpad-list* cpad-list) ;; -;; (define-extern *cpad-debug* object) ;; symbol +(define-extern *cpad-debug* symbol) ;; ;; (define-extern service-cpads function) ;; (function cpad-list) ;; (define-extern buzz-stop! function) ;; (function int none) (define-extern *mouse* mouse-info) ;; ;; (define-extern service-mouse function) ;; (function none) -;; (define-extern *keybd* object) ;; keybd-info +(define-extern *keybd* keybd-info) ;; ;; (define-extern service-keybd function) ;; (function none) ;; (define-extern *usb-to-ascii-map* object) ;; (define-extern *keybd-last-key* object) @@ -5372,30 +5418,59 @@ :flag-assert #x900000008 ) -;; (deftype gs-rgbaq (uint64) -;; () -;; :flag-assert #x900000008 -;; ) +(deftype gs-rgbaq (uint64) + "The GS's RGBAQ register sets the RGBA value of the vertex and the Q value of the normalized + texture coordinates." + ((r uint8 :offset 0 :size 8) + (g uint8 :offset 8 :size 8) + (b uint8 :offset 16 :size 8) + (a uint8 :offset 24 :size 8) ;; 0x80 --> 1.0 + (q float :offset 32 :size 32) ;; affects some LOD behavior apparently? + ) + :flag-assert #x900000008 + ) -;; (deftype gs-xyz (uint64) -;; () -;; :flag-assert #x900000008 -;; ) +(deftype gs-xyz (uint64) + ((x uint16 :offset 0 :size 16) ;; Q4 fixed point + (y uint16 :offset 16 :size 16) ;; Q4 fixed point + (z uint32 :offset 32 :size 32) + ) + :flag-assert #x900000008 + ) -;; (deftype gs-uv (uint64) -;; () -;; :flag-assert #x900000008 -;; ) +(deftype gs-uv (uint64) + "The GS's UV register specifies the texel coordinate (UV) values of the vertex." + ((u uint16 :offset 0 :size 16) ;; Q4 fixed point + (v uint16 :offset 16 :size 16) ;; Q4 fixed point + ) + :flag-assert #x900000008 + ) -;; (deftype gs-st (uint64) -;; () -;; :flag-assert #x900000008 -;; ) +(deftype gs-uv2 (uint64) + "Hack - added for warp." + ((u int16 :offset 0 :size 16) ;; Q4 fixed point + (v int16 :offset 16 :size 16) ;; Q4 fixed point + ) + :flag-assert #x900000008 + ) -;; (deftype gs-xyzf (uint64) -;; () -;; :flag-assert #x900000008 -;; ) +(deftype gs-st (uint64) + "The GS's ST register sets the S and T values of the vertex texture coordinates. + The value Q is specified by the RGBAQ register." + ((s float :offset 0 :size 32) + (t float :offset 32 :size 32) + ) + :flag-assert #x900000008 + ) + +(deftype gs-xyzf (uint64) + ((x uint16 :offset 0 :size 16) ;; Q4 fixed point + (y uint16 :offset 16 :size 16) ;; Q4 fixed point + (z uint32 :offset 32 :size 24) + (f uint8 :offset 56 :size 8) ;; fog coeff + ) + :flag-assert #x900000008 + ) (deftype gs-adcmd (structure) ((word uint32 4 :offset-assert 0 :score -10) @@ -7028,8 +7103,8 @@ :size-assert #x58 :flag-assert #xb00000058 (:methods - (texture-anim-method-9 () none) ;; 9 ;; (init-textures! (_type_) _type_) - (texture-anim-method-10 () none) ;; 10 ;; (clear-textures! (_type_) _type_) + (init-textures! (_type_) _type_) + (clear-textures! (_type_) _type_) ) ) @@ -8319,14 +8394,14 @@ (level-method-13 () none) ;; 13 ;; (bsp-name (_type_) symbol) (level-method-14 () none) ;; 14 ;; (compute-memory-usage! (_type_ symbol) memory-usage-block) (level-method-15 () none) ;; 15 ;; (inside-bsp? (_type_) symbol) - (level-method-16 () none) ;; 16 ;; (update-vis! (_type_ level-vis-info uint (pointer uint8)) symbol) + (update-vis! (_type_ level-vis-info uint (pointer uint8) int) symbol) (level-method-17 () none) ;; 17 ;; (load-continue (_type_) _type_) (level-method-18 () none) ;; 18 ;; (load-begin (_type_) _type_) (level-method-19 () none) ;; 19 ;; (login-begin (_type_) _type_) (level-method-20 () none) ;; 20 ;; (debug-print-region-splitbox (_type_ vector object) none) (level-method-21 () none) ;; 21 ;; (get-art-group-by-name (_type_ string) art-group) (level-method-22 () none) ;; 22 ;; (set-proto-vis! (_type_ symbol) int) - (level-method-23 () none) ;; 23 ;; (lookup-text (_type_ text-id symbol) string) + (lookup-text (_type_ text-id symbol) string) (level-method-24 () none) ;; 24 ;; (level-method-24 () none) (level-method-25 () none) ;; 25 ;; (birth (_type_) _type_) (level-method-26 () none) ;; 26 ;; (level-status-update! (_type_ symbol) _type_) @@ -8400,7 +8475,7 @@ :size-assert #x6d04 :flag-assert #x2200006d04 (:methods - (level-group-method-9 () none) ;; 9 ;; (level-get (_type_ symbol) level) + (level-get (_type_ symbol) level) (level-group-method-10 () none) ;; 10 ;; (level-get-with-status (_type_ symbol) level) (level-group-method-11 () none) ;; 11 ;; (get-level-by-heap-ptr-and-status (_type_ pointer symbol) level) (level-group-method-12 () none) ;; 12 ;; (level-get-for-use (_type_ symbol symbol) level) @@ -8411,9 +8486,9 @@ (level-group-method-17 () none) ;; 17 ;; (actors-update (_type_) none) (level-group-method-18 () none) ;; 18 ;; (update-nav-meshes-method (_type_) none) (level-group-method-19 () none) ;; 19 ;; (level-update (_type_) none) - (level-group-method-20 () none) ;; 20 ;; (level-get-target-inside (_type_) level) + (level-get-target-inside (_type_) level) (level-group-method-21 () none) ;; 21 ;; (init-level-system (_type_ symbol) none) - (level-group-method-22 () none) ;; 22 ;; (art-group-get-by-name (_type_ string (pointer level)) art-group) + (art-group-get-by-name (_type_ string (pointer level)) art-group) (level-group-method-23 () none) ;; 23 ;; (update-vis-volumes (_type_) none) (level-group-method-24 () none) ;; 24 ;; (level-group-method-24 (_type_) none) (level-group-method-25 () none) ;; 25 ;; (print-volume-sizes (_type_) none) @@ -14181,7 +14256,7 @@ :size-assert #x20 :flag-assert #xd00000020 (:methods - (game-text-info-method-9 () none) ;; 9 ;; (lookup-text! (_type_ text-id symbol) string) + (lookup-text! (_type_ text-id symbol) string) (game-text-info-method-10 () none) ;; 10 (game-text-info-method-11 () none) ;; 11 (game-text-info-method-12 () none) ;; 12 @@ -14319,7 +14394,8 @@ :type int64 (desertb-race-record 0) (rs1 1) - (desrally-record 2) + (eightb-start 2) + (kras-wide-start 3) ) ;; ---main-h:race-selection @@ -15642,7 +15718,7 @@ ;; ---car-info-h:vehicle-type (define-extern *car-type-names* (array string)) -(define-extern type-from-vehicle-type (function vehicle-type traffic-vehicle-type)) +(define-extern type-from-vehicle-type (function vehicle-type type)) (define-extern level-name-from-vehicle-type (function vehicle-type symbol)) (define-extern car-type-from-vehicle-type (function int vehicle-type)) (define-extern vehicle-type-from-car-type "does nothing, returns input" (function int int)) @@ -16128,7 +16204,7 @@ ;; (define-extern fog-corrector-setup function) ;; (function fog-corrector math-camera none) ;; (define-extern *math-camera-fog-correction* object) ;; fog-corrector -;; (define-extern update-math-camera function) ;; (function math-camera symbol symbol float math-camera) +(define-extern update-math-camera (function math-camera symbol symbol float math-camera)) ;; ;; (define-extern math-cam-start-smoothing function) ;; (function float float quaternion) ;; (define-extern move-target-from-pad function) ;; (function transform int transform) ;; (define-extern transform-point-vector! function) ;; (function vector vector symbol) @@ -16141,15 +16217,18 @@ ;; view ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(declare-type target process-focusable) +(declare-type camera-combiner process) + (define-extern view-push-context (function int none)) (define-extern view-pop-context (function none)) -;; (define-extern view-get-active-target function) +(define-extern view-get-active-target (function target)) ;; (define-extern view-get-target function) ;; (define-extern view-set-active-target function) -;; (define-extern view-get-active-camera function) +;; (define-extern view-get-active-camera (function camera-master)) ;; (define-extern view-get-camera function) ;; (define-extern view-set-active-camera function) -;; (define-extern view-get-active-camera-combiner function) +(define-extern view-get-active-camera-combiner (function camera-combiner)) ;; (define-extern view-get-camera-combiner function) ;; (define-extern view-set-active-camera-combiner function) (define-extern view-get-active-math-camera (function math-camera)) @@ -16158,7 +16237,7 @@ ;; (define-extern view-get-real-active function) ;; (define-extern view-get-active function) ;; (define-extern view-get-index function) -;; (define-extern view-get-active-index function) +(define-extern view-get-active-index (function int)) ;; (define-extern view-get-real-active-index function) ;; (define-extern view-print function) @@ -16291,7 +16370,7 @@ (:methods (new (symbol type matrix int int float font-color font-flags) _type_) (font-context-method-9 () none) ;; 9 ;; (set-mat! (font-context matrix) font-context) - (font-context-method-10 () none) ;; 10 ;; (set-origin! (font-context int int) font-context) + (set-origin! (font-context int int) font-context) (font-context-method-11 () none) ;; 11 ;; (set-depth! (font-context int) font-context) (font-context-method-12 () none) ;; 12 ;; (set-w! (font-context float) font-context) (set-mat! (_type_ matrix) none) ;; 13 ;; (set-width! (font-context int) font-context) @@ -16642,6 +16721,7 @@ (define-extern *palette-fade-controls* palette-fade-controls) (define-extern *time-of-day-context* time-of-day-context) +(define-extern *time-of-day* (pointer time-of-day-proc)) ;; added ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; profile ;; @@ -16676,15 +16756,15 @@ (define-extern get-real-current-time (function time-frame)) (define-extern set-display "Allocate and initialize clocks for the display." (function display display)) (define-extern allocate-dma-buffers "Allocate the main, debug, and calc dma buffers." (function display display)) -;; (define-extern draw-sprite2d-xy function) ;; (function dma-buffer int int int int rgba int none) -;; (define-extern draw-sprite2d-xy-absolute function) ;; (function dma-buffer int int int int rgba int none) -;; (define-extern draw-quad2d function) ;; (function dma-buffer draw-context none) -;; (define-extern screen-gradient function) ;; (function dma-buffer rgba rgba rgba rgba none) -;; (define-extern vif1-handler-debug function) ;; (function int none) -;; (define-extern vif1-handler function) ;; (function none) -;; (define-extern vblank-handler function) ;; (function int) -;; (define-extern set-display-gs-state function) ;; (function dma-buffer int int int int int dma-buffer) -;; (define-extern set-display-gs-state-offset function) ;; (function dma-buffer int int int int int int int dma-buffer) +(define-extern draw-sprite2d-xy (function dma-buffer int int int int rgba int none)) ;; +(define-extern draw-sprite2d-xy-absolute (function dma-buffer int int int int rgba int none)) ;; +(define-extern draw-quad2d (function dma-buffer draw-context none)) ;; +(define-extern screen-gradient (function dma-buffer rgba rgba rgba rgba none)) ;; +(define-extern vif1-handler-debug (function int none)) ;; +(define-extern vif1-handler (function none)) ;; +(define-extern vblank-handler (function int)) ;; +(define-extern set-display-gs-state (function dma-buffer int int int int int dma-buffer)) ;; +(define-extern set-display-gs-state-offset (function dma-buffer int int int int int int int dma-buffer)) ;; (define-extern reset-display-gs-state (function display dma-buffer display)) ;; (define-extern *vu0-dma-list* dma-buffer) ;; (define-extern *display* display) @@ -16872,6 +16952,8 @@ (unknown-usd-34 int32 11 :offset-assert 656) ;; added (special-volume float :offset-assert 700) (unknown-usd-35 int32 17 :offset-assert 704) ;; added + (unknown-uint32-1 uint32 :offset 748) + (unknown-float float :offset 756) ) :method-count-assert 11 :size-assert #x304 @@ -17312,8 +17394,8 @@ :size-assert #x2784 :flag-assert #x2500002784 (:methods - (sky-work-method-9 () none) ;; 9 ;; (init-sun-data! (_type_ int float float float) none) - (sky-work-method-10 () none) ;; 10 ;; (init-orbit-settings! (_type_ int float float float float float float) none) + (init-sun-data! (_type_ int float float float) none) + (init-orbit-settings! (_type_ int float float float float float float) none) (sky-work-method-11 () none) ;; 11 ;; (update-colors-for-time (_type_ float) none) (sky-work-method-12 () none) ;; 12 ;; (update-time-and-speed (_type_ float float) none) (sky-work-method-13 () none) ;; 13 ;; (draw-erase (_type_ dma-buffer vector) none) @@ -17877,7 +17959,7 @@ ;; (define-extern locate-sub function) ;; (define-extern warp-locate-sub function) ;; (define-extern texture-page-common-boot-allocate function) ;; (function texture-pool texture-page kheap int texture-page) -;; (define-extern upload-vram-data function) ;; (function dma-buffer int pointer int int none) +(define-extern upload-vram-data (function dma-buffer int pointer int int none)) ;; ;; (define-extern upload-vram-pages function) ;; (function texture-pool texture-pool-segment texture-page tex-upload-mode bucket-id int) ;; (define-extern upload-vram-pages-car function) ;; (define-extern update-vram-pages function) ;; (function texture-pool texture-pool-segment texture-page tex-upload-mode int) @@ -17889,11 +17971,11 @@ ;; (define-extern texture-relocate function) ;; (function dma-buffer texture int gs-psm int dma-buffer) ;; (define-extern relocate-later function) ;; (function symbol) ;; (define-extern texture-page-login function) ;; (function texture-id (function texture-pool texture-page kheap int texture-page) kheap texture-page-dir-entry) -;; (define-extern lookup-texture-by-id function) ;; (function texture-id texture) -;; (define-extern lookup-texture-by-id-fast function) ;; (function texture-id texture) -;; (define-extern lookup-texture-by-name function) ;; (function string string (pointer texture-page) texture) +(define-extern lookup-texture-by-id (function texture-id texture)) ;; +(define-extern lookup-texture-by-id-fast (function texture-id texture)) ;; +(define-extern lookup-texture-by-name (function string string (pointer texture-page) texture)) ;; (define-extern lookup-texture-id-by-name (function string string texture-id)) ;; -;; (define-extern lookup-level-texture-by-name function) ;; (function string level (pointer texture-page) texture) +(define-extern lookup-level-texture-by-name (function string level (pointer texture-page) texture)) ;; ;; (define-extern lookup-tex-id-from-texture function) ;; (function texture texture-id) ;; (define-extern lookup-level-texture-id-by-name function) ;; (function string level int texture-id) ;; (define-extern *shader-list* object) ;; pair @@ -17901,17 +17983,17 @@ ;; (define-extern link-texture-by-id function) ;; (function texture-id adgif-shader texture-page-dir-entry) ;; (define-extern unlink-textures-by-level function) ;; (define-extern adgif-shader<-texture! function) ;; (function adgif-shader texture adgif-shader) -;; (define-extern adgif-shader-update! function) ;; (function adgif-shader texture none) +(define-extern adgif-shader-update! (function adgif-shader texture none)) ;; ;; (define-extern adgif-shader<-texture-with-update! function) ;; (function adgif-shader texture adgif-shader) ;; (define-extern hack-texture function) ;; (function texture float) -;; (define-extern adgif-shader-login function) ;; (function adgif-shader texture) -;; (define-extern adgif-shader-login-no-remap function) ;; (function adgif-shader texture) +(define-extern adgif-shader-login (function adgif-shader texture)) ;; +(define-extern adgif-shader-login-no-remap (function adgif-shader texture)) ;; ;; (define-extern adgif-shader-login-fast function) ;; (function adgif-shader texture) ;; (define-extern adgif-shader-login-no-remap-fast function) ;; (function adgif-shader texture) -;; (define-extern adgif-shader<-texture-simple! function) ;; (function adgif-shader texture adgif-shader) +(define-extern adgif-shader<-texture-simple! (function adgif-shader texture adgif-shader)) ;; ;; (define-extern set-dirty-mask! function) ;; (function level int int int none) ;; (define-extern texture-page-dir-inspect function) ;; (function texture-page-dir symbol none) -;; (define-extern *texture-pool* object) ;; texture-pool +(define-extern *texture-pool* texture-pool) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; mspace-h ;; @@ -20339,7 +20421,7 @@ (num-verts uint16 :offset-assert 86) (allocated-num-verts uint16 :offset-assert 88) (last-tex-id uint32 :offset-assert 92) - (data prim-vertex :dynamic :offset-assert 96) ;; guessed by decompiler + (data prim-vertex :inline :dynamic :offset-assert 96) ;; guessed by decompiler ) :method-count-assert 11 :size-assert #x60 @@ -20644,6 +20726,7 @@ ((name symbol :offset-assert 0) ;; guessed by decompiler (display? symbol :offset-assert 4) ;; guessed by decompiler ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -20767,7 +20850,7 @@ (deftype game-info-player (structure) ((current-continue continue-point :offset-assert 0) (last-continue continue-point :offset-assert 4) - (vehicle uint64 :offset-assert 8) + (vehicle handle :offset-assert 8) (cash float :offset-assert 16) (camera-inside-view symbol :offset-assert 20) (last-selected-vehicle uint8 :offset-assert 24) @@ -20777,132 +20860,132 @@ :flag-assert #x900000019 ) -;; (declare-type entity-perm-array inline-array-class) -;; (declare-type game-save basic) -;; (declare-type entity-perm structure) -;; (deftype game-info (basic) -;; ((mode symbol :offset-assert 4) ;; guessed by decompiler -;; (save-name string :offset-assert 8) ;; guessed by decompiler -;; (player-info game-info-player 2 :inline :offset-assert 16) -;; (car-info car-info-array :inline :offset-assert 80) -;; (features uint64 :offset-assert 1040) ;; game-feature -;; (debug-features uint64 :offset-assert 1048) ;; game-feature -;; (old-features uint64 :offset-assert 1056) ;; game-feature -;; (items uint64 :offset-assert 1064) ;; game-items -;; (debug-items uint64 :offset-assert 1072) ;; game-items -;; (old-items uint64 :offset-assert 1080) ;; game-items -;; (secrets uint64 :offset-assert 1088) ;; game-secrets -;; (purchase-secrets uint64 :offset-assert 1096) ;; game-secrets -;; (vehicles uint64 :offset-assert 1104) ;; game-vehicles -;; (debug-vehicles uint64 :offset-assert 1112) ;; game-vehicles -;; (old-vehicles uint64 :offset-assert 1120) ;; game-vehicles -;; (health-bar float :offset-assert 1128) -;; (health-bar-owner uint64 :offset-assert 1136) ;; handle -;; (attack-id uint32 :offset-assert 1144) -;; (perm-list entity-perm-array :offset-assert 1148) ;; guessed by decompiler -;; (game-info-pad1 int32 3 :offset-assert 1152) -;; (task-node-commands (array game-task-node-command) :offset-assert 1164) ;; guessed by decompiler -;; (task-counter uint32 :offset-assert 1168) -;; (game-info-pad2 int32 1) -;; (level-opened uint8 32 :offset-assert 1176) ;; guessed by decompiler -;; (total-deaths int32 :offset-assert 1208) -;; (continue-deaths int32 :offset-assert 1212) -;; (task-deaths int32 :offset-assert 1216) -;; (total-trys int32 :offset-assert 1220) -;; (game-start-time uint64 :offset-assert 1224) ;; time-frame -;; (continue-time uint64 :offset-assert 1232) ;; time-frame -;; (death-time uint64 :offset-assert 1240) ;; time-frame -;; (hit-time uint64 :offset-assert 1248) ;; time-frame -;; (task-pickup-time uint64 :offset-assert 1256) ;; time-frame -;; (stop-watch-start uint64 :offset-assert 1264) ;; time-frame -;; (stop-watch-stop uint64 :offset-assert 1272) ;; time-frame -;; (blackout-time uint64 :offset-assert 1280) ;; time-frame -;; (letterbox-time uint64 :offset-assert 1288) ;; time-frame -;; (hint-play-time uint64 :offset-assert 1296) ;; time-frame -;; (display-text-time uint64 :offset-assert 1304) ;; time-frame -;; (display-text-handle uint64 :offset-assert 1312) ;; handle -;; (death-movie-tick int32 :offset-assert 1320) -;; (want-auto-save symbol :offset-assert 1324) ;; guessed by decompiler -;; (auto-save-proc uint64 :offset-assert 1328) ;; handle -;; (auto-save-status mc-status-code :offset-assert 1336) ;; guessed by decompiler -;; (auto-save-card int32 :offset-assert 1340) -;; (auto-save-which int32 :offset-assert 1344) -;; (auto-save-count int32 :offset-assert 1348) -;; (pov-camera-handle uint64 :offset-assert 1352) ;; handle -;; (other-camera-handle uint64 :offset-assert 1360) ;; handle -;; (controller handle 2 :offset-assert 1368) ;; guessed by decompiler -;; (bot-health float 3 :offset-assert 1384) ;; guessed by decompiler -;; (demo-state uint32 :offset-assert 1396) -;; (distance float :offset-assert 1400) -;; (kiosk-timeout uint64 :offset-assert 1408) ;; time-frame -;; (pause-start-time uint64 :offset-assert 1416) ;; time-frame -;; (game-score (array float) :offset-assert 1424) ;; guessed by decompiler -;; (goal float :offset-assert 1428) -;; (miss float :offset-assert 1432) -;; (miss-max float :offset-assert 1436) -;; (health-bar-vehicle float :offset-assert 1440) -;; (pause-menu uint64 :offset-assert 1448) -;; (current-vehicle uint8 :offset-assert 1456) ;; vehicle-type-u8 -;; (collision-damage-multiplier float :offset-assert 1460) -;; (traction-multiplier float :offset-assert 1464) -;; (turbo-factor float :offset-assert 1468) -;; (turbo-disabled int8 :offset-assert 1472) -;; (turbo-last-disabled int32 :offset-assert 1476) -;; (fragile-vehicle basic :offset-assert 1480) -;; (music-data uint32 4 :offset-assert 1484) -;; (music-info uint32 :offset 1484) -;; (playing-grand-prix? grand-prix :offset-assert 1496) -;; (grand-prix-index uint32 :offset-assert 1500) -;; (collision-vs-rbody-damage-multiplier float :offset-assert 1504) -;; (global-speed-factor float :offset-assert 1508) -;; (this-race-grand-prix-score uint32 23 :offset-assert 1512) -;; (cumulative-grand-prix-score uint32 23 :offset-assert 1604) -;; (driver-info uint64 :offset-assert 1696) -;; (driver-info2 uint64 2 :offset 1696) -;; (driver-unlock uint32 :offset 1696) -;; (driver-award uint32 :offset 1700) -;; ) -;; :method-count-assert 31 -;; :size-assert #x6a8 -;; :flag-assert #x1f000006a8 -;; (:methods -;; (game-info-method-9 () none) ;; 9 ;; (initialize! (_type_ symbol game-save string resetter-spec) _type_) -;; (game-info-method-10 () none) ;; 10 ;; (give (_type_ symbol float handle) float) -;; (game-info-method-11 () none) ;; 11 ;; (task-complete? (_type_ game-task) symbol) -;; (game-info-method-12 () none) ;; 12 ;; (subtask-index-by-name (_type_ string) int) -;; (game-info-method-13 () none) ;; 13 ;; (actor-perm (_type_ actor-id) entity-perm) -;; (game-info-method-14 () none) ;; 14 ;; (task-perm-by-index (_type_ int) entity-perm) -;; (game-info-method-15 () none) ;; 15 ;; (copy-perms-from-level! (_type_ level) int) -;; (game-info-method-16 () none) ;; 16 ;; (copy-perms-to-level! (_type_ level) int) -;; (game-info-method-17 () none) ;; 17 ;; (debug-inspect (_type_ symbol) _type_) -;; (game-info-method-18 () none) ;; 18 ;; (get-current-continue-forced (_type_) continue-point) -;; (game-info-method-19 () none) ;; 19 ;; (get-continue-by-name (_type_ string) continue-point) -;; (game-info-method-20 () none) ;; 20 ;; (set-continue! (_type_ basic symbol) continue-point) -;; (game-info-method-21 () none) ;; 21 ;; (game-info-method-21 (_type_) none) -;; (game-info-method-22 () none) ;; 22 ;; (save-game (_type_ game-save string) game-save) -;; (game-info-method-23 () none) ;; 23 ;; (load-game (_type_ game-save) game-save) -;; (game-info-method-24 () none) ;; 24 ;; (you-suck-stage (_type_ symbol int) int) -;; (game-info-method-25 () none) ;; 25 ;; (you-suck-scale (_type_ symbol int) float) -;; (game-info-method-26 () none) ;; 26 ;; (get-next-attack-id! (_type_) uint) -;; (game-info-method-27 () none) ;; 27 ;; (game-info-method-27 (_type_ game-score float) int) -;; (game-info-method-28 () none) ;; 28 ;; (get-game-score-ref (_type_ int) (pointer float)) -;; (game-info-method-29 () none) ;; 29 ;; (game-info-method-29 (_type_ int) int) -;; (game-info-method-30 () none) ;; 30 ;; (get-highscore-rank (_type_ int float) int) -;; ) -;; ) +(declare-type entity-perm-array inline-array-class) +(declare-type game-save basic) +(declare-type entity-perm structure) +(deftype game-info (basic) + ((mode symbol :offset-assert 4) ;; guessed by decompiler + (save-name string :offset-assert 8) ;; guessed by decompiler + (player-info game-info-player 2 :inline :offset-assert 16) + (car-info car-info-array :inline :offset-assert 80) + (features uint64 :offset-assert 1040) ;; game-feature + (debug-features uint64 :offset-assert 1048) ;; game-feature + (old-features uint64 :offset-assert 1056) ;; game-feature + (items uint64 :offset-assert 1064) ;; game-items + (debug-items uint64 :offset-assert 1072) ;; game-items + (old-items uint64 :offset-assert 1080) ;; game-items + (secrets uint64 :offset-assert 1088) ;; game-secrets + (purchase-secrets uint64 :offset-assert 1096) ;; game-secrets + (vehicles uint64 :offset-assert 1104) ;; game-vehicles + (debug-vehicles uint64 :offset-assert 1112) ;; game-vehicles + (old-vehicles uint64 :offset-assert 1120) ;; game-vehicles + (health-bar float :offset-assert 1128) + (health-bar-owner uint64 :offset-assert 1136) ;; handle + (attack-id uint32 :offset-assert 1144) + (perm-list entity-perm-array :offset-assert 1148) ;; guessed by decompiler + (game-info-pad1 int32 3 :offset-assert 1152) + (task-node-commands (array game-task-node-command) :offset-assert 1164) ;; guessed by decompiler + (task-counter uint32 :offset-assert 1168) + (game-info-pad2 int32 1) + (level-opened uint8 32 :offset-assert 1176) ;; guessed by decompiler + (total-deaths int32 :offset-assert 1208) + (continue-deaths int32 :offset-assert 1212) + (task-deaths int32 :offset-assert 1216) + (total-trys int32 :offset-assert 1220) + (game-start-time uint64 :offset-assert 1224) ;; time-frame + (continue-time uint64 :offset-assert 1232) ;; time-frame + (death-time uint64 :offset-assert 1240) ;; time-frame + (hit-time uint64 :offset-assert 1248) ;; time-frame + (task-pickup-time uint64 :offset-assert 1256) ;; time-frame + (stop-watch-start uint64 :offset-assert 1264) ;; time-frame + (stop-watch-stop uint64 :offset-assert 1272) ;; time-frame + (blackout-time uint64 :offset-assert 1280) ;; time-frame + (letterbox-time uint64 :offset-assert 1288) ;; time-frame + (hint-play-time uint64 :offset-assert 1296) ;; time-frame + (display-text-time uint64 :offset-assert 1304) ;; time-frame + (display-text-handle uint64 :offset-assert 1312) ;; handle + (death-movie-tick int32 :offset-assert 1320) + (want-auto-save symbol :offset-assert 1324) ;; guessed by decompiler + (auto-save-proc uint64 :offset-assert 1328) ;; handle + (auto-save-status mc-status-code :offset-assert 1336) ;; guessed by decompiler + (auto-save-card int32 :offset-assert 1340) + (auto-save-which int32 :offset-assert 1344) + (auto-save-count int32 :offset-assert 1348) + (pov-camera-handle uint64 :offset-assert 1352) ;; handle + (other-camera-handle uint64 :offset-assert 1360) ;; handle + (controller handle 2 :offset-assert 1368) ;; guessed by decompiler + (bot-health float 3 :offset-assert 1384) ;; guessed by decompiler + (demo-state uint32 :offset-assert 1396) + (distance float :offset-assert 1400) + (kiosk-timeout uint64 :offset-assert 1408) ;; time-frame + (pause-start-time uint64 :offset-assert 1416) ;; time-frame + (game-score (array float) :offset-assert 1424) ;; guessed by decompiler + (goal float :offset-assert 1428) + (miss float :offset-assert 1432) + (miss-max float :offset-assert 1436) + (health-bar-vehicle float :offset-assert 1440) + (pause-menu uint64 :offset-assert 1448) + (current-vehicle uint8 :offset-assert 1456) ;; vehicle-type-u8 + (collision-damage-multiplier float :offset-assert 1460) + (traction-multiplier float :offset-assert 1464) + (turbo-factor float :offset-assert 1468) + (turbo-disabled int8 :offset-assert 1472) + (turbo-last-disabled int32 :offset-assert 1476) + (fragile-vehicle basic :offset-assert 1480) + (music-data uint32 4 :offset-assert 1484) + (music-info uint32 :offset 1484) + (playing-grand-prix? symbol :offset 1496) + (grand-prix-index uint32 :offset-assert 1500) + (collision-vs-rbody-damage-multiplier float :offset-assert 1504) + (global-speed-factor float :offset-assert 1508) + (this-race-grand-prix-score uint32 23 :offset-assert 1512) + (cumulative-grand-prix-score uint32 23 :offset-assert 1604) + (driver-info uint64 :offset-assert 1696) + ;; (driver-info2 uint64 2 :offset 1696) + (driver-unlock uint32 :offset 1696) + (driver-award uint32 :offset 1700) + ) + :method-count-assert 31 + :size-assert #x6a8 + :flag-assert #x1f000006a8 + (:methods + (game-info-method-9 () none) ;; 9 ;; (initialize! (_type_ symbol game-save string resetter-spec) _type_) + (game-info-method-10 () none) ;; 10 ;; (give (_type_ symbol float handle) float) + (game-info-method-11 () none) ;; 11 ;; (task-complete? (_type_ game-task) symbol) + (game-info-method-12 () none) ;; 12 ;; (subtask-index-by-name (_type_ string) int) + (game-info-method-13 () none) ;; 13 ;; (actor-perm (_type_ actor-id) entity-perm) + (game-info-method-14 () none) ;; 14 ;; (task-perm-by-index (_type_ int) entity-perm) + (game-info-method-15 () none) ;; 15 ;; (copy-perms-from-level! (_type_ level) int) + (game-info-method-16 () none) ;; 16 ;; (copy-perms-to-level! (_type_ level) int) + (debug-inspect (_type_ symbol) _type_) + (game-info-method-18 () none) ;; 18 ;; (get-current-continue-forced (_type_) continue-point) + (game-info-method-19 () none) ;; 19 ;; (get-continue-by-name (_type_ string) continue-point) + (game-info-method-20 () none) ;; 20 ;; (set-continue! (_type_ basic symbol) continue-point) + (game-info-method-21 () none) ;; 21 ;; (game-info-method-21 (_type_) none) + (game-info-method-22 () none) ;; 22 ;; (save-game (_type_ game-save string) game-save) + (game-info-method-23 () none) ;; 23 ;; (load-game (_type_ game-save) game-save) + (game-info-method-24 () none) ;; 24 ;; (you-suck-stage (_type_ symbol int) int) + (game-info-method-25 () none) ;; 25 ;; (you-suck-scale (_type_ symbol int) float) + (get-next-attack-id! (_type_) uint) + (game-info-method-27 () none) ;; 27 ;; (game-info-method-27 (_type_ game-score float) int) + (game-info-method-28 () none) ;; 28 ;; (get-game-score-ref (_type_ int) (pointer float)) + (game-info-method-29 () none) ;; 29 ;; (game-info-method-29 (_type_ int) int) + (game-info-method-30 () none) ;; 30 ;; (get-highscore-rank (_type_ int float) int) + ) + ) (define-extern *GAME-bank* game-bank) ;; -;; (define-extern *static-continues* array) -;; (define-extern continue-point-copy! function) -;; (define-extern *game-info* game-info) ;; -;; (define-extern *use-menu2* object) -;; (define-extern *lobby-adv-selected-cup* object) -;; (define-extern *lobby-adv-selected-map* object) -;; (define-extern *lobby-adv-selected-venue* object) -;; (define-extern *lobby-adv-selected-level* object) -;; (define-extern *lobby-adv-previous-score* object) -;; (define-extern *lobby-adv-cup* object) -;; (define-extern *lobby-adv-selected-task* object) +(define-extern *static-continues* (array continue-point)) +(define-extern continue-point-copy! (function continue-point continue-point none)) +(define-extern *game-info* game-info) ;; +(define-extern *use-menu2* symbol) +(define-extern *lobby-adv-selected-cup* int) +(define-extern *lobby-adv-selected-map* int) +(define-extern *lobby-adv-selected-venue* symbol) +(define-extern *lobby-adv-selected-level* symbol) +(define-extern *lobby-adv-previous-score* int) +(define-extern *lobby-adv-cup* int) +(define-extern *lobby-adv-selected-task* int) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; gui-h ;; @@ -21163,7 +21246,7 @@ ) (deftype speech-info (structure) - ((list basic :offset-assert 0) + ((list (array speech-info-item) :offset-assert 0) (flags speech-info-flag :offset-assert 8) ;; speech-info-flag ) :method-count-assert 13 @@ -21274,7 +21357,7 @@ (time uint64 :offset-assert 8) (current-request speech-request :offset-assert 16) (requests basic :offset-assert 20) - (speeches speech-info-item 31 :offset-assert 24) + (speeches speech-info 31 :offset-assert 24) ) :method-count-assert 17 :size-assert #x94 @@ -22718,6 +22801,7 @@ ((character-encoding-type int32 :offset-assert 0) (language-type int32 :offset-assert 4) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -22737,6 +22821,7 @@ ((n-version uint32 :offset-assert 0) (sz-version int8 16 :offset-assert 4) ) + :pack-me :method-count-assert 9 :size-assert #x14 :flag-assert #x900000014 @@ -22769,10 +22854,69 @@ ;; field connection-handle uses ~A with a signed load. ) +;; +++scert-3-h:net-error +(defenum net-error + :type int32 + (net-error-none 0) + (net-error-not-connected 1) + (net-error-connection-lost 2) + (net-error-connection-failed 3) + (net-error-client-rejected 4) + (net-error-disconnect-failed 5) + (net-error-new-client 6) + (net-error-bad-session-master 7) + (net-error-bad-index 8) + (net-error-bad-data-stream-channel 9) + (net-error-bad-pointer 10) + (net-error-object-not-shared 11) + (net-error-bad-packet-received 12) + (net-error-send-failed 13) + (net-error-timed-out 14) + (net-error-bad-connection-index 15) + (net-error-bad-mode 16) + (net-error-dme-not-initialized 17) + (net-error-init-failed 18) + (net-error-no-free-object 19) + (net-error-open-data-stream-failed 20) + (net-error-client-not-valid 21) + (net-error-memory 22) + (net-error-invalid-arg 23) + (net-error-msg-error 24) + (net-error-too-many-pending-events 25) + (net-error-udpnot-enabled 26) + (net-error-update 27) + (net-error-game-is-full 28) + (net-error-host-game-failed 29) + (net-error-unknown 30) + (net-error-msg-too-large 31) + (net-error-security 32) + (net-error-not-implemented 33) + (net-error-bad-server-version 34) + (net-error-comm-error 35) + (net-error-buffer-error 36) + (net-error-udperror 37) + (net-error-set-defaults-not-called 38) + (net-error-sizeof-param-mismatch 39) + (net-error-deprecated 40) + (net-error-stream-media 41) + (net-error-stream-media-comm 42) + (net-error-mutex 43) + (net-error-server-error 44) + (net-error-hostname-error 45) + (net-error-lookup-error 46) + (net-error-timebase-error 47) + (net-error-token-not-enabled 48) + (net-error-token-error 49) + (net-error-bad-port 50) + (net-error-bad-connectivity-type 51) + (extra-net-error-code #xffffff) + ) +;; ---scert-3-h:net-error + (deftype net-update-conn-errors (structure) ((sizeof-net-update-errors uint32 :offset-assert 0) (a-errors net-update-error 4 :inline :offset-assert 4) - (udperror int32 :offset-assert 36) + (udperror net-error :offset-assert 36) ) :method-count-assert 9 :size-assert #x28 @@ -22783,6 +22927,7 @@ ((n-size int32 :offset-assert 0) (p-data basic :offset-assert 4) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 @@ -22972,6 +23117,7 @@ (p-token-ownership-notify-callback-data basic :offset-assert 4) (b-use-token int32 :offset-assert 8) ) + :pack-me :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c @@ -23026,6 +23172,7 @@ (n-bits-per-sample-out int32 :offset-assert 16) (n-sample-rate-out int32 :offset-assert 20) ) + :pack-me :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 @@ -23140,6 +23287,7 @@ (pf-custom-video-play-callback basic :offset-assert 104) (p-custom-video-play-callback-data basic :offset-assert 108) ) + :pack-me :method-count-assert 9 :size-assert #x70 :flag-assert #x900000070 @@ -23180,60 +23328,57 @@ :flag-assert #x90000009a ) -;; (deftype net-connect-in-params (structure) -;; ((b-default-set int32 :offset-assert 0) -;; (max-clients int32 :offset-assert 4) -;; (connection-info net-connection-info :inline :offset-assert 8) -;; (pf-local-connect-callback basic :offset-assert 164) -;; (p-local-connect-callback-data basic :offset-assert 168) -;; (pf-local-disconnect-callback basic :offset-assert 172) -;; (p-local-disconnect-callback-data basic :offset-assert 176) -;; (pf-remote-client-connect-callback basic :offset-assert 180) -;; (p-remote-client-connect-callback-data basic :offset-assert 184) -;; (pf-remote-client-disconnect-callback basic :offset-assert 188) -;; (p-remote-client-disconnect-callback-data basic :offset-assert 192) -;; (pf-peer-to-peer-host-change-callback basic :offset-assert 196) -;; (p-host-change-callback-data basic :offset-assert 200) -;; (pf-system-status-callback basic :offset-assert 204) -;; (p-system-status-callback-data basic :offset-assert 208) -;; (stream-media-params net-stream-media-params :inline :offset-assert 212) -;; (user-specified int32 :offset-assert 324) -;; (aux-udpbind-port int32 :offset-assert 328) -;; (token-params net-token-params :inline :offset-assert 332) -;; (b-use-time-base int32 :offset-assert 344) -;; (send-buffer-size uint32 :offset-assert 348) -;; (recv-buffer-size uint32 :offset-assert 352) -;; ) -;; :method-count-assert 9 -;; :size-assert #x164 -;; :flag-assert #x900000164 -;; ;; field p-local-connect-callback-data uses ~A with a signed load. field p-local-disconnect-callback-data uses ~A with a signed load. field p-remote-client-connect-callback-data uses ~A with a signed load. field p-remote-client-disconnect-callback-data uses ~A with a signed load. field p-host-change-callback-data uses ~A with a signed load. field p-system-status-callback-data uses ~A with a signed load. -;; ) +(deftype net-connect-in-params (structure) + ((b-default-set int32 :offset-assert 0) + (max-clients int32 :offset-assert 4) + (connection-info net-connection-info :inline :offset-assert 8) + (pf-local-connect-callback basic :offset-assert 164) + (p-local-connect-callback-data basic :offset-assert 168) + (pf-local-disconnect-callback basic :offset-assert 172) + (p-local-disconnect-callback-data basic :offset-assert 176) + (pf-remote-client-connect-callback basic :offset-assert 180) + (p-remote-client-connect-callback-data basic :offset-assert 184) + (pf-remote-client-disconnect-callback basic :offset-assert 188) + (p-remote-client-disconnect-callback-data basic :offset-assert 192) + (pf-peer-to-peer-host-change-callback basic :offset-assert 196) + (p-host-change-callback-data basic :offset-assert 200) + (pf-system-status-callback basic :offset-assert 204) + (p-system-status-callback-data basic :offset-assert 208) + (stream-media-params net-stream-media-params :inline :offset-assert 212) + (user-specified int32 :offset-assert 324) + (aux-udpbind-port int32 :offset-assert 328) + (token-params net-token-params :inline :offset-assert 332) + (b-use-time-base int32 :offset-assert 344) + (send-buffer-size uint32 :offset-assert 348) + (recv-buffer-size uint32 :offset-assert 352) + ) + :method-count-assert 9 + :size-assert #x164 + :flag-assert #x900000164 + ;; field p-local-connect-callback-data uses ~A with a signed load. field p-local-disconnect-callback-data uses ~A with a signed load. field p-remote-client-connect-callback-data uses ~A with a signed load. field p-remote-client-disconnect-callback-data uses ~A with a signed load. field p-host-change-callback-data uses ~A with a signed load. field p-system-status-callback-data uses ~A with a signed load. + ) -#| (deftype net-bit-mask (structure) - ((bitmask UNKNOWN 8 :offset-assert 0) + ((bitmask uint32 8 :offset-assert 0) (base-id int32 :offset-assert 32) (max-id int32 :offset-assert 36) ) + :pack-me :method-count-assert 9 :size-assert #x28 :flag-assert #x900000028 ) -|# -#| (deftype net-client-list (structure) ((target-client int32 :offset-assert 0) (client-mask net-bit-mask :inline :offset-assert 4) ) + :pack-me :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype net-send-message-in-params (structure) ((connection-handle basic :offset-assert 0) (transport-flags int8 :offset-assert 4) @@ -23247,9 +23392,7 @@ :flag-assert #x900000040 ;; field connection-handle uses ~A with a signed load. ) -|# -#| (deftype net-send-message-out-params (structure) ((error-code int32 :offset-assert 0) (queued-client net-client-list :inline :offset-assert 4) @@ -23258,9 +23401,7 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| (deftype net-disconnect-params (structure) ((connection-handle basic :offset-assert 0) (reason int32 :offset-assert 4) @@ -23272,21 +23413,18 @@ :flag-assert #x900000010 ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-latency-metrics-info (structure) ((latency-min uint32 :offset-assert 0) (latency-max uint32 :offset-assert 4) (latency-avg uint32 :offset-assert 8) ) + :pack-me :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype net-latency-metrics-data-args (structure) ((connection-handle basic :offset-assert 0) (target-client-index int32 :offset-assert 4) @@ -23299,14 +23437,12 @@ :flag-assert #x90000001c ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-4-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype net-latency-metrics-params (structure) ((connection-handle basic :offset-assert 0) (target-client-list net-client-list :inline :offset-assert 4) @@ -23318,9 +23454,7 @@ :flag-assert #x900000038 ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-error-threshold-callback-data (structure) ((object-index int32 :offset-assert 0) (field-index int32 :offset-assert 4) @@ -23334,9 +23468,7 @@ :flag-assert #x900000018 ;; field p-current-data uses ~A with a signed load. field p-last-update-data uses ~A with a signed load. ) -|# -#| (deftype net-remote-client-event-data (structure) ((event-type int32 :offset-assert 0) (connection-handle basic :offset-assert 4) @@ -23348,9 +23480,7 @@ :flag-assert #x900000010 ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-object-filter-data (structure) ((client-list net-client-list :inline :offset-assert 0) (object-index int32 :offset-assert 44) @@ -23363,9 +23493,7 @@ :flag-assert #x900000060 ;; field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-type-ownership-update-data (structure) ((connection-handle basic :offset-assert 0) (client-index int32 :offset-assert 4) @@ -23378,9 +23506,7 @@ :flag-assert #x900000014 ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-type-ownership-request-data (structure) ((connection-handle basic :offset-assert 0) (client-index int32 :offset-assert 4) @@ -23392,9 +23518,7 @@ :flag-assert #x900000010 ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-completion-data (structure) ((result int32 :offset-assert 0) (p-user-data basic :offset-assert 4) @@ -23404,9 +23528,7 @@ :flag-assert #x900000008 ;; field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-smchange-data (structure) ((connection-handle basic :offset-assert 0) (smclient-index int32 :offset-assert 4) @@ -23417,13 +23539,11 @@ :flag-assert #x90000000c ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-join-in-params (structure) ((b-default-set int32 :offset-assert 0) (connection-handle basic :offset-assert 4) - (sz-client-name UNKNOWN 12 :offset-assert 8) + (sz-client-name uint8 12 :offset-assert 8) (net-object-count int32 :offset-assert 20) (data-stream-count int32 :offset-assert 24) (session-master-status int32 :offset-assert 28) @@ -23443,9 +23563,7 @@ :flag-assert #x900000048 ;; field connection-handle uses ~A with a signed load. field p-join-callback-data uses ~A with a signed load. field p-remote-client-event-callback-data uses ~A with a signed load. field p-smchange-callback-data uses ~A with a signed load. field p-ownership-update-callback-data uses ~A with a signed load. field p-ownership-request-callback-data uses ~A with a signed load. ) -|# -#| (deftype net-join-out-params (structure) ((b-is-set int32 :offset-assert 0) (error-code int32 :offset-assert 4) @@ -23454,20 +23572,17 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype anonymous-0 (structure) ((error-threshold-magnitude float :offset-assert 0) - (pf-threshold-callback basic :offset-assert 0) + (pf-threshold-callback basic :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype net-type-client (structure) ((connect-time uint32 :offset-assert 0) (client-object-index uint32 :offset-assert 4) @@ -23475,15 +23590,13 @@ (net-object-buffer-count int32 :offset-assert 12) (net-data-stream-start uint32 :offset-assert 16) (net-data-stream-count uint32 :offset-assert 20) - (name UNKNOWN 12 :offset-assert 24) + (name uint8 12 :offset-assert 24) ) :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 ) -|# -#| (deftype net-type-data-stream (structure) ((status uint8 :offset-assert 0) (circular-buffer uint8 :offset-assert 1) @@ -23506,9 +23619,7 @@ :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype net-type-short-vector2 (structure) ((x int16 :offset-assert 0) (y int16 :offset-assert 2) @@ -23517,9 +23628,7 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype net-type-short-vector3 (structure) ((x int16 :offset-assert 0) (y int16 :offset-assert 2) @@ -23529,9 +23638,7 @@ :size-assert #x6 :flag-assert #x900000006 ) -|# -#| (deftype net-type-int-vector2 (structure) ((x int32 :offset-assert 0) (y int32 :offset-assert 4) @@ -23540,9 +23647,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype net-type-int-vector3 (structure) ((x int32 :offset-assert 0) (y int32 :offset-assert 4) @@ -23552,9 +23657,7 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype net-type-float-vector2 (structure) ((x float :offset-assert 0) (y float :offset-assert 4) @@ -23563,9 +23666,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype net-type-float-vector3 (structure) ((x float :offset-assert 0) (y float :offset-assert 4) @@ -23575,9 +23676,7 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype net-type-object (structure) ((structure-index uint8 :offset-assert 0) (filter-type uint8 :offset-assert 1) @@ -23585,7 +23684,7 @@ (latency-critical uint8 :offset-assert 3) (owner-client-index int32 :offset-assert 4) (creator-client-index int32 :offset-assert 8) - (name UNKNOWN 16 :offset-assert 12) + (name uint8 16 :offset-assert 12) (current-object-data uint32 :offset-assert 28) (last-global-object-data-update uint32 :offset-assert 32) (hi-field-change-set uint32 :offset-assert 36) @@ -23602,9 +23701,7 @@ :flag-assert #x900000044 ;; field local-user-data uses ~A with a signed load. ) -|# -#| (deftype net-register-object-filter-in-params (structure) ((object-filter-call-back basic :offset-assert 0) (p-user-data basic :offset-assert 4) @@ -23614,9 +23711,7 @@ :flag-assert #x900000008 ;; field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-register-object-filter-out-params (structure) ((object-filter-type int32 :offset-assert 0) (error-code int32 :offset-assert 4) @@ -23625,9 +23720,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype net-lanfind-exchange-callback-out-args (structure) ((b-respond-to-sender int32 :offset-assert 0) (details net-data :inline :offset-assert 4) @@ -23636,9 +23729,7 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype net-lanfind-in-params (structure) ((b-default-set int32 :offset-assert 0) (session-type int32 :offset-assert 4) @@ -23653,9 +23744,7 @@ :flag-assert #x900000020 ;; field p-user-data uses ~A with a signed load. ) -|# -#| (deftype net-stream-media-channel-info (structure) ((connection-handle basic :offset-assert 0) (channel-num uint32 :offset-assert 4) @@ -23666,9 +23755,7 @@ :flag-assert #x90000000c ;; field connection-handle uses ~A with a signed load. ) -|# -#| (deftype net-stream-media-client-info (structure) ((connection-handle basic :offset-assert 0) (client-index int32 :offset-assert 4) @@ -23680,9 +23767,7 @@ :flag-assert #x900000010 ;; field connection-handle uses ~A with a signed load. ) -|# -#| (deftype net-stream-media-channel-state-data (structure) ((b-can-record int32 :offset-assert 0) ) @@ -23690,9 +23775,7 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype net-stream-media-ignore-data (structure) ((b-defaults-set int32 :offset-assert 0) (connection-handle basic :offset-assert 4) @@ -23704,114 +23787,171 @@ :flag-assert #x900000010 ;; field connection-handle uses ~A with a signed load. ) -|# -#| (deftype medius-player-online-state (structure) ((connect-status int32 :offset-assert 0) (medius-lobby-world-id int32 :offset-assert 4) (medius-game-world-id int32 :offset-assert 8) - (lobby-name UNKNOWN 64 :offset-assert 12) - (game-name UNKNOWN 64 :offset-assert 76) + (lobby-name uint8 64 :offset-assert 12) + (game-name uint8 64 :offset-assert 76) ) + :pack-me :method-count-assert 9 :size-assert #x8c :flag-assert #x90000008c ) -|# -#| (deftype medius-account-delete-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (master-password UNKNOWN 32 :offset-assert 38) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (master-password uint8 32 :offset-assert 38) ) :method-count-assert 9 :size-assert #x46 :flag-assert #x900000046 ) -|# -#| (deftype medius-account-get-idrequest (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (account-name UNKNOWN 32 :offset-assert 38) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (account-name uint8 32 :offset-assert 38) ) :method-count-assert 9 :size-assert #x46 :flag-assert #x900000046 ) -|# -#| +;; +++scert-4-h:medius-status-code +(defenum medius-status-code + :type int32 + (medius-begin-session-failed -1000) + (medius-account-already-exists -999) + (medius-account-not-found -998) + (medius-account-logged-in -997) + (medius-end-session-failed -996) + (medius-login-failed -995) + (medius-registration-failed -994) + (medius-incorrect-login-step -993) + (medius-already-leader-of-clan -992) + (medius-wmerror -991) + (medius-not-clan-leader -990) + (medius-player-not-privileged -989) + (medius-dberror -988) + (medius-dmeerror -987) + (medius-exceeds-max-worlds -986) + (medius-request-denied -985) + (medius-set-game-list-filter-failed -984) + (medius-clear-game-list-filter-failed -983) + (medius-get-game-list-filter-failed -982) + (medius-num-filters-at-max -981) + (medius-filter-not-found -980) + (medius-invalid-request-msg -979) + (medius-invalid-password -978) + (medius-game-not-found -977) + (medius-channel-not-found -976) + (medius-game-name-exists -975) + (medius-channel-name-exists -974) + (medius-game-name-not-found -973) + (medius-player-banned -972) + (medius-clan-not-found -971) + (medius-clan-name-in-use -970) + (medius-session-key-invalid -969) + (medius-text-string-invalid -968) + (medius-filter-failed -967) + (medius-fail -966) + (medius-file-internal-access-error -965) + (medius-file-no-permissions -964) + (medius-file-does-not-exist -963) + (medius-file-already-exists -962) + (medius-file-invalid-filename -961) + (medius-file-quota-exceeded -960) + (medius-cache-failure -959) + (medius-data-already-exists -958) + (medius-data-does-not-exist -957) + (medius-max-exceeded -956) + (medius-key-error -955) + (medius-incompatible-app-id -954) + (medius-account-banned -953) + (medius-machine-banned -952) + (medius-leader-cannot-leave-clan -951) + (medius-feature-not-enabled -950) + (medius-dnassignature-logged-in -949) + (medius-world-is-full -948) + (medius-not-clan-member -947) + (medius-server-busy -946) + (medius-num-game-worlds-per-lobby-world-exceeded -945) + (medius-account-not-uccompliant -944) + (medius-password-not-uccompliant -943) + + (medius-success 0) + (medius-no-result 1) + (medius-request-accepted 2) + (medius-world-created-size-reduced 3) + (medius-pass 4) + + (extra-medius-callback-status #xffffff) +) +;; ---scert-4-h:medius-status-code + (deftype medius-account-get-idresponse (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (account-id int32 :offset-assert 24) - (status-code int32 :offset-assert 28) + (status-code medius-status-code :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype medius-account-get-profile-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| (deftype medius-account-get-profile-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-status int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) + (account-name uint8 32 :offset-assert 32) (birthday-month int16 :offset-assert 64) (birthday-day int16 :offset-assert 66) (birthday-year int16 :offset-assert 68) - (first-name UNKNOWN 32 :offset-assert 70) - (last-name UNKNOWN 32 :offset-assert 102) - (middle-name UNKNOWN 32 :offset-assert 134) - (address1 UNKNOWN 32 :offset-assert 166) - (address2 UNKNOWN 32 :offset-assert 198) - (address3 UNKNOWN 32 :offset-assert 230) - (city UNKNOWN 32 :offset-assert 262) - (state UNKNOWN 3 :offset-assert 294) - (province UNKNOWN 32 :offset-assert 297) - (country UNKNOWN 32 :offset-assert 329) - (postal-code UNKNOWN 16 :offset-assert 361) - (email-address UNKNOWN 80 :offset-assert 377) + (first-name uint8 32 :offset-assert 70) + (last-name uint8 32 :offset-assert 102) + (middle-name uint8 32 :offset-assert 134) + (address1 uint8 32 :offset-assert 166) + (address2 uint8 32 :offset-assert 198) + (address3 uint8 32 :offset-assert 230) + (city uint8 32 :offset-assert 262) + (state uint8 3 :offset-assert 294) + (province uint8 32 :offset-assert 297) + (country uint8 32 :offset-assert 329) + (postal-code uint8 16 :offset-assert 361) + (email-address uint8 80 :offset-assert 377) ) :method-count-assert 9 :size-assert #x1c9 :flag-assert #x9000001c9 ) -|# -#| (deftype medius-account-login-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (account-name UNKNOWN 32 :offset-assert 38) - (password UNKNOWN 32 :offset-assert 70) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (account-name uint8 32 :offset-assert 38) + (password uint8 32 :offset-assert 70) ) :method-count-assert 9 :size-assert #x66 :flag-assert #x900000066 ) -|# -#| (deftype medius-account-login-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) (account-type int32 :offset-assert 32) (medius-world-id int32 :offset-assert 36) @@ -23821,136 +23961,116 @@ :size-assert #xc2 :flag-assert #x9000000c2 ) -|# -#| (deftype medius-account-logout-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| (deftype medius-account-registration-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (account-type int32 :offset-assert 40) - (account-name UNKNOWN 32 :offset-assert 44) - (password UNKNOWN 32 :offset-assert 76) + (account-name uint8 32 :offset-assert 44) + (password uint8 32 :offset-assert 76) ) :method-count-assert 9 :size-assert #x6c :flag-assert #x90000006c ) -|# -#| (deftype medius-account-registration-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype medius-account-update-password-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (old-password UNKNOWN 32 :offset-assert 38) - (new-password UNKNOWN 32 :offset-assert 70) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (old-password uint8 32 :offset-assert 38) + (new-password uint8 32 :offset-assert 70) ) :method-count-assert 9 :size-assert #x66 :flag-assert #x900000066 ) -|# -#| (deftype medius-account-update-profile-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (birthday-month int16 :offset-assert 38) (birthday-day int16 :offset-assert 40) (birthday-year int16 :offset-assert 42) - (first-name UNKNOWN 32 :offset-assert 44) - (last-name UNKNOWN 32 :offset-assert 76) - (middle-name UNKNOWN 32 :offset-assert 108) - (address1 UNKNOWN 32 :offset-assert 140) - (address2 UNKNOWN 32 :offset-assert 172) - (address3 UNKNOWN 32 :offset-assert 204) - (city UNKNOWN 32 :offset-assert 236) - (state UNKNOWN 3 :offset-assert 268) - (province UNKNOWN 32 :offset-assert 271) - (country UNKNOWN 32 :offset-assert 303) - (postal-code UNKNOWN 16 :offset-assert 335) - (email-address UNKNOWN 80 :offset-assert 351) + (first-name uint8 32 :offset-assert 44) + (last-name uint8 32 :offset-assert 76) + (middle-name uint8 32 :offset-assert 108) + (address1 uint8 32 :offset-assert 140) + (address2 uint8 32 :offset-assert 172) + (address3 uint8 32 :offset-assert 204) + (city uint8 32 :offset-assert 236) + (state uint8 3 :offset-assert 268) + (province uint8 32 :offset-assert 271) + (country uint8 32 :offset-assert 303) + (postal-code uint8 16 :offset-assert 335) + (email-address uint8 80 :offset-assert 351) ) :method-count-assert 9 :size-assert #x1af :flag-assert #x9000001af ) -|# -#| (deftype medius-account-update-stats-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (stats UNKNOWN 256 :offset-assert 38) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (stats uint8 256 :offset-assert 38) ) :method-count-assert 9 :size-assert #x126 :flag-assert #x900000126 ) -|# -#| (deftype medius-add-player-to-clan-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (player-account-id int32 :offset-assert 40) - (welcome-message UNKNOWN 200 :offset-assert 44) + (welcome-message uint8 200 :offset-assert 44) ) :method-count-assert 9 :size-assert #xf4 :flag-assert #x9000000f4 ) -|# -#| (deftype medius-add-player-to-clan-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| (deftype medius-add-to-buddy-list-confirmation-request0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (target-account-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype medius-add-to-buddy-list-confirmation-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (target-account-id int32 :offset-assert 40) (add-type int32 :offset-assert 44) ) @@ -23958,69 +24078,59 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-5-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype medius-add-to-buddy-list-confirmation-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (target-account-id int32 :offset-assert 28) - (target-account-name UNKNOWN 32 :offset-assert 32) + (target-account-name uint8 32 :offset-assert 32) ) :method-count-assert 9 :size-assert #x40 :flag-assert #x900000040 ) -|# -#| (deftype medius-add-to-buddy-list-fwd-confirmation-request0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (originator-account-id int32 :offset-assert 24) - (originator-account-name UNKNOWN 32 :offset-assert 28) + (originator-account-name uint8 32 :offset-assert 28) ) :method-count-assert 9 :size-assert #x3c :flag-assert #x90000003c ) -|# -#| (deftype medius-add-to-buddy-list-fwd-confirmation-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (originator-account-id int32 :offset-assert 24) - (originator-account-name UNKNOWN 32 :offset-assert 28) + (originator-account-name uint8 32 :offset-assert 28) (add-type int32 :offset-assert 60) ) :method-count-assert 9 :size-assert #x40 :flag-assert #x900000040 ) -|# -#| (deftype medius-add-to-buddy-list-fwd-confirmation-response0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (session-key UNKNOWN 17 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (session-key uint8 17 :offset-assert 28) (originator-account-id int32 :offset-assert 48) ) :method-count-assert 9 :size-assert #x34 :flag-assert #x900000034 ) -|# -#| (deftype medius-add-to-buddy-list-fwd-confirmation-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (session-key UNKNOWN 17 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (session-key uint8 17 :offset-assert 28) (originator-account-id int32 :offset-assert 48) (add-type int32 :offset-assert 52) ) @@ -24028,71 +24138,59 @@ :size-assert #x38 :flag-assert #x900000038 ) -|# -#| (deftype medius-add-to-buddy-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (account-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype medius-add-to-buddy-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| (deftype medius-add-to-ignore-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (ignore-account-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype medius-add-to-ignore-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| (deftype medius-anonymous-login-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (session-display-name UNKNOWN 32 :offset-assert 38) - (session-display-stats UNKNOWN 256 :offset-assert 70) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (session-display-name uint8 32 :offset-assert 38) + (session-display-stats uint8 256 :offset-assert 70) ) :method-count-assert 9 :size-assert #x146 :flag-assert #x900000146 ) -|# -#| (deftype medius-ban-player-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (ban-account-id int32 :offset-assert 40) (ban-minutes int32 :offset-assert 44) (medius-world-id int32 :offset-assert 48) @@ -24102,36 +24200,30 @@ :size-assert #x38 :flag-assert #x900000038 ) -|# -#| (deftype medius-ban-player-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| (deftype medius-channel-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype medius-channel-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (lobby-name UNKNOWN 64 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (lobby-name uint8 64 :offset-assert 28) (active-player-count int32 :offset-assert 92) (max-players int32 :offset-assert 96) ) @@ -24139,11 +24231,9 @@ :size-assert #x64 :flag-assert #x900000064 ) -|# -#| (deftype medius-channel-list-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (page-id uint16 :offset-assert 22) (page-size uint16 :offset-assert 24) ) @@ -24151,30 +24241,26 @@ :size-assert #x1a :flag-assert #x90000001a ) -|# -#| (deftype medius-channel-list-extra-info-response0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) (player-count uint16 :offset-assert 32) (max-players uint16 :offset-assert 34) (security-level int32 :offset-assert 36) (generic-field1 uint32 :offset-assert 40) - (lobby-name UNKNOWN 64 :offset-assert 44) + (lobby-name uint8 64 :offset-assert 44) (end-of-list int8 :offset-assert 108) ) :method-count-assert 9 :size-assert #x6d :flag-assert #x90000006d ) -|# -#| (deftype medius-channel-list-extra-info-response1 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) (player-count uint16 :offset-assert 32) (max-players uint16 :offset-assert 34) @@ -24184,19 +24270,17 @@ (generic-field3 uint32 :offset-assert 48) (generic-field4 uint32 :offset-assert 52) (generic-field-level int32 :offset-assert 56) - (lobby-name UNKNOWN 64 :offset-assert 60) + (lobby-name uint8 64 :offset-assert 60) (end-of-list int8 :offset-assert 124) ) :method-count-assert 9 :size-assert #x7d :flag-assert #x90000007d ) -|# -#| (deftype medius-channel-list-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) (player-count uint16 :offset-assert 32) (max-players uint16 :offset-assert 34) @@ -24207,19 +24291,17 @@ (generic-field3 uint32 :offset-assert 52) (generic-field4 uint32 :offset-assert 56) (generic-field-level int32 :offset-assert 60) - (lobby-name UNKNOWN 64 :offset-assert 64) + (lobby-name uint8 64 :offset-assert 64) (end-of-list int8 :offset-assert 128) ) :method-count-assert 9 :size-assert #x81 :flag-assert #x900000081 ) -|# -#| (deftype medius-channel-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (page-id int16 :offset-assert 38) (page-size int16 :offset-assert 40) ) @@ -24227,14 +24309,12 @@ :size-assert #x2a :flag-assert #x90000002a ) -|# -#| (deftype medius-channel-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) - (lobby-name UNKNOWN 64 :offset-assert 32) + (lobby-name uint8 64 :offset-assert 32) (player-count int32 :offset-assert 96) (end-of-list int8 :offset-assert 100) ) @@ -24242,90 +24322,76 @@ :size-assert #x65 :flag-assert #x900000065 ) -|# -#| (deftype medius-chat-fwd-message (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (originator-account-id int32 :offset-assert 24) - (originator-account-name UNKNOWN 32 :offset-assert 28) + (originator-account-name uint8 32 :offset-assert 28) (message-type int32 :offset-assert 60) - (message UNKNOWN 64 :offset-assert 64) + (message uint8 64 :offset-assert 64) ) :method-count-assert 9 :size-assert #x80 :flag-assert #x900000080 ) -|# -#| (deftype medius-chat-message (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (message-type int32 :offset-assert 40) (target-account-id int32 :offset-assert 44) - (message UNKNOWN 64 :offset-assert 48) + (message uint8 64 :offset-assert 48) ) :method-count-assert 9 :size-assert #x70 :flag-assert #x900000070 ) -|# -#| (deftype medius-binary-fwd-message (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (originator-account-id int32 :offset-assert 24) (message-type int32 :offset-assert 28) - (message UNKNOWN 400 :offset-assert 32) + (message uint8 400 :offset-assert 32) ) :method-count-assert 9 :size-assert #x1b0 :flag-assert #x9000001b0 ) -|# -#| (deftype medius-binary-message (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (message-type int32 :offset-assert 40) (target-account-id int32 :offset-assert 44) - (message UNKNOWN 400 :offset-assert 48) + (message uint8 400 :offset-assert 48) ) :method-count-assert 9 :size-assert #x1c0 :flag-assert #x9000001c0 ) -|# -#| (deftype medius-chat-toggle-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (chat-toggle int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype medius-chat-toggle-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| (deftype medius-check-my-clan-invitations-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (start int32 :offset-assert 40) (page-size int32 :offset-assert 44) ) @@ -24333,29 +24399,25 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| (deftype medius-check-my-clan-invitations-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (clan-invitation-id int32 :offset-assert 28) (clan-id int32 :offset-assert 32) (response-status int32 :offset-assert 36) - (message UNKNOWN 200 :offset-assert 40) + (message uint8 200 :offset-assert 40) (leader-account-id int32 :offset-assert 240) - (leader-account-name UNKNOWN 32 :offset-assert 244) + (leader-account-name uint8 32 :offset-assert 244) (end-of-list int8 :offset-assert 276) ) :method-count-assert 9 :size-assert #x115 :flag-assert #x900000115 ) -|# -#| (deftype medius-clan-ladder-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (clan-ladder-stat-index int32 :offset-assert 24) (sort-order int32 :offset-assert 28) (start-position uint32 :offset-assert 32) @@ -24365,26 +24427,22 @@ :size-assert #x28 :flag-assert #x900000028 ) -|# -#| (deftype medius-clan-ladder-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (clan-id int32 :offset-assert 24) - (clan-name UNKNOWN 32 :offset-assert 28) + (clan-name uint8 32 :offset-assert 28) (ladder-position uint32 :offset-assert 60) - (status-code int32 :offset-assert 64) + (status-code medius-status-code :offset-assert 64) (end-of-list int8 :offset-assert 68) ) :method-count-assert 9 :size-assert #x45 :flag-assert #x900000045 ) -|# -#| (deftype medius-clan-ladder-position-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (clan-id int32 :offset-assert 24) (clan-ladder-stat-index int32 :offset-assert 28) (sort-order int32 :offset-assert 32) @@ -24393,45 +24451,37 @@ :size-assert #x24 :flag-assert #x900000024 ) -|# -#| (deftype medius-clan-ladder-position-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-position uint32 :offset-assert 24) (total-rankings uint32 :offset-assert 28) - (status-code int32 :offset-assert 32) + (status-code medius-status-code :offset-assert 32) ) :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 ) -|# -#| (deftype medius-clear-game-list-filter-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (filter-field int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype medius-clear-game-list-filter-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| (deftype medius-clear-stored-account-info-request (structure) ((device int32 :offset-assert 0) (card-port int32 :offset-assert 4) @@ -24442,9 +24492,7 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype medius-clear-stored-account-info-response (structure) ((confirmation int32 :offset-assert 0) ) @@ -24452,70 +24500,60 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype medius-confirm-clan-team-challenge-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-challenge-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype medius-confirm-clan-team-challenge-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| (deftype medius-create-channel-request0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) (max-players int32 :offset-assert 44) - (lobby-name UNKNOWN 64 :offset-assert 48) - (lobby-password UNKNOWN 32 :offset-assert 112) + (lobby-name uint8 64 :offset-assert 48) + (lobby-password uint8 32 :offset-assert 112) ) :method-count-assert 9 :size-assert #x90 :flag-assert #x900000090 ) -|# -#| (deftype medius-create-channel-request1 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) (max-players int32 :offset-assert 44) - (lobby-name UNKNOWN 64 :offset-assert 48) - (lobby-password UNKNOWN 32 :offset-assert 112) + (lobby-name uint8 64 :offset-assert 48) + (lobby-password uint8 32 :offset-assert 112) (generic-field1 uint32 :offset-assert 144) ) :method-count-assert 9 :size-assert #x94 :flag-assert #x900000094 ) -|# -#| (deftype medius-create-channel-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) (max-players int32 :offset-assert 44) - (lobby-name UNKNOWN 64 :offset-assert 48) - (lobby-password UNKNOWN 32 :offset-assert 112) + (lobby-name uint8 64 :offset-assert 48) + (lobby-password uint8 32 :offset-assert 112) (generic-field1 uint32 :offset-assert 144) (generic-field2 uint32 :offset-assert 148) (generic-field3 uint32 :offset-assert 152) @@ -24526,32 +24564,28 @@ :size-assert #xa4 :flag-assert #x9000000a4 ) -|# -#| (deftype medius-create-channel-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype medius-create-game-on-self-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (server-version int32 :offset-assert 40) (max-players-per-world int32 :offset-assert 44) (application-id int32 :offset-assert 48) (min-players int32 :offset-assert 52) (max-players int32 :offset-assert 56) (game-level int32 :offset-assert 60) - (game-name UNKNOWN 64 :offset-assert 64) - (game-password UNKNOWN 32 :offset-assert 128) + (game-name uint8 64 :offset-assert 64) + (game-password uint8 32 :offset-assert 128) (player-skill-level int32 :offset-assert 160) (rules-set int32 :offset-assert 164) (generic-field1 int32 :offset-assert 168) @@ -24565,60 +24599,52 @@ :size-assert #xec :flag-assert #x9000000ec ) -|# -#| (deftype medius-create-game-on-self-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype medius-create-clan-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) - (clan-name UNKNOWN 32 :offset-assert 44) + (clan-name uint8 32 :offset-assert 44) ) :method-count-assert 9 :size-assert #x4c :flag-assert #x90000004c ) -|# -#| (deftype medius-create-clan-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (clan-id int32 :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-6-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype medius-create-game-request0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) (min-players int32 :offset-assert 44) (max-players int32 :offset-assert 48) (game-level int32 :offset-assert 52) - (game-name UNKNOWN 64 :offset-assert 56) - (game-password UNKNOWN 32 :offset-assert 120) + (game-name uint8 64 :offset-assert 56) + (game-password uint8 32 :offset-assert 120) (player-skill-level int32 :offset-assert 152) (rules-set int32 :offset-assert 156) (generic-field1 int32 :offset-assert 160) @@ -24630,19 +24656,18 @@ :size-assert #xb0 :flag-assert #x9000000b0 ) -|# -#| + (deftype medius-create-game-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) (min-players int32 :offset-assert 44) (max-players int32 :offset-assert 48) (game-level int32 :offset-assert 52) - (game-name UNKNOWN 64 :offset-assert 56) - (game-password UNKNOWN 32 :offset-assert 120) - (spectator-password UNKNOWN 32 :offset-assert 152) + (game-name uint8 64 :offset-assert 56) + (game-password uint8 32 :offset-assert 120) + (spectator-password uint8 32 :offset-assert 152) (player-skill-level int32 :offset-assert 184) (rules-set int32 :offset-assert 188) (generic-field1 int32 :offset-assert 192) @@ -24655,159 +24680,159 @@ :size-assert #xd4 :flag-assert #x9000000d4 ) -|# -#| + + (deftype medius-create-game-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-delete-clan-message-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-message-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-delete-clan-message-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-disband-clan-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-disband-clan-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-dnas-signature-post (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (dnas-signature-type int32 :offset-assert 40) (dnas-signature-length int8 :offset-assert 44) - (dnas-signature UNKNOWN 32 :offset-assert 45) + (dnas-signature uint8 32 :offset-assert 45) ) :method-count-assert 9 :size-assert #x4d :flag-assert #x90000004d ) -|# -#| + + (deftype medius-end-game-report (structure) - ((session-key UNKNOWN 17 :offset-assert 0) + ((session-key uint8 17 :offset-assert 0) (medius-world-id int32 :offset-assert 20) - (winning-team UNKNOWN 64 :offset-assert 24) - (winning-player UNKNOWN 32 :offset-assert 88) + (winning-team uint8 64 :offset-assert 24) + (winning-player uint8 32 :offset-assert 88) (final-score int32 :offset-assert 120) ) :method-count-assert 9 :size-assert #x7c :flag-assert #x90000007c ) -|# -#| + + (deftype medius-error-message (structure) ((error-code int32 :offset-assert 0) - (error-message UNKNOWN 256 :offset-assert 4) + (error-message uint8 256 :offset-assert 4) ) :method-count-assert 9 :size-assert #x104 :flag-assert #x900000104 ) -|# -#| + + (deftype medius-find-player-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (search-type int32 :offset-assert 40) (id int32 :offset-assert 44) - (name UNKNOWN 32 :offset-assert 48) + (name uint8 32 :offset-assert 48) ) :method-count-assert 9 :size-assert #x50 :flag-assert #x900000050 ) -|# -#| + + (deftype medius-find-player-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (application-id int32 :offset-assert 28) - (application-name UNKNOWN 32 :offset-assert 32) + (application-name uint8 32 :offset-assert 32) (application-type int32 :offset-assert 64) (medius-world-id int32 :offset-assert 68) (account-id int32 :offset-assert 72) - (account-name UNKNOWN 32 :offset-assert 76) + (account-name uint8 32 :offset-assert 76) (end-of-list int8 :offset-assert 108) ) :method-count-assert 9 :size-assert #x6d :flag-assert #x90000006d ) -|# -#| + + (deftype medius-find-world-by-name-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (name UNKNOWN 64 :offset-assert 38) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (name uint8 64 :offset-assert 38) (world-type int32 :offset-assert 104) ) :method-count-assert 9 :size-assert #x6c :flag-assert #x90000006c ) -|# -#| + + (deftype medius-find-world-by-name-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (application-id int32 :offset-assert 28) - (application-name UNKNOWN 32 :offset-assert 32) + (application-name uint8 32 :offset-assert 32) (application-type int32 :offset-assert 64) (medius-world-id int32 :offset-assert 68) - (world-name UNKNOWN 64 :offset-assert 72) + (world-name uint8 64 :offset-assert 72) (world-status int32 :offset-assert 136) (end-of-list int8 :offset-assert 140) ) @@ -24815,32 +24840,32 @@ :size-assert #x8d :flag-assert #x90000008d ) -|# -#| + + (deftype medius-game-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-game-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (application-id int32 :offset-assert 28) (min-players int32 :offset-assert 32) (max-players int32 :offset-assert 36) (game-level int32 :offset-assert 40) (player-skill-level int32 :offset-assert 44) (player-count int32 :offset-assert 48) - (game-stats UNKNOWN 256 :offset-assert 52) - (game-name UNKNOWN 64 :offset-assert 308) + (game-stats uint8 256 :offset-assert 52) + (game-name uint8 64 :offset-assert 308) (rules-set int32 :offset-assert 372) (generic-field1 int32 :offset-assert 376) (generic-field2 int32 :offset-assert 380) @@ -24852,11 +24877,11 @@ :size-assert #x18c :flag-assert #x90000018c ) -|# -#| + + (deftype medius-game-list-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (page-id uint16 :offset-assert 22) (page-size uint16 :offset-assert 24) ) @@ -24864,12 +24889,12 @@ :size-assert #x1a :flag-assert #x90000001a ) -|# -#| + + (deftype medius-game-list-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) (player-count uint16 :offset-assert 32) (min-players uint16 :offset-assert 34) @@ -24883,20 +24908,20 @@ (security-level int32 :offset-assert 64) (world-status int32 :offset-assert 68) (game-host-type int32 :offset-assert 72) - (game-name UNKNOWN 64 :offset-assert 76) - (game-stats UNKNOWN 256 :offset-assert 140) + (game-name uint8 64 :offset-assert 76) + (game-stats uint8 256 :offset-assert 140) (end-of-list int8 :offset-assert 396) ) :method-count-assert 9 :size-assert #x18d :flag-assert #x90000018d ) -|# -#| + + (deftype medius-game-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) (page-id int16 :offset-assert 44) (page-size int16 :offset-assert 46) @@ -24905,14 +24930,14 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-game-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) - (game-name UNKNOWN 64 :offset-assert 32) + (game-name uint8 64 :offset-assert 32) (world-status int32 :offset-assert 96) (game-host-type int32 :offset-assert 100) (player-count int32 :offset-assert 104) @@ -24922,27 +24947,27 @@ :size-assert #x6d :flag-assert #x90000006d ) -|# -#| + + (deftype medius-game-world-player-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-game-world-player-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) - (stats UNKNOWN 256 :offset-assert 64) + (account-name uint8 32 :offset-assert 32) + (stats uint8 256 :offset-assert 64) (connection-class int32 :offset-assert 320) (end-of-list int8 :offset-assert 324) ) @@ -24950,24 +24975,24 @@ :size-assert #x145 :flag-assert #x900000145 ) -|# -#| + + (deftype medius-get-all-announcements-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-all-clan-messages-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (start int32 :offset-assert 40) (page-size int32 :offset-assert 44) ) @@ -24975,14 +25000,14 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-get-all-clan-messages-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (clan-message-id int32 :offset-assert 28) - (message UNKNOWN 200 :offset-assert 32) + (message uint8 200 :offset-assert 32) (status int32 :offset-assert 232) (end-of-list int8 :offset-assert 236) ) @@ -24990,50 +25015,50 @@ :size-assert #xed :flag-assert #x9000000ed ) -|# -#| + + (deftype medius-get-announcements-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-announcements-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (announcement-id int32 :offset-assert 28) - (announcement UNKNOWN 1000 :offset-assert 32) + (announcement uint8 1000 :offset-assert 32) (end-of-list int8 :offset-assert 1032) ) :method-count-assert 9 :size-assert #x409 :flag-assert #x900000409 ) -|# -#| + + (deftype medius-get-buddy-invitations-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) ) :method-count-assert 9 :size-assert #x15 :flag-assert #x900000015 ) -|# -#| + + (deftype medius-get-buddy-invitations-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) + (account-name uint8 32 :offset-assert 32) (add-type int32 :offset-assert 64) (end-of-list int8 :offset-assert 68) ) @@ -25041,24 +25066,24 @@ :size-assert #x45 :flag-assert #x900000045 ) -|# -#| + + (deftype medius-get-buddy-list-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) ) :method-count-assert 9 :size-assert #x15 :flag-assert #x900000015 ) -|# -#| + + (deftype medius-get-buddy-list-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) + (account-name uint8 32 :offset-assert 32) (online-state medius-player-online-state :inline :offset-assert 64) (end-of-list int8 :offset-assert 204) ) @@ -25066,25 +25091,25 @@ :size-assert #xcd :flag-assert #x9000000cd ) -|# -#| + + (deftype medius-get-buddy-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-get-buddy-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) + (account-name uint8 32 :offset-assert 32) (player-status int32 :offset-assert 64) (end-of-list int8 :offset-assert 68) ) @@ -25092,25 +25117,25 @@ :size-assert #x45 :flag-assert #x900000045 ) -|# -#| + + (deftype medius-get-ignore-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-get-ignore-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (ignore-account-id int32 :offset-assert 28) - (ignore-account-name UNKNOWN 32 :offset-assert 32) + (ignore-account-name uint8 32 :offset-assert 32) (player-status int32 :offset-assert 64) (end-of-list int8 :offset-assert 68) ) @@ -25118,12 +25143,12 @@ :size-assert #x45 :flag-assert #x900000045 ) -|# -#| + + (deftype medius-get-clan-by-idrequest (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (account-id int32 :offset-assert 40) (clan-id int32 :offset-assert 44) ) @@ -25131,58 +25156,58 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-get-clan-by-idresponse (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (status-code int32 :offset-assert 24) (application-id int32 :offset-assert 28) - (clan-name UNKNOWN 32 :offset-assert 32) + (clan-name uint8 32 :offset-assert 32) (leader-account-id int32 :offset-assert 64) - (leader-account-name UNKNOWN 32 :offset-assert 68) - (stats UNKNOWN 256 :offset-assert 100) + (leader-account-name uint8 32 :offset-assert 68) + (stats uint8 256 :offset-assert 100) (status int32 :offset-assert 356) ) :method-count-assert 9 :size-assert #x168 :flag-assert #x900000168 ) -|# -#| + + (deftype medius-get-clan-by-name-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) - (clan-name UNKNOWN 32 :offset-assert 44) + (clan-name uint8 32 :offset-assert 44) ) :method-count-assert 9 :size-assert #x4c :flag-assert #x90000004c ) -|# -#| + + (deftype medius-get-clan-by-name-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (clan-id int32 :offset-assert 28) (leader-account-id int32 :offset-assert 32) - (leader-account-name UNKNOWN 32 :offset-assert 36) - (stats UNKNOWN 256 :offset-assert 68) + (leader-account-name uint8 32 :offset-assert 36) + (stats uint8 256 :offset-assert 68) (status int32 :offset-assert 324) ) :method-count-assert 9 :size-assert #x148 :flag-assert #x900000148 ) -|# -#| + + (deftype medius-get-clan-invitations-sent-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (start int32 :offset-assert 40) (page-size int32 :offset-assert 44) ) @@ -25190,15 +25215,15 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-get-clan-invitations-sent-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) - (response-msg UNKNOWN 200 :offset-assert 64) + (account-name uint8 32 :offset-assert 32) + (response-msg uint8 200 :offset-assert 64) (response-status int32 :offset-assert 264) (response-time int32 :offset-assert 268) (end-of-list int8 :offset-assert 272) @@ -25207,11 +25232,11 @@ :size-assert #x111 :flag-assert #x900000111 ) -|# -#| + + (deftype medius-get-clan-member-list-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (clan-id int32 :offset-assert 24) (ladder-stat-index int32 :offset-assert 28) (sort-order int32 :offset-assert 32) @@ -25220,15 +25245,15 @@ :size-assert #x24 :flag-assert #x900000024 ) -|# -#| + + (deftype medius-get-clan-member-list-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) - (stats UNKNOWN 256 :offset-assert 64) + (account-name uint8 32 :offset-assert 32) + (stats uint8 256 :offset-assert 64) (online-state medius-player-online-state :inline :offset-assert 320) (ladder-stat int32 :offset-assert 460) (ladder-position uint32 :offset-assert 464) @@ -25239,43 +25264,43 @@ :size-assert #x1d9 :flag-assert #x9000001d9 ) -|# + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-7-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| + (deftype medius-get-clan-member-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-clan-member-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (account-id int32 :offset-assert 24) - (account-name UNKNOWN 32 :offset-assert 28) - (status-code int32 :offset-assert 60) + (account-name uint8 32 :offset-assert 28) + (status-code medius-status-code :offset-assert 60) (end-of-list int8 :offset-assert 64) ) :method-count-assert 9 :size-assert #x41 :flag-assert #x900000041 ) -|# -#| + + (deftype medius-get-clan-team-challenge-history-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-id int32 :offset-assert 40) (this-clan-is-challenger int32 :offset-assert 44) (start int32 :offset-assert 48) @@ -25285,12 +25310,12 @@ :size-assert #x38 :flag-assert #x900000038 ) -|# -#| + + (deftype medius-get-clan-team-challenge-history-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (against-clan-id int32 :offset-assert 28) (status int32 :offset-assert 32) (end-of-list int8 :offset-assert 36) @@ -25299,12 +25324,12 @@ :size-assert #x25 :flag-assert #x900000025 ) -|# -#| + + (deftype medius-get-clan-team-challenges-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-id int32 :offset-assert 40) (start int32 :offset-assert 44) (page-size int32 :offset-assert 48) @@ -25315,18 +25340,18 @@ :size-assert #x3c :flag-assert #x90000003c ) -|# -#| + + (deftype medius-get-clan-team-challenges-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (challenger-clan-id int32 :offset-assert 28) (against-clan-id int32 :offset-assert 32) (status int32 :offset-assert 36) (response-time int32 :offset-assert 40) - (challenge-msg UNKNOWN 200 :offset-assert 44) - (response-msg UNKNOWN 200 :offset-assert 244) + (challenge-msg uint8 200 :offset-assert 44) + (response-msg uint8 200 :offset-assert 244) (end-of-list int8 :offset-assert 444) (clan-challenge-id int32 :offset-assert 448) ) @@ -25334,23 +25359,23 @@ :size-assert #x1c4 :flag-assert #x9000001c4 ) -|# -#| + + (deftype medius-get-game-list-filter-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-get-game-list-filter-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (filter-field int32 :offset-assert 28) (comparison-operator int32 :offset-assert 32) (baseline-value int32 :offset-assert 36) @@ -25360,34 +25385,34 @@ :size-assert #x29 :flag-assert #x900000029 ) -|# -#| + + (deftype medius-get-ladder-stats-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-type int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-get-ladder-stats-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (stats UNKNOWN 15 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (stats uint32 15 :offset-assert 28) ) :method-count-assert 9 :size-assert #x58 :flag-assert #x900000058 ) -|# -#| + + (deftype medius-get-ladder-stats-wide-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (account-id-or-clan-id int32 :offset-assert 24) (ladder-type int32 :offset-assert 28) ) @@ -25395,64 +25420,64 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-get-ladder-stats-wide-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id-or-clan-id int32 :offset-assert 28) - (stats UNKNOWN 100 :offset-assert 32) + (stats uint32 100 :offset-assert 32) ) :method-count-assert 9 :size-assert #x1b0 :flag-assert #x9000001b0 ) -|# -#| + + (deftype medius-get-ladder-stats-wide-w-idarray-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (ids UNKNOWN 50 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (ids uint32 50 :offset-assert 24) (ladder-type int32 :offset-assert 224) ) :method-count-assert 9 :size-assert #xe4 :flag-assert #x9000000e4 ) -|# -#| + + (deftype medius-get-ladder-stats-wide-w-idarray-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id-or-clan-id int32 :offset-assert 28) - (stats UNKNOWN 100 :offset-assert 32) + (stats uint32 100 :offset-assert 32) (end-of-list int8 :offset-assert 432) ) :method-count-assert 9 :size-assert #x1b1 :flag-assert #x9000001b1 ) -|# -#| + + (deftype medius-get-lobby-player-names-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (medius-world-id int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-get-lobby-player-names-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) + (account-name uint8 32 :offset-assert 32) (online-state medius-player-online-state :inline :offset-assert 64) (end-of-list int8 :offset-assert 204) ) @@ -25460,63 +25485,63 @@ :size-assert #xcd :flag-assert #x9000000cd ) -|# -#| + + (deftype medius-get-lobby-player-names-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-lobby-player-names-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (account-id int32 :offset-assert 28) - (account-name UNKNOWN 32 :offset-assert 32) + (account-name uint8 32 :offset-assert 32) (end-of-list int8 :offset-assert 64) ) :method-count-assert 9 :size-assert #x41 :flag-assert #x900000041 ) -|# -#| + + (deftype medius-get-locations-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-get-locations-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (location-id int32 :offset-assert 24) - (location-name UNKNOWN 64 :offset-assert 28) - (status-code int32 :offset-assert 92) + (location-name uint8 64 :offset-assert 28) + (status-code medius-status-code :offset-assert 92) (end-of-list int8 :offset-assert 96) ) :method-count-assert 9 :size-assert #x61 :flag-assert #x900000061 ) -|# -#| + + (deftype medius-get-my-clan-messages-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-id int32 :offset-assert 40) (start int32 :offset-assert 44) (page-size int32 :offset-assert 48) @@ -25525,26 +25550,26 @@ :size-assert #x34 :flag-assert #x900000034 ) -|# -#| + + (deftype medius-get-my-clan-messages-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (clan-id int32 :offset-assert 28) - (message UNKNOWN 200 :offset-assert 32) + (message uint8 200 :offset-assert 32) (end-of-list int8 :offset-assert 232) ) :method-count-assert 9 :size-assert #xe9 :flag-assert #x9000000e9 ) -|# -#| + + (deftype medius-get-my-clans-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (start int32 :offset-assert 40) (page-size int32 :offset-assert 44) ) @@ -25552,18 +25577,18 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-get-my-clans-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (clan-id int32 :offset-assert 28) (application-id int32 :offset-assert 32) - (clan-name UNKNOWN 32 :offset-assert 36) + (clan-name uint8 32 :offset-assert 36) (leader-account-id int32 :offset-assert 68) - (leader-account-name UNKNOWN 32 :offset-assert 72) - (stats UNKNOWN 256 :offset-assert 104) + (leader-account-name uint8 32 :offset-assert 72) + (stats uint8 256 :offset-assert 104) (status int32 :offset-assert 360) (end-of-list int8 :offset-assert 364) ) @@ -25571,57 +25596,57 @@ :size-assert #x16d :flag-assert #x90000016d ) -|# -#| + + (deftype medius-get-my-iprequest (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-get-my-ipresponse (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (ip UNKNOWN 20 :offset-assert 21) - (status-code int32 :offset-assert 44) + ((message-id uint8 21 :offset-assert 0) + (ip uint8 20 :offset-assert 21) + (status-code medius-status-code :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-get-policy-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (policy int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-policy-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (policy UNKNOWN 256 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (policy uint8 256 :offset-assert 28) (end-of-text int8 :offset-assert 284) ) :method-count-assert 9 :size-assert #x11d :flag-assert #x90000011d ) -|# -#| + + (deftype medius-get-stored-account-info-request (structure) ((device int32 :offset-assert 0) (card-port int32 :offset-assert 4) @@ -25632,21 +25657,21 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| + + (deftype medius-get-stored-account-info-response (structure) ((account-id int32 :offset-assert 0) - (account-name UNKNOWN 32 :offset-assert 4) - (account-password UNKNOWN 32 :offset-assert 36) + (account-name uint8 32 :offset-assert 4) + (account-password uint8 32 :offset-assert 36) ) :method-count-assert 9 :size-assert #x44 :flag-assert #x900000044 ) -|# -#| + + (deftype medius-get-stored-account-list-request (structure) ((device int32 :offset-assert 0) (card-port int32 :offset-assert 4) @@ -25656,118 +25681,118 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| + + (deftype medius-get-stored-account-list-response (structure) - ((account-list UNKNOWN 256 :offset-assert 0) + ((account-list uint8 256 :offset-assert 0) ) :method-count-assert 9 :size-assert #x100 :flag-assert #x900000100 ) -|# -#| + + (deftype medius-get-total-channels-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-total-channels-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (total uint32 :offset-assert 24) - (status-code int32 :offset-assert 28) + (status-code medius-status-code :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-get-total-games-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-total-games-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (total uint32 :offset-assert 24) - (status-code int32 :offset-assert 28) + (status-code medius-status-code :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-get-total-rankings-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-type int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-get-total-rankings-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (total-rankings uint32 :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-get-total-users-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (application-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-get-total-users-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (total-in-system uint32 :offset-assert 24) (total-in-game uint32 :offset-assert 28) - (status-code int32 :offset-assert 32) + (status-code medius-status-code :offset-assert 32) ) :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 ) -|# -#| + + (deftype medius-get-world-security-level-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) (app-type int32 :offset-assert 44) ) @@ -25775,12 +25800,12 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-get-world-security-level-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (medius-world-id int32 :offset-assert 28) (app-type int32 :offset-assert 32) (security-level int32 :offset-assert 36) @@ -25789,23 +25814,23 @@ :size-assert #x28 :flag-assert #x900000028 ) -|# -#| + + (deftype medius-initialize-storage-request (structure) ((device int32 :offset-assert 0) (card-port int32 :offset-assert 4) (card-slot int32 :offset-assert 8) - (icon-location UNKNOWN 64 :offset-assert 12) + (icon-location uint8 64 :offset-assert 12) (sceterritory int32 :offset-assert 76) ) :method-count-assert 9 :size-assert #x50 :flag-assert #x900000050 ) -|# -#| + + (deftype medius-initialize-storage-response (structure) ((confirmation int32 :offset-assert 0) ) @@ -25813,104 +25838,104 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| + + (deftype medius-invite-player-to-clan-by-name-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (account-name UNKNOWN 32 :offset-assert 21) - (invite-message UNKNOWN 200 :offset-assert 53) + ((message-id uint8 21 :offset-assert 0) + (account-name uint8 32 :offset-assert 21) + (invite-message uint8 200 :offset-assert 53) ) :method-count-assert 9 :size-assert #xfd :flag-assert #x9000000fd ) -|# -#| + + (deftype medius-invite-player-to-clan-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (player-account-id int32 :offset-assert 40) - (invite-message UNKNOWN 200 :offset-assert 44) + (invite-message uint8 200 :offset-assert 44) ) :method-count-assert 9 :size-assert #xf4 :flag-assert #x9000000f4 ) -|# -#| + + (deftype medius-invite-player-to-clan-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-join-channel-fwd-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (player-session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (player-session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-join-channel-fwd-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (player-session-key UNKNOWN 17 :offset-assert 21) - (access-key UNKNOWN 17 :offset-assert 38) - (status-code int32 :offset-assert 56) + ((message-id uint8 21 :offset-assert 0) + (player-session-key uint8 17 :offset-assert 21) + (access-key uint8 17 :offset-assert 38) + (status-code medius-status-code :offset-assert 56) ) :method-count-assert 9 :size-assert #x3c :flag-assert #x90000003c ) -|# -#| + + (deftype medius-join-channel-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) - (lobby-channel-password UNKNOWN 32 :offset-assert 44) + (lobby-channel-password uint8 32 :offset-assert 44) ) :method-count-assert 9 :size-assert #x4c :flag-assert #x90000004c ) -|# -#| + + (deftype medius-join-channel-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (connect-info net-connection-info :inline :offset-assert 28) ) :method-count-assert 9 :size-assert #xb6 :flag-assert #x9000000b6 ) -|# + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-8-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| + (deftype medius-join-game-request0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) - (game-password UNKNOWN 32 :offset-assert 44) + (game-password uint8 32 :offset-assert 44) (game-host-type int32 :offset-assert 76) (address-list net-address-list :inline :offset-assert 80) ) @@ -25918,15 +25943,15 @@ :size-assert #x80 :flag-assert #x900000080 ) -|# -#| + + (deftype medius-join-game-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) (join-type int32 :offset-assert 44) - (game-password UNKNOWN 32 :offset-assert 48) + (game-password uint8 32 :offset-assert 48) (game-host-type int32 :offset-assert 80) (pub-key rsa-key :inline :offset-assert 84) (address-list net-address-list :inline :offset-assert 148) @@ -25935,12 +25960,12 @@ :size-assert #xc4 :flag-assert #x9000000c4 ) -|# -#| + + (deftype medius-join-game-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (game-host-type int32 :offset-assert 28) (connect-info net-connection-info :inline :offset-assert 32) ) @@ -25948,11 +25973,11 @@ :size-assert #xba :flag-assert #x9000000ba ) -|# -#| + + (deftype medius-ladder-list-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-stat-index int32 :offset-assert 24) (sort-order int32 :offset-assert 28) (start-position uint32 :offset-assert 32) @@ -25962,16 +25987,16 @@ :size-assert #x28 :flag-assert #x900000028 ) -|# -#| + + (deftype medius-ladder-list-extra-info-response0 (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (ladder-position uint32 :offset-assert 28) (account-id int32 :offset-assert 32) - (account-name UNKNOWN 32 :offset-assert 36) - (account-stats UNKNOWN 256 :offset-assert 68) + (account-name uint8 32 :offset-assert 36) + (account-stats uint8 256 :offset-assert 68) (online-state medius-player-online-state :inline :offset-assert 324) (end-of-list int8 :offset-assert 464) ) @@ -25979,17 +26004,17 @@ :size-assert #x1d1 :flag-assert #x9000001d1 ) -|# -#| + + (deftype medius-ladder-list-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (ladder-position uint32 :offset-assert 28) (ladder-stat int32 :offset-assert 32) (account-id int32 :offset-assert 36) - (account-name UNKNOWN 32 :offset-assert 40) - (account-stats UNKNOWN 256 :offset-assert 72) + (account-name uint8 32 :offset-assert 40) + (account-stats uint8 256 :offset-assert 72) (online-state medius-player-online-state :inline :offset-assert 328) (end-of-list int8 :offset-assert 468) ) @@ -25997,12 +26022,12 @@ :size-assert #x1d5 :flag-assert #x9000001d5 ) -|# -#| + + (deftype medius-ladder-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (start-byte uint32 :offset-assert 40) (end-byte uint32 :offset-assert 44) (sort-order int32 :offset-assert 48) @@ -26013,26 +26038,26 @@ :size-assert #x3c :flag-assert #x90000003c ) -|# -#| + + (deftype medius-ladder-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (account-id int32 :offset-assert 24) - (account-name UNKNOWN 32 :offset-assert 28) + (account-name uint8 32 :offset-assert 28) (ladder-position uint32 :offset-assert 60) - (status-code int32 :offset-assert 64) + (status-code medius-status-code :offset-assert 64) (end-of-list int8 :offset-assert 68) ) :method-count-assert 9 :size-assert #x45 :flag-assert #x900000045 ) -|# -#| + + (deftype medius-ladder-position-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (account-id int32 :offset-assert 24) (ladder-stat-index int32 :offset-assert 28) (sort-order int32 :offset-assert 32) @@ -26041,12 +26066,12 @@ :size-assert #x24 :flag-assert #x900000024 ) -|# -#| + + (deftype medius-ladder-position-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (ladder-position uint32 :offset-assert 28) (total-rankings uint32 :offset-assert 32) ) @@ -26054,12 +26079,12 @@ :size-assert #x24 :flag-assert #x900000024 ) -|# -#| + + (deftype medius-ladder-position-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (account-id int32 :offset-assert 40) (start-byte uint32 :offset-assert 44) (end-byte uint32 :offset-assert 48) @@ -26069,24 +26094,24 @@ :size-assert #x38 :flag-assert #x900000038 ) -|# -#| + + (deftype medius-ladder-position-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-position uint32 :offset-assert 24) - (status-code int32 :offset-assert 28) + (status-code medius-status-code :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-ladder-position-fast-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (account-id int32 :offset-assert 40) (new-stats-score int32 :offset-assert 44) ) @@ -26094,40 +26119,40 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-ladder-position-fast-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-position uint32 :offset-assert 24) - (status-code int32 :offset-assert 28) + (status-code medius-status-code :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-lobby-world-player-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-lobby-world-player-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (player-status int32 :offset-assert 28) (account-id int32 :offset-assert 32) - (account-name UNKNOWN 32 :offset-assert 36) - (stats UNKNOWN 256 :offset-assert 68) + (account-name uint8 32 :offset-assert 36) + (stats uint8 256 :offset-assert 68) (connection-class int32 :offset-assert 324) (end-of-list int8 :offset-assert 328) ) @@ -26135,108 +26160,108 @@ :size-assert #x149 :flag-assert #x900000149 ) -|# -#| + + (deftype medius-machine-signature-post (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (machine-signature UNKNOWN 128 :offset-assert 38) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (machine-signature uint8 128 :offset-assert 38) ) :method-count-assert 9 :size-assert #xa6 :flag-assert #x9000000a6 ) -|# -#| + + (deftype medius-modify-clan-message-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-message-id int32 :offset-assert 40) - (new-message UNKNOWN 200 :offset-assert 44) + (new-message uint8 200 :offset-assert 44) ) :method-count-assert 9 :size-assert #xf4 :flag-assert #x9000000f4 ) -|# -#| + + (deftype medius-modify-clan-message-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-pick-location-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (location-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-pick-location-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-player-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (account-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-player-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (account-name UNKNOWN 32 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (account-name uint8 32 :offset-assert 28) (application-id int32 :offset-assert 60) (player-status int32 :offset-assert 64) (connection-class int32 :offset-assert 68) - (stats UNKNOWN 256 :offset-assert 72) + (stats uint8 256 :offset-assert 72) ) :method-count-assert 9 :size-assert #x148 :flag-assert #x900000148 ) -|# -#| + + (deftype medius-player-report (structure) - ((session-key UNKNOWN 17 :offset-assert 0) + ((session-key uint8 17 :offset-assert 0) (medius-world-id int32 :offset-assert 20) - (stats UNKNOWN 256 :offset-assert 24) + (stats uint8 256 :offset-assert 24) ) :method-count-assert 9 :size-assert #x118 :flag-assert #x900000118 ) -|# -#| + + (deftype medius-reassign-game-medius-world-id (structure) ((old-medius-world-id int32 :offset-assert 0) (new-medius-world-id int32 :offset-assert 4) @@ -26245,58 +26270,58 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| + + (deftype medius-remove-from-buddy-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (account-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-remove-from-buddy-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-remove-from-ignore-list-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (ignore-account-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-remove-from-ignore-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-remove-player-from-clan-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (player-account-id int32 :offset-assert 40) (clan-id int32 :offset-assert 44) ) @@ -26304,211 +26329,211 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-remove-player-from-clan-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-request-clan-team-challenge-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-id int32 :offset-assert 40) - (message UNKNOWN 200 :offset-assert 44) + (message uint8 200 :offset-assert 44) ) :method-count-assert 9 :size-assert #xf4 :flag-assert #x9000000f4 ) -|# -#| + + (deftype medius-request-clan-team-challenge-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-respond-to-clan-invitation-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-invitation-id int32 :offset-assert 40) (response int32 :offset-assert 44) - (message UNKNOWN 200 :offset-assert 48) + (message uint8 200 :offset-assert 48) ) :method-count-assert 9 :size-assert #xf8 :flag-assert #x9000000f8 ) -|# -#| + + (deftype medius-respond-to-clan-invitation-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-respond-to-clan-team-challenge-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-challenge-id int32 :offset-assert 40) (challenge-status int32 :offset-assert 44) - (message UNKNOWN 200 :offset-assert 48) + (message uint8 200 :offset-assert 48) ) :method-count-assert 9 :size-assert #xf8 :flag-assert #x9000000f8 ) -|# -#| + + (deftype medius-respond-to-clan-team-challenge-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-revoke-clan-invitation-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (player-account-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-revoke-clan-invitation-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-revoke-clan-team-challenge-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-challenge-id int32 :offset-assert 40) ) :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| + + (deftype medius-revoke-clan-team-challenge-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-send-clan-message-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) - (message UNKNOWN 200 :offset-assert 38) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) + (message uint8 200 :offset-assert 38) ) :method-count-assert 9 :size-assert #xee :flag-assert #x9000000ee ) -|# -#| + + (deftype medius-send-clan-message-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-session-begin-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (connection-class int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-session-begin-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (session-key UNKNOWN 17 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (session-key uint8 17 :offset-assert 28) ) :method-count-assert 9 :size-assert #x2d :flag-assert #x90000002d ) -|# -#| + + (deftype medius-session-end-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-session-end-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-set-game-list-filter-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (filter-field int32 :offset-assert 40) (comparison-operator int32 :offset-assert 44) (baseline-value int32 :offset-assert 48) @@ -26517,22 +26542,22 @@ :size-assert #x34 :flag-assert #x900000034 ) -|# -#| + + (deftype medius-set-game-list-filter-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-set-lobby-world-filter-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (filter-mask1 uint32 :offset-assert 24) (filter-mask2 uint32 :offset-assert 28) (filter-mask3 uint32 :offset-assert 32) @@ -26544,12 +26569,12 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-set-lobby-world-filter-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (filter-mask1 uint32 :offset-assert 28) (filter-mask2 uint32 :offset-assert 32) (filter-mask3 uint32 :offset-assert 36) @@ -26561,17 +26586,17 @@ :size-assert #x34 :flag-assert #x900000034 ) -|# + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-9-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| + (deftype medius-set-localization-params-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (character-encoding int32 :offset-assert 40) (language int32 :offset-assert 44) ) @@ -26579,12 +26604,12 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-set-message-as-read-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (message-type int32 :offset-assert 40) (message-idto-tag int32 :offset-assert 44) ) @@ -26592,24 +26617,24 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| + + (deftype medius-set-stored-account-info-request (structure) ((device int32 :offset-assert 0) (card-port int32 :offset-assert 4) (card-slot int32 :offset-assert 8) (account-id int32 :offset-assert 12) - (account-name UNKNOWN 32 :offset-assert 16) - (account-password UNKNOWN 32 :offset-assert 48) + (account-name uint8 32 :offset-assert 16) + (account-password uint8 32 :offset-assert 48) ) :method-count-assert 9 :size-assert #x50 :flag-assert #x900000050 ) -|# -#| + + (deftype medius-set-stored-account-info-response (structure) ((confirmation int32 :offset-assert 0) ) @@ -26617,98 +26642,98 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| + + (deftype medius-status-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-text-filter-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (text-filter-type int32 :offset-assert 40) - (text UNKNOWN 64 :offset-assert 44) + (text uint8 64 :offset-assert 44) ) :method-count-assert 9 :size-assert #x6c :flag-assert #x90000006c ) -|# -#| + + (deftype medius-text-filter-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (text UNKNOWN 64 :offset-assert 21) - (status-code int32 :offset-assert 88) + ((message-id uint8 21 :offset-assert 0) + (text uint8 64 :offset-assert 21) + (status-code medius-status-code :offset-assert 88) ) :method-count-assert 9 :size-assert #x5c :flag-assert #x90000005c ) -|# -#| + + (deftype medius-transfer-clan-leadership-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (new-leader-account-id int32 :offset-assert 40) - (new-leader-account-name UNKNOWN 32 :offset-assert 44) + (new-leader-account-name uint8 32 :offset-assert 44) ) :method-count-assert 9 :size-assert #x4c :flag-assert #x90000004c ) -|# -#| + + (deftype medius-transfer-clan-leadership-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-update-clan-stats-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (clan-id int32 :offset-assert 40) - (stats UNKNOWN 256 :offset-assert 44) + (stats uint8 256 :offset-assert 44) ) :method-count-assert 9 :size-assert #x12c :flag-assert #x90000012c ) -|# -#| + + (deftype medius-update-clan-stats-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-update-game-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) (medius-world-id int32 :offset-assert 40) - (game-name UNKNOWN 64 :offset-assert 44) + (game-name uint8 64 :offset-assert 44) (min-players int16 :offset-assert 108) (max-players int16 :offset-assert 110) (game-level int16 :offset-assert 112) @@ -26718,95 +26743,95 @@ :size-assert #x74 :flag-assert #x900000074 ) -|# -#| + + (deftype medius-update-game-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-update-ladder-stats-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-type int32 :offset-assert 24) - (stats UNKNOWN 15 :offset-assert 28) + (stats uint32 15 :offset-assert 28) ) :method-count-assert 9 :size-assert #x58 :flag-assert #x900000058 ) -|# -#| + + (deftype medius-update-ladder-stats-wide-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (ladder-type int32 :offset-assert 24) - (stats UNKNOWN 100 :offset-assert 28) + (stats uint32 100 :offset-assert 28) ) :method-count-assert 9 :size-assert #x1ac :flag-assert #x9000001ac ) -|# -#| + + (deftype medius-update-clan-ladder-stats-wide-delta-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (clan-id int32 :offset-assert 24) - (stats UNKNOWN 100 :offset-assert 28) + (stats uint32 100 :offset-assert 28) ) :method-count-assert 9 :size-assert #x1ac :flag-assert #x9000001ac ) -|# -#| + + (deftype medius-update-user-state (structure) - ((session-key UNKNOWN 17 :offset-assert 0) + ((session-key uint8 17 :offset-assert 0) (user-action int32 :offset-assert 20) ) :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 ) -|# -#| + + (deftype medius-version-server-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (session-key UNKNOWN 17 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (session-key uint8 17 :offset-assert 21) ) :method-count-assert 9 :size-assert #x26 :flag-assert #x900000026 ) -|# -#| + + (deftype medius-version-server-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (version-server UNKNOWN 56 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (version-server uint8 56 :offset-assert 21) ) :method-count-assert 9 :size-assert #x4d :flag-assert #x90000004d ) -|# -#| + + (deftype medius-world-report (structure) - ((session-key UNKNOWN 17 :offset-assert 0) + ((session-key uint8 17 :offset-assert 0) (medius-world-id int32 :offset-assert 20) (player-count int32 :offset-assert 24) - (game-name UNKNOWN 64 :offset-assert 28) - (game-stats UNKNOWN 256 :offset-assert 92) + (game-name uint8 64 :offset-assert 28) + (game-stats uint8 256 :offset-assert 92) (min-players int32 :offset-assert 348) (max-players int32 :offset-assert 352) (game-level int32 :offset-assert 356) @@ -26821,11 +26846,11 @@ :size-assert #x180 :flag-assert #x900000180 ) -|# -#| + + (deftype medius-get-universe-information-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (info-type uint32 :offset-assert 24) (character-encoding int32 :offset-assert 28) (language int32 :offset-assert 32) @@ -26834,65 +26859,65 @@ :size-assert #x24 :flag-assert #x900000024 ) -|# -#| + + (deftype medius-universe-news-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (news UNKNOWN 256 :offset-assert 28) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (news uint8 256 :offset-assert 28) (end-of-text int8 :offset-assert 284) ) :method-count-assert 9 :size-assert #x11d :flag-assert #x90000011d ) -|# -#| + + (deftype medius-universe-variable-information-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) (info-filter uint32 :offset-assert 28) (universe-id uint32 :offset-assert 32) - (universe-name UNKNOWN 128 :offset-assert 36) - (dns UNKNOWN 128 :offset-assert 164) + (universe-name uint8 128 :offset-assert 36) + (dns uint8 128 :offset-assert 164) (port int32 :offset-assert 292) - (universe-description UNKNOWN 256 :offset-assert 296) + (universe-description uint8 256 :offset-assert 296) (status int32 :offset-assert 552) (user-count int32 :offset-assert 556) (max-users int32 :offset-assert 560) - (universe-billing UNKNOWN 8 :offset-assert 564) - (billing-system-name UNKNOWN 128 :offset-assert 572) - (extended-info UNKNOWN 128 :offset-assert 700) - (svo-url UNKNOWN 128 :offset-assert 828) + (universe-billing uint8 8 :offset-assert 564) + (billing-system-name uint8 128 :offset-assert 572) + (extended-info uint8 128 :offset-assert 700) + (svo-url uint8 128 :offset-assert 828) (end-of-list int8 :offset-assert 956) ) :method-count-assert 9 :size-assert #x3bd :flag-assert #x9000003bd ) -|# -#| + + (deftype medius-universe-svo-urlresponse (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (url UNKNOWN 128 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (url uint8 128 :offset-assert 21) ) :method-count-assert 9 :size-assert #x95 :flag-assert #x900000095 ) -|# -#| + + (deftype medius-universe-status-list-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (universe-name UNKNOWN 128 :offset-assert 28) - (dns UNKNOWN 128 :offset-assert 156) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (universe-name uint8 128 :offset-assert 28) + (dns uint8 128 :offset-assert 156) (port int32 :offset-assert 284) - (universe-description UNKNOWN 256 :offset-assert 288) + (universe-description uint8 256 :offset-assert 288) (status int32 :offset-assert 544) (user-count int32 :offset-assert 548) (max-users int32 :offset-assert 552) @@ -26902,11 +26927,11 @@ :size-assert #x22d :flag-assert #x90000022d ) -|# -#| + + (deftype medius-get-universe-extra-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (info-type uint32 :offset-assert 24) (character-encoding int32 :offset-assert 28) (language int32 :offset-assert 32) @@ -26915,53 +26940,53 @@ :size-assert #x24 :flag-assert #x900000024 ) -|# -#| + + (deftype medius-universe-status-list-extra-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) - (universe-name UNKNOWN 128 :offset-assert 28) - (dns UNKNOWN 128 :offset-assert 156) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) + (universe-name uint8 128 :offset-assert 28) + (dns uint8 128 :offset-assert 156) (port int32 :offset-assert 284) - (universe-description UNKNOWN 256 :offset-assert 288) + (universe-description uint8 256 :offset-assert 288) (status int32 :offset-assert 544) (user-count int32 :offset-assert 548) (max-users int32 :offset-assert 552) - (universe-billing UNKNOWN 8 :offset-assert 556) - (billing-system-name UNKNOWN 128 :offset-assert 564) + (universe-billing uint8 8 :offset-assert 556) + (billing-system-name uint8 128 :offset-assert 564) (end-of-list int8 :offset-assert 692) - (extended-info UNKNOWN 128 :offset-assert 693) + (extended-info uint8 128 :offset-assert 693) ) :method-count-assert 9 :size-assert #x335 :flag-assert #x900000335 ) -|# -#| + + (deftype medius-post-debug-info-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (message UNKNOWN 200 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (message uint8 200 :offset-assert 21) ) :method-count-assert 9 :size-assert #xdd :flag-assert #x9000000dd ) -|# -#| + + (deftype medius-post-debug-info-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (status-code int32 :offset-assert 24) + ((message-id uint8 21 :offset-assert 0) + (status-code medius-status-code :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-connect-in-params (structure) ((connect-info net-connection-info :inline :offset-assert 0) (stream-media-params net-stream-media-params :inline :offset-assert 156) @@ -26974,9 +26999,9 @@ :size-assert #x11c :flag-assert #x90000011c ) -|# -#| + + (deftype medius-connect-out-params (structure) ((connection-handle basic :offset-assert 0) (error-code int32 :offset-assert 4) @@ -26986,9 +27011,9 @@ :flag-assert #x900000008 ;; field connection-handle uses ~A with a signed load. ) -|# -#| + + (deftype medius-disconnect-params (structure) ((connection-handle basic :offset-assert 0) (disconnect-reason int32 :offset-assert 4) @@ -26999,9 +27024,9 @@ :flag-assert #x90000000c ;; field connection-handle uses ~A with a signed load. ) -|# -#| + + (deftype medius-initialize-in-params (structure) ((p-local-key-pair rsa-keypair :offset-assert 0) (my-chat-fwd-message-callback basic :offset-assert 4) @@ -27025,9 +27050,9 @@ :flag-assert #x900000040 ;; field my-chat-fwd-message-callback-user-data uses ~A with a signed load. field my-binary-fwd-message-callback-user-data uses ~A with a signed load. field my-add-to-buddy-list-fwd-confirmation-request-callback-user-data uses ~A with a signed load. field my-error-message-callback-user-data uses ~A with a signed load. field my-reassign-game-medius-world-idcallback-user-data uses ~A with a signed load. field p-system-message-callback-data uses ~A with a signed load. ) -|# -#| + + (deftype medius-initialize-out-params (structure) ((error-code int32 :offset-assert 0) ) @@ -27035,9 +27060,9 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| + + (deftype medius-initialize-bare-in-params (structure) ((my-chat-fwd-message-callback basic :offset-assert 0) (my-chat-fwd-message-callback-user-data basic :offset-assert 4) @@ -27056,9 +27081,9 @@ :flag-assert #x90000002c ;; field my-chat-fwd-message-callback-user-data uses ~A with a signed load. field my-binary-fwd-message-callback-user-data uses ~A with a signed load. field my-add-to-buddy-list-fwd-confirmation-request-callback-user-data uses ~A with a signed load. field my-error-message-callback-user-data uses ~A with a signed load. field my-reassign-game-medius-world-idcallback-user-data uses ~A with a signed load. ) -|# -#| + + (deftype medius-initialize-bare-out-params (structure) ((error-code int32 :offset-assert 0) ) @@ -27066,12 +27091,12 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| + + (deftype medius-file (structure) - ((filename UNKNOWN 128 :offset-assert 0) - (server-checksum UNKNOWN 16 :offset-assert 128) + ((filename uint8 128 :offset-assert 0) + (server-checksum uint8 16 :offset-assert 128) (file-id uint32 :offset-assert 144) (file-size uint32 :offset-assert 148) (creation-time-stamp uint32 :offset-assert 152) @@ -27086,395 +27111,397 @@ :size-assert #xac :flag-assert #x9000000ac ) -|# -#| + + (deftype medius-file-attributes (structure) - ((description UNKNOWN 256 :offset-assert 0) + ((description uint8 256 :offset-assert 0) (last-changed-time-stamp uint32 :offset-assert 256) (last-changed-by-user-id uint32 :offset-assert 260) (number-accesses uint32 :offset-assert 264) (streamable-flag uint32 :offset-assert 268) (streaming-data-rate uint32 :offset-assert 272) ) + :pack-me :method-count-assert 9 :size-assert #x114 :flag-assert #x900000114 ) -|# -#| + + (deftype medius-file-meta-data (structure) - ((key UNKNOWN 56 :offset-assert 0) - (value UNKNOWN 256 :offset-assert 56) + ((key uint8 56 :offset-assert 0) + (value uint8 256 :offset-assert 56) ) + :pack-me :method-count-assert 9 :size-assert #x138 :flag-assert #x900000138 ) -|# -#| + + (deftype medius-file-checksum (structure) ((puc-data uint32 :offset-assert 0) (ui-size uint32 :offset-assert 4) - (checksum UNKNOWN 16 :offset-assert 8) + (checksum uint8 16 :offset-assert 8) ) :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 ) -|# -#| + + (deftype medius-file-create-request (structure) ((medius-file-to-create medius-file :inline :offset-assert 0) (medius-file-create-attributes medius-file-attributes :inline :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 448) + (message-id uint8 21 :offset-assert 448) ) :method-count-assert 9 :size-assert #x1d5 :flag-assert #x9000001d5 ) -|# -#| + + (deftype medius-file-create-response (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (status-code int32 :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 176) + (status-code medius-status-code :offset-assert 172) + (message-id uint8 21 :offset-assert 176) ) :method-count-assert 9 :size-assert #xc5 :flag-assert #x9000000c5 ) -|# -#| + + (deftype medius-file-upload-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) (puc-data-start uint32 :offset-assert 172) (ui-data-size uint32 :offset-assert 176) - (message-id UNKNOWN 21 :offset-assert 180) + (message-id uint8 21 :offset-assert 180) ) :method-count-assert 9 :size-assert #xc9 :flag-assert #x9000000c9 ) -|# -#| + + (deftype medius-file-upload-server-req (structure) ((i-req-start-byte-index int32 :offset-assert 0) (i-packet-number int32 :offset-assert 4) (i-xfer-status int32 :offset-assert 8) - (status-code int32 :offset-assert 12) - (message-id UNKNOWN 21 :offset-assert 16) + (status-code medius-status-code :offset-assert 12) + (message-id uint8 21 :offset-assert 16) ) :method-count-assert 9 :size-assert #x25 :flag-assert #x900000025 ) -|# -#| + + (deftype medius-file-upload-response (structure) - ((data UNKNOWN 464 :offset-assert 0) + ((data uint8 464 :offset-assert 0) (i-start-byte-index int32 :offset-assert 464) (i-data-size int32 :offset-assert 468) (i-packet-number int32 :offset-assert 472) (i-xfer-status int32 :offset-assert 476) - (status-code int32 :offset-assert 480) - (message-id UNKNOWN 21 :offset-assert 484) + (status-code medius-status-code :offset-assert 480) + (message-id uint8 21 :offset-assert 484) ) :method-count-assert 9 :size-assert #x1f9 :flag-assert #x9000001f9 ) -|# -#| + + (deftype medius-file-close-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 172) + (message-id uint8 21 :offset-assert 172) ) :method-count-assert 9 :size-assert #xc1 :flag-assert #x9000000c1 ) -|# -#| + + (deftype medius-file-close-response (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (status-code int32 :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 176) + (status-code medius-status-code :offset-assert 172) + (message-id uint8 21 :offset-assert 176) ) :method-count-assert 9 :size-assert #xc5 :flag-assert #x9000000c5 ) -|# + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-10-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| + (deftype medius-file-download-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 172) + (message-id uint8 21 :offset-assert 172) ) :method-count-assert 9 :size-assert #xc1 :flag-assert #x9000000c1 ) -|# -#| + + (deftype medius-file-download-response (structure) - ((data UNKNOWN 464 :offset-assert 0) + ((data uint8 464 :offset-assert 0) (i-start-byte-index int32 :offset-assert 464) (i-data-size int32 :offset-assert 468) (i-packet-number int32 :offset-assert 472) (i-xfer-status int32 :offset-assert 476) - (status-code int32 :offset-assert 480) - (message-id UNKNOWN 21 :offset-assert 484) + (status-code medius-status-code :offset-assert 480) + (message-id uint8 21 :offset-assert 484) ) :method-count-assert 9 :size-assert #x1f9 :flag-assert #x9000001f9 ) -|# -#| + + (deftype medius-file-download-stream-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 172) + (message-id uint8 21 :offset-assert 172) ) :method-count-assert 9 :size-assert #xc1 :flag-assert #x9000000c1 ) -|# -#| + + (deftype medius-file-download-stream-response (structure) - ((data UNKNOWN 464 :offset-assert 0) + ((data uint8 464 :offset-assert 0) (i-start-byte-index int32 :offset-assert 464) (i-data-size int32 :offset-assert 468) (i-packet-number int32 :offset-assert 472) (i-xfer-status int32 :offset-assert 476) - (status-code int32 :offset-assert 480) - (message-id UNKNOWN 21 :offset-assert 484) + (status-code medius-status-code :offset-assert 480) + (message-id uint8 21 :offset-assert 484) ) :method-count-assert 9 :size-assert #x1f9 :flag-assert #x9000001f9 ) -|# -#| + + (deftype medius-file-delete-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 172) + (message-id uint8 21 :offset-assert 172) ) :method-count-assert 9 :size-assert #xc1 :flag-assert #x9000000c1 ) -|# -#| + + (deftype medius-file-delete-response (structure) - ((status-code int32 :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 4) + ((status-code medius-status-code :offset-assert 0) + (message-id uint8 21 :offset-assert 4) ) :method-count-assert 9 :size-assert #x19 :flag-assert #x900000019 ) -|# -#| + + (deftype medius-file-list-request (structure) - ((filename-begins-with UNKNOWN 128 :offset-assert 0) + ((filename-begins-with uint8 128 :offset-assert 0) (filesize-greater-than uint32 :offset-assert 128) (filesize-less-than uint32 :offset-assert 132) (owned-by-id uint32 :offset-assert 136) (newer-than-timestamp uint32 :offset-assert 140) (starting-entry-number uint32 :offset-assert 144) (page-size uint32 :offset-assert 148) - (message-id UNKNOWN 21 :offset-assert 152) + (message-id uint8 21 :offset-assert 152) ) :method-count-assert 9 :size-assert #xad :flag-assert #x9000000ad ) -|# -#| + + (deftype medius-file-list-response (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (status-code int32 :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 176) + (status-code medius-status-code :offset-assert 172) + (message-id uint8 21 :offset-assert 176) (end-of-list int8 :offset-assert 197) ) :method-count-assert 9 :size-assert #xc6 :flag-assert #x9000000c6 ) -|# -#| + + (deftype medius-file-update-attributes-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) (medius-file-updated-attributes medius-file-attributes :inline :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 448) + (message-id uint8 21 :offset-assert 448) ) :method-count-assert 9 :size-assert #x1d5 :flag-assert #x9000001d5 ) -|# -#| + + (deftype medius-file-update-attributes-response (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (status-code int32 :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 176) + (status-code medius-status-code :offset-assert 172) + (message-id uint8 21 :offset-assert 176) ) :method-count-assert 9 :size-assert #xc5 :flag-assert #x9000000c5 ) -|# -#| + + (deftype medius-file-get-attributes-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 172) + (message-id uint8 21 :offset-assert 172) ) :method-count-assert 9 :size-assert #xc1 :flag-assert #x9000000c1 ) -|# -#| + + (deftype medius-file-get-attributes-response (structure) ((medius-file-info medius-file :inline :offset-assert 0) (medius-file-attributes-response medius-file-attributes :inline :offset-assert 172) - (status-code int32 :offset-assert 448) - (message-id UNKNOWN 21 :offset-assert 452) + (status-code medius-status-code :offset-assert 448) + (message-id uint8 21 :offset-assert 452) ) :method-count-assert 9 :size-assert #x1d9 :flag-assert #x9000001d9 ) -|# -#| + + (deftype medius-file-update-meta-data-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) (medius-update-meta-data medius-file-meta-data :inline :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 484) + (message-id uint8 21 :offset-assert 484) ) :method-count-assert 9 :size-assert #x1f9 :flag-assert #x9000001f9 ) -|# -#| + + (deftype medius-file-update-meta-data-responset (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (status-code int32 :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 176) + (status-code medius-status-code :offset-assert 172) + (message-id uint8 21 :offset-assert 176) ) :method-count-assert 9 :size-assert #xc5 :flag-assert #x9000000c5 ) -|# -#| + + (deftype medius-file-get-meta-data-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) (medius-meta-data-requested-key medius-file-meta-data :inline :offset-assert 172) - (message-id UNKNOWN 21 :offset-assert 484) + (message-id uint8 21 :offset-assert 484) ) :method-count-assert 9 :size-assert #x1f9 :flag-assert #x9000001f9 ) -|# -#| + + (deftype medius-file-get-meta-data-response (structure) ((medius-file-info medius-file :inline :offset-assert 0) (medius-meta-data-response medius-file-meta-data :inline :offset-assert 172) - (status-code int32 :offset-assert 484) - (message-id UNKNOWN 21 :offset-assert 488) + (status-code medius-status-code :offset-assert 484) + (message-id uint8 21 :offset-assert 488) (end-of-list int8 :offset-assert 509) ) :method-count-assert 9 :size-assert #x1fe :flag-assert #x9000001fe ) -|# -#| + + (deftype medius-file-search-by-meta-data-request (structure) ((medius-meta-data-requested-key medius-file-meta-data :inline :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 312) + (message-id uint8 21 :offset-assert 312) ) :method-count-assert 9 :size-assert #x14d :flag-assert #x90000014d ) -|# -#| + + (deftype medius-file-search-by-meta-data-response (structure) ((medius-file-info medius-file :inline :offset-assert 0) (medius-meta-data-response medius-file-meta-data :inline :offset-assert 172) - (status-code int32 :offset-assert 484) - (message-id UNKNOWN 21 :offset-assert 488) + (status-code medius-status-code :offset-assert 484) + (message-id uint8 21 :offset-assert 488) (end-of-list int8 :offset-assert 509) ) :method-count-assert 9 :size-assert #x1fe :flag-assert #x9000001fe ) -|# -#| + + (deftype medius-file-cancel-operation-request (structure) ((medius-file-info medius-file :inline :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 172) + (message-id uint8 21 :offset-assert 172) ) :method-count-assert 9 :size-assert #xc1 :flag-assert #x9000000c1 ) -|# -#| + + (deftype medius-file-cancel-operation-response (structure) - ((status-code int32 :offset-assert 0) - (message-id UNKNOWN 21 :offset-assert 4) + ((status-code medius-status-code :offset-assert 0) + (message-id uint8 21 :offset-assert 4) ) :method-count-assert 9 :size-assert #x19 :flag-assert #x900000019 ) -|# -#| + + (deftype medius-server-authentication-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (trust-level int32 :offset-assert 24) (address-list net-address-list :inline :offset-assert 28) ) @@ -27482,11 +27509,11 @@ :size-assert #x4c :flag-assert #x90000004c ) -|# -#| + + (deftype medius-server-authentication-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) (connect-info net-connection-info :inline :offset-assert 24) ) @@ -27494,11 +27521,11 @@ :size-assert #xb2 :flag-assert #x9000000b2 ) -|# -#| + + (deftype medius-server-set-attributes-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (attributes int32 :offset-assert 24) (listen-server-address net-address :inline :offset-assert 28) ) @@ -27506,25 +27533,25 @@ :size-assert #x34 :flag-assert #x900000034 ) -|# -#| + + (deftype medius-server-set-attributes-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) ) :method-count-assert 9 :size-assert #x16 :flag-assert #x900000016 ) -|# -#| + + (deftype medius-server-create-game-on-me-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (game-name UNKNOWN 64 :offset-assert 21) - (game-stats UNKNOWN 256 :offset-assert 85) - (game-password UNKNOWN 32 :offset-assert 341) + ((message-id uint8 21 :offset-assert 0) + (game-name uint8 64 :offset-assert 21) + (game-stats uint8 256 :offset-assert 85) + (game-password uint8 32 :offset-assert 341) (application-id int32 :offset-assert 376) (max-clients int32 :offset-assert 380) (min-clients int32 :offset-assert 384) @@ -27543,11 +27570,11 @@ :size-assert #x1d8 :flag-assert #x9000001d8 ) -|# -#| + + (deftype medius-server-create-game-on-me-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) (medius-world-id int32 :offset-assert 24) ) @@ -27555,11 +27582,11 @@ :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-server-create-game-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (application-id int32 :offset-assert 24) (max-clients int32 :offset-assert 28) ) @@ -27567,11 +27594,11 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-server-create-game-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) (world-id int32 :offset-assert 24) ) @@ -27579,11 +27606,11 @@ :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-server-create-game-with-attributes-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (application-id int32 :offset-assert 24) (max-clients int32 :offset-assert 28) (attributes int32 :offset-assert 32) @@ -27593,11 +27620,11 @@ :size-assert #x28 :flag-assert #x900000028 ) -|# -#| + + (deftype medius-server-create-game-with-attributes-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) (world-id int32 :offset-assert 24) ) @@ -27605,33 +27632,33 @@ :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-server-end-game-on-me-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (medius-world-id int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-server-end-game-on-me-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) ) :method-count-assert 9 :size-assert #x16 :flag-assert #x900000016 ) -|# -#| + + (deftype medius-server-end-game-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (world-id int32 :offset-assert 24) (brutal-flag int8 :offset-assert 28) ) @@ -27639,46 +27666,46 @@ :size-assert #x1d :flag-assert #x90000001d ) -|# -#| + + (deftype medius-server-end-game-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) ) :method-count-assert 9 :size-assert #x16 :flag-assert #x900000016 ) -|# -#| + + (deftype medius-server-join-game-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (connect-info net-connection-info :inline :offset-assert 24) ) :method-count-assert 9 :size-assert #xb2 :flag-assert #x9000000b2 ) -|# -#| + + (deftype medius-server-join-game-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) - (access-key UNKNOWN 17 :offset-assert 22) + (access-key uint8 17 :offset-assert 22) (pub-key rsa-key :inline :offset-assert 40) ) :method-count-assert 9 :size-assert #x68 :flag-assert #x900000068 ) -|# -#| + + (deftype medius-server-move-game-world-on-me-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (current-medius-world-id int32 :offset-assert 24) (new-game-world-id int32 :offset-assert 28) (address-list net-address-list :inline :offset-assert 32) @@ -27687,11 +27714,11 @@ :size-assert #x50 :flag-assert #x900000050 ) -|# -#| + + (deftype medius-server-move-game-world-on-me-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) (medius-world-id int32 :offset-assert 24) ) @@ -27699,11 +27726,11 @@ :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-server-report-type (structure) - ((session-key UNKNOWN 17 :offset-assert 0) + ((session-key uint8 17 :offset-assert 0) (max-worlds int16 :offset-assert 18) (max-players-per-world int16 :offset-assert 20) (active-world-count int16 :offset-assert 22) @@ -27714,26 +27741,26 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype medius-server-session-begin-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (location-id int32 :offset-assert 24) (application-id int32 :offset-assert 28) (server-type int32 :offset-assert 32) - (server-version UNKNOWN 16 :offset-assert 36) + (server-version uint8 16 :offset-assert 36) (port int32 :offset-assert 52) ) :method-count-assert 9 :size-assert #x38 :flag-assert #x900000038 ) -|# -#| + + (deftype medius-server-session-begin-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) (connect-info net-connection-info :inline :offset-assert 24) ) @@ -27741,35 +27768,35 @@ :size-assert #xb2 :flag-assert #x9000000b2 ) -|# -#| + + (deftype medius-server-session-end-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) ) :method-count-assert 9 :size-assert #x15 :flag-assert #x900000015 ) -|# -#| + + (deftype medius-server-session-end-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (confirmation int8 :offset-assert 21) ) :method-count-assert 9 :size-assert #x16 :flag-assert #x900000016 ) -|# -#| + + (deftype medius-server-world-report-on-me (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (game-name UNKNOWN 64 :offset-assert 21) - (game-stats UNKNOWN 256 :offset-assert 85) - (game-password UNKNOWN 32 :offset-assert 341) + ((message-id uint8 21 :offset-assert 0) + (game-name uint8 64 :offset-assert 21) + (game-stats uint8 256 :offset-assert 85) + (game-password uint8 32 :offset-assert 341) (application-id int32 :offset-assert 376) (max-clients int32 :offset-assert 380) (min-clients int32 :offset-assert 384) @@ -27787,22 +27814,22 @@ :size-assert #x1a8 :flag-assert #x9000001a8 ) -|# -#| + + (deftype medius-server-world-status-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (world-id int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -#| + + (deftype medius-server-world-status-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (application-id int32 :offset-assert 24) (max-clients int32 :offset-assert 28) (active-clients int32 :offset-assert 32) @@ -27812,12 +27839,12 @@ :size-assert #x25 :flag-assert #x900000025 ) -|# -#| + + (deftype medius-server-connect-games-request (structure) - ((message-id UNKNOWN 21 :offset-assert 0) - (server-ip UNKNOWN 20 :offset-assert 21) + ((message-id uint8 21 :offset-assert 0) + (server-ip uint8 20 :offset-assert 21) (server-port int32 :offset-assert 44) (game-world-id int32 :offset-assert 48) (spectator-world-id int32 :offset-assert 52) @@ -27826,11 +27853,11 @@ :size-assert #x38 :flag-assert #x900000038 ) -|# -#| + + (deftype medius-server-connect-games-response (structure) - ((message-id UNKNOWN 21 :offset-assert 0) + ((message-id uint8 21 :offset-assert 0) (game-world-id int32 :offset-assert 24) (spectator-world-id int32 :offset-assert 28) (confirmation int8 :offset-assert 32) @@ -27839,21 +27866,21 @@ :size-assert #x21 :flag-assert #x900000021 ) -|# -#| + + (deftype medius-server-connect-notification-type (structure) ((connect-event-type int32 :offset-assert 0) (medius-world-uid uint32 :offset-assert 4) - (player-session-key UNKNOWN 17 :offset-assert 8) + (player-session-key uint8 17 :offset-assert 8) ) :method-count-assert 9 :size-assert #x19 :flag-assert #x900000019 ) -|# -#| + + (deftype mgclconnect-in-params (structure) ((connection-info net-connection-info :inline :offset-assert 0) (pf-connect-callback basic :offset-assert 156) @@ -27862,9 +27889,9 @@ :size-assert #xa0 :flag-assert #x9000000a0 ) -|# -#| + + (deftype mgclconnect-out-params (structure) ((error-code int32 :offset-assert 0) ) @@ -27872,9 +27899,9 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| + + (deftype mgcldisconnect-params (structure) ((connection-handle basic :offset-assert 0) (disconnect-reason int32 :offset-assert 4) @@ -27885,14 +27912,14 @@ :flag-assert #x90000000c ;; field connection-handle uses ~A with a signed load. ) -|# + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-11-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| + (deftype mgclinitialize-in-params (structure) ((p-local-key-pair rsa-keypair :offset-assert 0) (status int32 :offset-assert 4) @@ -27917,9 +27944,9 @@ :flag-assert #x900000044 ;; field my-server-create-game-callback-user-data uses ~A with a signed load. field my-server-create-game-with-attributes-user-data uses ~A with a signed load. field my-server-join-game-callback-user-data uses ~A with a signed load. field my-server-end-game-callback-user-data uses ~A with a signed load. field my-server-world-status-callback-user-data uses ~A with a signed load. field my-server-connect-games-user-data uses ~A with a signed load. ) -|# -#| + + (deftype mgclinitialize-out-params (structure) ((error-code int32 :offset-assert 0) ) @@ -27927,30 +27954,31 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| + + (deftype net-lanpeer-desc (structure) ((dme-version net-dme-version :inline :offset-assert 0) (net-platform-id int32 :offset-assert 20) (application-id int32 :offset-assert 24) (peer-address net-address :inline :offset-assert 28) (localization net-localization-params :inline :offset-assert 52) - (application-name UNKNOWN 72 :offset-assert 60) - (user-name UNKNOWN 32 :offset-assert 132) + (application-name uint8 72 :offset-assert 60) + (user-name uint8 32 :offset-assert 132) ) + :pack-me :method-count-assert 9 :size-assert #xa4 :flag-assert #x9000000a4 ) -|# -#| + + (deftype net-initialize-in-params (structure) ((b-default-set int32 :offset-assert 0) (localization net-localization-params :inline :offset-assert 4) (application-id int32 :offset-assert 12) - (application-name UNKNOWN 72 :offset-assert 16) + (application-name uint8 72 :offset-assert 16) (p-local-key-pair rsa-keypair :offset-assert 88) (p-application-key-pair rsa-keypair :offset-assert 92) (connectivity-type int32 :offset-assert 96) @@ -27965,9 +27993,9 @@ :flag-assert #x900000078 ;; field p-system-message-callback-data uses ~A with a signed load. ) -|# -#| + + (deftype net-host-peer-to-peer-in-params (structure) ((b-default-set int32 :offset-assert 0) (pf-local-connect-callback basic :offset-assert 4) @@ -27994,9 +28022,9 @@ :flag-assert #x9000000c0 ;; field p-local-connect-callback-data uses ~A with a signed load. field p-local-disconnect-callback-data uses ~A with a signed load. field p-remote-client-connect-callback-data uses ~A with a signed load. field p-remote-client-disconnect-callback-data uses ~A with a signed load. field p-system-status-callback-data uses ~A with a signed load. ) -|# -#| + + (deftype net-resolve-addr-data (structure) ((b-is-set int32 :offset-assert 0) (error-code int32 :offset-assert 4) @@ -28006,9 +28034,9 @@ :size-assert #x38 :flag-assert #x900000038 ) -|# -#| + + (deftype net-resolve-addr-in-params (structure) ((b-default-set int32 :offset-assert 0) (pf-resolve-addr-callback basic :offset-assert 4) @@ -28018,9 +28046,9 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| + + (deftype net-incoming-client-in-params (structure) ((b-default-set int32 :offset-assert 0) (incoming-address-list net-address-list :inline :offset-assert 4) @@ -28030,9 +28058,9 @@ :size-assert #x74 :flag-assert #x900000074 ) -|# -#| + + (deftype net-type-broadcast-schedule (structure) ((min-update-interval uint32 :offset-assert 0) (error-threshold-type int32 :offset-assert 4) @@ -28043,9 +28071,9 @@ :size-assert #xd :flag-assert #x90000000d ) -|# -#| + + (deftype net-type-field (structure) ((offset int32 :offset-assert 0) (element-size int32 :offset-assert 4) @@ -28057,23 +28085,23 @@ :size-assert #x1d :flag-assert #x90000001d ) -|# -#| + + (deftype net-type-structure (structure) ((total-size int32 :offset-assert 0) (field-count int32 :offset-assert 4) - (name UNKNOWN 32 :offset-assert 8) - (child-field-type UNKNOWN 64 :offset-assert 40) - (child-field-offset UNKNOWN 64 :offset-assert 296) + (name uint8 32 :offset-assert 8) + (child-field-type uint32 64 :offset-assert 40) + (child-field-offset uint32 64 :offset-assert 296) ) :method-count-assert 9 :size-assert #x228 :flag-assert #x900000228 ) -|# -#| + + (deftype net-lanfind-exchange-callback-in-args (structure) ((connection-handle basic :offset-assert 0) (session-type int32 :offset-assert 4) @@ -28086,9 +28114,9 @@ :flag-assert #x9000000b8 ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. ) -|# -#| + + (deftype net-lanfind-callback-data-args (structure) ((n-num-clients int16 :offset-assert 0) (n-max-num-clients int16 :offset-assert 2) @@ -28102,72 +28130,72 @@ :flag-assert #x9000000b8 ;; field p-user-data uses ~A with a signed load. ) -|# + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scert-funcs ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *scert-function-id* object) +(define-extern *scert-function-id* int) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; mem-buffer-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (deftype mem-buffer (structure) - ((base uint32 :offset-assert 0) - (ptr uint32 :offset-assert 4) + ((base pointer :offset-assert 0) + (ptr (pointer uint8) :offset-assert 4) (limit uint32 :offset-assert 8) - (in-use basic :offset-assert 12) + (in-use symbol :offset-assert 12) ) :method-count-assert 52 :size-assert #x10 :flag-assert #x3400000010 (:methods - (mem-buffer-method-9 () none) ;; 9 - (mem-buffer-method-10 () none) ;; 10 - (mem-buffer-method-11 () none) ;; 11 - (mem-buffer-method-12 () none) ;; 12 - (mem-buffer-method-13 () none) ;; 13 - (mem-buffer-method-14 () none) ;; 14 - (mem-buffer-method-15 () none) ;; 15 - (mem-buffer-method-16 () none) ;; 16 - (mem-buffer-method-17 () none) ;; 17 - (mem-buffer-method-18 () none) ;; 18 - (mem-buffer-method-19 () none) ;; 19 - (mem-buffer-method-20 () none) ;; 20 - (mem-buffer-method-21 () none) ;; 21 - (mem-buffer-method-22 () none) ;; 22 - (mem-buffer-method-23 () none) ;; 23 - (mem-buffer-method-24 () none) ;; 24 - (mem-buffer-method-25 () none) ;; 25 - (mem-buffer-method-26 () none) ;; 26 - (mem-buffer-method-27 () none) ;; 27 - (mem-buffer-method-28 () none) ;; 28 - (mem-buffer-method-29 () none) ;; 29 - (mem-buffer-method-30 () none) ;; 30 - (mem-buffer-method-31 () none) ;; 31 - (mem-buffer-method-32 () none) ;; 32 - (mem-buffer-method-33 () none) ;; 33 - (mem-buffer-method-34 () none) ;; 34 - (mem-buffer-method-35 () none) ;; 35 - (mem-buffer-method-36 () none) ;; 36 - (mem-buffer-method-37 () none) ;; 37 - (mem-buffer-method-38 () none) ;; 38 - (mem-buffer-method-39 () none) ;; 39 - (mem-buffer-method-40 () none) ;; 40 - (mem-buffer-method-41 () none) ;; 41 - (mem-buffer-method-42 () none) ;; 42 - (mem-buffer-method-43 () none) ;; 43 - (mem-buffer-method-44 () none) ;; 44 - (mem-buffer-method-45 () none) ;; 45 - (mem-buffer-method-46 () none) ;; 46 - (mem-buffer-method-47 () none) ;; 47 - (mem-buffer-method-48 () none) ;; 48 - (mem-buffer-method-49 () none) ;; 49 + (mem-buffer-method-9 (_type_) none) ;; 9 + (mem-buffer-method-10 (_type_) none) ;; 10 + (mem-buffer-method-11 (_type_) int) ;; 11 + (mem-buffer-method-12 (_type_) none) ;; 12 + (mem-buffer-method-13 (_type_) none) ;; 13 + (mem-buffer-method-14 (_type_ int) none) ;; 14 + (mem-buffer-method-15 (_type_ int) none) ;; 15 + (mem-buffer-method-16 (_type_ int) none) ;; 16 + (mem-buffer-method-17 (_type_ int) none) ;; 17 + (mem-buffer-method-18 (_type_ int) none) ;; 18 + (mem-buffer-method-19 (_type_ int) none) ;; 19 + (mem-buffer-method-20 (_type_) none) ;; 20 + (mem-buffer-method-21 (_type_) none) ;; 21 + (mem-buffer-method-22 (_type_) none) ;; 22 + (mem-buffer-method-23 (_type_ mem-buffer) none) ;; 23 + (mem-buffer-method-24 (_type_ (pointer float) (pointer float)) none) ;; 24 + (mem-buffer-method-25 (_type_ (pointer float)) none) ;; 25 + (mem-buffer-method-26 (_type_ mem-buffer) none) ;; 26 + (mem-buffer-method-27 (_type_ pointer) none) ;; 27 + (mem-buffer-method-28 (_type_ symbol) none) ;; 28 + (mem-buffer-method-29 (_type_ symbol) none) ;; 29 + (mem-buffer-method-30 (_type_ pointer) none) ;; 30 + (mem-buffer-method-31 (_type_ pointer int) none) ;; 31 + (mem-buffer-method-32 (_type_) none) ;; 32 + (mem-buffer-method-33 (_type_) int) ;; 33 + (mem-buffer-method-34 (_type_) none) ;; 34 + (mem-buffer-method-35 (_type_) none) ;; 35 + (mem-buffer-method-36 (_type_) none) ;; 36 + (mem-buffer-method-37 (_type_) none) ;; 37 + (mem-buffer-method-38 (_type_ ) float) ;; 38 + (mem-buffer-method-39 (_type_) uint) ;; 39 + (mem-buffer-method-40 (_type_) float) ;; 40 + (mem-buffer-method-41 (_type_ mem-buffer) none) ;; 41 + (mem-buffer-method-42 (_type_ (pointer float) (pointer float)) none) ;; 42 + (mem-buffer-method-43 (_type_ (pointer float)) none) ;; 43 + (mem-buffer-method-44 (_type_ mem-buffer) none) ;; 44 + (mem-buffer-method-45 (_type_) none) ;; 45 + (mem-buffer-method-46 (_type_) symbol) ;; 46 + (mem-buffer-method-47 (_type_ pointer) none) ;; 47 + (mem-buffer-method-48 (_type_ pointer int) none) ;; 48 + (mem-buffer-method-49 (_type_) none) ;; 49 (mem-buffer-method-50 (_type_) none) ;; 50 - (mem-buffer-method-51 () none) ;; 51 + (mem-buffer-method-51 (_type_) none) ;; 51 ) ) @@ -28180,8 +28208,8 @@ :flag-assert #xc00000020 (:methods (level-bounding-box-method-9 () none) ;; 9 - (level-bounding-box-method-10 () none) ;; 10 - (level-bounding-box-method-11 () none) ;; 11 + (level-bounding-box-method-10 (_type_ mem-buffer mem-buffer) none) ;; 10 + (level-bounding-box-method-11 (_type_ object mem-buffer) none) ;; 11 ) ) @@ -28359,7 +28387,7 @@ (define-extern *net-aux-msg-handlers* (pointer uint32)) (define-extern *net-mgr-startup-status* symbol) -(define-extern *net-mgr* symbol) +(define-extern *net-mgr* net-mgr) (define-extern *net-error* int) (define-extern *medius-world-status* int) (define-extern *dme-initted* symbol) @@ -29502,9 +29530,9 @@ :size-assert #x28 :flag-assert #xb00000028 (:methods - (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable int float) _type_) - (joint-mod-ik-method-9 () none) ;; 9 ;; (set-ik-target! (_type_ vector) none) - (joint-mod-ik-method-10 () none) ;; 10 ;; (enable-set! (_type_ symbol) none) + (new (symbol type process-drawable int float) _type_) + (set-ik-target! (_type_ vector) none) + (enable-set! (_type_ symbol) none) ) ) @@ -30622,6 +30650,32 @@ ;; process-focusable ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +++process-focusable:search-info-flag +(defenum search-info-flag + :type uint32 + :bitfield #t + (abort 0) + (crate 1) + (guard 2) + (attackable 3) + (enemy 4) + (attackable-priority 5) + (high-priority 6) + (on-screen 7) + (prefer-dist 8) + (prefer-angle 9) + (prefer-xz 10) + (cull-angle 11) + (cull-angle-simple 12) + (cull-xz 13) + (back-point 14) + (combo 15) + (probe 16) + (probe-camera 17) + (prefer-center 18) + ) +;; ---process-focusable:search-info-flag + ;; +++process-focusable:focus-status (defenum focus-status :type uint64 @@ -31216,8 +31270,10 @@ :method-count-assert 21 :size-assert #x98 :flag-assert #x1500100098 + (:state-methods + idle ;; 14 + ) (:methods - (ragdoll-proc-method-15 () none) ;; 14 ;; (idle () _type_ :state) 15 ;; (ragdoll-proc-method-15 (_type_ symbol vector symbol) none) (ragdoll-proc-method-16 () none) ;; 16 ;; (disable-for-duration (_type_ time-frame) none) (ragdoll-proc-method-17 () none) ;; 17 ;; (ragdoll-proc-method-17 (_type_ ragdoll-edit-info) none) (ragdoll-proc-method-18 () none) ;; 18 ;; (ragdoll-proc-method-18 (_type_ ragdoll-edit-info) none) @@ -31447,68 +31503,69 @@ ) ;; ---target-h:target-flags -;; (deftype target (process-focusable) -;; ((vehicle uint64 :offset-assert 256) -;; (target-flags target-flags :offset 236) ;; guessed by decompiler -;; (game game-info :offset-assert 264) ;; guessed by decompiler -;; (init-time uint64 :offset-assert 272) ;; time-frame -;; (teleport-time uint64 :offset-assert 280) ;; time-frame -;; (state-hook-time uint64 :offset-assert 288) ;; time-frame -;; (state-hook (function none :behavior target) :offset-assert 296) ;; guessed by decompiler -;; (cam-user-mode symbol :offset-assert 300) ;; guessed by decompiler -;; (anim-seed uint64 :offset-assert 304) -;; (alt-cam-pos vector :inline :offset-assert 320) -;; (current-level level :offset-assert 336) ;; guessed by decompiler -;; (saved-pos transformq :inline :offset-assert 352) -;; (saved-owner uint64 :offset-assert 400) ;; handle -;; (excitement float :offset-assert 408) -;; (shock-effect-time uint64 :offset-assert 416) ;; time-frame -;; (fp-hud uint64 :offset-assert 424) ;; handle -;; (no-load-wait uint64 :offset-assert 432) ;; time-frame -;; (no-look-around-wait uint64 :offset-assert 440) ;; time-frame -;; (burn-proc uint64 :offset-assert 448) ;; handle -;; (pre-joint-hook (function none :behavior target) :offset-assert 456) ;; guessed by decompiler -;; (notify uint64 :offset-assert 464) ;; handle -;; (mode-cache symbol :offset-assert 472) ;; guessed by decompiler -;; (mode-param1 uint64 :offset-assert 480) ;; handle -;; (mode-param2 uint64 :offset-assert 488) -;; (mode-param3 uint64 :offset-assert 496) -;; (major-mode-exit-hook (function none :behavior target) :offset-assert 504) ;; guessed by decompiler -;; (major-mode-event-hook (function process int symbol event-message-block object :behavior target) :offset-assert 508) ;; guessed by decompiler -;; (sub-mode-exit-hook (function none :behavior target) :offset-assert 512) ;; guessed by decompiler -;; (target-effect uint64 :offset-assert 520) ;; target-effect -;; (color-effect symbol :offset-assert 528) ;; guessed by decompiler -;; (color-effect-start-time uint64 :offset-assert 536) ;; time-frame -;; (color-effect-duration uint64 :offset-assert 544) ;; time-frame -;; (yes-state basic :offset-assert 552) -;; (no-state basic :offset-assert 556) -;; (state-object object 4 :offset-assert 560) -;; (state-uint32 uint32 4 :offset-assert 560) -;; (state-float float 4 :offset-assert 560) -;; (state-button UNKNOWN 4 :offset-assert 576) -;; (state-vector vector 4 :offset-assert 592) -;; (state-time time-frame 4 :offset-assert 240) ;; guessed by decompiler -;; (state-smush smush-control :inline :offset-assert 688) -;; (state-sound UNKNOWN 4 :offset-assert 720) -;; (state-handle handle 4 :offset-assert 736) -;; (state-impact UNKNOWN 1 :offset-assert 768) -;; ) -;; :method-count-assert 60 -;; :size-assert #x350 -;; :flag-assert #x3c02c00350 -;; ;; field mode-param2 uses ~A with a 64-bit load. field mode-param3 uses ~A with a 64-bit load. -;; (:methods -;; (target-method-59 () none) ;; 59 -;; ) -;; (:states -;; target-continue ;; associated process guessed by decompiler, old: (state continue-point target) -;; target-float ;; associated process guessed by decompiler, old: (state target) -;; target-introb -;; target-intro -;; target-title ;; associated process guessed by decompiler, old: (state symbol target) -;; target-pilot-start ;; associated process guessed by decompiler, old: (state handle symbol symbol target) -;; ) -;; ) +(deftype target (process-focusable) + ((control collide-shape-moving :offset 188 :score 1) ;; guessed by decompiler + (vehicle uint64 :offset-assert 256) + (target-flags target-flags :offset 236) ;; guessed by decompiler + (game game-info :offset-assert 264) ;; guessed by decompiler + (init-time uint64 :offset-assert 272) ;; time-frame + (teleport-time uint64 :offset-assert 280) ;; time-frame + (state-hook-time uint64 :offset-assert 288) ;; time-frame + (state-hook (function none :behavior target) :offset-assert 296) ;; guessed by decompiler + (cam-user-mode symbol :offset-assert 300) ;; guessed by decompiler + (anim-seed uint64 :offset-assert 304) + (alt-cam-pos vector :inline :offset-assert 320) + (current-level level :offset-assert 336) ;; guessed by decompiler + (saved-pos transformq :inline :offset-assert 352) + (saved-owner uint64 :offset-assert 400) ;; handle + (excitement float :offset-assert 408) + (shock-effect-time uint64 :offset-assert 416) ;; time-frame + (fp-hud uint64 :offset-assert 424) ;; handle + (no-load-wait uint64 :offset-assert 432) ;; time-frame + (no-look-around-wait uint64 :offset-assert 440) ;; time-frame + (burn-proc uint64 :offset-assert 448) ;; handle + (pre-joint-hook (function none :behavior target) :offset-assert 456) ;; guessed by decompiler + (notify uint64 :offset-assert 464) ;; handle + (mode-cache symbol :offset-assert 472) ;; guessed by decompiler + (mode-param1 uint64 :offset-assert 480) ;; handle + (mode-param2 uint64 :offset-assert 488) + (mode-param3 uint64 :offset-assert 496) + (major-mode-exit-hook (function none :behavior target) :offset-assert 504) ;; guessed by decompiler + (major-mode-event-hook (function process int symbol event-message-block object :behavior target) :offset-assert 508) ;; guessed by decompiler + (sub-mode-exit-hook (function none :behavior target) :offset-assert 512) ;; guessed by decompiler + (target-effect uint64 :offset-assert 520) ;; target-effect + (color-effect symbol :offset-assert 528) ;; guessed by decompiler + (color-effect-start-time uint64 :offset-assert 536) ;; time-frame + (color-effect-duration uint64 :offset-assert 544) ;; time-frame + (yes-state basic :offset-assert 552) + (no-state basic :offset-assert 556) + (state-object object 4 :offset-assert 560) + (state-uint32 uint32 4 :offset 560) + (state-float float 4 :offset 560) + (state-button uint32 4 :offset-assert 576) + (state-vector vector 4 :inline :offset-assert 592) + (pad1 uint32 6) + (state-smush smush-control :inline :offset-assert 688) + (state-sound uint32 4 :offset-assert 720) + (state-handle handle 4 :offset-assert 736) + (state-impact impact-control 1 :inline :offset-assert 768) + ) + :method-count-assert 60 + :size-assert #x350 + :flag-assert #x3c02c00350 + ;; field mode-param2 uses ~A with a 64-bit load. field mode-param3 uses ~A with a 64-bit load. + (:methods + (target-method-59 () none) ;; 59 + ) + (:states + target-continue ;; associated process guessed by decompiler, old: (state continue-point target) + target-float ;; associated process guessed by decompiler, old: (state target) + target-introb + target-intro + target-title ;; associated process guessed by decompiler, old: (state symbol target) + target-pilot-start ;; associated process guessed by decompiler, old: (state handle symbol symbol target) + ) + ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -31669,91 +31726,105 @@ :flag-assert #x900000014 ) +;; +++bsp-h:texture-page-flag +(defenum texture-page-flag + :type uint16 + :bitfield #t + (alpha-enable 0) + ) +;; ---bsp-h:texture-page-flag + +(declare-type entity-camera entity) +(declare-type entity-nav-mesh structure) +(declare-type entity-race-mesh entity) +(declare-type city-level-info structure) + ;; TODO - just copied from jak 3, size and such does match -;; (deftype bsp-header (drawable) -;; "The bsp-header is really an entire level. -;; This probably started as a very simple structure, but now it is extremely complicated." -;; ((info file-info :offset 4) -;; (all-visible-list (pointer uint8) :offset-assert 32) ;; guessed by decompiler -;; (visible-list-length int16 :offset-assert 36) -;; (extra-vis-list-length int16 :offset-assert 38) -;; (drawable-trees drawable-tree-array :offset-assert 40) ;; guessed by decompiler -;; (pat pointer :offset-assert 44) ;; guessed by decompiler -;; (pat-length int32 :offset-assert 48) -;; ;; jak2: unlikely to match jak 3 exactly!! -;; (texture-remap-table (pointer uint64) :offset-assert 52) -;; (texture-remap-table-len int32 :offset-assert 56) -;; (texture-ids (pointer texture-id) :offset-assert 60) -;; (texture-page-count int32 :offset-assert 64) -;; (unknown-basic basic :offset-assert 68) ;; seems to be 0 everywhere. -;; (name symbol :offset-assert 72) -;; (nickname symbol :offset-assert 76) -;; (vis-info level-vis-info 8 :offset-assert 80) -;; (actors drawable-inline-array-actor :offset-assert 112) -;; (cameras (array entity-camera) :offset-assert 116) -;; (nodes (inline-array bsp-node) :offset-assert 120) +(deftype bsp-header (drawable) + "The bsp-header is really an entire level. + This probably started as a very simple structure, but now it is extremely complicated." + ((info file-info :offset 4) + (all-visible-list (pointer uint8) :offset-assert 32) ;; guessed by decompiler + (visible-list-length int16 :offset-assert 36) + (extra-vis-list-length int16 :offset-assert 38) + (drawable-trees drawable-tree-array :offset-assert 40) ;; guessed by decompiler + (pat pointer :offset-assert 44) ;; guessed by decompiler + (pat-length int32 :offset-assert 48) + ;; jak2: unlikely to match jak 3 exactly!! + (texture-remap-table (pointer uint64) :offset-assert 52) + (texture-remap-table-len int32 :offset-assert 56) + (texture-ids (pointer texture-id) :offset-assert 60) + (texture-page-count int32 :offset-assert 64) + (unknown-basic basic :offset-assert 68) ;; seems to be 0 everywhere. + (name symbol :offset-assert 72) + (nickname symbol :offset-assert 76) + (vis-info level-vis-info 8 :offset-assert 80) + (actors drawable-inline-array-actor :offset-assert 112) + (cameras (array entity-camera) :offset-assert 116) + (nodes (inline-array bsp-node) :offset-assert 120) -;; ;; jak2: unlikely to match jak 3 exactly!! -;; (level level :offset-assert 124) -;; (current-leaf-idx uint16 :offset-assert 128) -;; (texture-flags texture-page-flag 10 :offset-assert 130) -;; (cam-outside-bsp uint8 :offset 152) -;; (cam-using-back uint8 :offset-assert 153) -;; (cam-box-idx uint16 :offset-assert 154) -;; (ambients symbol :offset-assert 156) ;; now just #t? -;; (subdivide-close float :offset 160) -;; (subdivide-far float :offset-assert 164) -;; (race-meshes (array entity-race-mesh) :offset-assert 168) -;; (actor-birth-order (pointer uint32) :offset 172) -;; (light-hash light-hash :offset-assert 176) -;; (nav-meshes (array entity-nav-mesh) :offset-assert 180) -;; (actor-groups (array actor-group) :offset-assert 184) -;; (region-trees (array drawable-tree-region-prim) :offset 188) -;; (region-array region-array :offset-assert 192) -;; (collide-hash collide-hash :offset 196) -;; ; ;; 200 is some array -;; (wind-array uint32 :offset 200) -;; ; ;; 204 is maybe that array's length -;; (wind-array-length int32 :offset 204) -;; (city-level-info city-level-info :offset 208) -;; (vis-spheres vector-array :offset 216) -;; (vis-spheres-length uint32 :offset 248) -;; (region-tree drawable-tree-region-prim :offset 252) + ;; jak2: unlikely to match jak 3 exactly!! + (level level :offset-assert 124) + (current-leaf-idx uint16 :offset-assert 128) + (texture-flags texture-page-flag 10 :offset-assert 130) + (cam-outside-bsp uint8 :offset 152) + (cam-using-back uint8 :offset-assert 153) + (cam-box-idx uint16 :offset-assert 154) + (ambients symbol :offset-assert 156) ;; now just #t? + (subdivide-close float :offset 160) + (subdivide-far float :offset-assert 164) + (race-meshes (array entity-race-mesh) :offset-assert 168) + (actor-birth-order (pointer uint32) :offset 172) + (light-hash light-hash :offset-assert 176) + (nav-meshes (array entity-nav-mesh) :offset-assert 180) + (actor-groups (array actor-group) :offset-assert 184) + (region-trees (array drawable-tree-region-prim) :offset 188) + (region-array region-array :offset-assert 192) + (collide-hash collide-hash :offset 196) + ; ;; 200 is some array + (wind-array uint32 :offset 200) + ; ;; 204 is maybe that array's length + (wind-array-length int32 :offset 204) + (city-level-info city-level-info :offset 208) + (vis-spheres vector-array :offset 216) + (vis-spheres-length uint32 :offset 248) + (region-tree drawable-tree-region-prim :offset 252) -;; (tfrag-masks texture-masks-array :offset 256) -;; (tfrag-closest (pointer float) :offset-assert 260) -;; (tfrag-mask-count uint32 :offset 260) + (tfrag-masks texture-masks-array :offset 256) + (tfrag-closest (pointer float) :offset-assert 260) + (tfrag-mask-count uint32 :offset 260) -;; (shrub-masks texture-masks-array :offset-assert 264) -;; (shrub-closest (pointer float) :offset-assert 268) -;; (shrub-mask-count uint32 :offset 268) + (shrub-masks texture-masks-array :offset-assert 264) + (shrub-closest (pointer float) :offset-assert 268) + (shrub-mask-count uint32 :offset 268) -;; (alpha-masks texture-masks-array :offset-assert 272) -;; (alpha-closest (pointer float) :offset-assert 276) -;; (alpha-mask-count uint32 :offset 276) + (alpha-masks texture-masks-array :offset-assert 272) + (alpha-closest (pointer float) :offset-assert 276) + (alpha-mask-count uint32 :offset 276) -;; (water-masks texture-masks-array :offset-assert 280) -;; (water-closest (pointer float) :offset-assert 284) -;; (water-mask-count uint32 :offset 284) + (water-masks texture-masks-array :offset-assert 280) + (water-closest (pointer float) :offset-assert 284) + (water-mask-count uint32 :offset 284) -;; (bsp-scale vector :inline :offset 288) -;; (bsp-offset vector :inline :offset-assert 304) + (bsp-scale vector :inline :offset 288) + (bsp-offset vector :inline :offset-assert 304) -;; (hfrag-drawable drawable :offset 320) + (hfrag-drawable drawable :offset 320) + + (unknown-bsp-1 uint32 :offset 324) -;; (end uint8 :offset #x18f) -;; ) -;; :method-count-assert 19 -;; :size-assert #x190 -;; :flag-assert #x1300000190 -;; (:methods -;; (birth (_type_) none) ;; 17 -;; (deactivate-entities (_type_) none) ;; 18 -;; ) -;; ) + (end uint8 :offset #x18f) + ) + :method-count-assert 19 + :size-assert #x190 + :flag-assert #x1300000190 + (:methods + (birth (_type_) none) ;; 17 + (deactivate-entities (_type_) none) ;; 18 + ) + ) -#| (deftype game-level (basic) ((master-bsp basic :offset-assert 4) ) @@ -31761,9 +31832,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype view-frustum (structure) ((hither-top-left vector :inline :offset-assert 0) (hither-top-right vector :inline :offset-assert 16) @@ -31778,7 +31847,6 @@ :size-assert #x80 :flag-assert #x900000080 ) -|# (deftype collide-stats (structure) "Very strange collide stats type. It has been somewhat broken in all versions of the game. @@ -31799,8 +31867,8 @@ :flag-assert #x900000078 ) -;; (define-extern inspect-bsp-tree function) ;; (function bsp-header bsp-node none) -;; (define-extern map-bsp-tree function) ;; (function (function bsp-node none) bsp-header bsp-node none) +(define-extern inspect-bsp-tree (function bsp-header bsp-node none)) ;; +(define-extern map-bsp-tree (function (function bsp-node none) bsp-header bsp-node none)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; collide-cache-h ;; @@ -31918,7 +31986,7 @@ (:methods (new (symbol type int int) _type_) (collide-cache-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) - (collide-cache-method-10 () none) ;; 10 ;; (fill-and-probe-using-line-sphere (_type_ collide-query) float) + (fill-and-probe-using-line-sphere (_type_ collide-query) float) (collide-cache-method-11 () none) ;; 11 ;; (fill-and-probe-using-spheres (_type_ collide-query) symbol) (collide-cache-method-12 () none) ;; 12 ;; (fill-using-bounding-box (_type_ collide-query) none) (collide-cache-method-13 () none) ;; 13 ;; (fill-using-line-sphere (_type_ collide-query) none) @@ -33189,16 +33257,16 @@ (declare-type nav-poly structure) (deftype entity-actor (entity) "Child class of [[entity]] used to spawn [[process-drawable]] actors." - ((etype type :offset 56) - (task game-task :offset-assert 60) - (kill-mask task-mask :offset 52) - (vis-id int16 :offset-assert 62) - (quat quaternion :inline :offset-assert 64) + ;; TODO - one field was added here, unsure what (no inspect!) + ((etype type :offset 60) + (task game-task :offset-assert 64) + (kill-mask task-mask :offset 56) + (vis-id int16 :offset-assert 66) + (quat quaternion :inline :offset-assert 80) ) :method-count-assert 33 - :size-assert #x50 - :flag-assert #x2100000050 - ;; Failed to read fields. + :size-assert #x60 + :flag-assert #x2100000060 (:methods (next-actor (_type_) entity-actor) ;; 27 (prev-actor (_type_) entity-actor) ;; 28 @@ -34342,33 +34410,33 @@ :size-assert #x10 :flag-assert #x1a00000010 (:methods - (new (symbol type) _type_) ;; 0 ;; (new (symbol type process symbol) _type_) - (actor-link-info-method-9 () none) ;; 9 ;; (get-matching-actor-type-mask (_type_ type) int) - (actor-link-info-method-10 () none) ;; 10 ;; (actor-count-before (_type_) int) - (actor-link-info-method-11 () none) ;; 11 ;; (link-to-next-and-prev-actor (_type_) actor-link-info) - (actor-link-info-method-12 () none) ;; 12 ;; (get-next (_type_) entity-actor) - (actor-link-info-method-13 () none) ;; 13 ;; (get-prev (_type_) entity-actor) - (actor-link-info-method-14 () none) ;; 14 ;; (get-next-process (_type_) process) - (actor-link-info-method-15 () none) ;; 15 ;; (get-prev-process (_type_) process) - (actor-link-info-method-16 () none) ;; 16 ;; (apply-function-forward (_type_ (function entity-actor object object) object) int) - (actor-link-info-method-17 () none) ;; 17 ;; (apply-function-reverse (_type_ (function entity-actor object object) object) int) - (actor-link-info-method-18 () none) ;; 18 ;; (apply-all (_type_ (function entity-actor object object) object) int) - (actor-link-info-method-19 () none) ;; 19 ;; (send-to-all (_type_ symbol) none) - (actor-link-info-method-20 () none) ;; 20 ;; (send-to-all-after (_type_ symbol) object) - (actor-link-info-method-21 () none) ;; 21 ;; (send-to-all-before (_type_ symbol) object) - (actor-link-info-method-22 () none) ;; 22 ;; (send-to-next-and-prev (_type_ symbol) none) - (actor-link-info-method-23 () none) ;; 23 ;; (send-to-next (_type_ symbol) none) - (actor-link-info-method-24 () none) ;; 24 ;; (send-to-prev (_type_ symbol) none) - (actor-link-info-method-25 () none) ;; 25 ;; (actor-count (_type_) int) + (new (symbol type process symbol) _type_) + (get-matching-actor-type-mask (_type_ type) int) + (actor-count-before (_type_) int) + (link-to-next-and-prev-actor (_type_) actor-link-info) + (get-next (_type_) entity-actor) + (get-prev (_type_) entity-actor) + (get-next-process (_type_) process) + (get-prev-process (_type_) process) + (apply-function-forward (_type_ (function entity-actor object object) object) int) + (apply-function-reverse (_type_ (function entity-actor object object) object) int) + (apply-all (_type_ (function entity-actor object object) object) int) + (send-to-all (_type_ symbol) none) + (send-to-all-after (_type_ symbol) object) + (send-to-all-before (_type_ symbol) object) + (send-to-next-and-prev (_type_ symbol) none) + (send-to-next (_type_ symbol) none) + (send-to-prev (_type_ symbol) none) + (actor-count (_type_) int) ) ) (define-extern entity-actor-lookup (function res-lump symbol int entity-actor)) ;; -;; (define-extern entity-actor-count function) ;; (function res-lump symbol int) -;; (define-extern actor-link-subtask-complete-hook function) ;; (function entity-actor (pointer symbol) symbol) -;; (define-extern actor-link-subtask-incomplete-count-hook function) ;; (function entity-actor (pointer uint64) symbol) -;; (define-extern actor-link-dead-hook function) ;; (function entity-actor (pointer symbol) symbol) -;; (define-extern alt-actor-list-subtask-incomplete-count function) ;; (function process-drawable int) +(define-extern entity-actor-count (function res-lump symbol int)) ;; +(define-extern actor-link-subtask-complete-hook (function entity-actor (pointer symbol) symbol)) ;; +(define-extern actor-link-subtask-incomplete-count-hook (function entity-actor (pointer uint64) symbol)) ;; +(define-extern actor-link-dead-hook (function entity-actor (pointer symbol) symbol)) ;; +(define-extern alt-actor-list-subtask-incomplete-count (function process-drawable int)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; cam-debug-h ;; @@ -35019,9 +35087,9 @@ (nav-mesh-method-36 () none) ;; 36 ;; (nav-mesh-method-36 (_type_ vector vector float) float) (point-in-poly? (_type_ nav-poly vector) symbol) ;; 37 ;; (nav-mesh-method-37 (_type_ vector vector float) float) (nav-mesh-method-38 () none) ;; 38 ;; (nav-mesh-method-38 (_type_ nav-poly) none) - (nav-mesh-method-39 () none) ;; 39 ;; (debug-draw-poly (_type_ nav-poly rgba) none) + (nav-mesh-method-39 (_type_ nav-poly vector vector) vector) (nav-mesh-method-40 () none) ;; 40 ;; - (nav-mesh-method-41 () none) ;; 41 ;; (nav-mesh-method-41 (_type_ nav-poly vector vector vector (pointer nav-poly)) vector) + (nav-mesh-method-41 (_type_ nav-poly vector vector vector (pointer nav-poly)) vector) ;; 41 ;; (nav-mesh-method-41 (_type_ nav-poly vector vector vector (pointer nav-poly)) vector) (nav-mesh-method-42 () none) ;; 42 ;; (closest-point-on-boundary (_type_ nav-poly vector vector) vector) (nav-mesh-method-43 () none) ;; 43 ;; (project-point-onto-plane-of-poly-local (_type_ nav-poly vector vector vector) none) (nav-mesh-method-44 () none) ;; 44 ;; (project-point-into-poly-2d (_type_ nav-poly vector vector) vector) @@ -35049,7 +35117,6 @@ ;; nav-control-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype check-vector-collision-with-nav-spheres-info (structure) ((u float :offset-assert 0) (intersect vector :inline :offset-assert 16) @@ -35059,9 +35126,7 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| (deftype nav-gap-info (structure) ((dest vector :inline :offset-assert 0) (poly nav-poly :offset-assert 16) @@ -35070,14 +35135,12 @@ :size-assert #x14 :flag-assert #x900000014 ) -|# -#| (deftype nav-avoid-spheres-params (structure) ((current-pos vector :inline :offset-assert 0) (travel vector :inline :offset-assert 16) (pref-dir vector :inline :offset-assert 32) - (out-travel vector 2 :offset-assert 48) ;; guessed by decompiler + (out-travel vector 2 :inline :offset-assert 48) ;; guessed by decompiler (closest-sphere-dist2 float :offset-assert 80) (avoiding-sphere? symbol :offset-assert 84) ;; guessed by decompiler ) @@ -35085,9 +35148,7 @@ :size-assert #x58 :flag-assert #x900000058 ) -|# -#| (deftype nav-callback-info (structure) ((callback-count int32 :offset-assert 0) (callback-array (function object nav-control none) 10 :offset-assert 4) ;; guessed by decompiler @@ -35096,9 +35157,47 @@ :size-assert #x2c :flag-assert #x90000002c ) -|# -#| +;; +++nav-control-h:nav-state-flag +(defenum nav-state-flag + :type uint32 + :bitfield #t + (display-marks 0) + (recovery-mode 1) + (initialized 2) + (debug 3) + (directional-mode 4) + (trapped-by-sphere 5) + (target-poly-dirty 6) + (blocked 7) + (in-target-poly 8) + (at-target 9) + (target-inside 10) + (in-mesh 11) + (avoiding-sphere 12) + (touching-sphere 13) + (at-gap 14) + (use-position 15) + ) +;; ---nav-control-h:nav-state-flag + +;; +++nav-control-h:nav-control-flag +(defenum nav-control-flag + :type uint32 + :bitfield #t + (display-marks 0) ;; 1 + (debug 1) ;; 2 + (no-redirect-in-clamp 2) ;; 4 + (limit-rotation-rate 3) ;; 8 + (update-heading-from-facing 4) ;; 16 + (use-momentum 5) ;; 32 + (momentum-ignore-heading 6) ;; 64 + (output-sphere-hash 7) ;; 128 + (kernel-run 8) ;; 256 + (ncf9 9) + ) +;; ---nav-control-h:nav-control-flag + (deftype nav-state (structure) ((flags nav-state-flag :offset-assert 0) (nav nav-control :offset-assert 4) ;; guessed by decompiler @@ -35120,9 +35219,9 @@ (velocity vector :inline :offset-assert 128) (heading vector :inline :offset-assert 144) (target-dir vector :inline :offset-assert 160) - (accel vector :inline :offset-assert 160) - (user-position vector :inline :offset-assert 112) - (normal vector :inline :offset-assert 112) + (accel vector :inline :offset 160) + (user-position vector :inline :offset 112) + (normal vector :inline :offset 112) ) :method-count-assert 57 :size-assert #xb0 @@ -35178,9 +35277,7 @@ (nav-state-method-56 () none) ;; 56 ) ) -|# -#| (deftype nav-control (structure) ((flags nav-control-flag :offset-assert 0) (callback-info nav-callback-info :offset-assert 4) @@ -35201,11 +35298,11 @@ (sphere-mask uint8 :offset-assert 61) (pad1 uint8 2 :offset-assert 62) ;; guessed by decompiler (sphere-id-array uint8 16 :offset-assert 64) ;; guessed by decompiler - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ;; (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. (extra-nav-sphere vector :inline :offset-assert 80) (root-nav-sphere vector :inline :offset-assert 96) (state nav-state :inline :offset-assert 112) - (mesh basic :offset-assert 124) + (mesh basic :offset 124) ) :method-count-assert 48 :size-assert #x120 @@ -35252,7 +35349,6 @@ (nav-control-method-47 () none) ;; 47 ) ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -35672,7 +35768,7 @@ ;; (define-extern release-sound-handle function) ;; (define-extern get-sound-handle function) ;; (define-extern *sound-instances* object) -;; (define-extern find-sound-instance function) +(define-extern find-sound-instance (function object symbol sound-instance)) ;; (define-extern remove-sound-instance-by-index function) ;; (define-extern remove-sound-instance-by-sound-id function) (define-extern make-sound-instance (function object int symbol sound-instance)) @@ -35702,7 +35798,7 @@ ;; (define-extern sound-set-reverb function) ;; (function int float float uint int) ;; (define-extern sound-set-globals function) ;; (define-extern sound-pause function) ;; (function sound-id int) -;; (define-extern sound-stop function) ;; (function sound-id int) +(define-extern sound-stop (function sound-id symbol int)) ;; ;; (define-extern sound-continue function) ;; (function sound-id int) ;; (define-extern sound-group-pause function) ;; (function sound-group int) ;; (define-extern sound-group-stop function) ;; (function sound-group int) @@ -35798,7 +35894,7 @@ ;; (define-extern cspace<-matrix-joint! function) ;; (function cspace matrix matrix) ;; (define-extern cspace<-parented-matrix-joint! function) ;; (function cspace matrix matrix) ;; (define-extern cspace<-parented-matrix-mirror! function) ;; (function cspace matrix matrix) -;; (define-extern cspace<-parented-matrix-joint-flip-z! function) ;; (function cspace matrix matrix) +(define-extern cspace<-parented-matrix-joint-flip-z! (function cspace matrix matrix)) ;; ;; (define-extern cspace<-matrix-joint-flip-z! function) ;; (function cspace matrix none) (define-extern cspace<-parented-transformq-joint! (function cspace transformq none)) ;; (define-extern cspace<-parented-transformq-joint-flip-z! function) ;; (function cspace transformq none) @@ -35816,20 +35912,20 @@ ;; joint-mod ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern joint-mod-ik-callback function) ;; (function cspace transformq none :behavior process) -;; (define-extern real-joint-mod-gun-look-at-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-gun-look-at-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-foot-rot-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern last-try-to-look-at-data object) ;; try-to-look-at-info -;; (define-extern joint-mod-look-at-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-world-look-at-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-rotate-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-scale-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-joint-set-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-joint-set-world-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-joint-set*-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-joint-set*-world-handler function) ;; (function cspace transformq none :behavior process) -;; (define-extern joint-mod-polar-look-at-callback function) ;; (function cspace transformq none :behavior process) +(define-extern joint-mod-ik-callback (function cspace transformq none :behavior process)) +(define-extern real-joint-mod-gun-look-at-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-gun-look-at-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-foot-rot-handler (function cspace transformq none :behavior process)) +(define-extern last-try-to-look-at-data try-to-look-at-info) ;; try-to-look-at-info +(define-extern joint-mod-look-at-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-world-look-at-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-rotate-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-scale-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set-world-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set*-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set*-world-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-polar-look-at-callback (function cspace transformq none :behavior process)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; wind-work ;; @@ -35850,12 +35946,12 @@ ;; bsp ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern mem-usage-bsp-tree function) ;; (function bsp-header bsp-node memory-usage-block int none) -;; (define-extern *test-shrub* object) ;; int -;; (define-extern bsp-camera-asm function) ;; (function bsp-header vector none) -;; (define-extern print-collide-stats function) ;; (function none) -;; (define-extern level-remap-texture function) ;; (function texture-id texture-id) -;; (define-extern build-masks function) ;; (function bsp-header none) +(define-extern mem-usage-bsp-tree (function bsp-header bsp-node memory-usage-block int none)) ;; +(define-extern *test-shrub* int) ;; +(define-extern bsp-camera-asm (function bsp-header vector object none)) +(define-extern print-collide-stats (function none)) +(define-extern level-remap-texture (function texture-id texture-id)) +(define-extern build-masks (function bsp-header none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; subdivide ;; @@ -36268,25 +36364,25 @@ ;; debug-vertex-stats is already defined! -;; (define-extern transform-float-point function) ;; (function vector vector4w vector4w) -;; (define-extern add-debug-point function) ;; (function symbol bucket-id vector symbol) -;; (define-extern debug-line-clip? function) ;; (function vector vector vector vector symbol) -;; (define-extern internal-draw-debug-line function) ;; (function bucket-id vector vector rgba symbol rgba symbol) -;; (define-extern internal-draw-debug-text-3d function) ;; (function bucket-id string vector font-color vector2h pointer) -;; (define-extern add-debug-outline-triangle function) ;; (function symbol bucket-id vector vector vector rgba symbol) -;; (define-extern add-debug-triangle-normal function) ;; (function symbol bucket-id vector vector vector rgba symbol) +(define-extern transform-float-point (function vector vector4w vector4w)) ;; +(define-extern add-debug-point (function symbol bucket-id vector symbol)) ;; +(define-extern debug-line-clip? (function vector vector vector vector symbol)) ;; +(define-extern internal-draw-debug-line (function bucket-id vector vector rgba symbol rgba symbol)) ;; +(define-extern internal-draw-debug-text-3d (function bucket-id string vector font-color vector2h pointer)) ;; +(define-extern add-debug-outline-triangle (function symbol bucket-id vector vector vector rgba symbol)) ;; +(define-extern add-debug-triangle-normal (function symbol bucket-id vector vector vector rgba symbol)) ;; (define-extern add-debug-flat-triangle-noclip (function vector vector vector vector vector none)) (define-extern *debug-lines* (inline-array debug-line)) (define-extern *debug-lines-trk* debug-tracking-thang) (define-extern *debug-text-3ds* (inline-array debug-text-3d)) (define-extern *debug-text-3d-trk* debug-tracking-thang) ;; -(define-extern *debug-prims* int) -;; (define-extern debug-reset-prim-buffer function) -(define-extern add-debug-flat-triangle (function symbol bucket-id vector vector vector rgba symbol)) -;; (define-extern get-debug-line function) ;; (function debug-line) -;; (define-extern get-debug-text-3d function) ;; (function debug-text-3d) -;; (define-extern debug-reset-buffers function) ;; (function symbol) -;; (define-extern debug-draw-buffers function) ;; (function symbol) +(define-extern *debug-prims* prim-strip) ;; TODO - wrong! +(define-extern debug-reset-prim-buffer (function none)) +(define-extern add-debug-flat-triangle (function symbol bucket-id vector vector vector rgba none)) +(define-extern get-debug-line (function debug-line)) ;; +(define-extern get-debug-text-3d (function debug-text-3d)) ;; +(define-extern debug-reset-buffers (function symbol)) ;; +(define-extern debug-draw-buffers (function symbol)) ;; (define-extern add-debug-line (function symbol bucket-id vector vector rgba symbol rgba symbol)) (define-extern add-debug-line2d (function symbol bucket-id vector4w vector4w vector4w symbol)) (define-extern add-debug-box (function symbol bucket-id vector vector rgba symbol)) @@ -36310,7 +36406,7 @@ (define-extern add-debug-curve (function symbol bucket-id (inline-array vector) int (pointer float) int rgba symbol)) (define-extern add-debug-curve2 (function symbol bucket-id curve rgba symbol symbol)) (define-extern add-debug-points (function symbol bucket-id (inline-array vector) int rgba float int symbol)) -(define-extern debug-percent-bar function) ;; (function symbol bucket-id int int float rgba int int symbol) +(define-extern debug-percent-bar (function symbol bucket-id int int float rgba int int symbol)) ;; (define-extern debug-pad-display (function cpad-info symbol)) (define-extern add-debug-light (function symbol bucket-id light vector string symbol)) (define-extern add-debug-lights (function symbol bucket-id (inline-array light) vector symbol)) @@ -36328,8 +36424,8 @@ (define-extern render-boundary-tri (function sky-vertex dma-buffer none)) (define-extern add-debug-bound-internal (function dma-buffer (inline-array vector) int rgba rgba int none)) (define-extern add-debug-bound (function bucket-id (inline-array vector) int rgba rgba int none)) -;; (define-extern cpu-delay function) -(define-extern qword-read-time (function (array uint128) int int)) +(define-extern cpu-delay (function uint none)) +(define-extern qword-read-time (function (pointer uint128) int int)) (define-extern bugfix? (function symbol)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -36588,7 +36684,7 @@ ;; debug-foreground ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern diag-frag-print function) ;; (function merc-effect int none) +(define-extern diag-frag-print (function merc-effect int none)) ;; ;; (define-extern debug-merc-highres-runtime function) ;; (define-extern debug-merc-size-runtime function) ;; (define-extern debug-merc-fade-runtime function) @@ -36604,7 +36700,7 @@ ;; (define-extern foreground-init function) ;; (function none) ;; (define-extern texscroll-make-request function) ;; (function merc-effect none) ;; (define-extern texscroll-execute function) ;; (function none) -;; (define-extern vu-lights<-light-group! function) ;; (function vu-lights light-group none) +(define-extern vu-lights<-light-group! (function vu-lights light-group none)) ;; ;; (define-extern foreground-add-mtx-calc function) ;; (function bone-calculation (inline-array pris-mtx) bone-calc-flags bone-calculation) ;; (define-extern foreground-wrapup function) ;; (function none) ;; (define-extern *default-shadow-settings* object) ;; shadow-settings @@ -36646,7 +36742,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-extern *target-lock* object) ;; object -;; (define-extern *generic-consts* object) ;; generic-consts +(define-extern *generic-consts* generic-consts) ;; ;; (define-extern generic-work-init function) ;; (function generic-bucket-state none) ;; (define-extern generic-upload-vu0 function) ;; (function none) ;; (define-extern upload-vu0-program function) ;; (function vu-function pointer none) @@ -36842,10 +36938,10 @@ (define-extern *shadow-vu1-data* shadow-vu1-data) ;; (define-extern shadow-vu1-block vu-function) ;; -(define-extern shadow-vu1-add-constants (function dma-buffer int none)) -(define-extern shadow-vu1-patch-consts (function symbol int none)) +(define-extern shadow-vu1-add-constants (function dma-buffer int object none)) +(define-extern shadow-vu1-patch-consts (function symbol int object none)) (define-extern shadow-vu1-add-matrix (function dma-buffer math-camera none)) -(define-extern shadow-vu1-init-buffer (function dma-buffer int none)) +(define-extern shadow-vu1-init-buffer (function dma-buffer int object none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; warp ;; @@ -36868,43 +36964,43 @@ ;; texture-anim ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *texture-anim-work* object) ;; texture-anim-work -;; (define-extern texture-anim-layer-interp function) ;; (function texture-anim-layer float none) -;; (define-extern texture-anim-layer-add-shader function) ;; (function dma-buffer texture-anim-layer int none) -;; (define-extern texture-anim-layer-add-clut-shader function) ;; (function dma-buffer texture-anim-layer int none) -;; (define-extern texture-anim-layer-draw function) ;; (function dma-buffer int int texture-anim-layer none) -;; (define-extern default-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern blend-clut-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern add-clut-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern dest-blend-clut-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern move-rg-to-ba-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern fill-rgb-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern texture-anim-draw-mip-shader function) ;; (function dma-buffer texture int none) -;; (define-extern clear-texture-ids function) ;; (function texture none) -;; (define-extern texture-anim-draw-mips function) ;; (function dma-buffer texture none) +(define-extern *texture-anim-work* texture-anim-work) ;; +(define-extern texture-anim-layer-interp (function texture-anim-layer float none)) +(define-extern texture-anim-layer-add-shader (function dma-buffer texture-anim-layer int none)) +(define-extern texture-anim-layer-add-clut-shader (function dma-buffer texture-anim-layer int none)) +(define-extern texture-anim-layer-draw (function dma-buffer int int texture-anim-layer none)) +(define-extern default-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern blend-clut-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern add-clut-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern dest-blend-clut-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern move-rg-to-ba-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern fill-rgb-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern texture-anim-draw-mip-shader (function dma-buffer texture int none)) +(define-extern clear-texture-ids (function texture none)) +(define-extern texture-anim-draw-mips (function dma-buffer texture none)) ;; (define-extern texture-anim-draw-ocean-mips function) -;; (define-extern update-texture-anim function) ;; (function bucket-id texture-anim-array none) -;; (define-extern no-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern copy-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern copy-clut-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern set-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern set-clut-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) -;; (define-extern dest-texture-init function) ;; (function texture-anim none) -;; (define-extern src-texture-init function) ;; (function texture-anim-layer none) -;; (define-extern src-texture-init-mt8 function) ;; (function texture-anim-layer none) -;; (define-extern make-noise-texture function) ;; (function pointer int int int none) -;; (define-extern make-cloud-clut function) ;; (function (pointer uint32) float float none) -;; (define-extern texture-anim-cloud-clut-upload function) ;; (function dma-buffer texture-anim none) -;; (define-extern texture-anim-cloud-clut-init function) ;; (function texture-anim none) -;; (define-extern make-slime-clut function) ;; (function (pointer uint32) none) -;; (define-extern make-ramp-clut function) ;; (function (pointer uint32) pointer object none) -;; (define-extern make-alpha-ramp-clut function) ;; (function (pointer uint32) none) -;; (define-extern texture-anim-alpha-ramp-clut-upload function) ;; (function dma-buffer texture-anim none) -;; (define-extern texture-anim-alpha-ramp-clut-init function) ;; (function texture-anim none) +(define-extern update-texture-anim (function bucket-id texture-anim-array none)) +(define-extern no-alpha-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern copy-alpha-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern copy-clut-alpha-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern set-alpha-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern set-clut-alpha-texture-anim-layer-func (function dma-buffer uint int int texture-anim-layer float int)) +(define-extern dest-texture-init (function texture-anim none)) +(define-extern src-texture-init (function texture-anim-layer none)) +(define-extern src-texture-init-mt8 (function texture-anim-layer none)) +(define-extern make-noise-texture (function pointer int int int none)) +(define-extern make-cloud-clut (function (pointer uint32) float float none)) +(define-extern texture-anim-cloud-clut-upload (function dma-buffer texture-anim none)) +(define-extern texture-anim-cloud-clut-init (function texture-anim none)) +(define-extern make-slime-clut (function (pointer uint32) none)) +(define-extern make-ramp-clut (function (pointer uint32) pointer object none)) +(define-extern make-alpha-ramp-clut (function (pointer uint32) none)) +(define-extern texture-anim-alpha-ramp-clut-upload (function dma-buffer texture-anim none)) +(define-extern texture-anim-alpha-ramp-clut-init (function texture-anim none)) ;; (define-extern texture-anim-override-size-init function) -;; (define-extern texture-anim-change-mt8h-init function) ;; (function texture-anim none) -;; (define-extern *texture-anim-pages-table* object) ;; (pointer uint8) -;; (define-extern *texture-anim-mip-array* object) ;; (pointer uint16) +(define-extern texture-anim-change-mt8h-init (function texture-anim none)) +(define-extern *texture-anim-pages-table* (pointer uint8)) +(define-extern *texture-anim-mip-array* (pointer uint16)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; texture-anim-funcs ;; @@ -36932,7 +37028,7 @@ |# ;; (define-extern *sky-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) -;; (define-extern set-fog-height! function) ;; (function float none) +(define-extern set-fog-height! (function float none)) ;; ;; (define-extern set-cloud-minmax! function) ;; (function float float none) ;; (define-extern *default-pris-texture-anim-array* texture-anim-array) ;; (define-extern *car-texture-anim-array-work* object) @@ -37005,11 +37101,11 @@ ;; (define-extern draw-string-asm-packed function) ;; (define-extern draw-string3d-asm function) ;; (define-extern draw-effect-string function) -;; (define-extern draw-string function) ;; (function string dma-buffer font-context draw-string-result) +(define-extern draw-string (function string dma-buffer font-context draw-string-result)) ;; ;; (define-extern get-string-length-asm function) -;; (define-extern get-string-length function) ;; (function string font-context draw-string-result) +(define-extern get-string-length (function string font-context draw-string-result)) ;; (define-extern draw-string-xy (function string dma-buffer int int font-color font-flags draw-string-result)) -;; (define-extern draw-string-adv function) ;; (function string dma-buffer font-context none) +(define-extern draw-string-adv (function string dma-buffer font-context none)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; decomp ;; @@ -37033,7 +37129,7 @@ ;; background ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *background-work* object) ;; background-work +(define-extern *background-work* background-work) ;; ;; (define-extern background-vu0-block object) ;; vu-function ;; (define-extern background-upload-vu0 function) ;; (function none) ;; (define-extern init-background function) ;; (function none) @@ -37073,17 +37169,14 @@ ;; shrubbery ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype dma-test (structure) - ((data qword 101 :offset-assert 0) ;; guessed by decompiler + ((data qword 101 :inline :offset-assert 0) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x650 :flag-assert #x900000650 ) -|# -#| (deftype dma-test-work (structure) ((upload dma-packet :inline :offset-assert 0) (end dma-packet :inline :offset-assert 16) @@ -37092,54 +37185,49 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype prototype-shrubbery (drawable-inline-array) - ((length int16 :offset-assert 2) - (data shrubbery :dynamic :offset-assert 32) ;; guessed by decompiler - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + "Array of shrub prototypes." + ((data shrubbery 1 :inline :offset-assert 32) + (pad uint32) ) - :method-count-assert 17 - :size-assert #x44 - :flag-assert #x1100000044 + :flag-assert #x1100000044 ) -|# -;; (define-extern mem-usage-shrub-walk function) ;; (function draw-node int memory-usage-block int draw-node) -;; (define-extern highres-shrub-login function) ;; (function draw-node none) -;; (define-extern highres-prototype-shrub-login function) -;; (define-extern shrub-vu1-block object) ;; vu-function -;; (define-extern shrub-num-tris function) ;; (function shrubbery uint) -;; (define-extern shrub-make-perspective-matrix function) ;; (function matrix matrix matrix) -;; (define-extern shrub-init-view-data function) ;; (function shrub-view-data symbol) -;; (define-extern shrub-upload-view-data function) ;; (function dma-buffer symbol) -;; (define-extern shrub-time function) ;; (function int int int int int int) -;; (define-extern shrub-do-init-frame function) ;; (function dma-buffer symbol) -;; (define-extern shrub-init-frame function) ;; (function dma-buffer gs-test symbol) -;; (define-extern shrub-upload-model function) ;; (function shrubbery dma-buffer int symbol) -;; (define-extern draw-inline-array-instance-shrub function) ;; (function dma-buffer drawable int (inline-array prototype-bucket-shrub) none) -;; (define-extern draw-prototype-inline-array-shrub function) ;; (function int (inline-array prototype-bucket-shrub) pointer) -;; (define-extern draw-drawable-tree-instance-shrub function) ;; (function drawable-tree-instance-shrub level none) -;; (define-extern *dma-test* object) ;; dma-test -;; (define-extern *dma-test-work* object) ;; dma-test-work -;; (define-extern init-dma-test function) ;; (function none) -;; (define-extern dma-test-func function) ;; (function none) -;; (define-extern move-test-func function) ;; (function none) +(define-extern mem-usage-shrub-walk (function draw-node int memory-usage-block int draw-node)) +(define-extern highres-shrub-login (function draw-node none)) +(define-extern highres-prototype-shrub-login function) +(define-extern shrub-vu1-block vu-function) +(define-extern shrub-num-tris (function shrubbery uint)) +(define-extern shrub-make-perspective-matrix (function matrix matrix matrix)) +(define-extern shrub-init-view-data (function shrub-view-data symbol)) ;; +(define-extern shrub-upload-view-data (function dma-buffer symbol)) ;; +(define-extern shrub-time (function int int int int int int)) +(define-extern shrub-do-init-frame (function dma-buffer symbol)) +(define-extern shrub-init-frame (function dma-buffer gs-test symbol)) +(define-extern shrub-upload-model (function shrubbery dma-buffer int symbol)) +(define-extern draw-inline-array-instance-shrub (function dma-buffer drawable int (inline-array prototype-bucket-shrub) none)) +(define-extern draw-prototype-inline-array-shrub (function int (inline-array prototype-bucket-shrub) pointer)) +(define-extern draw-drawable-tree-instance-shrub (function drawable-tree-instance-shrub level none)) +(define-extern *dma-test* dma-test) +(define-extern *dma-test-work* dma-test-work) +(define-extern init-dma-test (function none)) +(define-extern dma-test-func (function none)) +(define-extern move-test-func (function none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; shrub-work ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *instance-shrub-work* object) ;; instance-shrub-work +(define-extern *instance-shrub-work* instance-shrub-work) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; tfrag-near ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern tnear-vu1-block object) ;; vu-function -;; (define-extern tfrag-details function) ;; (function tfragment none) -;; (define-extern clip-restore function) ;; (function none) +(define-extern tnear-vu1-block vu-function) ;; +(define-extern tfrag-details (function tfragment none)) +(define-extern clip-restore (function none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; tfrag ;; @@ -37157,21 +37245,21 @@ ) |# -;; (define-extern *tfrag-display-stats* object) ;; symbol -;; (define-extern tfrag-vu1-block object) ;; vu-function -;; (define-extern tfrag-data-setup function) ;; (function tfrag-data int int none) -;; (define-extern add-tfrag-mtx-0 function) ;; (function dma-buffer symbol none) -;; (define-extern add-tfrag-mtx-1 function) ;; (function dma-buffer symbol none) -;; (define-extern add-tfrag-data function) ;; (function dma-buffer int int none) -;; (define-extern t-stat object) ;; tfrag-stats -;; (define-extern tfrag-print-stats function) ;; (function symbol none) -;; (define-extern tfrag-init-buffer function) ;; (function dma-buffer gs-test int symbol none) -;; (define-extern tfrag-end-buffer function) ;; (function dma-buffer int none) -;; (define-extern draw-inline-array-tfrag function) ;; (function pointer drawable-inline-array int dma-buffer none) -;; (define-extern tfrag-scissor-init-buffer function) ;; (function dma-buffer gs-test int symbol none) -;; (define-extern tfrag-scissor-end-buffer function) ;; (function dma-buffer uint none) -;; (define-extern draw-inline-array-tfrag-scissor function) ;; (function pointer drawable-inline-array int dma-buffer none) -;; (define-extern stats-tfrag-asm function) ;; (function tfragment none) +(define-extern *tfrag-display-stats* symbol) +(define-extern tfrag-vu1-block vu-function) +(define-extern tfrag-data-setup (function tfrag-data int int none)) +(define-extern add-tfrag-mtx-0 (function dma-buffer symbol none)) +(define-extern add-tfrag-mtx-1 (function dma-buffer symbol none)) +(define-extern add-tfrag-data (function dma-buffer int int none)) +(define-extern t-stat tfrag-stats) ;; +(define-extern tfrag-print-stats (function symbol none)) +(define-extern tfrag-init-buffer (function dma-buffer gs-test int symbol none)) +(define-extern tfrag-end-buffer (function dma-buffer int none)) +(define-extern draw-inline-array-tfrag (function pointer drawable-inline-array int dma-buffer none)) +(define-extern tfrag-scissor-init-buffer (function dma-buffer gs-test int symbol none)) +(define-extern tfrag-scissor-end-buffer (function dma-buffer uint none)) +(define-extern draw-inline-array-tfrag-scissor (function pointer drawable-inline-array int dma-buffer none)) +(define-extern stats-tfrag-asm (function tfragment none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; tfrag-methods ;; @@ -37211,28 +37299,26 @@ ;; tie ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype tie-consts (structure) ((data uint32 40 :offset-assert 0) ;; guessed by decompiler - (vector vector 10 :offset-assert 0) ;; guessed by decompiler - (quads uint128 10 :offset-assert 0) ;; guessed by decompiler - (adgif qword :inline :offset-assert 0) ;; gs-gif-tag :inline - (strgif qword :inline :offset-assert 16) ;; gs-gif-tag :inline - (extra qword :inline :offset-assert 32) ;; vector :inline - (gifbufs qword :inline :offset-assert 48) ;; vector :inline - (clrbufs qword :inline :offset-assert 64) - (misc qword :inline :offset-assert 80) - (atestgif qword :inline :offset-assert 96) ;; gs-gif-tag :inline - (alpha qword :inline :offset-assert 112) ;; gs-adcmd :inline - (atest gs-adcmd 2 :offset-assert 128) ;; guessed by decompiler - (atest-tra gs-adcmd :inline :offset-assert 128) - (atest-def gs-adcmd :inline :offset-assert 144) + (vector vector 10 :inline :offset 0) ;; guessed by decompiler + (quads uint128 10 :offset 0) ;; guessed by decompiler + (adgif gs-gif-tag :inline :offset 0) ;; gs-gif-tag :inline + (strgif gs-gif-tag :inline :offset 16) ;; gs-gif-tag :inline + (extra vector :inline :offset 32) ;; vector :inline + (gifbufs vector :inline :offset 48) ;; vector :inline + (clrbufs qword :inline :offset 64) + (misc qword :inline :offset 80) + (atestgif gs-gif-tag :inline :offset 96) ;; gs-gif-tag :inline + (alpha gs-adcmd :inline :offset 112) ;; gs-adcmd :inline + (atest gs-adcmd 2 :inline :offset 128 :score -1) ;; guessed by decompiler + (atest-tra gs-adcmd :inline :offset 128) + (atest-def gs-adcmd :inline :offset 144) ) :method-count-assert 9 :size-assert #xa0 :flag-assert #x9000000a0 ) -|# #| (deftype drawable-inline-array-instance-tie (drawable-inline-array) @@ -37258,14 +37344,14 @@ ) |# -;; (define-extern tie-vu1-block object) ;; vu-function -;; (define-extern tie-init-consts function) ;; (function tie-consts gs-alpha gs-test gs-test none) -;; (define-extern tie-init-engine function) ;; (function dma-buffer gs-alpha gs-test gs-test none) -;; (define-extern tie-end-buffer function) ;; (function dma-buffer none) -;; (define-extern tie-int-reg function) ;; (function int string) -;; (define-extern tie-float-reg function) ;; (function int string) -;; (define-extern tie-ints function) ;; (function none) -;; (define-extern tie-floats function) ;; (function none) +(define-extern tie-vu1-block vu-function) +(define-extern tie-init-consts "Set up tie-consts for VU1" (function tie-consts gs-alpha gs-test gs-test none)) +(define-extern tie-init-engine "Set up DMA to initialize TIE vu1." (function dma-buffer gs-alpha gs-test gs-test none)) +(define-extern tie-end-buffer "Set up DMA to finish TIE." (function dma-buffer none)) +(define-extern tie-int-reg "Get the name of TIE VU1 program integer register." (function int string)) +(define-extern tie-float-reg "Get the name of TIE VU1 program float register." (function int string)) +(define-extern tie-ints "Dump TIE integer regs for debug." (function none)) +(define-extern tie-floats "Dump TIE float regs for debug." (function none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; etie-vu1 ;; @@ -37314,7 +37400,6 @@ ;; etie-near-vu1 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype etn-consts (structure) ((gifbufs qword :inline :offset-assert 0) (adgif qword :inline :offset-assert 16) @@ -37332,24 +37417,20 @@ :size-assert #xf0 :flag-assert #x9000000f0 ) -|# -#| (deftype etn-matrix (structure) ((rmtx matrix :inline :offset-assert 0) (nmtx matrix3 :inline :offset-assert 64) - (morph float :offset-assert 76) - (fog float :offset-assert 92) - (fade uint32 :offset-assert 108) + (morph float :offset 76) + (fog float :offset 92) + (fade uint32 :offset 108) (tint qword :inline :offset-assert 112) ) :method-count-assert 9 :size-assert #x80 :flag-assert #x900000080 ) -|# -#| (deftype etn-vtx (structure) ((pos vector :inline :offset-assert 0) (clr vector :inline :offset-assert 16) @@ -37360,9 +37441,7 @@ :size-assert #x40 :flag-assert #x900000040 ) -|# -#| (deftype etn-plane (structure) ((point uint32 :offset-assert 0) (prev uint32 :offset-assert 4) @@ -37375,9 +37454,8 @@ :size-assert #x90 :flag-assert #x900000090 ) -|# -;; (define-extern etn-vu1-block object) +(define-extern etn-vu1-block vu-function) ;; (define-extern etn-magic function) ;; (define-extern etn-init-consts function) ;; (define-extern etn-init-engine function) @@ -37470,8 +37548,8 @@ ;; trajectory ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern traj2d-calc-initial-speed-using-tilt function) ;; (function traj2d-params symbol) -;; (define-extern traj3d-calc-initial-velocity-using-tilt function) ;; (function traj3d-params symbol) +(define-extern traj2d-calc-initial-speed-using-tilt (function traj2d-params symbol)) ;; +(define-extern traj3d-calc-initial-velocity-using-tilt (function traj3d-params symbol)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sparticle-launcher ;; @@ -37553,24 +37631,24 @@ (define-extern part-group-pointer? (function pointer symbol)) ;; ;; (define-extern unlink-part-group-by-heap function) ;; (function kheap int) ;; (define-extern sp-init-fields! function) ;; (function (pointer float) (inline-array sp-field-init-spec) sp-field-id sp-field-id symbol (inline-array sp-field-init-spec)) -;; (define-extern *sp-launcher-lock* object) ;; symbol +(define-extern *sp-launcher-lock* symbol) ;; ;; (define-extern *sp-launch-queue* object) ;; sp-launch-queue ;; (define-extern *sp-launcher-enable* object) ;; symbol ;; (define-extern particle-setup-adgif function) ;; (function adgif-shader int none) ;; (define-extern *particle-adgif-cache* object) ;; particle-adgif-cache ;; (define-extern particle-adgif-cache-flush function) ;; (function none) ;; (define-extern particle-adgif function) ;; (function adgif-shader texture-id none) -;; (define-extern particle-adgif-callback function) ;; (function adgif-shader texture-id none) +(define-extern particle-adgif-callback (function adgif-shader texture-id none)) ;; ;; (define-extern sp-queue-launch function) ;; (function sparticle-system sparticle-launcher matrix int) ;; (define-extern sp-adjust-launch function) ;; (function sparticle-launchinfo sparticle-cpuinfo (inline-array sp-field-init-spec) matrix symbol none) ;; (define-extern sp-euler-convert function) ;; (function sparticle-launchinfo sparticle-cpuinfo none) ;; (define-extern sp-rotate-system function) ;; (function sparticle-launchinfo sparticle-cpuinfo transformq none) (define-extern sp-launch-particles-var (function sparticle-system sparticle-launcher matrix sparticle-launch-state sparticle-launch-control float none)) ;; ;; (define-extern *death-adgif* object) ;; adgif-shader -;; (define-extern sp-launch-particles-death function) ;; (function sparticle-system sparticle-launcher vector none) -;; (define-extern sp-clear-queue function) ;; (function none) +(define-extern sp-launch-particles-death (function sparticle-system sparticle-launcher vector none)) ;; +(define-extern sp-clear-queue (function none)) ;; ;; (define-extern sp-relaunch-setup-fields function) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) -;; (define-extern sp-relaunch-particle-2d function) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-2d none) +(define-extern sp-relaunch-particle-2d (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-2d none)) ;; ;; (define-extern sp-relaunch-particle-3d function) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) ;; (define-extern get-matching-control-table-index function) ;; (define-extern kill-all-particles-with-control function) @@ -37611,7 +37689,7 @@ ;; (define-extern birth-func-set-parent-pntr function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) ;; (define-extern birth-func-get-parent-quat function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) ;; (define-extern spt-func-camera-facing-orbiter function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo quaternion) -;; (define-extern *particle-birth-work* object) +(define-extern *particle-birth-work* particle-birth-work) ;; (define-extern birth-func-set-quat function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) ;; (define-extern birth-func-add-vel function) ;; (define-extern birth-func-set-vel function) ;; (function object sparticle-cpuinfo sparticle-launchinfo none) @@ -37639,36 +37717,36 @@ ;; sparticle ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern sp-particle-copy! function) ;; (function sparticle-cpuinfo sparticle-cpuinfo none) +(define-extern sp-particle-copy! (function sparticle-cpuinfo sparticle-cpuinfo none)) (define-extern *sp-particle-system-2d* sparticle-system) (define-extern *sp-particle-system-3d* sparticle-system) -;; (define-extern sp-get-block-size function) ;; (function sparticle-system int int) -;; (define-extern sp-get-approx-alloc-size function) ;; (function sparticle-system int int) -;; (define-extern sp-free-particle function) ;; (function sparticle-system int sparticle-cpuinfo sprite-vec-data-2d none) -;; (define-extern sp-get-particle function) ;; (function sparticle-system int sparticle-launch-state sparticle-cpuinfo) +(define-extern sp-get-block-size (function sparticle-system int int)) +(define-extern sp-get-approx-alloc-size (function sparticle-system int int)) +(define-extern sp-free-particle (function sparticle-system int sparticle-cpuinfo sprite-vec-data-2d none)) +(define-extern sp-get-particle (function sparticle-system int sparticle-launch-state sparticle-cpuinfo)) (define-extern sp-kill-particle (function sparticle-system sparticle-cpuinfo symbol)) ;; -;; (define-extern sp-orbiter function) ;; (function sparticle-system sparticle-cpuinfo vector none) -;; (define-extern sp-process-block-2d function) ;; (function sparticle-system int int int int symbol none) -;; (define-extern sp-process-block-3d function) ;; (function sparticle-system int int int int symbol none) -;; (define-extern sp-copy-to-spr function) ;; (function int pointer int none) -;; (define-extern sp-copy-from-spr function) ;; (function int pointer int none) -;; (define-extern memcpy function) ;; (function pointer pointer none) -;; (define-extern sp-process-block function) ;; (function sparticle-system int sprite-array-2d int none) -;; (define-extern sp-process-particle-system function) ;; (function sparticle-system int sprite-array-2d none) -;; (define-extern *particles-flag* object) ;; symbol -;; (define-extern forall-particles-with-control-runner function) -;; (define-extern forall-particles-with-control function) -;; (define-extern sparticle-kill-it function) ;; (function sparticle-system sparticle-cpuinfo none) -;; (define-extern sparticle-60-to-50 function) ;; (function sparticle-system sparticle-cpuinfo pointer none) -;; (define-extern sparticle-50-to-60 function) ;; (function sparticle-system sparticle-cpuinfo pointer none) -;; (define-extern forall-particles-runner function) ;; (function (function sparticle-system sparticle-cpuinfo pointer none) sparticle-system none) -;; (define-extern forall-particles function) ;; (function function symbol symbol none) -;; (define-extern all-particles-50-to-60 function) ;; (function none) -;; (define-extern all-particles-60-to-50 function) ;; (function none) -;; (define-extern remap-particle function) ;; (function sparticle-system sparticle-cpuinfo pointer none) -;; (define-extern remap-all-particles function) ;; (function none) -;; (define-extern process-particles function) ;; (function none) -;; (define-extern spt-func-on-omega-height-die function) +(define-extern sp-orbiter (function sparticle-system sparticle-cpuinfo vector none)) +(define-extern sp-process-block-2d (function sparticle-system int int int int symbol none)) +(define-extern sp-process-block-3d (function sparticle-system int int int int symbol none)) +(define-extern sp-copy-to-spr (function int pointer int none)) +(define-extern sp-copy-from-spr (function int pointer int none)) +(define-extern memcpy (function pointer pointer none)) +(define-extern sp-process-block (function sparticle-system int sprite-array-2d int none)) +(define-extern sp-process-particle-system (function sparticle-system int sprite-array-2d none)) +(define-extern *particles-flag* symbol) ;; +(define-extern forall-particles-with-control-runner (function object (function sparticle-system sparticle-cpuinfo pointer none) sparticle-system none)) +(define-extern forall-particles-with-control (function object object symbol symbol none)) +(define-extern sparticle-kill-it (function sparticle-system sparticle-cpuinfo none)) +(define-extern sparticle-60-to-50 (function sparticle-system sparticle-cpuinfo pointer none)) +(define-extern sparticle-50-to-60 (function sparticle-system sparticle-cpuinfo pointer none)) +(define-extern forall-particles-runner (function (function sparticle-system sparticle-cpuinfo pointer none) sparticle-system none)) +(define-extern forall-particles (function function symbol symbol none)) +(define-extern all-particles-50-to-60 (function none)) +(define-extern all-particles-60-to-50 (function none)) +(define-extern remap-particle (function sparticle-system sparticle-cpuinfo pointer none)) +(define-extern remap-all-particles (function none)) +(define-extern process-particles (function none)) +(define-extern spt-func-on-omega-height-die (function sparticle-system sparticle-cpuinfo vector none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; entity-table ;; @@ -37931,9 +38009,9 @@ :flag-assert #x900000004 ) -;; (define-extern set-movie-time! function) -;; (define-extern set-movie-fog! function) -;; (define-extern set-movie-color! function) +(define-extern set-movie-time! (function int int time-of-day-palette-id none)) +(define-extern set-movie-fog! (function vector float float float float none)) +(define-extern set-movie-color! (function vector vector none)) (define-extern palette-select-special (function mood-context-core3 symbol)) (define-extern clear-mood-times (function mood-context symbol)) (define-extern update-mood-itimes (function mood-context none)) @@ -37962,7 +38040,7 @@ (define-extern update-mood-strobe (function mood-context int int int float float)) (define-extern update-mood-caustics (function mood-context int float float float float float)) ;; (define-extern override-mood-fog function) -;; (define-extern override-mood-color function) +(define-extern override-mood-color (function mood-context object int float none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; mood-funcs ;; @@ -38115,16 +38193,16 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-extern *sky-work* sky-work) -;; (define-extern sky-base-polygons object) ;; (inline-array sky-vertex) -;; (define-extern sky-roof-polygons object) ;; (inline-array sky-vertex) -;; (define-extern *cloud-vert-array* object) ;; cloud-vert-array -;; (define-extern *cloud-poly* object) ;; (inline-array sky-vertex) -;; (define-extern init-cloud-vert-array function) ;; (function symbol) -;; (define-extern *haze-vert-array* object) ;; haze-vert-array -;; (define-extern *haze-poly* object) ;; (inline-array sky-vertex) -;; (define-extern init-haze-vert-array function) ;; (function symbol) -;; (define-extern sky-make-sun-data function) ;; (function sky-work int float none) -;; (define-extern sky-make-moon-data function) ;; (function sky-work float none) +(define-extern sky-base-polygons (inline-array sky-vertex)) ;; +(define-extern sky-roof-polygons (inline-array sky-vertex)) +(define-extern *cloud-vert-array* cloud-vert-array) +(define-extern *cloud-poly* (inline-array sky-vertex)) +(define-extern init-cloud-vert-array (function symbol)) +(define-extern *haze-vert-array* haze-vert-array) +(define-extern *haze-poly* (inline-array sky-vertex)) +(define-extern init-haze-vert-array (function symbol)) +(define-extern sky-make-sun-data (function sky-work int float none)) +(define-extern sky-make-moon-data (function sky-work float none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sky-tng ;; @@ -38136,7 +38214,7 @@ ;; (define-extern clip-polygon-against-negative-hyperplane function) ;; (define-extern render-sky-quad function) ;; (function (inline-array sky-vertex) dma-buffer none) ;; (define-extern render-sky-tri function) ;; (function (inline-array sky-vertex) dma-buffer none) -;; (define-extern close-sky-buffer function) ;; (function dma-buffer none) +(define-extern close-sky-buffer (function dma-buffer none)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; load-state ;; @@ -38591,7 +38669,7 @@ ;; (define-extern testlow level-load-info) ;; (define-extern henry level-load-info) ;; (define-extern chartest level-load-info) ;; level-load-info -;; (define-extern *level-load-list* object) ;; pair +(define-extern *level-load-list* pair) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; level ;; @@ -38600,7 +38678,7 @@ ;; (define-extern *max-dma* object) ;; int ;; (define-extern *cached-car-level-index* object) ;; (define-extern level-memory-mode->string function) ;; (function level-memory-mode string) -;; (define-extern lookup-level-info function) ;; (function symbol level-load-info) +(define-extern lookup-level-info (function symbol level-load-info)) ;; ;; (define-extern remap-level-name function) ;; (function level-load-info symbol) ;; (define-extern add-bsp-drawable function) ;; (function bsp-header level symbol display-frame none) ;; (define-extern *login-state* object) ;; login-state @@ -38624,69 +38702,67 @@ ;; text ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| -(deftype print-game-text-work (structure) - ((context font-context :inline :offset-assert 4) - (xpos float :offset-assert 188) - (ypos float :offset-assert 192) - (y-spacing-scaled float :offset-assert 196) - (space-size float :offset-assert 200) - (hyphen-size float :offset-assert 204) - (copy-test basic :offset-assert 208) - (dry-run basic :offset-assert 212) - (string-count int32 :offset-assert 216) - (dest-count int32 :offset-assert 220) - (last-space-count int32 :offset-assert 224) - (line-count float :offset-assert 228) - (word-count int32 :offset-assert 232) - (line-word-count int32 :offset-assert 236) - (ret float :offset-assert 240) - (dma-buf basic :offset-assert 244) - ) - :method-count-assert 9 - :size-assert #xf4 - :flag-assert #x9000000f4 - ) -|# +;; (deftype print-game-text-work (structure) +;; (context font-context :inline :offset-assert 4) +;; (xpos float :offset-assert 188) +;; (ypos float :offset-assert 192) +;; (y-spacing-scaled float :offset-assert 196) +;; (space-size float :offset-assert 200) +;; (hyphen-size float :offset-assert 204) +;; (copy-test basic :offset-assert 208) +;; (dry-run basic :offset-assert 212) +;; (string-count int32 :offset-assert 216) +;; (dest-count int32 :offset-assert 220) +;; (last-space-count int32 :offset-assert 224) +;; (line-count float :offset-assert 228) +;; (word-count int32 :offset-assert 232) +;; (line-word-count int32 :offset-assert 236) +;; (ret float :offset-assert 240) +;; (dma-buf basic :offset-assert 244) +;; ) +;; :allow-misaligned +;; :method-count-assert 9 +;; :size-assert #xf4 +;; :flag-assert #x9000000f4 +;; ) ;; game-text-info is already defined! -;; (define-extern *expand-buf-number* object) ;; int -;; (define-extern *game-text-word* object) ;; string -;; (define-extern *hyphen-text-word* object) -;; (define-extern *game-text-string* object) -;; (define-extern *expanded-text-line0* object) ;; string -;; (define-extern *expanded-text-line1* object) ;; string -;; (define-extern *tmp-convert-string* object) -;; (define-extern *level-text-file-load-flag* object) ;; symbol -;; (define-extern convert-korean-text function) ;; (function string string) -;; (define-extern text-is-loading object) ;; symbol -;; (define-extern load-game-text-info function) ;; (function string (pointer object) kheap int) -;; (define-extern load-level-text-files function) ;; (function int none) -;; (define-extern draw-debug-text-box function) ;; (function font-context none) +(define-extern *expand-buf-number* int) +(define-extern *game-text-word* string) +(define-extern *hyphen-text-word* string) +(define-extern *game-text-string* string) +(define-extern *expanded-text-line0* string) +(define-extern *expanded-text-line1* string) +(define-extern *tmp-convert-string* string) +(define-extern *level-text-file-load-flag* symbol) ;; +(define-extern convert-korean-text (function string string)) ;; +(define-extern text-is-loading symbol) ;; +(define-extern load-game-text-info (function string (pointer object) kheap int)) ;; +(define-extern load-level-text-files (function int none)) ;; +(define-extern draw-debug-text-box (function font-context none)) ;; ;; (define-extern *print-game-text-work* object) ;; (define-extern hyphenate-word function) -;; (define-extern print-game-text function) ;; (function string font-context symbol int bucket-id float) -;; (define-extern disable-level-text-file-loading function) ;; (function none) -;; (define-extern enable-level-text-file-loading function) ;; (function none) +(define-extern print-game-text (function string font-context symbol int bucket-id float)) ;; +(define-extern disable-level-text-file-loading (function none)) ;; +(define-extern enable-level-text-file-loading (function none)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; collide-hash ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern add-collide-debug-box function) ;; (function vector rgba none) -;; (define-extern print-collide-cache-tri-count function) ;; (function none) -;; (define-extern print-exceeded-max-cache-tris function) ;; (function none) -;; (define-extern fill-bg-using-box-new function) ;; (function collide-cache object collide-query none) -;; (define-extern fill-bg-using-line-sphere-new function) ;; (function collide-cache object collide-query none) -;; (define-extern collide-list-fill-bg-using-box function) ;; (function collide-cache collide-list collide-query none) -;; (define-extern collide-list-fill-bg-using-line-sphere function) ;; (function collide-cache collide-list collide-query none) +(define-extern add-collide-debug-box (function vector rgba none)) +(define-extern print-collide-cache-tri-count (function collide-cache none)) +(define-extern print-exceeded-max-cache-tris (function none)) +(define-extern fill-bg-using-box-new (function collide-cache object collide-query none)) +(define-extern fill-bg-using-line-sphere-new (function collide-cache object collide-query none)) +(define-extern collide-list-fill-bg-using-box (function collide-cache collide-list collide-query none)) +(define-extern collide-list-fill-bg-using-line-sphere (function collide-cache collide-list collide-query none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; collide-probe ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype collide-probe-stack-elem (structure) ((child uint32 :offset-assert 0) (count uint32 :offset-assert 4) @@ -38695,40 +38771,37 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype collide-probe-stack (structure) - ((data collide-probe-stack-elem 1024 :offset-assert 0) ;; guessed by decompiler + ((data collide-probe-stack-elem 1024 :inline :offset-assert 0) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x4000 :flag-assert #x900004000 ) -|# -;; (define-extern creates-new-method? function) ;; (function type int symbol) -;; (define-extern overrides-parent-method? function) ;; (function type int symbol) -;; (define-extern describe-methods function) ;; (function type symbol) -;; (define-extern indent-to function) ;; (function int none) -;; (define-extern probe-traverse-draw-node function) ;; (function draw-node int none) -;; (define-extern probe-traverse-inline-array-node function) ;; (function drawable-inline-array-node int none) -;; (define-extern probe-traverse-collide-fragment function) ;; (function drawable-tree-collide-fragment int none) -;; (define-extern *collide-probe-stack* object) ;; collide-probe-stack -;; (define-extern collide-vu0-block object) ;; vu-function -;; (define-extern collide-probe-node function) ;; (function (inline-array draw-node) int collide-list int) -;; (define-extern print-out function) ;; (function int object) -;; (define-extern collide-probe-instance-tie-collide-frags function) ;; (function none) -;; (define-extern collide-probe-instance-tie function) ;; (function object int collide-list int int) -;; (define-extern collide-probe-collide-fragment-tree-make-list function) ;; (function drawable-tree-collide-fragment collide-list none) -;; (define-extern collide-probe-instance-tie-tree-make-list function) ;; (function drawable-tree-instance-tie collide-list int) -;; (define-extern collide-upload-vu0 function) ;; (function none) -;; (define-extern collide-probe-make-list function) ;; (function level collide-list none) -;; (define-extern distc function) ;; (function vector vector float) -;; (define-extern interpolate function) ;; (function float float float float float float) -;; (define-extern misty-ambush-height function) ;; (function vector float) -;; (define-extern misty-ambush-height-probe function) ;; (function vector float float) -;; (define-extern pke-collide-test function) ;; (function none) +(define-extern creates-new-method? (function type int symbol)) +(define-extern overrides-parent-method? (function type int symbol)) +(define-extern describe-methods (function type symbol)) +(define-extern indent-to (function int none)) +(define-extern probe-traverse-draw-node (function draw-node int none)) +(define-extern probe-traverse-inline-array-node (function drawable-inline-array-node int none)) +(define-extern probe-traverse-collide-fragment (function drawable-tree-collide-fragment int none)) +(define-extern *collide-probe-stack* collide-probe-stack) +(define-extern collide-vu0-block vu-function) +(define-extern collide-probe-node (function (inline-array draw-node) int collide-list int)) +(define-extern print-out (function int object)) +(define-extern collide-probe-instance-tie-collide-frags (function none)) +(define-extern collide-probe-instance-tie (function object int collide-list int int)) +(define-extern collide-probe-collide-fragment-tree-make-list (function drawable-tree-collide-fragment collide-list none)) +(define-extern collide-probe-instance-tie-tree-make-list (function drawable-tree-instance-tie collide-list int)) +(define-extern collide-upload-vu0 (function none)) +(define-extern collide-probe-make-list (function level collide-list none)) +(define-extern distc (function vector vector float)) +(define-extern interpolate (function float float float float float float)) +(define-extern misty-ambush-height (function vector float)) +(define-extern misty-ambush-height-probe (function vector float float)) +(define-extern pke-collide-test (function none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; collide-frag ;; @@ -38787,7 +38860,7 @@ :flag-assert #x900000008 ) -;; (define-extern get-intersect-point function) ;; (function vector touching-prims-entry collide-shape touching-shapes-entry vector) +(define-extern get-intersect-point (function vector touching-prims-entry collide-shape touching-shapes-entry vector)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; collide-shape ;; @@ -38795,8 +38868,8 @@ ;; (define-extern find-ground-point function) ;; (function control-info vector float float vector) ;; (define-extern collide-shape-moving-angle-set! function) ;; (function collide-shape-moving vector vector none) -;; (define-extern cshape-reaction-update-state function) ;; (function control-info collide-query vector none) -;; (define-extern cshape-reaction-default function) ;; (function control-info collide-query vector vector collide-status) +(define-extern cshape-reaction-update-state (function control-info collide-query vector none)) ;; +(define-extern cshape-reaction-default (function control-info collide-query vector vector collide-status)) ;; ;; (define-extern cshape-reaction-just-move function) ;; (function control-info collide-query vector collide-status) ;; (define-extern collide-shape-draw-debug-marks function) ;; (function none) ;; (define-extern *col-timer* object) ;; stopwatch @@ -38813,16 +38886,16 @@ ;; collide ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *collide-vif0-init* array) ;; (array uint32) +(define-extern *collide-vif0-init* (array uint32)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; collide-planes ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern collide-planes-intersect function) -;; (define-extern collide-planes-test0 function) -;; (define-extern collide-planes-test1 function) -;; (define-extern collide-planes function) +(define-extern collide-planes-intersect (function none)) +(define-extern collide-planes-test0 (function none)) +(define-extern collide-planes-test1 (function none)) +(define-extern collide-planes (function (inline-array vector) int none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; spatial-hash ;; @@ -38900,7 +38973,7 @@ ) |# -;; (define-extern *actor-hash* object) ;; spatial-hash +(define-extern *actor-hash* spatial-hash) ;; ;; (define-extern *actor-hash-buckets* object) ;; actor-hash-buckets ;; (define-extern update-actor-hash function) ;; (function none) @@ -38908,102 +38981,100 @@ ;; merc-death ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *merc-death-globals* object) ;; vector -;; (define-extern birth-func-death-sparks function) ;; (function none) -;; (define-extern death-seed death-info) ;; death-info -;; (define-extern start-seed-effect function) ;; (function process-drawable vector cspace none) -;; (define-extern death-default death-info) ;; death-info -;; (define-extern death-warp-in death-info) ;; death-info -;; (define-extern death-warp-out death-info) ;; death-info -;; (define-extern sparticle-texture-glow-soft function) ;; (function sparticle-system sparticle-cpuinfo vector none) -;; (define-extern merc-death-spawn function) ;; (function int vector vector none) +(define-extern *merc-death-globals* vector) +(define-extern birth-func-death-sparks (function none)) +(define-extern death-seed death-info) +(define-extern start-seed-effect (function process-drawable vector cspace none)) +(define-extern death-default death-info) +(define-extern death-warp-in death-info) +(define-extern death-warp-out death-info) +(define-extern sparticle-texture-glow-soft (function sparticle-system sparticle-cpuinfo vector none)) +(define-extern merc-death-spawn (function int vector vector none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; water-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (deftype water-control (basic) -;; ((flags water-flag :offset-assert 4) -;; (process target :offset-assert 8) ;; guessed by decompiler -;; (joint-index int32 :offset-assert 12) -;; (top-y-offset float :offset-assert 16) -;; (attack-id uint32 :offset-assert 20) -;; (enter-water-time uint64 :offset-assert 24) ;; time-frame -;; (wade-time uint64 :offset-assert 32) ;; time-frame -;; (on-water-time uint64 :offset-assert 40) ;; time-frame -;; (enter-swim-time uint64 :offset-assert 48) ;; time-frame -;; (swim-time uint64 :offset-assert 56) ;; time-frame -;; (base-height meters :offset-assert 64) -;; (wade-height meters :offset-assert 68) -;; (swim-height meters :offset-assert 72) -;; (surface-height meters :offset-assert 76) -;; (bottom-height meters :offset-assert 80) -;; (collide-height meters :offset-assert 84) -;; (height meters :offset-assert 88) -;; (height-offset float 4 :offset-assert 92) ;; guessed by decompiler -;; (base-ocean-offset meters :offset 92) -;; (real-ocean-offset meters :offset 92) -;; (ocean-offset meters :offset 96) -;; (bob-offset meters :offset 100) -;; (align-offset meters :offset 104) -;; (swim-depth meters :offset 108) -;; (bob smush-control :inline :offset-assert 112) -;; (ripple uint64 :offset-assert 144) ;; handle -;; (ripple-size meters :offset-assert 152) -;; (wake-size meters :offset-assert 156) -;; (bottom vector 2 :inline :offset-assert 160) ;; guessed by decompiler -;; (top vector 2 :inline :offset-assert 192) ;; guessed by decompiler -;; (enter-water-pos vector :inline :offset-assert 224) -;; (drip-old-pos vector :inline :offset-assert 240) -;; (drip-joint-index int32 :offset-assert 256) -;; (drip-wetness float :offset-assert 260) -;; (drip-time uint64 :offset-assert 264) ;; time-frame -;; (drip-speed float :offset-assert 272) -;; (drip-height meters :offset-assert 276) -;; (drip-mult float :offset-assert 280) -;; (distort-time uint64 :offset-assert 288) ;; time-frame -;; (enter-water-sound uint16 :offset-assert 296) ;; sound-name -;; (normal vector :inline :offset-assert 304) -;; ) -;; :method-count-assert 18 -;; :size-assert #x140 -;; :flag-assert #x1200000140 -;; (:methods -;; (new (symbol type) _type_) ;; 0 ;; (new (symbol type process int float float float) _type_) -;; (water-control-method-9 () none) ;; 9 ;; (water-control-method-9 (_type_) none) -;; (water-control-method-10 () none) ;; 10 ;; (water-control-method-10 (_type_) none) -;; (water-control-method-11 () none) ;; 11 ;; (start-bobbing! (_type_ float int int) none) -;; (water-control-method-12 () none) ;; 12 ;; (distance-from-surface (_type_) float) -;; (water-control-method-13 () none) ;; 13 ;; (spawn-ripples (_type_ float vector int vector symbol) none) -;; (water-control-method-14 () none) ;; 14 ;; (display-water-marks? (_type_) symbol) -;; (water-control-method-15 () none) ;; 15 ;; (enter-water (_type_) none) -;; (water-control-method-16 () none) ;; 16 ;; (water-control-method-16 (_type_) none) -;; (water-control-method-17 () none) ;; 17 ;; (water-control-method-17 (_type_) none) -;; ) -;; ) +(deftype water-control (basic) + ((flags water-flag :offset-assert 4) + (process target :offset-assert 8) ;; guessed by decompiler + (joint-index int32 :offset-assert 12) + (top-y-offset float :offset-assert 16) + (attack-id uint32 :offset-assert 20) + (enter-water-time uint64 :offset-assert 24) ;; time-frame + (wade-time uint64 :offset-assert 32) ;; time-frame + (on-water-time uint64 :offset-assert 40) ;; time-frame + (enter-swim-time uint64 :offset-assert 48) ;; time-frame + (swim-time uint64 :offset-assert 56) ;; time-frame + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (collide-height meters :offset-assert 84) + (height meters :offset-assert 88) + (height-offset float 4 :offset-assert 92) ;; guessed by decompiler + (base-ocean-offset meters :offset 92) + (real-ocean-offset meters :offset 92) + (ocean-offset meters :offset 96) + (bob-offset meters :offset 100) + (align-offset meters :offset 104) + (swim-depth meters :offset 108) + (bob smush-control :inline :offset-assert 112) + (ripple uint64 :offset-assert 144) ;; handle + (ripple-size meters :offset-assert 152) + (wake-size meters :offset-assert 156) + (bottom vector 2 :inline :offset-assert 160) ;; guessed by decompiler + (top vector 2 :inline :offset-assert 192) ;; guessed by decompiler + (enter-water-pos vector :inline :offset-assert 224) + (drip-old-pos vector :inline :offset-assert 240) + (drip-joint-index int32 :offset-assert 256) + (drip-wetness float :offset-assert 260) + (drip-time uint64 :offset-assert 264) ;; time-frame + (drip-speed float :offset-assert 272) + (drip-height meters :offset-assert 276) + (drip-mult float :offset-assert 280) + (distort-time uint64 :offset-assert 288) ;; time-frame + (enter-water-sound uint16 :offset-assert 296) ;; sound-name + (normal vector :inline :offset-assert 304) + ) + :method-count-assert 18 + :size-assert #x140 + :flag-assert #x1200000140 + (:methods + (new (symbol type process int float float float) _type_) + (water-control-method-9 () none) ;; 9 ;; (water-control-method-9 (_type_) none) + (water-control-method-10 () none) ;; 10 ;; (water-control-method-10 (_type_) none) + (water-control-method-11 () none) ;; 11 ;; (start-bobbing! (_type_ float int int) none) + (distance-from-surface (_type_) float) + (water-control-method-13 () none) ;; 13 ;; (spawn-ripples (_type_ float vector int vector symbol) none) + (display-water-marks? (_type_) symbol) + (water-control-method-15 () none) ;; 15 ;; (enter-water (_type_) none) + (water-control-method-16 () none) ;; 16 ;; (water-control-method-16 (_type_) none) + (water-control-method-17 () none) ;; 17 ;; (water-control-method-17 (_type_) none) + ) + ) -#| (deftype water-vol (process-hidden) () :method-count-assert 16 :size-assert #x90 :flag-assert #x1000000090 ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; camera ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern cam-slave-get-vector-with-offset function) ;; (function entity-actor vector symbol symbol) -;; (define-extern cam-slave-get-flags function) ;; (function entity symbol uint) -;; (define-extern cam-slave-get-float function) ;; (function entity symbol float float) -;; (define-extern cam-slave-get-fov function) ;; (function entity float) -;; (define-extern cam-slave-get-intro-step function) ;; (function entity float) -;; (define-extern cam-slave-get-interp-time function) ;; (function entity float) -;; (define-extern cam-slave-get-rot function) ;; (function entity-actor matrix matrix) -;; (define-extern cam-state-from-entity function) ;; (function entity (state camera-slave)) +(define-extern cam-slave-get-vector-with-offset (function entity-actor vector symbol symbol)) +(define-extern cam-slave-get-flags (function entity symbol uint)) +(define-extern cam-slave-get-float (function entity symbol float float)) ;; +(define-extern cam-slave-get-fov (function entity float)) ;; +(define-extern cam-slave-get-intro-step (function entity float)) +(define-extern cam-slave-get-interp-time (function entity float)) +(define-extern cam-slave-get-rot (function entity-actor matrix matrix)) +(define-extern cam-state-from-entity (function entity (state camera-slave))) ;; (define-extern parameter-ease-none function) ;; (function object object) ;; (define-extern parameter-ease-clamp function) ;; (function float float) ;; (define-extern parameter-ease-lerp-clamp function) ;; (function float float) @@ -39016,15 +39087,15 @@ ;; (define-extern *cam-res-string* object) ;; string ;; (define-extern cam-slave-init-vars function) ;; (function none :behavior camera-slave) ;; (define-extern cam-slave-go function) ;; (function (state camera-slave) none :behavior camera-slave) -;; (define-extern cam-slave-init function) ;; (function (state camera-slave) entity none :behavior camera-slave) +(define-extern cam-slave-init (function (state camera-slave) entity none :behavior camera-slave)) ;; ;; (define-extern cam-standard-event-handler function) ;; (function process int symbol event-message-block object :behavior camera-slave) ;; (define-extern cam-curve-pos function) ;; (function vector vector curve symbol vector :behavior camera-slave) ;; (define-extern cam-curve-setup function) ;; (function vector none :behavior camera-slave) -;; (define-extern cam-calc-follow! function) ;; (function cam-rotation-tracker vector symbol vector) +(define-extern cam-calc-follow! (function cam-rotation-tracker vector symbol vector)) ;; ;; (define-extern mat-remove-z-rot function) ;; (function matrix vector matrix) ;; (define-extern slave-matrix-blend-2 function) ;; (function matrix cam-slave-options-u32 vector matrix matrix) ;; (define-extern vector-into-frustum-nosmooth! function) ;; (function matrix vector float vector) -;; (define-extern slave-set-rotation! function) ;; (function cam-rotation-tracker vector cam-slave-options-u32 float symbol none) +(define-extern slave-set-rotation! (function cam-rotation-tracker vector cam-slave-options-u32 float symbol none)) ;; ;; (define-extern v-slrp2! function) ;; (function vector vector vector float vector float vector) ;; (define-extern v-slrp3! function) ;; (function vector vector vector vector float vector) @@ -39045,7 +39116,7 @@ ;; (define-extern math-camera-nearest function) ;; (define-extern math-camera-nearest-matrix function) ;; (define-extern math-camera-nearest-dist function) -;; (define-extern camera-matrix function) ;; (function matrix) +(define-extern camera-matrix (function matrix)) ;; (define-extern math-camera-matrix (function matrix)) ;; ;; (define-extern camera-angle function) ;; (function float) ;; (define-extern camera-teleport-to-entity function) ;; (function entity-actor symbol :behavior process) @@ -39056,77 +39127,84 @@ ;; cam-master ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern reset-follow function) ;; (function symbol object :behavior camera-master) -;; (define-extern reset-target-tracking function) ;; (function object :behavior camera-master) -;; (define-extern master-track-target function) ;; (function object :behavior camera-master) -;; (define-extern setup-slave-for-hopefull function) ;; (function camera-slave none) -;; (define-extern master-is-hopeful-better? function) ;; (function camera-slave camera-slave symbol :behavior camera-master) -;; (define-extern master-choose-entity function) ;; (function cam-setting-data symbol :behavior camera-master) -;; (define-extern cam-master-set-entity function) ;; (function cam-setting-data none) -;; (define-extern cam-master-activate-slave function) ;; (function symbol none) -;; (define-extern cam-master-active state) ;; (state camera-master) -;; (define-extern cam-master-init function) ;; (function none :behavior camera-master) +(define-extern reset-follow (function symbol object :behavior camera-master)) +(define-extern reset-target-tracking (function object :behavior camera-master)) +(define-extern master-track-target (function object :behavior camera-master)) +(define-extern setup-slave-for-hopefull (function camera-slave none)) +(define-extern master-is-hopeful-better? (function camera-slave camera-slave symbol :behavior camera-master)) +(define-extern master-choose-entity (function cam-setting-data symbol :behavior camera-master)) +(define-extern cam-master-set-entity (function cam-setting-data none)) +(define-extern cam-master-activate-slave (function symbol none)) +(define-extern cam-master-active (state camera-master)) +(define-extern cam-master-init (function none :behavior camera-master)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; cam-combiner ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern cam-helper-temp function) ;; (function (pointer camera-slave) (pointer camera-slave) float matrix :behavior camera-combiner) -;; (define-extern cam-combiner-active state) ;; (state camera-combiner) -;; (define-extern cam-combiner-init function) ;; (function none :behavior camera-combiner) +(define-extern cam-helper-temp (function (pointer camera-slave) (pointer camera-slave) float matrix :behavior camera-combiner)) +(define-extern cam-combiner-active (state camera-combiner)) +(define-extern cam-combiner-init (function none :behavior camera-combiner)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; cam-update ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern plane-from-points function) ;; (function (inline-array plane) vector vector vector int float) -;; (define-extern set-point function) ;; (function vector float float float float) -;; (define-extern update-view-planes function) ;; (function math-camera (inline-array plane) float matrix float) -;; (define-extern *update-leaf-when-outside-bsp* object) ;; symbol -;; (define-extern update-visible function) ;; (function math-camera symbol) -;; (define-extern *save-camera-inv-rot* object) ;; matrix -;; (define-extern move-camera-from-pad function) ;; (function math-camera math-camera) -;; (define-extern external-cam-reset! function) ;; (function none) -;; (define-extern *start-timer* object) ;; int -;; (define-extern *timer-value* object) ;; int -;; (define-extern *start-pos* object) ;; vector -;; (define-extern update-camera function) ;; (function symbol) -;; (define-extern move-level-by-name function) ;; (function symbol float float float vector) -;; (define-extern execute-cam-post-hook-engine function) ;; (function int) +(define-extern plane-from-points (function (inline-array plane) vector vector vector int float)) +(define-extern set-point (function vector float float float float)) +(define-extern update-view-planes (function math-camera (inline-array plane) float matrix float)) +(define-extern *update-leaf-when-outside-bsp* symbol) +(define-extern update-visible (function math-camera symbol)) +(define-extern *save-camera-inv-rot* matrix) +(define-extern move-camera-from-pad (function math-camera math-camera)) +(define-extern external-cam-reset! (function none)) +(define-extern *start-timer* int) +(define-extern *timer-value* int) +(define-extern *start-pos* vector) +(define-extern update-camera (function symbol)) +(define-extern move-level-by-name (function symbol float float float vector)) +(define-extern execute-cam-post-hook-engine (function int)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; vol-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype plane-volume (structure) ((volume-type symbol :offset-assert 0) ;; guessed by decompiler (point-count int16 :offset-assert 4) (normal-count int16 :offset-assert 6) - (first-point vector :offset-assert 8) ;; (pointer vector) - (first-normal vector :offset-assert 12) ;; (pointer vector) + (first-point (pointer vector) :offset-assert 8) ;; (pointer vector) + (first-normal (pointer vector) :offset-assert 12) ;; (pointer vector) (num-planes int32 :offset-assert 16) (plane (inline-array plane) :offset-assert 20) ;; guessed by decompiler ) + :pack-me :method-count-assert 12 :size-assert #x18 :flag-assert #xc00000018 (:methods - (plane-volume-method-9 () none) ;; 9 ;; (plane-volume-method-9 (_type_ symbol vector-array vector-array) plane-volume) - (plane-volume-method-10 () none) ;; 10 ;; (debug-draw (_type_) none) - (plane-volume-method-11 () none) ;; 11 ;; (point-in-vol? (_type_ vector float) symbol) + (plane-volume-method-9 (_type_ symbol vector-array vector-array) plane-volume) + (debug-draw (_type_) none) + (point-in-vol? (_type_ vector float) symbol) ) ) -|# -#| +;; +++vol-h:vol-flags +(defenum vol-flags + :bitfield #t + :type uint32 + (display?) + (vol-flags-1) + ) +;; ---vol-h:vol-flags + (deftype vol-control (basic) ((flags vol-flags :offset-assert 4) ;; guessed by decompiler (process process-drawable :offset-assert 8) ;; guessed by decompiler (pos-vol-count int32 :offset-assert 12) - (pos-vol plane-volume 32 :offset-assert 16) ;; guessed by decompiler + (pos-vol plane-volume 32 :inline :offset-assert 16) ;; guessed by decompiler (neg-vol-count int32 :offset-assert 784) - (neg-vol plane-volume 32 :offset-assert 788) ;; guessed by decompiler + (neg-vol plane-volume 32 :inline :offset-assert 788) ;; guessed by decompiler (debug-point vector-array :offset-assert 1556) ;; guessed by decompiler (debug-normal vector-array :offset-assert 1560) ;; guessed by decompiler ) @@ -39134,13 +39212,12 @@ :size-assert #x61c :flag-assert #xc0000061c (:methods - (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable) _type_) - (vol-control-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) - (vol-control-method-10 () none) ;; 10 ;; (vol-control-method-10 (_type_ plane) symbol) - (vol-control-method-11 () none) ;; 11 ;; (should-display? (_type_) symbol) + (new (symbol type process-drawable) _type_) + (debug-draw (_type_) none) + (vol-control-method-10 (_type_ plane) symbol) + (should-display? (_type_) symbol) ) ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -39486,12 +39563,12 @@ ;; (define-extern camera-plot-float-func function) ;; (function float float float float (function float float) vector4w none) ;; (define-extern camera-line-setup function) ;; (function vector4w none) ;; (define-extern camera-line-draw function) ;; (function vector vector none) -;; (define-extern camera-line function) ;; (function vector vector vector4w none) +(define-extern camera-line (function vector vector vector4w none)) ;; ;; (define-extern camera-line-rel function) ;; (function vector vector vector4w none) ;; (define-extern camera-line-rel-len function) ;; (function vector vector float vector4w none) ;; (define-extern camera-sphere function) ;; (function vector float vector4w none) -;; (define-extern camera-cross function) ;; (function vector vector vector vector4w meters none) -;; (define-extern camera-bounding-box-draw function) ;; (function bounding-box basic rgba none) +(define-extern camera-cross (function vector vector vector vector4w meters none)) ;; +(define-extern camera-bounding-box-draw (function bounding-box basic rgba none)) ;; ;; (define-extern *cam-debug-los-tri-current* object) ;; int ;; (define-extern *cam-debug-los-tri* object) ;; (inline-array cam-debug-tri) ;; (define-extern *cam-debug-coll-tri-current* object) ;; int @@ -39513,8 +39590,8 @@ ;; (define-extern cam-collision-record-save function) ;; (function vector vector int symbol camera-slave none) ;; (define-extern cam-collision-record-step function) ;; (function int none) ;; (define-extern cam-collision-record-draw function) ;; (function none) -;; (define-extern camera-master-debug function) ;; (function camera-master none) -;; (define-extern debug-set-camera-pos-rot! function) ;; (function vector matrix vector) +(define-extern camera-master-debug (function camera-master none)) ;; +(define-extern debug-set-camera-pos-rot! (function vector matrix vector)) ;; ;; (define-extern cam-restore function) ;; (function none) ;; (define-extern cam-restore-generic-bug function) ;; (function none) @@ -39529,7 +39606,6 @@ ;; cloth-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype stick-constraint (structure) ((constraint-length-half float :offset-assert 0) (one-over-two-times-constraint-length float :offset-assert 4) @@ -39541,9 +39617,7 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype verlet-particle (structure) ((pos vector :inline :offset-assert 0) (prev-pos vector :inline :offset-assert 16) @@ -39553,9 +39627,7 @@ :size-assert #x24 :flag-assert #x900000024 ) -|# -#| (deftype disc-constraint (structure) ((normal vector :inline :offset-assert 0) (origin vector :inline :offset-assert 16) @@ -39567,9 +39639,7 @@ :size-assert #x28 :flag-assert #x900000028 ) -|# -#| (deftype cylinder-constraint (structure) ((c0 vector :inline :offset-assert 0) (norm vector :inline :offset-assert 16) @@ -39580,9 +39650,7 @@ :size-assert #x28 :flag-assert #x900000028 ) -|# -#| (deftype particle-anchor-point (structure) ((anchor-pos vector :inline :offset-assert 0) (particle-index uint16 :offset-assert 16) @@ -39591,93 +39659,64 @@ :size-assert #x12 :flag-assert #x900000012 ) -|# -#| (deftype particle-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data verlet-particle :dynamic :offset-assert 16) ;; guessed by decompiler + ((data verlet-particle :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype float-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data float :dynamic :offset-assert 16) ;; guessed by decompiler + ((data float :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype stick-constraint-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data stick-constraint :dynamic :offset-assert 16) ;; guessed by decompiler + ( + (data stick-constraint :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype collision-sphere-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data sphere :dynamic :offset-assert 16) ;; guessed by decompiler + ((data sphere :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype collision-disc-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data disc-constraint :dynamic :offset-assert 16) ;; guessed by decompiler + ((data disc-constraint :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype collision-cylinder-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data cylinder-constraint :dynamic :offset-assert 16) ;; guessed by decompiler + ((data cylinder-constraint :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype anchor-point-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data particle-anchor-point :dynamic :offset-assert 16) ;; guessed by decompiler + ((data particle-anchor-point :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype verlet-particle-system (cloth-base) ((particles particle-array :offset-assert 4) ;; guessed by decompiler (drag float :offset-assert 8) @@ -39697,9 +39736,7 @@ (verlet-particle-system-method-15 () none) ;; 15 ;; (debug-draw (_type_) none) ) ) -|# -#| (deftype current-position-info (structure) ((current-vert-index uint16 :offset-assert 0) (last-2-x-index uint16 :offset-assert 2) @@ -39719,85 +39756,76 @@ :size-assert #xd0 :flag-assert #x9000000d0 ) -|# -#| (deftype cloth-system (verlet-particle-system) - ((particles particle-array :offset-assert 0) ;; guessed by decompiler - (drag float :offset-assert 4) - (accum-force vector :inline :offset-assert 12) - (timestep-frequency int8 :offset-assert 28) - (last-simulate-remaining int8 :offset-assert 29) - (momentum vector :inline :offset-assert 44) - (ground-constraint float :offset-assert 60) - (disc-collision-constraints collision-disc-array :offset-assert 64) ;; guessed by decompiler - (collision-constraints collision-sphere-array :offset-assert 68) ;; guessed by decompiler - (stick-constraints stick-constraint-array :offset-assert 72) ;; guessed by decompiler - (anchor-points anchor-point-array :offset-assert 76) ;; guessed by decompiler - (constraint-strengths int32 3 :offset-assert 80) ;; guessed by decompiler - (num-xy-constraints int16 :offset-assert 92) - (num-diagonal-constraints int16 :offset-assert 94) - (cloth-width int32 :offset-assert 96) - (cloth-height int32 :offset-assert 100) - (strip prim-strip :offset-assert 104) ;; guessed by decompiler - (strip2 prim-strip :offset-assert 108) ;; guessed by decompiler - (strip3 prim-strip :offset-assert 112) ;; guessed by decompiler - (mesh art-cloth-geo :offset-assert 116) ;; guessed by decompiler - (gravity-constant float :offset-assert 120) - (wind-constant float :offset-assert 124) - (flags cloth-flag :offset-assert 132) - (thickness-scalar float :offset-assert 140) - (ball-collision-radius float :offset-assert 144) - (face-normal-scalar float :offset-assert 148) - (reset-count int8 :offset-assert 152) - (num-iterations int8 :offset-assert 153) - (secret-disable uint64 :offset-assert 156) ;; game-secrets - (params cloth-params :offset-assert 164) + ((ground-constraint float :offset-assert 64) + (disc-collision-constraints collision-disc-array :offset-assert 68) + (collision-constraints collision-sphere-array :offset-assert 72) + (stick-constraints stick-constraint-array :offset-assert 76) + (anchor-points anchor-point-array :offset-assert 80) + (constraint-strengths int32 3 :offset-assert 84) + (num-xy-constraints int16 :offset-assert 96) + (num-diagonal-constraints int16 :offset-assert 98) + (cloth-width int32 :offset-assert 100) + (cloth-height int32 :offset-assert 104) + (strip prim-strip :offset-assert 108) + (strip2 prim-strip :offset-assert 112) + (strip3 prim-strip :offset-assert 116) + (mesh art-cloth-geo :offset-assert 120) + (gravity-constant float :offset-assert 124) + (wind-constant float :offset-assert 128) + (flags cloth-flag :offset-assert 136) + (thickness-scalar float :offset-assert 144) + (ball-collision-radius float :offset-assert 148) + (face-normal-scalar float :offset-assert 152) + (reset-count int8 :offset-assert 156) + (num-iterations int8 :offset-assert 157) + (secret-disable game-secrets :offset-assert 160) + (params cloth-params :offset-assert 168) ) :method-count-assert 38 :size-assert #xac :flag-assert #x26000000ac ;; field cloth-flag is likely a value type. (:methods - (cloth-system-method-16 () none) ;; 16 ;; (initialize-cloth-system! (_type_ cloth-params) none) - (cloth-system-method-17 () none) ;; 17 ;; (debug-draw-spheres (_type_) none) - (cloth-system-method-18 () none) ;; 18 ;; (post-physics-update (_type_) int) - (cloth-system-method-19 () none) ;; 19 ;; (enforce-constraints-1 (_type_) none) - (cloth-system-method-20 () none) ;; 20 ;; (enforce-constraints-2 (_type_) none) - (cloth-system-method-21 () none) ;; 21 ;; (cloth-system-method-21 (_type_) none) - (cloth-system-method-22 () none) ;; 22 ;; (cloth-system-method-22 (_type_) none) - (cloth-system-method-23 () none) ;; 23 ;; (cloth-system-method-23 (_type_) none) - (cloth-system-method-24 () none) ;; 24 ;; (cloth-system-method-24 (_type_) int) - (cloth-system-method-25 () none) ;; 25 ;; (cloth-system-method-25 (_type_) int) - (cloth-system-method-26 () none) ;; 26 ;; (cloth-system-method-26 (_type_) none) - (cloth-system-method-27 () none) ;; 27 ;; (cloth-system-method-27 (_type_ vector int int current-position-info) vector) - (cloth-system-method-28 () none) ;; 28 ;; (cloth-system-method-28 (_type_ int int current-position-info) none) - (cloth-system-method-29 () none) ;; 29 ;; (cloth-system-method-29 (_type_ int int current-position-info int) uint) - (cloth-system-method-30 () none) ;; 30 ;; (cloth-system-method-30 (_type_ int int current-position-info int) none) - (cloth-system-method-31 () none) ;; 31 ;; (cloth-system-method-31 (_type_ current-position-info) none) - (cloth-system-method-32 () none) ;; 32 ;; (cloth-system-method-32 (_type_ vector int int current-position-info) none) - (cloth-system-method-33 () none) ;; 33 ;; (cloth-system-method-33 (_type_ vu-lights) none) - (cloth-system-method-34 () none) ;; 34 ;; (hide! (_type_) none) - (cloth-system-method-35 () none) ;; 35 ;; (reset-locations (_type_) none) - (cloth-system-method-36 () none) ;; 36 ;; (pre-physics-update (_type_) none) - (cloth-system-method-37 () none) ;; 37 ;; (cloth-system-cmd-handler (_type_ pair) none) + (initialize-cloth-system! + "Set up this cloth system with the given [[cloth-params]]." + (_type_ cloth-params) none) ;; 16 + (debug-draw-spheres (_type_) none) ;; 17 + (post-physics-update (_type_) int) ;; 18 + (enforce-constraints-1 (_type_) none) ;; 19 + (enforce-constraints-2 (_type_) none) ;; 20 + (cloth-system-method-21 (_type_) none) ;; 21 + (cloth-system-method-22 (_type_) none) ;; 22 + (cloth-system-method-23 (_type_) none) ;; 23 + (cloth-system-method-24 (_type_) int) ;; 24 + (cloth-system-method-25 (_type_) int) ;; 25 + (cloth-system-method-26 (_type_) none) ;; 26 + (cloth-system-method-27 (_type_ vector int int current-position-info) vector) ;; 27 + (cloth-system-method-28 (_type_ int int current-position-info) none) ;; 28 + (cloth-system-method-29 (_type_ int int current-position-info int) uint) ;; 29 + (cloth-system-method-30 (_type_ int int current-position-info int) none) ;; 30 + (cloth-system-method-31 (_type_ current-position-info) none) ;; 31 + (cloth-system-method-32 (_type_ vector int int current-position-info) none) ;; 32 + (cloth-system-method-33 (_type_ vu-lights) none) ;; 33 + (hide! (_type_) none) ;; 34 + (reset-locations (_type_) none) ;; 35 + (pre-physics-update "Callback to update prior to running verlet integration. Can handle movement of the entire system in the world, for example" (_type_) none) ;; 36 + (cloth-system-cmd-handler (_type_ pair) none) ;; 37 ) ) -|# -#| (deftype cloth-on-skeleton (cloth-system) - ((base-transform-index int16 :offset-assert 168) - (owner uint64 :offset-assert 172) ;; handle - (last-owner-pos vector :inline :offset-assert 188) - (last-owner-mat matrix :inline :offset-assert 204) + ((base-transform-index int16 :offset-assert 172) + (owner handle :offset-assert 176) + (last-owner-pos vector :inline :offset-assert 192) + (last-owner-mat matrix :inline :offset-assert 208) ) :method-count-assert 38 :size-assert #x110 :flag-assert #x2600000110 ;; field cloth-flag is likely a value type. ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -40045,7 +40073,7 @@ ;; (define-extern *test-speech-info* object) ;; (define-extern speech-type->string function) ;; (function speech-type string) ;; (define-extern gui-status->string function) ;; (function gui-status string) -;; (define-extern *speech-control* object) ;; speech-control +(define-extern *speech-control* speech-control) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; region ;; @@ -40060,14 +40088,14 @@ ;; script ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern command-get-int function) ;; (function object int int) -;; (define-extern command-get-float function) ;; (function object float float) -;; (define-extern command-get-time function) ;; (function object int time-frame) -;; (define-extern command-get-param function) ;; (function object object object) -;; (define-extern command-get-quoted-param function) ;; (function object object object) -;; (define-extern command-get-process function) ;; (function object process process) -;; (define-extern command-get-entity function) ;; (function object entity entity) -;; (define-extern command-get-trans function) ;; (function object vector vector) +(define-extern command-get-int (function object int int)) +(define-extern command-get-float (function object float float)) +(define-extern command-get-time (function object int time-frame)) +(define-extern command-get-param (function object object object)) +(define-extern command-get-quoted-param (function object object object)) +(define-extern command-get-process (function object process process)) +(define-extern command-get-entity (function object entity entity)) +(define-extern command-get-trans (function object vector vector)) ;; (define-extern key-assoc function) ;; (function object pair vector4w pair) ;; (define-extern *script-form* object) ;; (inline-array script-form) ;; (define-extern level-from-heap function) ;; (function int level) @@ -40224,7 +40252,6 @@ ;; lightning ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype lightning-globals (structure) ((gcf-buf uint16 :offset-assert 0) (vtx-buf uint16 :offset-assert 2) @@ -40233,41 +40260,37 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# + +(define-extern lightning-tracker-init (function lightning-spec time-frame symbol process-drawable vector vector none :behavior lightning-tracker)) ;; added (define-extern *lightning-spec-id-table* (array lightning-spec)) ;; -;; (define-extern *lightning-gcf* object) ;; gcf-control -;; (define-extern lightning-fractal-gen function) ;; (function (inline-array vector) int int float lightning-spec none) -;; (define-extern lightning-uniform-gen function) ;; (function (inline-array vector) int int float lightning-spec none) -;; (define-extern lightning-trail-uniform-gen function) ;; (function (inline-array vector) (inline-array vector) float int symbol) -;; (define-extern lightning-trail-fractal-gen function) ;; (function (inline-array vector) (inline-array vector) int int float lightning-spec none) -;; (define-extern gs-packed-rgba-lerp! function) ;; (function gs-packed-rgba rgba rgba float gs-packed-rgba) -;; (define-extern lightning-fade function) ;; (function lightning-control int :behavior process) -;; (define-extern lightning-update function) ;; (function lightning-control symbol) -;; (define-extern lightning-draw function) ;; (function dma-buffer lightning-control lightning-globals symbol) -;; (define-extern lightning-start function) ;; (function float float (pointer process)) -;; (define-extern *lightning-globals* object) ;; lightning-globals -;; (define-extern *lightning* object) ;; symbol -;; (define-extern lightning-draw-all function) ;; (function none) -;; (define-extern unlink-lightning-spec-by-heap function) ;; (function kheap none) +(define-extern *lightning-gcf* gcf-control) +(define-extern lightning-fractal-gen (function (inline-array vector) int int float lightning-spec none)) +(define-extern lightning-uniform-gen (function (inline-array vector) int int float lightning-spec none)) +(define-extern lightning-trail-uniform-gen (function (inline-array vector) (inline-array vector) float int symbol)) +(define-extern lightning-trail-fractal-gen (function (inline-array vector) (inline-array vector) int int float lightning-spec none)) +(define-extern gs-packed-rgba-lerp! (function gs-packed-rgba rgba rgba float gs-packed-rgba)) +(define-extern lightning-fade (function lightning-control int :behavior process)) +(define-extern lightning-update (function lightning-control symbol)) +(define-extern lightning-draw (function dma-buffer lightning-control lightning-globals symbol)) +(define-extern lightning-start (function float float (pointer process))) +(define-extern *lightning-globals* lightning-globals) +(define-extern *lightning* symbol) +(define-extern lightning-draw-all (function none)) +(define-extern unlink-lightning-spec-by-heap (function kheap none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; light-trails-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype color-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data rgbaf :dynamic :offset-assert 16) ;; guessed by decompiler + ((data rgbaf :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype light-trail-composition (structure) ((color-mode uint64 :offset-assert 0) (color-curve curve-color-piecewise :offset-assert 8) ;; guessed by decompiler @@ -40298,32 +40321,24 @@ :size-assert #x91 :flag-assert #x900000091 ) -|# -#| (deftype light-trail-breadcrumb (structure) ((pos vector :inline :offset-assert 0) - (birth-time uint32 :offset-assert 12) + (birth-time uint32 :offset 12) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype breadcrumb-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data light-trail-breadcrumb :dynamic :offset-assert 16) ;; guessed by decompiler + ((data light-trail-breadcrumb :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype light-trail (prim-client) ((crumb-array (array uint8) :offset-assert 4) ;; guessed by decompiler (crumb-size uint8 :offset-assert 8) @@ -40336,7 +40351,7 @@ (total-distance-traveled float :offset-assert 48) (strip prim-strip :offset-assert 52) ;; guessed by decompiler (strip2 prim-strip :offset-assert 56) ;; guessed by decompiler - (cache-vector vector 4 :offset-assert 64) ;; guessed by decompiler + (cache-vector vector 4 :inline :offset-assert 64) ;; guessed by decompiler ) :method-count-assert 23 :size-assert #x80 @@ -40357,9 +40372,7 @@ (light-trail-method-22 () none) ;; 22 ) ) -|# -#| (deftype weapon-trail-crumb (light-trail-breadcrumb) ((offset vector :inline :offset-assert 16) ) @@ -40367,9 +40380,7 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype weapon-trail (light-trail) () :method-count-assert 25 @@ -40380,9 +40391,7 @@ (weapon-trail-method-24 () none) ;; 24 ) ) -|# -#| (deftype tread-trail-crumb (light-trail-breadcrumb) ((normal vector :inline :offset-assert 16) ) @@ -40390,9 +40399,7 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype tread-trail (light-trail) () :method-count-assert 25 @@ -40403,9 +40410,7 @@ (tread-trail-method-24 () none) ;; 24 ) ) -|# -#| (deftype light-trail-tracker-spawn-params (structure) ((appearance light-trail-composition :offset-assert 0) (max-num-crumbs int32 :offset-assert 4) @@ -40416,9 +40421,7 @@ :size-assert #x14 :flag-assert #x900000014 ) -|# -#| (deftype weapon-trail-tracker-spawn-params (light-trail-tracker-spawn-params) ((joint0 int16 :offset-assert 20) (joint1 int16 :offset-assert 22) @@ -40427,12 +40430,10 @@ :size-assert #x18 :flag-assert #x900000018 ) -|# -#| (deftype light-trail-tracker (process) ((trail light-trail :offset-assert 144) ;; guessed by decompiler - (tracked-object uint64 :offset-assert 152) ;; handle + (tracked-object handle :offset-assert 152) ;; handle (offscreen? symbol :offset-assert 160) ;; guessed by decompiler (offscreen-start-time uint64 :offset-assert 168) ;; time-frame (next-line-check-time uint64 :offset-assert 176) ;; time-frame @@ -40441,25 +40442,19 @@ :method-count-assert 22 :size-assert #xbc :flag-assert #x16003000bc + (:state-methods + tracking ;; 14 + die ;; 15 + ) (:methods - (light-trail-tracker-method-9 () none) ;; 9 - (light-trail-tracker-method-10 () none) ;; 10 - (light-trail-tracker-method-11 () none) ;; 11 - (light-trail-tracker-method-12 () none) ;; 12 - (light-trail-tracker-method-13 () none) ;; 13 - (light-trail-tracker-method-14 () none) ;; 14 ;; (tracking () _type_ :state) - (light-trail-tracker-method-15 () none) ;; 15 ;; (die () _type_ :state) (light-trail-tracker-method-16 () none) ;; 16 ;; (get-tracked-object-pos (_type_ process-focusable vector) vector) (light-trail-tracker-method-17 () none) ;; 17 ;; (should-track? (_type_ process-focusable) symbol) (light-trail-tracker-method-18 () none) ;; 18 ;; (should-end? (_type_ process-focusable) symbol) (light-trail-tracker-method-19 () none) ;; 19 ;; (should-draw? (_type_) symbol) (light-trail-tracker-method-20 () none) ;; 20 ;; (add-crumb! (_type_ vector) none) - (light-trail-tracker-method-21 () none) ;; 21 ) ) -|# -#| (deftype weapon-trail-tracker (light-trail-tracker) ((joint0 int16 :offset-assert 188) (joint1 int16 :offset-assert 190) @@ -40472,27 +40467,21 @@ (weapon-trail-tracker-method-22 () none) ;; 22 ) ) -|# -#| (deftype tread-trail-tracker (light-trail-tracker) () :method-count-assert 22 :size-assert #xbc :flag-assert #x16003000bc ) -|# -#| (deftype light-trail-tracker-water (light-trail-tracker) () :method-count-assert 22 :size-assert #xbc :flag-assert #x16003000bc ) -|# -#| (deftype light-trail-tracker-projectile (light-trail-tracker) ((state-time uint64 :offset-assert 192) ;; time-frame ) @@ -40503,17 +40492,15 @@ (light-trail-tracker-projectile-method-22 () none) ;; 22 ) ) -|# -;; (define-extern light-trail-tracker-init-by-other function) ;; (function light-trail-tracker-spawn-params object :behavior light-trail-tracker) -;; (define-extern weapon-trail-tracker-init-by-other function) ;; (function weapon-trail-tracker-spawn-params object :behavior weapon-trail-tracker) -;; (define-extern tread-trail-tracker-init-by-other function) ;; (function light-trail-tracker-spawn-params object :behavior tread-trail-tracker) +(define-extern light-trail-tracker-init-by-other (function light-trail-tracker-spawn-params object :behavior light-trail-tracker)) +(define-extern weapon-trail-tracker-init-by-other (function weapon-trail-tracker-spawn-params object :behavior weapon-trail-tracker)) +(define-extern tread-trail-tracker-init-by-other (function light-trail-tracker-spawn-params object :behavior tread-trail-tracker)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; lightning-new-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype lightning-appearance (structure) ((base-alpha float :offset-assert 0) (width-range-start float :offset-assert 4) @@ -40542,56 +40529,44 @@ :size-assert #x80 :flag-assert #x900000080 ) -|# -#| (deftype lightning-span-internal (structure) ((index int16 :offset-assert 0) (span-flags uint8 :offset-assert 2) (num-inner-points int8 :offset-assert 3) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype lightning-span (structure) ((random-offset-size-start float :offset-assert 0) (inner-random-offset-size float :offset-assert 4) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype lightning-spans-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data lightning-span :dynamic :offset-assert 16) ;; guessed by decompiler + ((data lightning-span :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype lightning-spans-internal-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data lightning-span-internal :dynamic :offset-assert 16) ;; guessed by decompiler + ((data lightning-span-internal :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype tex-u-holder (structure) ((uu float :offset-assert 0) (last-dist float :offset-assert 4) @@ -40600,9 +40575,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype lightning-bolt (basic) ((current-points vector-array :offset-assert 4) ;; guessed by decompiler (desired-points vector-array :offset-assert 8) ;; guessed by decompiler @@ -40624,33 +40597,31 @@ (generate-mode uint64 :offset-assert 96) (snap-inner-points? symbol :offset-assert 104) ;; guessed by decompiler (span-data int8 2 :offset-assert 108) ;; guessed by decompiler - (num-active-spans int8 :offset-assert 108) - (num-spans int8 :offset-assert 109) + (num-active-spans int8 :offset 108) + (num-spans int8 :offset 109) (base-color rgba :offset-assert 112) ;; guessed by decompiler ) :method-count-assert 23 :size-assert #x74 :flag-assert #x1700000074 (:methods - (lightning-bolt-method-9 () none) ;; 9 ;; (init! (_type_ int int lightning-appearance) none) - (lightning-bolt-method-10 () none) ;; 10 ;; (reset-spans! (_type_) none) - (lightning-bolt-method-11 () none) ;; 11 ;; (lightning-bolt-method-11 (_type_) none) - (lightning-bolt-method-12 () none) ;; 12 ;; (lightning-bolt-method-12 (_type_) none) - (lightning-bolt-method-13 () none) ;; 13 ;; (lightning-bolt-method-13 (_type_ int) none) - (lightning-bolt-method-14 () none) ;; 14 ;; (lightning-bolt-method-14 (_type_) int) - (lightning-bolt-method-15 () none) ;; 15 ;; (lightning-bolt-method-15 (_type_ object int lightning-span-internal) none) - (lightning-bolt-method-16 () none) ;; 16 ;; (lightning-bolt-method-16 (_type_ vector float float vector matrix) none) - (lightning-bolt-method-17 () none) ;; 17 ;; (lightning-bolt-method-17 (_type_ uint float float curve2d-fast float) float) - (lightning-bolt-method-18 () none) ;; 18 ;; (lightning-bolt-method-18 (_type_ prim-strip vector rgba float float) none) - (lightning-bolt-method-19 () none) ;; 19 ;; (lightning-bolt-method-19 (_type_ vector int int matrix float float) none) - (lightning-bolt-method-20 () none) ;; 20 ;; (lightning-bolt-method-20 (_type_ int lightning-span-internal) vector) - (lightning-bolt-method-21 () none) ;; 21 ;; (lightning-bolt-method-21 (_type_ int int float) none) - (lightning-bolt-method-22 () none) ;; 22 ;; (lightning-bolt-method-22 (_type_) none) + (init! (_type_ int int lightning-appearance) none) + (reset-spans! (_type_) none) + (lightning-bolt-method-11 (_type_) none) + (lightning-bolt-method-12 (_type_) none) + (lightning-bolt-method-13 (_type_ int) none) + (lightning-bolt-method-14 (_type_) int) + (lightning-bolt-method-15 (_type_ object int lightning-span-internal) none) + (lightning-bolt-method-16 (_type_ vector float float vector matrix) none) + (lightning-bolt-method-17 (_type_ uint float float curve2d-fast float) float) + (lightning-bolt-method-18 (_type_ prim-strip vector rgba float float) none) + (lightning-bolt-method-19 (_type_ vector int int matrix float float) none) + (lightning-bolt-method-20 (_type_ int lightning-span-internal) vector) + (lightning-bolt-method-21 (_type_ int int float) none) + (lightning-bolt-method-22 (_type_) none) ) ) -|# -#| (deftype lightning-new-tracker (process) ((bolt lightning-bolt :offset-assert 144) ;; guessed by decompiler (lifetime uint64 :offset-assert 152) ;; time-frame @@ -40659,20 +40630,12 @@ :method-count-assert 17 :size-assert #xa8 :flag-assert #x11002000a8 - (:methods - (lightning-new-tracker-method-9 () none) ;; 9 - (lightning-new-tracker-method-10 () none) ;; 10 - (lightning-new-tracker-method-11 () none) ;; 11 - (lightning-new-tracker-method-12 () none) ;; 12 - (lightning-new-tracker-method-13 () none) ;; 13 - (lightning-new-tracker-method-14 () none) ;; 14 ;; (active () _type_ :state) - (lightning-new-tracker-method-15 () none) ;; 15 ;; (die () _type_ :state) - (lightning-new-tracker-method-16 () none) ;; 16 + (:state-methods + active ;; 14 + die ;; 15 ) ) -|# -#| (deftype lightning-tracker-init-params (structure) ((appearance lightning-appearance :offset-assert 0) (start-pt vector :inline :offset-assert 16) @@ -40686,7 +40649,6 @@ :size-assert #x44 :flag-assert #x900000044 ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -40747,13 +40709,13 @@ ;; lightning-new ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *lightning-alpha-additive* object) ;; gs-alpha -;; (define-extern *lightning-alpha-blend* object) ;; gs-alpha -;; (define-extern *lightning-alpha-subtractive* object) ;; gs-alpha -;; (define-extern matrix<-vector-yz2! function) ;; (function matrix vector vector matrix) -;; (define-extern choose-nice-perp function) ;; (function vector vector) -;; (define-extern lightning-new-tracker-init-by-other function) ;; (function lightning-tracker-init-params object :behavior lightning-new-tracker) -;; (define-extern create-lightning-tracker-new function) ;; (function lightning-tracker-init-params lightning-new-tracker) +(define-extern *lightning-alpha-additive* gs-alpha) +(define-extern *lightning-alpha-blend* gs-alpha) +(define-extern *lightning-alpha-subtractive* gs-alpha) +(define-extern matrix<-vector-yz2! (function matrix vector vector matrix)) +(define-extern choose-nice-perp (function vector vector)) +(define-extern lightning-new-tracker-init-by-other (function lightning-tracker-init-params object :behavior lightning-new-tracker)) +(define-extern create-lightning-tracker-new (function lightning-tracker-init-params lightning-new-tracker)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; target-util ;; @@ -40785,7 +40747,7 @@ ;; (define-extern *TARGET-bank* target-bank) ;; target-bank ;; (define-extern debounce-speed function) ;; (function float float vector vector float :behavior target) -;; (define-extern target-pos function) ;; (function int vector) +(define-extern target-pos (function int vector)) ;; ;; (define-extern target-rot function) ;; (function quaternion) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -40804,8 +40766,8 @@ ;; (define-extern target-init function) ;; (function continue-point none :behavior target) ;; (define-extern start-2 function) ;; (define-extern start-1 function) -;; (define-extern stop function) ;; (function symbol int) -;; (define-extern start function) ;; (function symbol continue-point target) +(define-extern stop (function symbol int)) ;; +(define-extern start (function symbol continue-point target)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; debug-part ;; @@ -40829,24 +40791,23 @@ ;; projectile ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern cshape-reaction-projectile function) ;; (function control-info collide-query vector vector collide-status) -;; (define-extern projectile-event-handler function) ;; (function process int symbol event-message-block projectile :behavior projectile) -;; (define-extern projectile-move-fill-all-dirs function) ;; (function projectile none) -;; (define-extern projectile-move-fill-line-sphere function) ;; (function projectile none) -;; (define-extern projectile-update-velocity-add-gravity function) ;; (function projectile none) -;; (define-extern projectile-update-velocity-space-wars function) ;; (function projectile none) +(define-extern cshape-reaction-projectile (function control-info collide-query vector vector collide-status)) +(define-extern projectile-event-handler (function process int symbol event-message-block projectile :behavior projectile)) +(define-extern projectile-move-fill-all-dirs (function projectile none)) +(define-extern projectile-move-fill-line-sphere (function projectile none)) +(define-extern projectile-update-velocity-add-gravity (function projectile none)) +(define-extern projectile-update-velocity-space-wars (function projectile none)) ;; (define-extern projectile-base-code function) (define-extern projectile-init-by-other (function projectile-init-by-other-params object :behavior projectile)) -;; (define-extern projectile-bounce-update-velocity function) ;; (function projectile-bounce none :behavior projectile) -;; (define-extern projectile-bounce-falling-post function) ;; (function none :behavior projectile-bounce) -;; (define-extern projectile-bounce-move function) ;; (function projectile-bounce none) -;; (define-extern projectile-bounce-reaction function) ;; (function control-info collide-query vector vector collide-status) +(define-extern projectile-bounce-update-velocity (function projectile-bounce none :behavior projectile)) +(define-extern projectile-bounce-falling-post (function none :behavior projectile-bounce)) +(define-extern projectile-bounce-move (function projectile-bounce none)) +(define-extern projectile-bounce-reaction (function control-info collide-query vector vector collide-status)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; rigid-body-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype rigid-body-info (structure) ((max-time-step float :offset-assert 0) (mass float :offset-assert 4) @@ -40870,25 +40831,38 @@ (rigid-body-info-method-9 () none) ;; 9 ;; (rigid-body-info-method-9 (_type_) none) ) ) -|# -#| +;; TODO jakx - copied from jak3, might be out of date +(deftype rigid-body-object-extra-info (structure) + ( + ;; (max-time-step float :offset-assert 0) + (gravity meters :offset-assert 0) + ;; (idle-distance meters :offset-assert 4) + (attack-force-scale float :offset-assert 4) + ) + :pack-me + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + (deftype rigid-body-object-constants (structure) ((info rigid-body-info :inline :offset-assert 0) - (max-time-step float :offset-assert 0) - (mass float :offset-assert 4) - (inv-mass float :offset-assert 8) - (cm-joint-x meters :offset-assert 32) - (cm-joint-y meters :offset-assert 36) - (cm-joint-z meters :offset-assert 40) - (linear-damping float :offset-assert 12) - (angular-damping float :offset-assert 16) - (bounce-factor float :offset-assert 20) - (friction-factor float :offset-assert 24) - (inertial-tensor-x meters :offset-assert 176) - (inertial-tensor-y meters :offset-assert 180) - (inertial-tensor-z meters :offset-assert 184) - (gravity meters :offset-assert 188) + (max-time-step float :offset 0) + (mass float :offset 4) + (inv-mass float :offset 8) + (cm-joint-x meters :offset 32) + (cm-joint-y meters :offset 36) + (cm-joint-z meters :offset 40) + (linear-damping float :offset 12) + (angular-damping float :offset 16) + (bounce-factor float :offset 20) + (friction-factor float :offset 24) + (inertial-tensor-x meters :offset 176) + (inertial-tensor-y meters :offset 180) + (inertial-tensor-z meters :offset 184) + ;; (extra rigid-body-object-extra-info :inline :offset-assert 188) + (gravity meters :offset 188) (name symbol :offset-assert 196) ;; guessed by decompiler ) :method-count-assert 10 @@ -40898,7 +40872,6 @@ (rigid-body-object-constants-method-9 () none) ;; 9 ) ) -|# (deftype rigid-body-impact (structure) ((point vector :inline :offset-assert 0) @@ -40910,12 +40883,85 @@ (prim-id uint32 :offset-assert 60) (surface basic :offset-assert 64) ) + :pack-me :method-count-assert 9 :size-assert #x44 :flag-assert #x900000044 ) -#| +;; +++rigid-body-h:rigid-body-flag +(defenum rigid-body-flag + :bitfield #t + :type uint16 + (display-marks 0) + (enable-physics 1) + (disable-queue 2) + (enable-penetrate-mode 3) + (debug-active 4) + (wall-normal-hack 5) + (sphere-normal-hack 6) + (debug 7) + (impact 8) + (stuck 9) + (temp-penetrate-mode 10) + (debug-target 11) + (vehicle-line-spheres-hack 12) + ) +;; ---rigid-body-h:rigid-body-flag + +;; +++rigid-body-h:rigid-body-object-flag +(defenum rigid-body-object-flag + :bitfield #t + :type uint64 + (enable-collision 0) + (disturbed 1) + (damaged 2) + (dead 3) + ;; the rest of these might no longer be relevant + (player-touching 4) + (player-edge-grabbing 5) + (player-standing-on 6) + (player-impulse-force 7) + (player-contact-force 8) + (persistent 9) + (in-air 10) + (on-ground 11) + (on-flight-level 12) + (riding 13) + (player-driving 14) + (waiting-for-player 15) + (ignition 16) + (turbo-boost 17) + (reverse-gear 18) + (slide 19) + (hard-turn 20) + (jump 21) + (jump-sound 22) + (ai-driving 23) + (traffic-managed 24) + (flight-level-transition 25) + (flight-level-transition-ending 26) + (camera-bike-mode 27) + (camera-rapid-track-mode 28) + (camera 29) + (alert 30) + (in-pursuit 31) + (target-in-sight 32) + (rammed-target 33) + (draw-marks 34) + (hack-edit-graph-mode 35) + (measure-control-parameters 36) + (lights-on 37) + (lights-update 38) + (lights-dead 39) + (no-hijack 40) + (player-grabbed 41) + (nav-spheres 42) + (idle-sound 43) + ) +;; ---rigid-body-h:rigid-body-object-flag + +(declare-type rigid-body-object basic) (deftype rigid-body-control (basic) ((flags rigid-body-flag :offset-assert 4) (debug-id int8 :offset-assert 6) @@ -40932,7 +40978,7 @@ (friction-factor float :offset-assert 44) (position vector :inline :offset-assert 48) (rot vector :inline :offset-assert 64) - (rotation quaternion :inline :offset-assert 64) + (rotation quaternion :inline :offset 64) (lin-momentum vector :inline :offset-assert 80) (ang-momentum vector :inline :offset-assert 96) (force vector :inline :offset-assert 112) @@ -40982,46 +41028,44 @@ (rigid-body-control-method-40 () none) ;; 40 ) ) -|# -#| (deftype rb-perf-data (structure) ((process uint64 :offset-assert 0) - (times UNKNOWN 32 :offset-assert 8) - (t-rb-all uint32 :offset-assert 8) - (t-rb-callback uint32 :offset-assert 12) - (t-rb-fc uint32 :offset-assert 16) - (t-rb-move uint32 :offset-assert 20) - (t-rb-physics uint32 :offset-assert 24) - (t-vqp-all uint32 :offset-assert 32) - (t-vqp-common uint32 :offset-assert 36) - (t-vqp-ja-post uint32 :offset-assert 40) - (t-vqp-parts uint32 :offset-assert 44) - (t-vqp-post uint32 :offset-assert 48) - (t-vqp-sections uint32 :offset-assert 52) - (t-vqp-sound uint32 :offset-assert 56) - (t-nav-part1 uint32 :offset-assert 60) - (t-nav-part2 uint32 :offset-assert 64) - (t-nav-part3 uint32 :offset-assert 68) - (t-nav-part4 uint32 :offset-assert 72) - (t-nav-part5 uint32 :offset-assert 76) - (t-nav-part6 uint32 :offset-assert 80) - (t-nav-part7 uint32 :offset-assert 84) - (t-nav-part8 uint32 :offset-assert 88) - (t-nav-part9 uint32 :offset-assert 92) - (t-nav-part10 uint32 :offset-assert 96) - (t-part-turbo uint32 :offset-assert 116) - (t-part-exhaust uint32 :offset-assert 100) - (t-part-smoke uint32 :offset-assert 104) - (t-part-scrape uint32 :offset-assert 108) - (t-part-wheels uint32 :offset-assert 112) - (t-part-debris uint32 :offset-assert 120) - (t-part-water uint32 :offset-assert 124) - (t-part-forcefield uint32 :offset-assert 128) - (t-prim-trails uint32 :offset-assert 132) - (begin-times UNKNOWN 32 :offset-assert 136) - (begin-counts UNKNOWN 32 :offset-assert 264) - (end-counts UNKNOWN 32 :offset-assert 392) + (times uint32 32 :offset-assert 8) + (t-rb-all uint32 :offset 8) + (t-rb-callback uint32 :offset 12) + (t-rb-fc uint32 :offset 16) + (t-rb-move uint32 :offset 20) + (t-rb-physics uint32 :offset 24) + (t-vqp-all uint32 :offset 32) + (t-vqp-common uint32 :offset 36) + (t-vqp-ja-post uint32 :offset 40) + (t-vqp-parts uint32 :offset 44) + (t-vqp-post uint32 :offset 48) + (t-vqp-sections uint32 :offset 52) + (t-vqp-sound uint32 :offset 56) + (t-nav-part1 uint32 :offset 60) + (t-nav-part2 uint32 :offset 64) + (t-nav-part3 uint32 :offset 68) + (t-nav-part4 uint32 :offset 72) + (t-nav-part5 uint32 :offset 76) + (t-nav-part6 uint32 :offset 80) + (t-nav-part7 uint32 :offset 84) + (t-nav-part8 uint32 :offset 88) + (t-nav-part9 uint32 :offset 92) + (t-nav-part10 uint32 :offset 96) + (t-part-turbo uint32 :offset 116) + (t-part-exhaust uint32 :offset 100) + (t-part-smoke uint32 :offset 104) + (t-part-scrape uint32 :offset 108) + (t-part-wheels uint32 :offset 112) + (t-part-debris uint32 :offset 120) + (t-part-water uint32 :offset 124) + (t-part-forcefield uint32 :offset 128) + (t-prim-trails uint32 :offset 132) + (begin-times uint32 32 :offset-assert 136) + (begin-counts uint32 32 :offset-assert 264) + (end-counts uint32 32 :offset-assert 392) ) :method-count-assert 12 :size-assert #x208 @@ -41032,16 +41076,15 @@ (rb-perf-data-method-11 () none) ;; 11 ) ) -|# -#| (deftype rigid-body-object (process-focusable) - ((info rigid-body-object-constants :offset-assert 256) + ((root collide-shape-moving :override) + (info rigid-body-object-constants :offset-assert 256) (flags rigid-body-object-flag :offset-assert 264) (max-time-step float :offset-assert 272) (incoming-attack-id uint32 :offset-assert 276) - (disturbed-time time-frame :offset-assert 280) ;; guessed by decompiler - (perf rb-perf-data :offset-assert 284) + (disturbed-time uint32 :offset-assert 280) ;; guessed by decompiler + (perf rb-perf-data :offset 284) ) :method-count-assert 89 :size-assert #x120 @@ -41054,8 +41097,8 @@ (rigid-body-object-method-62 () none) ;; 62 (rigid-body-object-method-63 () none) ;; 63 (rigid-body-object-method-64 () none) ;; 64 - (rigid-body-object-method-65 () none) ;; 65 - (rigid-body-object-method-66 () none) ;; 66 + (rigid-body-object-method-65 (_type_) none) ;; 65 + (rigid-body-object-method-66 (_type_) none) ;; 66 (rigid-body-object-method-67 () none) ;; 67 (rigid-body-object-method-68 () none) ;; 68 (rigid-body-object-method-69 () none) ;; 69 @@ -41080,12 +41123,10 @@ (rigid-body-object-method-88 () none) ;; 88 ) ) -|# -#| (deftype rigid-body-queue (structure) ((count int8 :offset-assert 0) - (manager uint64 :offset-assert 8) ;; handle + (manager handle :offset-assert 8) ;; handle (array handle 128 :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 17 @@ -41102,9 +41143,7 @@ (rigid-body-queue-method-16 () none) ;; 16 ;; (rigid-body-queue-method-16 (_type_) none) ) ) -|# -#| (deftype rb-debug-state-record (structure) ((flags uint16 :offset-assert 0) (time-remaining float :offset-assert 4) @@ -41116,11 +41155,13 @@ (friction-factor float :offset-assert 28) (position vector :inline :offset-assert 32) (rot vector :inline :offset-assert 48) - (rotation quaternion :inline :offset-assert 48) + (rotation quaternion :inline :offset 48) (lin-momentum vector :inline :offset-assert 64) (ang-momentum vector :inline :offset-assert 80) (force vector :inline :offset-assert 96) + (rb-debug-state-record-padding1 uint32 28) (torque vector :inline :offset-assert 224) + (rb-debug-state-record-padding2 uint32 28) ) :method-count-assert 11 :size-assert #x160 @@ -41130,16 +41171,14 @@ (rb-debug-state-record-method-10 () none) ;; 10 ) ) -|# -#| (deftype rb-debugger (structure) ((user-mode uint8 :offset-assert 0) (hook-control uint8 :offset-assert 1) (flags uint8 :offset-assert 2) (target-count int8 :offset-assert 3) - (target-array UNKNOWN 8 :offset-assert 8) - (pad0 UNKNOWN 256 :offset-assert 72) + (target-array handle 8 :offset-assert 8) + (pad0 uint8 256 :offset-assert 72) (playback-index int32 :offset-assert 328) (recorder-index int32 :offset-assert 332) (begin-index int32 :offset-assert 336) @@ -41148,7 +41187,8 @@ (buffer-len int32 :offset-assert 348) (buffer-size int32 :offset-assert 352) (total-size int32 :offset-assert 356) - (buffer-start UNKNOWN :dynamic :offset-assert 368) + (rb-debugger-pad1 int32 2) + (buffer-start uint32 :inline :dynamic :offset-assert 368) ) :method-count-assert 21 :size-assert #x170 @@ -41168,30 +41208,21 @@ (rb-debugger-method-20 () none) ;; 20 ) ) -|# -#| -(deftype rigid-body-object-extra-info (UNKNOWN) - () - :method-count-assert 0 - :size-assert #x0 - :flag-assert #x0 - ) -|# - -;; (define-extern get-penetrate-using-from-attack-event function) ;; (function process-drawable event-message-block penetrate) +(define-extern get-penetrate-using-from-attack-event "Given an attack event to an enemy, return the penetrate that should be applied to the enemy" + (function process-drawable event-message-block penetrate)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; target-handler ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern attack-mode-is-invinc function) ;; (function symbol symbol symbol) -;; (define-extern target-generic-event-handler function) ;; (function process int symbol event-message-block object :behavior target) -;; (define-extern target-standard-event-handler function) ;; (function process int symbol event-message-block object :behavior target) -;; (define-extern target-jump-event-handler function) ;; (function process int symbol event-message-block object :behavior target) -;; (define-extern target-exit function) ;; (function none :behavior target) -;; (define-extern target-state-hook-exit function) ;; (function none :behavior target) -;; (define-extern target-effect-exit function) ;; (function none :behavior target) +(define-extern attack-mode-is-invinc (function symbol symbol symbol)) +(define-extern target-generic-event-handler (function process int symbol event-message-block object :behavior target)) +(define-extern target-standard-event-handler (function process int symbol event-message-block object :behavior target)) +(define-extern target-jump-event-handler (function process int symbol event-message-block object :behavior target)) +(define-extern target-exit (function none :behavior target)) +(define-extern target-state-hook-exit (function none :behavior target)) +(define-extern target-effect-exit (function none :behavior target)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; target ;; @@ -41231,7 +41262,10 @@ ;; menu ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| +(declare-type debug-menu-node basic) +(declare-type debug-menu debug-menu-node) +(declare-type debug-menu-item debug-menu-node) + (deftype debug-menu-context (basic) ((is-active symbol :offset-assert 4) ;; guessed by decompiler (sel-length int32 :offset-assert 8) @@ -41246,10 +41280,11 @@ :method-count-assert 9 :size-assert #x44 :flag-assert #x900000044 + (:methods + (new (symbol type) _type_) ;; 0 + ) ) -|# -#| (deftype debug-menu-node (basic) ((name string :offset-assert 4) ;; guessed by decompiler (parent debug-menu :offset-assert 8) ;; guessed by decompiler @@ -41260,9 +41295,7 @@ :size-assert #x14 :flag-assert #x900000014 ) -|# -#| (deftype debug-menu (debug-menu-node) ((context debug-menu-context :offset-assert 20) ;; guessed by decompiler (selected-item debug-menu-item :offset-assert 24) ;; guessed by decompiler @@ -41273,10 +41306,11 @@ :method-count-assert 9 :size-assert #x28 :flag-assert #x900000028 + (:methods + (new (symbol type debug-menu-context string) _type_) ;; 0 + ) ) -|# -#| (deftype debug-menu-item (debug-menu-node) ((id int32 :offset-assert 20) ) @@ -41284,19 +41318,18 @@ :size-assert #x18 :flag-assert #x900000018 ) -|# -#| (deftype debug-menu-item-submenu (debug-menu-item) ((submenu debug-menu :offset-assert 24) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c + (:methods + (new (symbol type string debug-menu) _type_) ;; 0 + ) ) -|# -#| (deftype debug-menu-item-function (debug-menu-item) ((activate-func (function object object) :offset-assert 24) ;; guessed by decompiler (hilite-timer int8 :offset-assert 28) @@ -41304,10 +41337,21 @@ :method-count-assert 9 :size-assert #x1d :flag-assert #x90000001d + (:methods + (new (symbol type string object (function object object)) _type_) ;; 0 + ) ) -|# -#| +;; +++menu:debug-menu-msg +(defenum debug-menu-msg + :type int32 + (activate 1) + (deactivate 2) + (update 3) + (press 4) + ) +;; ---menu:debug-menu-msg + (deftype debug-menu-item-flag (debug-menu-item) ((activate-func (function object debug-menu-msg object) :offset-assert 24) ;; guessed by decompiler (is-on symbol :offset-assert 28) ;; guessed by decompiler @@ -41315,10 +41359,11 @@ :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 + (:methods + (new (symbol type string object (function object debug-menu-msg object)) _type_) ;; 0 + ) ) -|# -#| (deftype debug-menu-item-var (debug-menu-item) ((display-str string :offset-assert 24) ;; guessed by decompiler (grabbed-joypad-p symbol :offset-assert 28) ;; guessed by decompiler @@ -41337,84 +41382,96 @@ (fstep float :offset-assert 80) (fprecision int32 :offset-assert 84) (factivate-func (function int debug-menu-msg float float float) :offset-assert 88) ;; guessed by decompiler - (ival int32 :offset-assert 60) - (iundo-val int32 :offset-assert 64) - (irange-min int32 :offset-assert 68) - (irange-max int32 :offset-assert 72) - (istart-inc int32 :offset-assert 76) - (istep int32 :offset-assert 80) + (ival int32 :offset 60) + (iundo-val int32 :offset 64) + (irange-min int32 :offset 68) + (irange-max int32 :offset 72) + (istart-inc int32 :offset 76) + (istep int32 :offset 80) (ihex-p symbol :offset-assert 92) ;; guessed by decompiler - (iactivate-func (function int debug-menu-msg int int int) :offset-assert 88) ;; guessed by decompiler + (iactivate-func (function int debug-menu-msg int int int) :offset 88) ;; guessed by decompiler (ifloat-p symbol :offset-assert 96) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x64 :flag-assert #x900000064 + (:methods + (new (symbol type string int int) _type_) ;; 0 + ) ) -|# -;; (define-extern debug-menu-item-var-update-display-str function) ;; (function debug-menu-item-var debug-menu-item-var) -;; (define-extern debug-menu-item-var-make-int function) ;; (function debug-menu-item-var (function int debug-menu-msg int int int) int symbol int int symbol debug-menu-item-var) -;; (define-extern debug-menu-item-var-make-float function) ;; (function debug-menu-item-var (function int debug-menu-msg float float float) float symbol float float int debug-menu-item-var) -;; (define-extern debug-menu-context-grab-joypad function) ;; (function debug-menu-context basic (function basic int none) symbol) -;; (define-extern debug-menu-context-release-joypad function) ;; (function debug-menu-context symbol) -;; (define-extern debug-menu-item-get-max-width function) ;; (function debug-menu-item debug-menu int) -;; (define-extern debug-menu-context-default-selection function) ;; (function debug-menu-context symbol debug-menu-context) -;; (define-extern debug-menu-rebuild function) ;; (function debug-menu debug-menu) -;; (define-extern debug-menu-context-set-root-menu function) ;; (function debug-menu-context debug-menu debug-menu-context) -;; (define-extern debug-menu-append-item function) ;; (function debug-menu debug-menu-node debug-menu-node) -;; (define-extern debug-menu-remove-all-items function) ;; (function debug-menu debug-menu) -;; (define-extern debug-menu-func-decode function) ;; (function object function) -;; (define-extern debug-menu-make-from-template function) ;; (function debug-menu-context pair debug-menu-node) -;; (define-extern debug-menu-find-from-template function) ;; (function debug-menu-context pair debug-menu) -;; (define-extern debug-menu-item-submenu-render function) ;; (function debug-menu-item-submenu int int int symbol debug-menu-item-submenu) -;; (define-extern debug-menu-item-function-render function) ;; (function debug-menu-item-function int int int symbol debug-menu-item-function) -;; (define-extern debug-menu-item-flag-render function) ;; (function debug-menu-item-flag int int int symbol debug-menu-item-flag) -;; (define-extern debug-menu-item-var-render function) ;; (function debug-menu-item-var int int int symbol debug-menu-item-var) -;; (define-extern debug-menu-item-render function) ;; (function debug-menu-item int int int symbol debug-menu-item) -;; (define-extern debug-menu-render function) ;; (function debug-menu int int debug-menu-node int debug-menu) -;; (define-extern debug-menu-context-render function) ;; (function debug-menu-context debug-menu-context) -;; (define-extern debug-menu-context-select-next-or-prev-item function) ;; (function debug-menu-context int debug-menu-context) -;; (define-extern debug-menu-context-select-new-item function) ;; (function debug-menu-context int debug-menu-context) -;; (define-extern debug-menu-context-open-submenu function) ;; (function debug-menu-context debug-menu basic) -;; (define-extern debug-menu-context-close-submenu function) ;; (function debug-menu-context debug-menu-context) -;; (define-extern debug-menu-item-submenu-msg function) ;; (function debug-menu-item-submenu debug-menu-msg debug-menu-item-submenu) -;; (define-extern debug-menu-item-function-msg function) ;; (function debug-menu-item-function debug-menu-msg debug-menu-item-function) -;; (define-extern debug-menu-item-flag-msg function) ;; (function debug-menu-item-flag debug-menu-msg debug-menu-item-flag) -;; (define-extern debug-menu-item-var-joypad-handler function) ;; (function debug-menu-item-var int debug-menu-item-var) -;; (define-extern debug-menu-item-var-msg function) ;; (function debug-menu-item-var debug-menu-msg debug-menu-item-var) -;; (define-extern debug-menu-item-send-msg function) ;; (function debug-menu-item debug-menu-msg debug-menu-item) -;; (define-extern debug-menu-send-msg function) ;; (function debug-menu debug-menu-msg symbol debug-menu) -;; (define-extern debug-menu-context-send-msg function) ;; (function debug-menu-context debug-menu-msg debug-menu-dest debug-menu-context) -;; (define-extern debug-menu-context-activate-selection function) ;; (function debug-menu-context debug-menu-context) -;; (define-extern debug-menus-default-joypad-func function) ;; (function debug-menu-context debug-menu-context) -;; (define-extern debug-menus-active function) ;; (function debug-menu-context debug-menu-context) -;; (define-extern debug-menus-handler function) ;; (function debug-menu-context debug-menu-context) +;; +++menu:debug-menu-dest +(defenum debug-menu-dest + :type int32 + (activation 0) + (root 1) + (open-menus 2) + (current-selection 3) + ) +;; ---menu:debug-menu-dest + +(define-extern debug-menu-item-var-update-display-str (function debug-menu-item-var debug-menu-item-var)) +(define-extern debug-menu-item-var-make-int (function debug-menu-item-var (function int debug-menu-msg int int int) int symbol int int symbol debug-menu-item-var)) +(define-extern debug-menu-item-var-make-float (function debug-menu-item-var (function int debug-menu-msg float float float) float symbol float float int debug-menu-item-var)) +(define-extern debug-menu-context-grab-joypad (function debug-menu-context basic (function basic int none) symbol)) +(define-extern debug-menu-context-release-joypad (function debug-menu-context symbol)) +(define-extern debug-menu-item-get-max-width (function debug-menu-item debug-menu int)) +(define-extern debug-menu-context-default-selection (function debug-menu-context symbol debug-menu-context)) +(define-extern debug-menu-rebuild (function debug-menu debug-menu)) +(define-extern debug-menu-context-set-root-menu (function debug-menu-context debug-menu debug-menu-context)) +(define-extern debug-menu-append-item (function debug-menu debug-menu-node debug-menu-node)) +(define-extern debug-menu-remove-all-items (function debug-menu debug-menu)) +(define-extern debug-menu-func-decode (function object function)) +(define-extern debug-menu-make-from-template (function debug-menu-context pair debug-menu-node)) +(define-extern debug-menu-find-from-template (function debug-menu-context pair debug-menu)) +(define-extern debug-menu-item-submenu-render (function debug-menu-item-submenu int int int symbol debug-menu-item-submenu)) +(define-extern debug-menu-item-function-render (function debug-menu-item-function int int int symbol debug-menu-item-function)) +(define-extern debug-menu-item-flag-render (function debug-menu-item-flag int int int symbol debug-menu-item-flag)) +(define-extern debug-menu-item-var-render (function debug-menu-item-var int int int symbol debug-menu-item-var)) +(define-extern debug-menu-item-render (function debug-menu-item int int int symbol debug-menu-item)) +(define-extern debug-menu-render (function debug-menu int int debug-menu-node int debug-menu)) +(define-extern debug-menu-context-render (function debug-menu-context debug-menu-context)) +(define-extern debug-menu-context-select-next-or-prev-item (function debug-menu-context int debug-menu-context)) +(define-extern debug-menu-context-select-new-item (function debug-menu-context int debug-menu-context)) +(define-extern debug-menu-context-open-submenu (function debug-menu-context debug-menu basic)) +(define-extern debug-menu-context-close-submenu (function debug-menu-context debug-menu-context)) +(define-extern debug-menu-item-submenu-msg (function debug-menu-item-submenu debug-menu-msg debug-menu-item-submenu)) +(define-extern debug-menu-item-function-msg (function debug-menu-item-function debug-menu-msg debug-menu-item-function)) +(define-extern debug-menu-item-flag-msg (function debug-menu-item-flag debug-menu-msg debug-menu-item-flag)) +(define-extern debug-menu-item-var-joypad-handler (function debug-menu-item-var int debug-menu-item-var)) +(define-extern debug-menu-item-var-msg (function debug-menu-item-var debug-menu-msg debug-menu-item-var)) +(define-extern debug-menu-item-send-msg (function debug-menu-item debug-menu-msg debug-menu-item)) +(define-extern debug-menu-send-msg (function debug-menu debug-menu-msg symbol debug-menu)) +(define-extern debug-menu-context-send-msg (function debug-menu-context debug-menu-msg debug-menu-dest debug-menu-context)) +(define-extern debug-menu-context-activate-selection (function debug-menu-context debug-menu-context)) +(define-extern debug-menus-default-joypad-func (function debug-menu-context debug-menu-context)) +(define-extern debug-menus-active (function debug-menu-context debug-menu-context)) +(define-extern debug-menus-handler (function debug-menu-context debug-menu-context)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; drawable ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern sphere-cull function) ;; (function vector symbol) +(define-extern sphere-cull (function vector symbol)) ;; ;; (define-extern guard-band-cull function) ;; (function vector symbol) ;; (define-extern sphere-in-view-frustum? function) ;; (function sphere symbol) ;; (define-extern line-in-view-frustum? function) ;; (function vector vector symbol) ;; (define-extern sphere-in-view-frustum-any? function) ;; (define-extern line-in-view-frustum-any? function) ;; (define-extern find-nearest-camera-distance function) -;; (define-extern vis-cull function) ;; (function int symbol) +(define-extern vis-cull (function int symbol)) ;; ;; (define-extern vis-cull-debug function) ;; (function work-area int symbol) ;; (define-extern error-sphere function) ;; (function drawable-error string none) -;; (define-extern *edit-instance* object) ;; string +(define-extern *edit-instance* string) ;; ;; (define-extern *instance-mem-usage* object) ;; memory-usage-block -;; (define-extern find-instance-by-name-level function) ;; (function string level prototype-bucket) +(define-extern find-instance-by-name-level (function string level prototype-bucket)) ;; ;; (define-extern find-instance-by-name function) ;; (function string prototype-bucket) ;; (define-extern prototypes-game-visible-set! function) ;; (function pair symbol level int) ;; (define-extern find-instance-by-index function) ;; (function type int bsp-header prototype-bucket) ;; (define-extern prototype-bucket-type function) ;; (function prototype-bucket type) -;; (define-extern prototype-bucket-recalc-fields function) ;; (function prototype-bucket prototype-bucket) -;; (define-extern print-prototype-intersection-list function) -;; (define-extern print-prototype-list function) ;; (function none) +(define-extern prototype-bucket-recalc-fields (function prototype-bucket prototype-bucket)) ;; +(define-extern print-prototype-intersection-list (function object object)) +(define-extern print-prototype-list (function none)) ;; ;; (define-extern draw-instance-info function) ;; (function string none) ;; (define-extern set-shadow-by-name function) ;; (function string int int none) ;; (define-extern get-shadow-by-name function) ;; (function string none) @@ -41425,7 +41482,7 @@ ;; (define-extern calc-realtime-lights function) ;; (function light-group draw-control uint none) ;; (define-extern calc-vu1-lights function) ;; (function vu-lights draw-control symbol none) ;; (define-extern calc-particle-average-color function) -;; (define-extern calc-particle-directional-color function) +(define-extern calc-particle-directional-color (function (pointer float) vu-lights vector none)) ;; (define-extern real-dma-add-process-drawable function) ;; (define-extern dma-add-process-drawable function) ;; (function process-drawable draw-control symbol dma-buffer none) ;; (define-extern *hud-lights* object) ;; vu-lights @@ -41478,16 +41535,16 @@ ;; main-collide ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern drawable-sphere-box-intersect? function) ;; (function drawable bounding-box4w symbol) -;; (define-extern instance-sphere-box-intersect? function) ;; (function drawable instance-tie bounding-box4w symbol) -;; (define-extern instance-tfragment-add-debug-sphere function) ;; (function drawable instance-tie symbol) +(define-extern drawable-sphere-box-intersect? (function drawable bounding-box4w symbol)) +(define-extern instance-sphere-box-intersect? (function drawable instance-tie bounding-box4w symbol)) +(define-extern instance-tfragment-add-debug-sphere (function drawable instance-tie symbol)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; video ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-extern set-video-mode function) ;; (function symbol none) -;; (define-extern get-video-mode function) ;; (function symbol) +(define-extern get-video-mode (function symbol)) ;; ;; (define-extern set-aspect-ratio function) ;; (function symbol none) ;; (define-extern get-aspect-ratio function) ;; (function symbol) ;; (define-extern set-progressive-scan function) ;; (function symbol none) @@ -41521,7 +41578,7 @@ ;; (define-extern kiosk? function) ;; (function symbol) ;; (define-extern beta? function) ;; (define-extern *last-master-mode* object) ;; symbol -;; (define-extern set-master-mode function) ;; (function symbol none) +(define-extern set-master-mode (function symbol none)) ;; ;; (define-extern pause-allowed? function) ;; (function symbol) ;; (define-extern toggle-pause function) ;; (function int) ;; (define-extern *screen-filter-array* array) @@ -41674,7 +41731,7 @@ |# ;; (define-extern *spawn-actors* object) ;; symbol -;; (define-extern *compact-actors* object) ;; symbol +(define-extern *compact-actors* symbol) ;; ;; (define-extern *vis-actors* object) ;; symbol ;; (define-extern *additional-spawner-count* object) ;; (define-extern *additional-spawners* object) @@ -41685,9 +41742,9 @@ ;; (define-extern vis-cull-all? function) ;; (define-extern vis-dist-additional-ok? function) ;; (define-extern vis-dist-ok? function) -;; (define-extern entity-by-name function) ;; (function string entity) +(define-extern entity-by-name (function string entity)) ;; ;; (define-extern entity-by-type function) ;; (function type entity-actor) -;; (define-extern entity-by-aid function) ;; (function uint entity) +(define-extern entity-by-aid (function uint entity)) ;; ;; (define-extern entity-actor-from-level-name function) ;; (function symbol entity-actor) ;; (define-extern entity-nav-mesh-by-aid function) ;; (function actor-id entity-nav-mesh) ;; (define-extern nav-mesh-from-res-tag function) ;; (function entity symbol int nav-mesh) @@ -41705,7 +41762,7 @@ ;; (define-extern expand-vis-box-with-point function) ;; (function entity vector none) ;; (define-extern *debug-actor-info* debug-actor-info) ;; debug-actor-info ;; (define-extern *pid-string* object) ;; string -;; (define-extern debug-actor function) ;; (function string none) +(define-extern debug-actor (function string none)) ;; ;; (define-extern debug-actor-process function) ;; (function process none) ;; (define-extern draw-actor-marks function) ;; (function process none) ;; (define-extern init-entity function) ;; (function process entity-actor type none) @@ -41733,7 +41790,7 @@ ;; vol ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern plane-volume-intersect-dist function) ;; (function vector vector vector float) +(define-extern plane-volume-intersect-dist (function vector vector vector float)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; nav-engine ;; @@ -41999,7 +42056,7 @@ ;; (define-extern find-water-1 function) ;; (function water-sphere water-info water-info symbol) ;; (define-extern find-water-2 function) ;; (function (inline-array water-sphere) int water-info water-info process-drawable water-info) ;; (define-extern find-water-simple function) -;; (define-extern find-water-with-spheres function) ;; (function (inline-array water-sphere) int water-info object) +(define-extern find-water-with-spheres (function (inline-array water-sphere) int water-info object)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; water-flow ;; @@ -42086,7 +42143,7 @@ ;; (define-extern reset-city-squad-control function) ;; (function symbol none) ;; (define-extern city-task-faction-commands function) ;; (function object) ;; (define-extern evaluate-faction-commands function) ;; (function pair object) -;; (define-extern update-task-masks function) ;; (function symbol int) +(define-extern update-task-masks (function symbol int)) ;; ;; (define-extern play-clean function) ;; (function symbol int) ;; (define-extern play-task function) ;; (function game-task symbol symbol string) ;; (define-extern task-node-by-name function) ;; (function string game-task-node-info) @@ -42095,11 +42152,11 @@ ;; (define-extern task-close! function) ;; (function string symbol) ;; (define-extern task-closed? function) ;; (function string symbol) ;; (define-extern open-task-nodes function) ;; (function (array game-task-node-info) (array game-task-node-info)) -;; (define-extern task-node-closed? function) ;; (function game-task-node symbol) -;; (define-extern task-node-close! function) ;; (function game-task-node symbol int) +(define-extern task-node-closed? (function game-task-node symbol)) ;; +(define-extern task-node-close! (function game-task-node symbol int)) ;; ;; (define-extern task-open? function) ;; (function string symbol) -;; (define-extern task-node-open? function) ;; (function game-task-node symbol) -;; (define-extern task-node-open! function) ;; (function game-task-node symbol int) +(define-extern task-node-open? (function game-task-node symbol)) ;; +(define-extern task-node-open! (function game-task-node symbol int)) ;; ;; (define-extern task-node-close-upwards function) ;; (function (array game-task-node-info) int none) ;; (define-extern task-node-reset function) ;; (function symbol int) ;; (define-extern cheat-add-gold function) @@ -42281,7 +42338,9 @@ ;; progress ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *progress-process* object) ;; (pointer progress) +;; TODO - irrelevant now? +(declare-type progress process) +(define-extern *progress-process* (pointer progress)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ocean-trans-tables ;; @@ -42560,7 +42619,6 @@ ) |# -#| (deftype joint-exploder-static-joint-params (structure) ((joint-index int16 :offset-assert 0) (parent-joint-index int16 :offset-assert 2) @@ -42569,9 +42627,7 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype joint-exploder-static-params (basic) ((joints (array joint-exploder-static-joint-params) :offset-assert 4) ;; guessed by decompiler (collide-spec collide-spec :offset-assert 8) ;; guessed by decompiler @@ -42583,7 +42639,6 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# #| (deftype joint-exploder-joint (structure) @@ -42679,7 +42734,6 @@ ;; debris ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype debris-static-joint-params (structure) ((parent-joint-index int16 :offset-assert 0) (group string :offset-assert 4) ;; guessed by decompiler @@ -42690,9 +42744,7 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype debris-static-params (basic) ((joints (array debris-static-joint-params) :offset-assert 4) ;; guessed by decompiler (collide-spec collide-spec :offset-assert 8) ;; guessed by decompiler @@ -42710,7 +42762,6 @@ :size-assert #x2c :flag-assert #x90000002c ) -|# #| (deftype debris (basic) @@ -42812,7 +42863,6 @@ ;; net-process-mgr-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype net-process-mgr-machine (structure) ((state uint8 :offset-assert 0) (delay int32 :offset-assert 4) @@ -42823,87 +42873,85 @@ (cookie int32 :offset-assert 24) (reported-ping int32 :offset-assert 28) ) + :pack-me :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| -(deftype net-process-mgr (process) - ((local-machine-idx int32 :offset-assert 144) - (session-master-idx int32 :offset-assert 148) - (machines UNKNOWN 8 :offset-assert 152) - (last-allocated-local-id int32 :offset-assert 408) - (last-allocated-global-id int32 :offset-assert 412) - (have-send-pending-objects basic :offset-assert 416) - (snap-time-of-day basic :offset-assert 420) - (owner-lists UNKNOWN 10 :offset-assert 424) - (active-list linked-list :inline :offset-assert 584) - (cur-proc-valid basic :offset-assert 592) - (cur-proc-id uint16 :offset-assert 596) - (cur-proc-owner-idx int8 :offset-assert 598) - (cur-proc-type basic :offset-assert 600) - (cur-proc-entity entity-links :offset-assert 604) - (entity-creation-messages-enabled basic :offset-assert 608) - ) - :method-count-assert 59 - :size-assert #x264 - :flag-assert #x3b01e00264 - (:methods - (net-process-mgr-method-9 () none) ;; 9 - (net-process-mgr-method-10 () none) ;; 10 - (net-process-mgr-method-11 () none) ;; 11 - (net-process-mgr-method-12 () none) ;; 12 - (net-process-mgr-method-13 () none) ;; 13 - (net-process-mgr-method-14 () none) ;; 14 - (net-process-mgr-method-15 () none) ;; 15 - (net-process-mgr-method-16 () none) ;; 16 - (net-process-mgr-method-17 () none) ;; 17 - (net-process-mgr-method-18 () none) ;; 18 - (net-process-mgr-method-19 () none) ;; 19 - (net-process-mgr-method-20 () none) ;; 20 - (net-process-mgr-method-21 () none) ;; 21 - (net-process-mgr-method-22 () none) ;; 22 - (net-process-mgr-method-23 () none) ;; 23 - (net-process-mgr-method-24 () none) ;; 24 - (net-process-mgr-method-25 () none) ;; 25 - (net-process-mgr-method-26 () none) ;; 26 - (net-process-mgr-method-27 () none) ;; 27 - (net-process-mgr-method-28 () none) ;; 28 - (net-process-mgr-method-29 () none) ;; 29 - (net-process-mgr-method-30 () none) ;; 30 - (net-process-mgr-method-31 () none) ;; 31 - (net-process-mgr-method-32 () none) ;; 32 - (net-process-mgr-method-33 () none) ;; 33 - (net-process-mgr-method-34 () none) ;; 34 - (net-process-mgr-method-35 () none) ;; 35 - (net-process-mgr-method-36 () none) ;; 36 - (net-process-mgr-method-37 () none) ;; 37 - (net-process-mgr-method-38 () none) ;; 38 - (net-process-mgr-method-39 () none) ;; 39 - (net-process-mgr-method-40 () none) ;; 40 - (net-process-mgr-method-41 () none) ;; 41 - (net-process-mgr-method-42 () none) ;; 42 - (net-process-mgr-method-43 () none) ;; 43 - (net-process-mgr-method-44 () none) ;; 44 - (net-process-mgr-method-45 () none) ;; 45 - (net-process-mgr-method-46 () none) ;; 46 - (net-process-mgr-method-47 () none) ;; 47 - (net-process-mgr-method-48 () none) ;; 48 - (net-process-mgr-method-49 () none) ;; 49 - (net-process-mgr-method-50 () none) ;; 50 - (net-process-mgr-method-51 () none) ;; 51 - (net-process-mgr-method-52 () none) ;; 52 - (net-process-mgr-method-53 () none) ;; 53 - (net-process-mgr-method-54 () none) ;; 54 - (net-process-mgr-method-55 () none) ;; 55 - (net-process-mgr-method-56 () none) ;; 56 - (net-process-mgr-method-57 () none) ;; 57 - (net-process-mgr-method-58 () none) ;; 58 - ) - ) -|# +;; (deftype net-process-mgr (process) +;; ((local-machine-idx int32 :offset-assert 144) +;; (session-master-idx int32 :offset-assert 148) +;; (machines net-process-mgr-machine 8 :inline :offset-assert 152) +;; (last-allocated-local-id int32 :offset-assert 408) +;; (last-allocated-global-id int32 :offset-assert 412) +;; (have-send-pending-objects basic :offset-assert 416) +;; (snap-time-of-day basic :offset-assert 420) +;; (owner-lists linked-list 10 :inline :offset-assert 424) ;; guess +;; (active-list linked-list :inline :offset-assert 584) +;; (cur-proc-valid basic :offset-assert 592) +;; (cur-proc-id uint16 :offset-assert 596) +;; (cur-proc-owner-idx int8 :offset-assert 598) +;; (cur-proc-type basic :offset-assert 600) +;; (cur-proc-entity entity-links :offset-assert 604) +;; (entity-creation-messages-enabled basic :offset-assert 608) +;; ) +;; :method-count-assert 59 +;; :size-assert #x264 +;; :flag-assert #x3b01e00264 +;; (:methods +;; (net-process-mgr-method-9 () none) ;; 9 +;; (net-process-mgr-method-10 () none) ;; 10 +;; (net-process-mgr-method-11 () none) ;; 11 +;; (net-process-mgr-method-12 () none) ;; 12 +;; (net-process-mgr-method-13 () none) ;; 13 +;; (net-process-mgr-method-14 () none) ;; 14 +;; (net-process-mgr-method-15 () none) ;; 15 +;; (net-process-mgr-method-16 () none) ;; 16 +;; (net-process-mgr-method-17 () none) ;; 17 +;; (net-process-mgr-method-18 () none) ;; 18 +;; (net-process-mgr-method-19 () none) ;; 19 +;; (net-process-mgr-method-20 () none) ;; 20 +;; (net-process-mgr-method-21 () none) ;; 21 +;; (net-process-mgr-method-22 () none) ;; 22 +;; (net-process-mgr-method-23 () none) ;; 23 +;; (net-process-mgr-method-24 () none) ;; 24 +;; (net-process-mgr-method-25 () none) ;; 25 +;; (net-process-mgr-method-26 () none) ;; 26 +;; (net-process-mgr-method-27 () none) ;; 27 +;; (net-process-mgr-method-28 () none) ;; 28 +;; (net-process-mgr-method-29 () none) ;; 29 +;; (net-process-mgr-method-30 () none) ;; 30 +;; (net-process-mgr-method-31 () none) ;; 31 +;; (net-process-mgr-method-32 () none) ;; 32 +;; (net-process-mgr-method-33 () none) ;; 33 +;; (net-process-mgr-method-34 () none) ;; 34 +;; (net-process-mgr-method-35 () none) ;; 35 +;; (net-process-mgr-method-36 () none) ;; 36 +;; (net-process-mgr-method-37 () none) ;; 37 +;; (net-process-mgr-method-38 () none) ;; 38 +;; (net-process-mgr-method-39 () none) ;; 39 +;; (net-process-mgr-method-40 () none) ;; 40 +;; (net-process-mgr-method-41 () none) ;; 41 +;; (net-process-mgr-method-42 () none) ;; 42 +;; (net-process-mgr-method-43 () none) ;; 43 +;; (net-process-mgr-method-44 () none) ;; 44 +;; (net-process-mgr-method-45 () none) ;; 45 +;; (net-process-mgr-method-46 () none) ;; 46 +;; (net-process-mgr-method-47 () none) ;; 47 +;; (net-process-mgr-method-48 () none) ;; 48 +;; (net-process-mgr-method-49 () none) ;; 49 +;; (net-process-mgr-method-50 () none) ;; 50 +;; (net-process-mgr-method-51 () none) ;; 51 +;; (net-process-mgr-method-52 () none) ;; 52 +;; (net-process-mgr-method-53 () none) ;; 53 +;; (net-process-mgr-method-54 () none) ;; 54 +;; (net-process-mgr-method-55 () none) ;; 55 +;; (net-process-mgr-method-56 () none) ;; 56 +;; (net-process-mgr-method-57 () none) ;; 57 +;; (net-process-mgr-method-58 () none) ;; 58 +;; ) +;; ) ;; (define-extern *net-process-mgr* object) ;; (define-extern get-event-level function) @@ -42944,7 +42992,6 @@ ) |# -#| (deftype net-player-ladder-stats (structure) ((version uint32 :offset-assert 0) (overall-score uint32 :offset-assert 4) @@ -43030,7 +43077,6 @@ :size-assert #x13c :flag-assert #x90000013c ) -|# #| (deftype net-player-ladder-stats-info (structure) @@ -43191,7 +43237,7 @@ ) (deftype medius-cache (basic) - ((objects medius-cached-info :offset-assert 4) + ((objects (array medius-cached-info) :offset-assert 4) ) :method-count-assert 15 :size-assert #x8 @@ -43200,7 +43246,7 @@ (medius-cache-method-9 () none) ;; 9 (medius-cache-method-10 () none) ;; 10 (medius-cache-method-11 () none) ;; 11 - (medius-cache-method-12 (_type_) none) ;; 12 + (clear-objects! (_type_) none) ;; 12 (medius-cache-method-13 () none) ;; 13 (medius-cache-method-14 () none) ;; 14 ) @@ -43244,12 +43290,12 @@ (current-clan int32 :offset-assert 4) (last-channel-id int32 :offset-assert 8) ) + :pack-me :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ) -#| (deftype medius-cached-info-player (medius-cached-info) ((name uint8 32 :offset-assert 24) (format-name uint8 160 :offset-assert 56) @@ -43261,9 +43307,7 @@ :size-assert #x2ac :flag-assert #xc000002ac ) -|# -#| (deftype medius-player (medius-cache-index) () :method-count-assert 14 @@ -43275,18 +43319,15 @@ (medius-player-method-13 () none) ;; 13 ) ) -|# -#| (deftype medius-player-index-array (medius-cache-index-array) () :method-count-assert 13 :size-assert #x8 :flag-assert #xd00000008 ) -|# -;; (define-extern *medius-player-cache* medius-cache) +(define-extern *medius-player-cache* medius-cache) ;; (define-extern *medius-buddies* object) ;; (define-extern *medius-buddies-online* object) ;; (define-extern *medius-ignores* object) @@ -43297,7 +43338,7 @@ ;; (define-extern *medius-outstanding-clan-invites* object) ;; (define-extern *medius-mute-list* object) ;; (define-extern *medius-clan-members-online* object) -;; (define-extern *medius-my-player* medius-cached-info-player) +(define-extern *medius-my-player* medius-cached-info-player) ;; (define-extern *medius-recent-opponents* object) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -43460,7 +43501,7 @@ ) |# -;; (define-extern *medius-game-status-cache* medius-cache) +(define-extern *medius-game-status-cache* medius-cache) ;; (define-extern *medius-games* object) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -43523,10 +43564,32 @@ ;; rigid-body-surface-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| +;; +++rigid-body-surface-h:rigid-body-surface-flag +(defenum rigid-body-surface-flag + :type uint8 + :bitfield #t + (moving 0) + ) +;; ---rigid-body-surface-h:rigid-body-surface-flag + +;; +++rigid-body-surface-h:surface-type +(defenum surface-type + :type uint8 + (stone 0) + (grass 1) + (dirt 2) + (sand 3) + (snow 4) + (water 5) + (wall 6) + (ice 7) + (none 8) + ) +;; ---rigid-body-surface-h:surface-type + (deftype rigid-body-surface (structure) ((flags rigid-body-surface-flag :offset-assert 0) - (surface-type uint8 :offset-assert 1) + (surface-type surface-type :offset-assert 1) (friction float :offset-assert 4) (bounce float :offset-assert 8) (drag float :offset-assert 12) @@ -43535,32 +43598,30 @@ (scrape-sound uint16 :offset-assert 24) (glance-sound uint16 :offset-assert 26) (impact-sound uint16 :offset-assert 28) - (tire-roll-mix UNKNOWN 6 :offset-assert 32) - (tire-roll-hum float :offset-assert 32) - (tire-roll-dirt float :offset-assert 36) - (tire-roll-sand float :offset-assert 40) - (tire-roll-snow float :offset-assert 44) - (tire-roll-grass float :offset-assert 48) - (tire-roll-knobby float :offset-assert 52) - (tire-slide-mix UNKNOWN 2 :offset-assert 56) - (tire-slide-road float :offset-assert 56) - (tire-slide-dirt float :offset-assert 60) + (tire-roll-mix float 6 :offset-assert 32) + (tire-roll-hum float :offset 32) + (tire-roll-dirt float :offset 36) + (tire-roll-sand float :offset 40) + (tire-roll-snow float :offset 44) + (tire-roll-grass float :offset 48) + (tire-roll-knobby float :offset 52) + (tire-slide-mix float 2 :offset-assert 56) + (tire-slide-road float :offset 56) + (tire-slide-dirt float :offset 60) ) :method-count-assert 9 :size-assert #x40 :flag-assert #x900000040 ;; field rigid-body-surface-flag is likely a value type. ) -|# -;; (define-extern *material-to-rb-material-table* object) -;; (define-extern rigid-body-surface-type-from-material function) +(define-extern *material-to-rb-material-table* (pointer int8)) +(define-extern rigid-body-surface-type-from-material (function int surface-type)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; vehicle-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype vehicle-handling-info (structure) ((brake-factor float :offset-assert 0) (turbo-boost-factor float :offset-assert 4) @@ -43590,13 +43651,12 @@ (ai-steering-factor float :offset-assert 100) (ai-throttle-factor float :offset-assert 104) ) + :pack-me :method-count-assert 9 :size-assert #x6c :flag-assert #x90000006c ) -|# -#| (deftype vehicle-engine-info (structure) ((max-torque float :offset-assert 0) (inertia float :offset-assert 4) @@ -43608,15 +43668,14 @@ (max-rpm float :offset-assert 28) (peak-torque-rpm float :offset-assert 32) (powerband-width-rpm float :offset-assert 36) - (torque-data UNKNOWN 16 :offset-assert 40) + (torque-data uint8 16 :offset-assert 40) ) + :pack-me :method-count-assert 9 :size-assert #x38 :flag-assert #x900000038 ) -|# -#| (deftype vehicle-transmission-info (structure) ((inertia float :offset-assert 0) (upshift-rpm float :offset-assert 4) @@ -43625,17 +43684,29 @@ (gear-ratio-array float 8 :offset-assert 16) ;; guessed by decompiler (gear-count int8 :offset-assert 48) ) + :pack-me :method-count-assert 9 :size-assert #x31 :flag-assert #x900000031 ) -|# -#| +;; +++vehicle-h:vehicle-wheel-flag +(defenum vehicle-wheel-flag + :type uint64 + :bitfield #t + (vwf0 0) + (vwf1 1) + (vwf2 2) + (vwf3 3) + (vwf4 4) + (vwf5 5) + ) +;; ---vehicle-h:vehicle-wheel-flag + (deftype vehicle-wheel-info (structure) ((local-pos vector :inline :offset-assert 0) - (flags uint64 :offset-assert 16) ;; vehicle-wheel-flag - (callback (function rigid-body-object vehicle-wheel-state vehicle-wheel-info none) :offset-assert 24) ;; guessed by decompiler + (flags vehicle-wheel-flag :offset-assert 16) ;; vehicle-wheel-flag + (callback function :offset-assert 24) ;; (function rigid-body-object vehicle-wheel-state vehicle-wheel-info none) (inertia float :offset-assert 28) (radius float :offset-assert 32) (susp-arm-length float :offset-assert 36) @@ -43655,24 +43726,22 @@ (width float :offset-assert 92) (settle-pos float :offset-assert 96) ) + :pack-me :method-count-assert 9 :size-assert #x64 :flag-assert #x900000064 ) -|# -#| (deftype vehicle-physics-model-info (structure) ((front-wheel vehicle-wheel-info :inline :offset-assert 0) (rear-wheel vehicle-wheel-info :inline :offset-assert 112) ) + :pack-me :method-count-assert 9 :size-assert #xd4 :flag-assert #x9000000d4 ) -|# -#| (deftype vehicle-camera-info (structure) ((string-min-height meters :offset-assert 0) (string-max-height meters :offset-assert 4) @@ -43682,19 +43751,18 @@ (max-fov float :offset-assert 20) (head-offset float :offset-assert 24) (foot-offset float :offset-assert 28) - (look-pos-array vector 4 :offset-assert 32) ;; guessed by decompiler - (look-front vector :inline :offset-assert 32) - (look-left vector :inline :offset-assert 48) - (look-right vector :inline :offset-assert 64) - (look-rear vector :inline :offset-assert 80) + (look-pos-array vector 4 :inline :offset-assert 32) ;; guessed by decompiler + (look-front vector :inline :offset 32) + (look-left vector :inline :offset 48) + (look-right vector :inline :offset 64) + (look-rear vector :inline :offset 80) ) + :pack-me :method-count-assert 9 :size-assert #x60 :flag-assert #x900000060 ) -|# -#| (deftype vehicle-sound-loop-info (structure) ((sound uint16 :offset-assert 0) ;; sound-name (speed float :offset-assert 4) @@ -43705,30 +43773,28 @@ (min-pitch float :offset-assert 24) (max-pitch float :offset-assert 28) ) + :pack-me :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype vehicle-sound-engine-loop-info (structure) - ((sound-array UNKNOWN 3 :offset-assert 0) - (base-sound uint16 :offset-assert 0) - (load-sound uint16 :offset-assert 2) - (ai-sound uint16 :offset-assert 4) + ((sound-array uint16 3 :offset-assert 0) + (base-sound uint16 :offset 0) + (load-sound uint16 :offset 2) + (ai-sound uint16 :offset 4) (original-rpm float :offset-assert 8) (min-rpm float :offset-assert 12) (max-rpm float :offset-assert 16) (pitch-scale float :offset-assert 20) ) + :pack-me :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 ) -|# -#| (deftype vehicle-sound-info (structure) ((water-sound uint16 :offset-assert 0) ;; sound-name (jump-sound uint16 :offset-assert 2) ;; sound-name @@ -43738,25 +43804,24 @@ (susp-speed-threshold float :offset-assert 12) (rpm-scale float :offset-assert 16) (engine-loop-count int8 :offset-assert 20) - (engine-loop-array uint32 :offset-assert 24) - (tire-roll-sounds vehicle-sound-loop-info 6 :offset-assert 28) ;; guessed by decompiler - (tire-slide-sounds vehicle-sound-loop-info 2 :offset-assert 220) ;; guessed by decompiler - (tire-roll-hum-sound vehicle-sound-loop-info :inline :offset-assert 28) - (tire-roll-dirt-sound vehicle-sound-loop-info :inline :offset-assert 60) - (tire-roll-sand-sound vehicle-sound-loop-info :inline :offset-assert 92) - (tire-roll-snow-sound vehicle-sound-loop-info :inline :offset-assert 124) - (tire-roll-grass-sound vehicle-sound-loop-info :inline :offset-assert 156) - (tire-roll-knobby-sound vehicle-sound-loop-info :inline :offset-assert 188) - (tire-slide-road-sound vehicle-sound-loop-info :inline :offset-assert 220) - (tire-slide-dirt-sound vehicle-sound-loop-info :inline :offset-assert 252) + (engine-loop-array (inline-array vehicle-sound-engine-loop-info) :offset-assert 24) + (tire-roll-sounds vehicle-sound-loop-info 6 :inline :offset 28) ;; guessed by decompiler + (tire-slide-sounds vehicle-sound-loop-info 2 :inline :offset-assert 220) ;; guessed by decompiler + (tire-roll-hum-sound vehicle-sound-loop-info :inline :offset 28) + (tire-roll-dirt-sound vehicle-sound-loop-info :inline :offset 60) + (tire-roll-sand-sound vehicle-sound-loop-info :inline :offset 92) + (tire-roll-snow-sound vehicle-sound-loop-info :inline :offset 124) + (tire-roll-grass-sound vehicle-sound-loop-info :inline :offset 156) + (tire-roll-knobby-sound vehicle-sound-loop-info :inline :offset 188) + (tire-slide-road-sound vehicle-sound-loop-info :inline :offset 220) + (tire-slide-dirt-sound vehicle-sound-loop-info :inline :offset 252) ) + :pack-me :method-count-assert 9 :size-assert #x11c :flag-assert #x90000011c ) -|# -#| (deftype vehicle-particle-info (structure) ((headlight-count int8 :offset-assert 0) (taillight-count int8 :offset-assert 1) @@ -43764,20 +43829,19 @@ (thruster-flame-width meters :offset-assert 4) (thruster-flame-length meters :offset-assert 8) (thruster-local-pos vector :offset-assert 12) ;; guessed by decompiler - (exhaust-local-pos vector 2 :offset-assert 16) ;; guessed by decompiler - (exhaust-local-dir vector 2 :offset-assert 48) ;; guessed by decompiler - (smoke-local-pos vector 2 :offset-assert 80) ;; guessed by decompiler - (smoke-local-vel vector 2 :offset-assert 112) ;; guessed by decompiler - (headlight-local-pos vector 3 :offset-assert 144) ;; guessed by decompiler - (taillight-local-pos vector 2 :offset-assert 192) ;; guessed by decompiler + (exhaust-local-pos vector 2 :inline :offset-assert 16) ;; guessed by decompiler + (exhaust-local-dir vector 2 :inline :offset-assert 48) ;; guessed by decompiler + (smoke-local-pos vector 2 :inline :offset-assert 80) ;; guessed by decompiler + (smoke-local-vel vector 2 :inline :offset-assert 112) ;; guessed by decompiler + (headlight-local-pos vector 3 :inline :offset-assert 144) ;; guessed by decompiler + (taillight-local-pos vector 2 :inline :offset-assert 192) ;; guessed by decompiler ) + :pack-me :method-count-assert 9 :size-assert #xe0 :flag-assert #x9000000e0 ) -|# -#| (deftype vehicle-section-info (structure) ((rbody rigid-body-object-constants :offset-assert 0) (hinge-axis vector :inline :offset-assert 16) @@ -43790,13 +43854,12 @@ (rattle-sound uint16 :offset-assert 128) (impact-sound uint16 :offset-assert 130) ) + :pack-me :method-count-assert 9 :size-assert #x84 :flag-assert #x900000084 ) -|# -#| (deftype vehicle-damage-info (structure) ((inv-toughness-factor float :offset-assert 0) (hit-points float :offset-assert 4) @@ -43804,27 +43867,26 @@ (hit-threshold float :offset-assert 12) (impact-damage-factor float :offset-assert 16) (section-mask uint32 :offset-assert 20) - (section-array vehicle-section-info 12 :offset-assert 32) ;; guessed by decompiler - (section-lf-fender vehicle-section-info :inline :offset-assert 32) - (section-rf-fender vehicle-section-info :inline :offset-assert 176) - (section-lr-fender vehicle-section-info :inline :offset-assert 320) - (section-rr-fender vehicle-section-info :inline :offset-assert 464) - (section-l-door vehicle-section-info :inline :offset-assert 608) - (section-r-door vehicle-section-info :inline :offset-assert 752) - (section-hood vehicle-section-info :inline :offset-assert 1184) - (section-trunk vehicle-section-info :inline :offset-assert 1328) - (section-f-bumper vehicle-section-info :inline :offset-assert 896) - (section-r-bumper vehicle-section-info :inline :offset-assert 1040) - (section-roof vehicle-section-info :inline :offset-assert 1472) - (section-cockpit vehicle-section-info :inline :offset-assert 1616) + (section-array vehicle-section-info 12 :inline :offset-assert 32) ;; guessed by decompiler + (section-lf-fender vehicle-section-info :inline :offset 32) + (section-rf-fender vehicle-section-info :inline :offset 176) + (section-lr-fender vehicle-section-info :inline :offset 320) + (section-rr-fender vehicle-section-info :inline :offset 464) + (section-l-door vehicle-section-info :inline :offset 608) + (section-r-door vehicle-section-info :inline :offset 752) + (section-hood vehicle-section-info :inline :offset 1184) + (section-trunk vehicle-section-info :inline :offset 1328) + (section-f-bumper vehicle-section-info :inline :offset 896) + (section-r-bumper vehicle-section-info :inline :offset 1040) + (section-roof vehicle-section-info :inline :offset 1472) + (section-cockpit vehicle-section-info :inline :offset 1616) ) + :pack-me :method-count-assert 9 :size-assert #x6e0 :flag-assert #x9000006e0 ) -|# -#| (deftype vehicle-setup-info (structure) ((settle-height float :offset-assert 0) (settle-rot-x float :offset-assert 4) @@ -43836,14 +43898,14 @@ (rp-node-count int8 :offset-assert 25) (color-option-count int8 :offset-assert 26) (color-option-select int8 :offset-assert 27) + (unknown vector :offset-assert 28) ) + :pack-me :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype vehicle-pilot-info (structure) ((player-turn-anim-bias float :offset-assert 0) (player-turn-anim-min float :offset-assert 4) @@ -43852,102 +43914,118 @@ (pilot-y-accel-factor float :offset-assert 16) (pilot-z-accel-factor float :offset-assert 20) ) + :pack-me :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 ) -|# -#| +;; +++vehicle-h:vehicle-seat-flag +(defenum vehicle-seat-flag + :type uint8 + :bitfield #t + (vsf0 0) + (vsf1 1) + (vsf2 2) + ) +;; ---vehicle-h:vehicle-seat-flag + (deftype vehicle-seat-info (structure) - ((data uint8 16 :offset-assert 0) ;; guessed by decompiler - (position vector :inline :offset-assert 0) - (pos-x float :offset-assert 0) - (pos-y float :offset-assert 4) - (pos-z float :offset-assert 8) - (angle int16 :offset-assert 12) - (flags uint8 :offset-assert 14) ;; vehicle-seat-flag - (mask uint16 :offset-assert 14) + ((data uint8 16 :offset-assert 0 :score -1) ;; guessed by decompiler + (position vector :inline :offset 0) + (pos-x float :offset 0) + (pos-y float :offset 4) + (pos-z float :offset 8) + (angle int16 :offset 12) + (flags vehicle-seat-flag :offset 14) ;; vehicle-seat-flag + (mask uint16 :offset 14) ) + :pack-me :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype vehicle-daxter-info (structure) - ((data UNKNOWN 3 :offset-assert 0) - (counts UNKNOWN 3 :offset-assert 12) - (chassis-seats uint32 :offset-assert 0) - (trunk-seats uint32 :offset-assert 4) - (roof-seats uint32 :offset-assert 8) - (chassis-seat-count int8 :offset-assert 12) - (trunk-seat-count int8 :offset-assert 13) - (roof-seat-count int8 :offset-assert 14) + ((data (inline-array vector) 3 :offset-assert 0 :score -1) + (counts int8 3 :offset-assert 12) + (chassis-seats (inline-array vector) :offset 0) + (trunk-seats (inline-array vector) :offset 4) + (roof-seats (inline-array vector) :offset 8) + (chassis-seat-count int8 :offset 12) + (trunk-seat-count int8 :offset 13) + (roof-seat-count int8 :offset 14) ) + :pack-me :method-count-assert 9 :size-assert #xf :flag-assert #x90000000f ) -|# -#| (deftype vehicle-rider-info (structure) ((seat-count int8 :offset-assert 0) (attach-point-count int8 :offset-assert 1) - (seat-array vehicle-seat-info 2 :offset-assert 16) ;; guessed by decompiler - (rider-hand-offset vector 2 :offset-assert 48) ;; guessed by decompiler - (attach-point-array (inline-array vehicle-attach-point) :offset-assert 80) ;; guessed by decompiler - (attach-node-array uint32 :offset-assert 84) + (seat-array vehicle-seat-info 2 :inline :offset-assert 16) ;; guessed by decompiler + (rider-hand-offset vector 2 :inline :offset-assert 48) ;; guessed by decompiler + (attach-point-array (inline-array vector) :offset-assert 80) ;; guessed by decompiler + (attach-node-array (inline-array vector) :offset-assert 84) ) + :pack-me :method-count-assert 9 :size-assert #x58 :flag-assert #x900000058 ) -|# -#| (deftype vehicle-hardpoint-info (structure) - ((local-pos-array uint32 :offset-assert 0) + ((local-pos-array (inline-array vector) :offset-assert 0) (flag-attach vector :inline :offset-assert 16) (antenna-attach vector :inline :offset-assert 32) - (nodes UNKNOWN 7 :offset-assert 48) + (nodes int8 7 :offset-assert 48) + (left-gun int8 :offset 48) + (right-gun int8 :offset 49) + (mine-launcher int8 :offset 50) + (trunk int8 :offset 51) + (super-turbo-attach int8 3 :offset 52) (shield-anim int16 :offset-assert 56) - (left-gun int8 :offset-assert 48) - (right-gun int8 :offset-assert 49) - (mine-launcher int8 :offset-assert 50) - (trunk int8 :offset-assert 51) - (super-turbo-attach UNKNOWN 3 :offset-assert 52) ) + :pack-me :method-count-assert 9 :size-assert #x3a :flag-assert #x90000003a ) -|# -#| (deftype vehicle-explosion-info (joint-exploder-static-params) ((skel skeleton-group :offset-assert 32) ;; guessed by decompiler (skel-name string :offset-assert 36) ;; guessed by decompiler (anim int32 :offset-assert 40) ) + :pack-me :method-count-assert 9 :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype vehicle-particle-common-info (structure) - ((headlight-glow-template sprite-glow-data :offset-assert 36) + ((sp-system2d sparticle-system :offset-assert 0) ;; added + (sp-system3d sparticle-system :offset-assert 4) ;; added + (part-thruster sparticle-launcher :offset-assert 8) ;; added + (part-thruster-x sp-field-init-spec :offset-assert 12) ;; added + (part-spec2 sp-field-init-spec :offset-assert 16) ;; added + (part-quat quaternion :offset-assert 20) ;; added + (part-vel vector :offset-assert 24) ;; added + (pad uint32 2) + (headlight-glow-template sprite-glow-data :offset-assert 36) (taillight-glow-template sprite-glow-data :offset-assert 40) (thruster-glow-template sprite-glow-data :offset-assert 44) + (pad2 uint32 6) (thrust-tex-id uint32 :offset-assert 72) (dark-thrust-tex-id uint32 :offset-assert 76) + (pad3 uint32 9) (rgb rgbaf :inline :offset-assert 128) (lights vu-lights :offset-assert 144) + (pad4 uint32 2) ) + :pack-me :method-count-assert 10 :size-assert #x9c :flag-assert #xa0000009c @@ -43955,21 +44033,18 @@ (vehicle-particle-common-info-method-9 () none) ;; 9 ;; (init! (_type_) none) ) ) -|# -#| (deftype vehicle-shield-info (structure) ((inner ellipsoid :inline :offset-assert 0) (offset vector :inline :offset-assert 16) (outer-multiple float :offset-assert 32) ) + :pack-me :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 ) -|# -#| (deftype rigid-body-vehicle-constants (rigid-body-object-constants) ((flags uint32 :offset-assert 200) (vehicle-type uint8 :offset-assert 204) ;; vehicle-type-u8 @@ -44001,9 +44076,7 @@ (rigid-body-vehicle-constants-method-10 () none) ;; 10 ) ) -|# -#| (deftype vehicle-section (structure) ((vel vector :inline :offset-assert 0) (info vehicle-section-info :offset-assert 16) @@ -44036,79 +44109,148 @@ (vehicle-section-method-19 () none) ;; 19 ) ) -|# -#| (deftype vehicle-controls (structure) - ((dataf UNKNOWN 5 :offset-assert 0) - (dataw UNKNOWN 5 :offset-assert 0) - (steering float :offset-assert 0) - (throttle float :offset-assert 4) - (brake float :offset-assert 8) - (lean-z float :offset-assert 12) - (handbrake float :offset-assert 16) + ((dataf float 5 :offset-assert 0) + (dataw uint32 5 :offset 0) + (steering float :offset 0) + (throttle float :offset 4) + (brake float :offset 8) + (lean-z float :offset 12) + (handbrake float :offset 16) (flags uint8 :offset-assert 20) ;; vehicle-controls-flag (prev-flags uint8 :offset-assert 21) ;; vehicle-controls-flag (pad0 uint8 2 :offset-assert 22) ;; guessed by decompiler ) + :pack-me :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 ) -|# -#| (deftype vehicle-particle (structure) - ((birth-accum UNKNOWN 2 :offset-assert 0) + ((birth-accum uint32 2 :offset-assert 0) (launcher basic :offset-assert 8) ) :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ) -|# -#| +;; +++vehicle-h:vehicle-flag +(defenum vehicle-flag + :type uint64 + :bitfield #t + (enable-collision 0) + (disturbed 1) + (damaged 2) + (dead 3) + (suppress-physics 4) + (in-air 5) + (on-ground 6) + (riding 7) + (player-grabbed 8) + (player-driving 9) + (player-owned 10) + (remote-control 11) + (ai-driving 12) + (ignition 13) + (nav-spheres 14) + (turbo-boost 15) + (reverse-gear 16) + (camera 17) + (camera-inside-view 18) + (camera-look-mode 19) + (sounds 20) + (particles 21) + (joints 22) + (lights-on 23) + (lights-update 24) + (lights-dead 25) + (overturned 26) + (ignore-damage 27) + (ignore-impulse 28) + (highspeed-collision 29) + (oil-slick 30) + (turbo-pad 31) + (fragile 32) + (fragile-death 33) + (ignore-powerups 34) + (turbo-toggle 35) + (start-boost-latch 36) + (start-boost 37) + (shield 38) + (respawn-invul 39) + (draw-marks 40) + (temp 41) + (dark-eco-boost-triggered 42) + (ai-off-nav-mesh 43) + (oversteer 44) + (ghost 45) + (wheel-fire 46) + (stuck 47) + (sinking 48) + (no-color-mod 49) + (suppress-look 50) + (disable-weapons 51) + (superhero 52) + ) +;; ---vehicle-h:vehicle-flag + +;; TODO - jakx more misaligned inline arrays? (deftype vehicle (rigid-body-object) - ((car-info car-info-full :offset-assert 284) - (flags vehicle-flag :offset-assert 260) ;; rigid-body-object-flag - (damage-matrix UNKNOWN 2 :offset-assert 300) - (damage-direction vector :inline :offset-assert 428) - (camera-pos vector :inline :offset-assert 444) - (control-hook (function vehicle vehicle-controls) :offset-assert 468) ;; guessed by decompiler - (control-mask vehicle-controls :offset-assert 472) - (impact-callback basic :offset-assert 476) - (controls vehicle-controls :inline :offset-assert 480) - (prev-controls vehicle-controls :inline :offset-assert 504) - (impact rigid-body-impact :inline :offset-assert 540) - (target-acceleration vector :inline :offset-assert 620) - (impact-local-pos vector :inline :offset-assert 636) - (lin-acceleration vector :inline :offset-assert 652) - (max-impact-impulse float :offset-assert 668) - (sum-impact-impulse float :offset-assert 672) - (underside-y float :offset-assert 676) - (side-x float :offset-assert 680) - (health float :offset-assert 684) - (damage-factor float :offset-assert 688) - (speed-factor float :offset-assert 696) - (behavior uint64 :offset-assert 724) - (cam-view int8 :offset-assert 732) - (cam-speed-interp float :offset-assert 740) - (camera-dist float :offset-assert 744) - (impact-proc uint64 :offset-assert 764) ;; handle - (net-player uint64 :offset-assert 772) - (impact-time uint32 :offset-assert 784) - (prev-impact-time uint32 :offset-assert 788) - (offscreen-time uint32 :offset-assert 804) - (physics-enabled-time uint32 :offset-assert 820) - (water-height float :offset-assert 852) - (pred net-predictor-sphcol :inline :offset-assert 1804) - (next-reliable-send-time int32 :offset-assert 2112) - (player-id int8 :offset-assert 2116) - (killed-by int8 :offset-assert 2117) - (killed-with int8 :offset-assert 2118) - (last-warp-time int32 :offset-assert 2128) - (last-sent-vehicle-control-flags uint8 :offset-assert 2132) + ((info rigid-body-vehicle-constants :override) + (car-info car-info-full :offset 284) + (v-flags vehicle-flag :offset 264 :score 999) ;; rigid-body-object-flag + (pad1 uint32 2) + (damage-matrix matrix 2 :inline :offset-assert 304) + (damage-direction vector :inline :offset-assert 432) + (camera-pos vector :inline :offset-assert 448) + (pad2 uint32 2) + (control-hook (function vehicle vehicle-controls) :offset-assert 472) ;; guessed by decompiler + (control-mask vehicle-controls :offset-assert 476) + (impact-callback basic :offset-assert 480) + (controls vehicle-controls :inline :offset-assert 484) + (prev-controls vehicle-controls :inline :offset-assert 508) + (impact rigid-body-impact :inline :offset-assert 544) + (target-acceleration vector :inline :offset-assert 624) + (impact-local-pos vector :inline :offset-assert 640) + (lin-acceleration vector :inline :offset-assert 656) + (max-impact-impulse float :offset-assert 672) + (sum-impact-impulse float :offset-assert 676) + (underside-y float :offset-assert 680) + (side-x float :offset-assert 684) + (health float :offset-assert 688) + (damage-factor float :offset-assert 692) + (pad3 uint32) + (speed-factor float :offset-assert 700) + (pad4 uint32 6) + (behavior uint64 :offset-assert 728) + (cam-view int8 :offset-assert 736) + (pad5 uint32) + (cam-speed-interp float :offset-assert 744) + (camera-dist float :offset-assert 748) + (pad6 uint32 3) + (impact-proc uint64 :offset-assert 768) ;; handle + (net-player uint64 :offset-assert 776) + (pad7 uint32) + (impact-time uint32 :offset-assert 788) + (prev-impact-time uint32 :offset-assert 792) + (pad8 uint32 3) + (offscreen-time uint32 :offset-assert 808) + (pad9 uint32 3) + (physics-enabled-time uint32 :offset-assert 824) + (pad10 uint32 7) + (water-height float :offset-assert 856) + (pad11 uint32 236) ;; wtf is going on here + (pred net-predictor-sphcol :inline :offset-assert 1808) + (next-reliable-send-time int32 :offset-assert 2116) + (player-id int8 :offset-assert 2120) + (killed-by int8 :offset-assert 2121) + (killed-with int8 :offset-assert 2122) + (pad12 uint32 2) + (last-warp-time int32 :offset-assert 2132) + (last-sent-vehicle-control-flags uint8 :offset-assert 2136) ) :method-count-assert 204 :size-assert #x859 @@ -44141,7 +44283,7 @@ (vehicle-method-112 () none) ;; 112 ;; (copy-vehicle-controls! (_type_ vehicle-controls) none) (vehicle-method-113 () none) ;; 113 ;; (vehicle-method-113 (_type_ vector int int) none) (vehicle-method-114 () none) ;; 114 ;; (vehicle-method-114 (_type_ int) none) - (vehicle-method-115 () none) ;; 115 ;; (vehicle-method-115 (_type_) none) + (vehicle-method-115 (_type_) none) ;; 115 ;; (vehicle-method-115 (_type_) none) (vehicle-method-116 () none) ;; 116 ;; (vehicle-method-116 (_type_ symbol) none) (vehicle-method-117 () none) ;; 117 ;; (vehicle-method-117 (_type_) none) (vehicle-method-118 () none) ;; 118 ;; (vehicle-method-118 (_type_) none) @@ -44232,9 +44374,7 @@ (vehicle-method-203 () none) ;; 203 ) ) -|# -#| (deftype vehicle-draw-thruster-params (structure) ((quat quaternion :inline :offset-assert 0) (trans vector :inline :offset-assert 16) @@ -44250,24 +44390,26 @@ :size-assert #x54 :flag-assert #x900000054 ) -|# -;; (deftype debug-vehicle-work (basic) -;; () -;; :flag-assert #x900000080 -;; ) +;; TODO jakx - copied from jak3 +(deftype debug-vehicle-work (basic) + ((impact-time time-frame :offset-assert 8) + (impact rigid-body-impact :inline :offset-assert 16) + (prim-sphere1 sphere :inline :offset-assert 96) + (prim-sphere2 sphere :inline :offset-assert 112) + ) + ) -;; (define-extern vehicle-init-remote function) -;; (define-extern *msg-map-vehicle* array) -;; (define-extern *net-process-class-info-vehicle* object) -;; (define-extern vehicle-get-flag-attach-point function) -;; (define-extern meters-per-sec->mph function) ;; (function float float) +(define-extern vehicle-init-remote (function int none :behavior vehicle)) +(define-extern *msg-map-vehicle* (array symbol)) +(define-extern *net-process-class-info-vehicle* net-process-class-info) +(define-extern vehicle-get-flag-attach-point (function vehicle vector)) +(define-extern meters-per-sec->mph (function float float)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; race-ai-tuning-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype race-ai-tuning-entry (structure) ((player-ahead-distance float :offset-assert 0) (ahead-speed-delta float :offset-assert 4) @@ -44277,9 +44419,7 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype race-ai-base-speed-info (structure) ((adventure-minimum float :offset-assert 0) (adventure-diff-mod float :offset-assert 4) @@ -44290,11 +44430,9 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype race-ai-tuning-info (structure) - ((tuning-entry UNKNOWN 6 :offset-assert 0) + ((tuning-entry race-ai-tuning-entry 6 :inline :offset-assert 0) (ahead-threshold float :offset-assert 96) (behind-threshold float :offset-assert 100) (base-speed race-ai-base-speed-info :offset-assert 104) @@ -44303,14 +44441,12 @@ :size-assert #x6c :flag-assert #x90000006c ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; race-line-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype race-line-slice-mapping (structure) ((valid-entries uint16 :offset-assert 0) (index-entries uint32 :offset-assert 4) @@ -44319,9 +44455,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype race-line-query-info (structure) ((query-position vector :inline :offset-assert 0) (nearest-position vector :inline :offset-assert 16) @@ -44333,15 +44467,13 @@ (current-slice int32 :offset-assert 88) (current-line basic :offset-assert 92) (total-angle-delta float :offset-assert 96) - (skip-gaps? basic :offset-assert 100) + (skip-gaps? symbol :offset-assert 100) ) :method-count-assert 9 :size-assert #x68 :flag-assert #x900000068 ) -|# -#| (deftype race-line (structure) ((scale vector :inline :offset-assert 0) (offset vector :inline :offset-assert 16) @@ -44369,14 +44501,12 @@ (race-line-method-14 () none) ;; 14 ) ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; race-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype racer-state (structure) ((position vector :inline :offset-assert 0) (start-position vector :inline :offset-assert 16) @@ -44405,9 +44535,7 @@ (racer-state-method-11 () none) ;; 11 ;; (end-lap (_type_ race-state) none) ) ) -|# -#| (deftype race-state (structure) ((start-sphere sphere :inline :offset-assert 0) (start-dir vector :inline :offset-assert 16) @@ -44426,7 +44554,7 @@ (race-ai-tuning basic :offset-assert 96) (race-ai-tuning-indices basic :offset-assert 100) (longest-race-line-dist float :offset-assert 104) - (racer-array racer-state 10 :offset-assert 112) ;; guessed by decompiler + (racer-array racer-state 10 :inline :offset-assert 112) ;; guessed by decompiler ) :method-count-assert 12 :size-assert #x430 @@ -44437,37 +44565,33 @@ (race-state-method-11 () none) ;; 11 ;; (update (_type_) none) ) ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; race-mesh-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype race-mesh-hash-search (structure) ((best-dist float :offset-assert 0) (debug-cells-searched int32 :offset-assert 4) (debug-slices-searched int32 :offset-assert 8) (bounds bounding-box4w :inline :offset-assert 16) - (cell-quads vector 2 :offset-assert 48) ;; guessed by decompiler - (slice-quads vector 4 :offset-assert 80) ;; guessed by decompiler - (cell-bits vector16ub 2 :offset-assert 48) ;; guessed by decompiler - (slice-bits vector16ub 2 :offset-assert 80) ;; guessed by decompiler + (cell-quads vector 2 :inline :offset-assert 48) ;; guessed by decompiler + (slice-quads vector 4 :inline :offset-assert 80) ;; guessed by decompiler + (cell-bits vector16ub 2 :inline :offset 48) ;; guessed by decompiler + (slice-bits vector16ub 2 :inline :offset 80) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x90 :flag-assert #x900000090 ) -|# -#| (deftype race-mesh-slice-query (structure) ((search-sphere sphere :inline :offset-assert 0) - (slice-range UNKNOWN 2 :offset-assert 16) + (slice-range uint16 2 :offset-assert 16) (race-line race-line :offset-assert 20) (pt-on-slice vector :inline :offset-assert 32) - (slice-corners vector 4 :offset-assert 48) ;; guessed by decompiler + (slice-corners vector 4 :inline :offset-assert 48) ;; guessed by decompiler (lap-dist float :offset-assert 112) (slice-id int16 :offset-assert 116) ) @@ -44475,33 +44599,27 @@ :size-assert #x76 :flag-assert #x900000076 ) -|# -#| (deftype race-mesh-edge (structure) ((left vector :inline :offset-assert 0) (right vector :inline :offset-assert 16) - (lap-dist float :offset-assert 12) + (lap-dist float :offset 12) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype race-mesh-slice (structure) ((edge-index-array uint16 2 :offset-assert 0) ;; guessed by decompiler - (start-edge int16 :offset-assert 0) - (end-edge int16 :offset-assert 2) + (start-edge int16 :offset 0) + (end-edge int16 :offset 2) ) :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype race-mesh-hash-cell (structure) ((first-slice int16 :offset-assert 0) (slice-count uint8 :offset-assert 2) @@ -44511,9 +44629,7 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype race-mesh-hash (structure) ((cells-wide int8 :offset-assert 0) (cells-tall int8 :offset-assert 1) @@ -44526,9 +44642,7 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype race-mesh (basic) ((version uint8 :offset-assert 4) (flags uint8 :offset-assert 5) ;; race-mesh-flag @@ -44560,36 +44674,33 @@ (race-mesh-method-20 () none) ;; 20 ) ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; race-control ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype race-control (structure) ((state race-state :offset-assert 0) (racer-state racer-state :offset-assert 4) (mesh race-mesh :offset-assert 8) ;; guessed by decompiler (line race-line :offset-assert 12) ) + :pack-me :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods - (race-control-method-9 () none) ;; 9 ;; (race-control-method-9 (_type_ int vector) none) + (race-control-method-9 (_type_ symbol race-state racer-state) none) ;; 9 ;; (race-control-method-9 (_type_ int vector) none) ) ) -|# -;; (define-extern output-race-mesh function) +(define-extern output-race-mesh (function symbol none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; wvehicle-weapons-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype vehicle-weapon-slot (process-drawable) ((owning-vehicle uint64 :offset-assert 248) (ammunition int8 :offset-assert 256) @@ -44601,6 +44712,9 @@ :method-count-assert 60 :size-assert #x105 :flag-assert #x3c00800105 + (:state-methods + idle ;; 50 + ) (:methods (vehicle-weapon-slot-method-51 () none) ;; 51 (vehicle-weapon-slot-method-52 () none) ;; 52 @@ -44612,13 +44726,8 @@ (vehicle-weapon-slot-method-58 () none) ;; 58 (vehicle-weapon-slot-method-59 () none) ;; 59 ) - (:state-methods - idle ;; 50 - ) ) -|# -#| (deftype gunmount-drawable (process-drawable) ((mounted-on uint64 :offset-assert 248) (hardpoint int8 :offset-assert 256) @@ -44633,9 +44742,7 @@ (gunmount-drawable-method-53 () none) ;; 53 ) ) -|# -#| (deftype gunmount-generic-drawable (gunmount-drawable) ((config uint8 :offset-assert 257) (flash uint64 :offset-assert 264) @@ -44650,9 +44757,7 @@ (gunmount-generic-drawable-method-55 () none) ;; 55 ) ) -|# -#| (deftype warning-hud-icon (basic) ((hsprite hud-sprite :inline :offset-assert 16) ) @@ -44660,9 +44765,7 @@ :size-assert #x44 :flag-assert #x900000044 ) -|# -#| (deftype rapid-fire-params (structure) ((rof uint16 :offset-assert 0) (shot-radius float :offset-assert 4) @@ -44680,9 +44783,7 @@ :flag-assert #x90000001e ;; field impact-callback-params uses ~A with a signed load. ) -|# -#| (deftype rapid-fire-control (basic) ((owner uint64 :offset-assert 8) (params rapid-fire-params :offset-assert 16) @@ -44703,9 +44804,7 @@ (rapid-fire-control-method-12 () none) ;; 12 ) ) -|# -#| (deftype rapid-fire-callback-gun-hitspang-params (structure) ((bits-part-id uint32 :offset-assert 0) (dust-part-id uint32 :offset-assert 4) @@ -44715,9 +44814,7 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype vehicle-weapon-drone (process-focusable) ((owning-vehicle uint64 :offset-assert 256) (owning-slot uint64 :offset-assert 264) @@ -44733,7 +44830,7 @@ (last-gaze-time uint64 :offset-assert 328) (pitch-bend float :offset-assert 336) (sweep-loop uint32 :offset-assert 340) - (muzzle-flashes UNKNOWN 4 :offset-assert 344) + (muzzle-flashes uint64 4 :offset-assert 344) (next-target-poll uint64 :offset-assert 376) (firecontrol basic :offset-assert 384) (blam uint32 :offset-assert 388) @@ -44752,9 +44849,7 @@ (vehicle-weapon-drone-method-66 () none) ;; 66 ) ) -|# -#| (deftype v-wpn-ptable-entry (structure) ((chance uint16 :offset-assert 0) (weapon-type uint8 :offset-assert 2) @@ -44764,9 +44859,7 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype v-wpn-ptable (structure) ((entries-count int8 :offset-assert 0) (total-chance uint16 :offset-assert 2) @@ -44776,9 +44869,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype v-wpn-ptable-quad (structure) ((base v-wpn-ptable :offset-assert 0) (last-lap v-wpn-ptable :offset-assert 4) @@ -44790,22 +44881,23 @@ :size-assert #x14 :flag-assert #x900000014 ) -|# -;; v-wpn-net-info is already defined! +(deftype v-wpn-net-info (structure) + () + :method-count-assert 9 + ) -;; (define-extern V_R_MINE1_ARMED? object) +(define-extern V_R_MINE1_ARMED? symbol) ;; (define-extern weapon-mask->type function) -;; (define-extern *weapon-suppression-table* object) +(define-extern *weapon-suppression-table* (pointer (array symbol))) ;; (define-extern v-wpn-base-common-trans function) ;; (define-extern v-wpn-event-base function) -;; (define-extern *cheat-defaultgun-in-race* object) +(define-extern *cheat-defaultgun-in-race* symbol) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; wvehicle-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype wvehicle-sound-loop-state (structure) ((id sound-id :offset-assert 0) ;; guessed by decompiler (vol float :offset-assert 4) @@ -44815,9 +44907,7 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype vehicle-wheel-state (structure) ((info vehicle-wheel-info :offset-assert 0) (flags uint8 :offset-assert 4) @@ -44831,7 +44921,7 @@ (ground-normal vector :inline :offset-assert 96) (trans vector :inline :offset-assert 112) (quat quaternion :inline :offset-assert 128) - (trail-pos vector 2 :offset-assert 144) ;; guessed by decompiler + (trail-pos vector 2 :inline :offset-assert 144) ;; guessed by decompiler (surface rigid-body-surface :offset-assert 176) ;; vehicle-wheel-surface (pos float :offset-assert 180) (pos2 float :offset-assert 184) @@ -44856,25 +44946,23 @@ (tread-time uint32 :offset-assert 272) (tread-tracker uint64 :offset-assert 280) ;; handle ) + :pack-me :method-count-assert 9 :size-assert #x120 :flag-assert #x900000120 ) -|# -#| (deftype wvehicle-net-extra (structure) ((desired-steering float :offset-assert 0) (desired-throttle float :offset-assert 4) (desired-wheel-rev float :offset-assert 8) ) + :pack-me :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype wvehicle-ai-destination (structure) ((final-position vector :inline :offset-assert 0) (position vector :inline :offset-assert 16) @@ -44886,9 +44974,7 @@ :size-assert #x40 :flag-assert #x900000040 ) -|# -#| (deftype wvehicle-ai-state (structure) ((destination wvehicle-ai-destination :inline :offset-assert 0) (nav-location nav-location :inline :offset-assert 64) @@ -44907,9 +44993,7 @@ :size-assert #x85 :flag-assert #x900000085 ) -|# -#| (deftype wvehicle-engine-loop-state (structure) ((id uint32 :offset-assert 0) (index int8 :offset-assert 4) @@ -44918,19 +45002,15 @@ :size-assert #x5 :flag-assert #x900000005 ) -|# -#| (deftype wvehicle-engine-mix-state (structure) - ((loops UNKNOWN 2 :offset-assert 0) + ((loops wvehicle-engine-loop-state 2 :inline :offset-assert 0) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype v-wpn-turbo-lightning-info (structure) ((pt-start vector :inline :offset-assert 0) (pt-end vector :inline :offset-assert 16) @@ -44942,24 +45022,21 @@ :size-assert #x48 :flag-assert #x900000048 ) -|# -#| (deftype wvehicle-weapon-sync-blob (structure) - ((data UNKNOWN 4 :offset-assert 0) - (wpn-left-type int8 :offset-assert 0) - (wpn-right-type int8 :offset-assert 1) - (wpn-left-powerup int8 :offset-assert 2) - (wpn-right-powerup int8 :offset-assert 3) - (blob int32 :offset-assert 0) + ((data int8 4 :offset-assert 0) + (wpn-left-type int8 :offset 0) + (wpn-right-type int8 :offset 1) + (wpn-left-powerup int8 :offset 2) + (wpn-right-powerup int8 :offset 3) + (blob int32 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype wvehicle (vehicle) ((net-extra wvehicle-net-extra :inline :offset-assert 2140) (antenna uint64 :offset-assert 2152) @@ -44996,7 +45073,7 @@ (jump-control float :offset-assert 2436) (shortcut-speed-factor float :offset-assert 2440) (path-deviation float :offset-assert 2444) - (turbo-supply float :offset-assert 704) + (turbo-supply float :offset 704) (turbo-ready float :offset-assert 2448) (slide-factor float :offset-assert 2452) (slide-time uint32 :offset-assert 2456) @@ -45005,14 +45082,14 @@ (gear-select int8 :offset-assert 2465) (next-gear-select int8 :offset-assert 2466) (shift-time uint32 :offset-assert 2468) - (wheel vehicle-wheel-state 4 :offset-assert 2480) ;; guessed by decompiler + (wheel vehicle-wheel-state 4 :inline :offset-assert 2480) ;; guessed by decompiler (gravity-dir vector :inline :offset-assert 3632) (surface-velocity vector :inline :offset-assert 3648) - (tire-roll-loop-state wvehicle-sound-loop-state 6 :offset-assert 3664) ;; guessed by decompiler - (tire-slide-loop-state wvehicle-sound-loop-state 2 :offset-assert 3760) ;; guessed by decompiler - (engine-mix-state-array UNKNOWN 2 :offset-assert 3792) - (min-load-engine-mix-state wvehicle-engine-mix-state :inline :offset-assert 3792) - (max-load-engine-mix-state wvehicle-engine-mix-state :inline :offset-assert 3824) + (tire-roll-loop-state wvehicle-sound-loop-state 6 :inline :offset-assert 3664) ;; guessed by decompiler + (tire-slide-loop-state wvehicle-sound-loop-state 2 :inline :offset-assert 3760) ;; guessed by decompiler + (engine-mix-state-array wvehicle-engine-mix-state 2 :inline :offset-assert 3792) + (min-load-engine-mix-state wvehicle-engine-mix-state :inline :offset 3792) + (max-load-engine-mix-state wvehicle-engine-mix-state :inline :offset 3824) (damage-sound-id sound-id :offset-assert 3856) ;; guessed by decompiler (water-sound-id sound-id :offset-assert 3860) ;; guessed by decompiler (wheel-fire-sound-id uint32 :offset-assert 3864) @@ -45043,30 +45120,31 @@ (turbo-pitch float :offset-assert 4100) (health-pickup-multiplier float :offset-assert 4104) (jmod-steering-wheel joint-mod-rotate-local :inline :offset-assert 4112) - (jmod-frame UNKNOWN 2 :offset-assert 4144) - (jmod-axles UNKNOWN 4 :offset-assert 4272) + (jmod-frame joint-mod-set-local 2 :inline :offset-assert 4144) ;; guess + (jmod-axles joint-mod-trans-rot-local 4 :inline :offset-assert 4272) ;; guess (water-sound-envelope float :offset-assert 4464) - (wpn-current-target uint64 :offset-assert 4488) - (wpn-current-target-acquired uint64 :offset-assert 4496) - (wpn-left uint64 :offset-assert 4504) - (wpn-right uint64 :offset-assert 4512) - (wpn-shield uint64 :offset-assert 4520) - (wpn-drone uint64 :offset-assert 4528) - (wpn-oil uint64 :offset-assert 4536) - (wpn-turbo uint64 :offset-assert 4544) - (wpn-bulldog-gun uint64 :offset-assert 4552) - (wpn-drawables UNKNOWN 2 :offset-assert 4560) - (wpn-drawable-left uint64 :offset-assert 4560) - (wpn-drawable-right uint64 :offset-assert 4568) + (pad13 uint32 5) + (wpn-current-target handle :offset-assert 4488) + (wpn-current-target-acquired handle :offset-assert 4496) + (wpn-left handle :offset-assert 4504) + (wpn-right handle :offset-assert 4512) + (wpn-shield handle :offset-assert 4520) + (wpn-drone handle :offset-assert 4528) + (wpn-oil handle :offset-assert 4536) + (wpn-turbo handle :offset-assert 4544) + (wpn-bulldog-gun handle :offset-assert 4552) + (wpn-drawables handle 2 :offset-assert 4560) + (wpn-drawable-left handle :offset 4560) + (wpn-drawable-right handle :offset 4568) (wpn-spin-done-left int32 :offset-assert 4576) (wpn-spin-done-right int32 :offset-assert 4580) (prev-wpn-sync wvehicle-weapon-sync-blob :inline :offset-assert 4584) (turbo-suppressor-particle basic :offset-assert 4588) (dark-seeking-me basic :offset-assert 4592) (dark-suck-sound-pending int8 :offset-assert 4596) - (vehicle-exhaust-subsampler UNKNOWN 2 :offset-assert 4600) - (wheel-launcher UNKNOWN 4 :offset-assert 4608) - (wheel-fire-launcher UNKNOWN 4 :offset-assert 4624) + (vehicle-exhaust-subsampler uint32 2 :offset-assert 4600) + (wheel-launcher uint32 4 :offset-assert 4608) + (wheel-fire-launcher uint32 4 :offset-assert 4624) (hack-armed-right basic :offset-assert 4640) (hack-armed-left basic :offset-assert 4644) (shake-amount float :offset-assert 4648) @@ -45147,9 +45225,7 @@ (wvehicle-method-271 () none) ;; 271 ) ) -|# -#| (deftype vehicle-antenna-init-params (structure) ((pos vector :inline :offset-assert 0) (tilt float :offset-assert 16) @@ -45161,24 +45237,22 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -;; (define-extern rpm->radians-per-sec function) ;; (function float degrees) -;; (define-extern radians-per-sec->rpm function) ;; (function degrees float) -;; (define-extern vehicle-shielded? function) +(define-extern rpm->radians-per-sec (function float degrees)) ;; +(define-extern radians-per-sec->rpm (function degrees float)) ;; +(define-extern vehicle-shielded? (function wvehicle symbol)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-player-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype net-player-respawn-info (structure) ((position vector :inline :offset-assert 0) (quat quaternion :inline :offset-assert 16) (velocity vector :inline :offset-assert 32) (want-count int8 :offset-assert 48) (want uint32 :offset-assert 52) - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ;; (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. ) :method-count-assert 11 :size-assert #x38 @@ -45188,15 +45262,14 @@ (net-player-respawn-info-method-10 () none) ;; 10 ) ) -|# -#| (deftype net-player (process-nettable) ((last-known-pos vector :inline :offset-assert 192) (last-known-pos-valid basic :offset-assert 208) (mgr basic :offset-assert 212) (vehicle uint64 :offset-assert 216) (rev-mgr uint64 :offset-assert 224) + (pad1 uint32) (score int32 :offset-assert 236) (player-num int8 :offset-assert 240) (team uint8 :offset-assert 241) @@ -45295,18 +45368,17 @@ (net-player-method-97 () none) ;; 97 ) ) -|# -;; (define-extern net-player-init-remote function) -;; (define-extern *msg-map-net-player* array) -;; (define-extern *net-process-class-info-net-player* object) -;; (define-extern *net-players* array) -;; (define-extern *active-net-player-count* object) -;; (define-extern *active-net-players* array) -;; (define-extern *active-net-non-spectator-count* object) -;; (define-extern *active-net-non-spectators* array) -;; (define-extern *team-colors* object) -;; (define-extern *team-font-colors* object) +(define-extern net-player-init-remote (function process none :behavior net-player)) +(define-extern *msg-map-net-player* (array symbol)) +(define-extern *net-process-class-info-net-player* net-process-class-info) +(define-extern *net-players* (array symbol)) +(define-extern *active-net-player-count* int) +(define-extern *active-net-players* (array net-player)) +(define-extern *active-net-non-spectator-count* int) +(define-extern *active-net-non-spectators* (array net-player)) +(define-extern *team-colors* (pointer uint8)) +(define-extern *team-font-colors* (pointer font-color)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-world-h ;; @@ -45340,6 +45412,7 @@ (stripe-color uint32 :offset-assert 24) (skill-level int32 :offset-assert 28) ) + :pack-me :method-count-assert 10 :size-assert #x20 :flag-assert #xa00000020 @@ -45536,7 +45609,7 @@ ;; (define-extern net-world-init-remote function) (define-extern *msg-map-net-world* (array symbol)) (define-extern *net-process-class-info-net-world* net-process-class-info) -;; (define-extern *net-world* object) +(define-extern *net-world* net-world) ;; (define-extern *net-player-names* object) (define-extern *prebuilt-ai-vehicles* (array prebuilt-ai-vehicle)) (define-extern *net-vehicles* (array net-vehicle)) @@ -45554,7 +45627,6 @@ ;; net-logging-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype net-log-event-header (structure) ((length uint16 :offset-assert 0) (type uint8 :offset-assert 2) @@ -45566,16 +45638,14 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -;; (define-extern *net-log-tmp-header* object) -;; (define-extern *comment-string* object) +(define-extern *net-log-tmp-header* net-log-event-header) +(define-extern *comment-string* string) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-powerup-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype net-powerup-motion-info (basic) ((motion-hook basic :offset-assert 4) (flight-end-time int32 :offset-assert 8) @@ -45592,9 +45662,7 @@ (net-powerup-motion-info-method-12 () none) ;; 12 ) ) -|# -#| (deftype net-powerup-spawn-params (structure) ((tp basic :offset-assert 0) (pos vector :inline :offset-assert 16) @@ -45606,9 +45674,7 @@ :size-assert #x2c :flag-assert #x90000002c ) -|# -#| (deftype net-powerup (process-nettable) ((child-proc uint64 :offset-assert 192) (die-or-respawn-time int32 :offset-assert 200) @@ -45639,9 +45705,7 @@ (net-powerup-method-55 () none) ;; 55 ) ) -|# -#| (deftype powerup-draw (process-drawable) ((parent-proc uint64 :offset-assert 248) (glow-sound basic :offset-assert 256) @@ -45660,14 +45724,13 @@ (powerup-draw-method-56 () none) ;; 56 ) ) -|# -;; (define-extern *powerup-static-hash* object) -;; (define-extern *powerup-dynamic-hash* object) -;; (define-extern net-powerup-init-remote function) -;; (define-extern *msg-map-net-powerup* array) -;; (define-extern *net-process-class-info-net-powerup* object) -;; (define-extern powerup-draw-init-by-other function) +(define-extern *powerup-static-hash* spatial-hash) +(define-extern *powerup-dynamic-hash* spatial-hash) +(define-extern net-powerup-init-remote (function process none :behavior net-powerup)) +(define-extern *msg-map-net-powerup* (array symbol)) +(define-extern *net-process-class-info-net-powerup* net-process-class-info) +(define-extern powerup-draw-init-by-other (function vector vector object none :behavior powerup-draw)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-game-mgr-h ;; @@ -45753,7 +45816,7 @@ ;; (define-extern net-game-mgr-init-remote function) ;; (define-extern *msg-map-net-game-mgr* array) -;; (define-extern *net-process-class-info-net-game-mgr* object) +;; (define-extern *net-process-class-info-net-game-mgr* net-process-class-info) ;; (define-extern *net-game-mgr* object) ;; (define-extern *should-update-stats* object) ;; (define-extern *stats-adjusted* object) @@ -45833,10 +45896,10 @@ ;; (define-extern net-player-race-init-remote function) ;; (define-extern *msg-map-net-player-race* array) -;; (define-extern *net-process-class-info-net-player-race* object) +;; (define-extern *net-process-class-info-net-player-race* net-process-class-info) ;; (define-extern net-game-mgr-race-init-remote function) ;; (define-extern *msg-map-net-game-mgr-race* array) -;; (define-extern *net-process-class-info-net-game-mgr-race* object) +;; (define-extern *net-process-class-info-net-game-mgr-race* net-process-class-info) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-game-modes-h ;; @@ -46115,55 +46178,55 @@ ;; (define-extern net-player-deathmatch-init-remote function) ;; (define-extern *msg-map-net-player-deathmatch* array) -;; (define-extern *net-process-class-info-net-player-deathmatch* object) +;; (define-extern *net-process-class-info-net-player-deathmatch* net-process-class-info) ;; (define-extern net-game-mgr-deathmatch-init-remote function) ;; (define-extern *msg-map-net-game-mgr-deathmatch* array) -;; (define-extern *net-process-class-info-net-game-mgr-deathmatch* object) +;; (define-extern *net-process-class-info-net-game-mgr-deathmatch* net-process-class-info) ;; (define-extern net-player-assassin-init-remote function) ;; (define-extern *msg-map-net-player-assassin* array) -;; (define-extern *net-process-class-info-net-player-assassin* object) +;; (define-extern *net-process-class-info-net-player-assassin* net-process-class-info) ;; (define-extern net-game-mgr-assassin-init-remote function) ;; (define-extern *msg-map-net-game-mgr-assassin* array) -;; (define-extern *net-process-class-info-net-game-mgr-assassin* object) +;; (define-extern *net-process-class-info-net-game-mgr-assassin* net-process-class-info) ;; (define-extern net-player-deathrace-init-remote function) ;; (define-extern *msg-map-net-player-deathrace* array) -;; (define-extern *net-process-class-info-net-player-deathrace* object) +;; (define-extern *net-process-class-info-net-player-deathrace* net-process-class-info) ;; (define-extern net-game-mgr-deathrace-init-remote function) ;; (define-extern *msg-map-net-game-mgr-deathrace* array) -;; (define-extern *net-process-class-info-net-game-mgr-deathrace* object) +;; (define-extern *net-process-class-info-net-game-mgr-deathrace* net-process-class-info) ;; (define-extern net-game-mgr-football-init-remote function) ;; (define-extern *msg-map-net-game-mgr-football* array) -;; (define-extern *net-process-class-info-net-game-mgr-football* object) +;; (define-extern *net-process-class-info-net-game-mgr-football* net-process-class-info) ;; (define-extern net-player-football-init-remote function) ;; (define-extern *msg-map-net-player-football* array) -;; (define-extern *net-process-class-info-net-player-football* object) +;; (define-extern *net-process-class-info-net-player-football* net-process-class-info) ;; (define-extern powercell-dispenser-init-remote function) ;; (define-extern *msg-map-powercell-dispenser* array) -;; (define-extern *net-process-class-info-powercell-dispenser* object) +;; (define-extern *net-process-class-info-powercell-dispenser* net-process-class-info) ;; (define-extern powercell-dispenser-draw-init-remote function) ;; (define-extern *msg-map-powercell-dispenser-draw* array) -;; (define-extern *net-process-class-info-powercell-dispenser-draw* object) +;; (define-extern *net-process-class-info-powercell-dispenser-draw* net-process-class-info) ;; (define-extern powercell-footie-init-remote function) ;; (define-extern *msg-map-powercell-footie* array) -;; (define-extern *net-process-class-info-powercell-footie* object) +;; (define-extern *net-process-class-info-powercell-footie* net-process-class-info) ;; (define-extern net-player-artifact-init-remote function) ;; (define-extern *msg-map-net-player-artifact* array) -;; (define-extern *net-process-class-info-net-player-artifact* object) +;; (define-extern *net-process-class-info-net-player-artifact* net-process-class-info) ;; (define-extern net-game-mgr-artifact-init-remote function) ;; (define-extern *msg-map-net-game-mgr-artifact* array) -;; (define-extern *net-process-class-info-net-game-mgr-artifact* object) +;; (define-extern *net-process-class-info-net-game-mgr-artifact* net-process-class-info) ;; (define-extern net-player-beasthunt-init-remote function) ;; (define-extern *msg-map-net-player-beasthunt* array) -;; (define-extern *net-process-class-info-net-player-beasthunt* object) +;; (define-extern *net-process-class-info-net-player-beasthunt* net-process-class-info) ;; (define-extern net-game-mgr-beasthunt-init-remote function) ;; (define-extern *msg-map-net-game-mgr-beasthunt* array) -;; (define-extern *net-process-class-info-net-game-mgr-beasthunt* object) +;; (define-extern *net-process-class-info-net-game-mgr-beasthunt* net-process-class-info) ;; (define-extern net-player-collectable-init-remote function) ;; (define-extern *msg-map-net-player-collectable* array) -;; (define-extern *net-process-class-info-net-player-collectable* object) +;; (define-extern *net-process-class-info-net-player-collectable* net-process-class-info) ;; (define-extern net-game-mgr-collectable-init-remote function) ;; (define-extern *msg-map-net-game-mgr-collectable* array) -;; (define-extern *net-process-class-info-net-game-mgr-collectable* object) +;; (define-extern *net-process-class-info-net-game-mgr-collectable* net-process-class-info) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-game-modes2-h ;; @@ -46390,46 +46453,46 @@ ;; (define-extern *ctf-blue-base* object) ;; (define-extern net-player-ctf-init-remote function) ;; (define-extern *msg-map-net-player-ctf* array) -;; (define-extern *net-process-class-info-net-player-ctf* object) +;; (define-extern *net-process-class-info-net-player-ctf* net-process-class-info) ;; (define-extern net-game-mgr-ctf-init-remote function) ;; (define-extern *msg-map-net-game-mgr-ctf* array) -;; (define-extern *net-process-class-info-net-game-mgr-ctf* object) +;; (define-extern *net-process-class-info-net-game-mgr-ctf* net-process-class-info) ;; (define-extern ctf-flag-init-remote function) ;; (define-extern *msg-map-ctf-flag* array) -;; (define-extern *net-process-class-info-ctf-flag* object) +;; (define-extern *net-process-class-info-ctf-flag* net-process-class-info) ;; (define-extern net-player-rushhour-init-remote function) ;; (define-extern *msg-map-net-player-rushhour* array) -;; (define-extern *net-process-class-info-net-player-rushhour* object) +;; (define-extern *net-process-class-info-net-player-rushhour* net-process-class-info) ;; (define-extern net-game-mgr-rushhour-init-remote function) ;; (define-extern *msg-map-net-game-mgr-rushhour* array) -;; (define-extern *net-process-class-info-net-game-mgr-rushhour* object) +;; (define-extern *net-process-class-info-net-game-mgr-rushhour* net-process-class-info) ;; (define-extern net-game-mgr-king-of-hill-init-remote function) ;; (define-extern *msg-map-net-game-mgr-king-of-hill* array) -;; (define-extern *net-process-class-info-net-game-mgr-king-of-hill* object) +;; (define-extern *net-process-class-info-net-game-mgr-king-of-hill* net-process-class-info) ;; (define-extern net-player-king-of-hill-init-remote function) ;; (define-extern *msg-map-net-player-king-of-hill* array) -;; (define-extern *net-process-class-info-net-player-king-of-hill* object) +;; (define-extern *net-process-class-info-net-player-king-of-hill* net-process-class-info) ;; (define-extern net-player-time-box-init-remote function) ;; (define-extern *msg-map-net-player-time-box* array) -;; (define-extern *net-process-class-info-net-player-time-box* object) +;; (define-extern *net-process-class-info-net-player-time-box* net-process-class-info) ;; (define-extern net-game-mgr-time-box-init-remote function) ;; (define-extern *msg-map-net-game-mgr-time-box* array) -;; (define-extern *net-process-class-info-net-game-mgr-time-box* object) +;; (define-extern *net-process-class-info-net-game-mgr-time-box* net-process-class-info) ;; (define-extern net-player-time-trial-init-remote function) ;; (define-extern *msg-map-net-player-time-trial* array) -;; (define-extern *net-process-class-info-net-player-time-trial* object) +;; (define-extern *net-process-class-info-net-player-time-trial* net-process-class-info) ;; (define-extern net-game-mgr-time-trial-init-remote function) ;; (define-extern *msg-map-net-game-mgr-time-trial* array) -;; (define-extern *net-process-class-info-net-game-mgr-time-trial* object) +;; (define-extern *net-process-class-info-net-game-mgr-time-trial* net-process-class-info) ;; (define-extern net-game-mgr-training-init-remote function) ;; (define-extern *msg-map-net-game-mgr-training* array) -;; (define-extern *net-process-class-info-net-game-mgr-training* object) +;; (define-extern *net-process-class-info-net-game-mgr-training* net-process-class-info) ;; (define-extern net-player-boss-battle-init-remote function) ;; (define-extern *msg-map-net-player-boss-battle* array) -;; (define-extern *net-process-class-info-net-player-boss-battle* object) +;; (define-extern *net-process-class-info-net-player-boss-battle* net-process-class-info) ;; (define-extern net-game-mgr-boss-battle-init-remote function) ;; (define-extern *msg-map-net-game-mgr-boss-battle* array) -;; (define-extern *net-process-class-info-net-game-mgr-boss-battle* object) +;; (define-extern *net-process-class-info-net-game-mgr-boss-battle* net-process-class-info) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-simple-destruct-h ;; @@ -46479,7 +46542,7 @@ ;; (define-extern net-simple-destruct-mgr-init-remote function) ;; (define-extern *msg-map-net-simple-destruct-mgr* array) -;; (define-extern *net-process-class-info-net-simple-destruct-mgr* object) +;; (define-extern *net-process-class-info-net-simple-destruct-mgr* net-process-class-info) ;; (define-extern *net-simple-destruct-mgr* object) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -46501,7 +46564,6 @@ ;; net-projectile-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype net-projectile (projectile) () :method-count-assert 75 @@ -46513,27 +46575,26 @@ (net-projectile-method-74 () none) ;; 74 ) ) -|# -;; (define-extern net-projectile-init-remote function) -;; (define-extern *msg-map-net-projectile* array) -;; (define-extern *net-process-class-info-net-projectile* object) -;; (define-extern spawn-net-projectile function) +(define-extern net-projectile-init-remote (function process none :behavior net-projectile)) +(define-extern *msg-map-net-projectile* (array symbol)) +(define-extern *net-process-class-info-net-projectile* net-process-class-info) +(define-extern spawn-net-projectile (function type projectile-init-by-other-params process-tree dead-pool (pointer process))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-time-trial-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype timetrial-snapshot (structure) ((pos-x-lo uint16 :offset-assert 0) (pos-y uint16 :offset-assert 2) (pos-z-lo uint16 :offset-assert 4) (pos-xz-hi uint8 :offset-assert 6) - (rot UNKNOWN 3 :offset-assert 7) + (rot uint8 3 :offset-assert 7) (flags uint8 :offset-assert 10) (skip uint8 :offset-assert 11) ) + :pack-me :method-count-assert 13 :size-assert #xc :flag-assert #xd0000000c @@ -46544,9 +46605,7 @@ (timetrial-snapshot-method-12 () none) ;; 12 ) ) -|# -#| (deftype timetrial-recording (structure) ((crc uint32 :offset-assert 0) (total-snaps uint32 :offset-assert 4) @@ -46554,11 +46613,11 @@ (task-node uint32 :offset-assert 12) (acct-id uint32 :offset-assert 16) (player-info net-world-staging-player :inline :offset-assert 24) - (player-name UNKNOWN 32 :offset-assert 56) + (player-name uint8 32 :offset-assert 56) (cur-idx int32 :offset-assert 88) (start-pos int32 :offset-assert 92) (cur-snap-time int32 :offset-assert 96) - (data UNKNOWN :dynamic :offset-assert 100) + (data timetrial-snapshot :dynamic :offset-assert 100) ) :method-count-assert 14 :size-assert #x64 @@ -46567,22 +46626,20 @@ (timetrial-recording-method-9 () none) ;; 9 (timetrial-recording-method-10 () none) ;; 10 (timetrial-recording-method-11 () none) ;; 11 - (timetrial-recording-method-12 () none) ;; 12 + (timetrial-recording-method-12 (_type_) int) ;; 12 (timetrial-recording-method-13 () none) ;; 13 ) ) -|# -;; (define-extern *ghosts-enabled* object) -;; (define-extern *ghost-rec* object) -;; (define-extern *ghost-upload-proc* object) -;; (define-extern *ghost-download-proc* object) +(define-extern *ghosts-enabled* symbol) +(define-extern *ghost-rec* (inline-array timetrial-snapshot)) +(define-extern *ghost-upload-proc* object) +(define-extern *ghost-download-proc* object) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; net-eco-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype eco-perm (structure) ((time int32 :offset-assert 0) (owner int8 :offset-assert 4) @@ -46593,9 +46650,7 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype eco (process-drawable) () :method-count-assert 56 @@ -46610,9 +46665,7 @@ (eco-method-55 () none) ;; 55 ) ) -|# -#| (deftype eco-mgr (process-nettable) () :method-count-assert 51 @@ -46630,56 +46683,48 @@ (eco-mgr-method-50 () none) ;; 50 ) ) -|# -;; (define-extern eco-mgr-init-remote function) -;; (define-extern *msg-map-eco-mgr* array) -;; (define-extern *net-process-class-info-eco-mgr* object) +(define-extern eco-mgr-init-remote (function process none :behavior eco-mgr)) +(define-extern *msg-map-eco-mgr* (array symbol)) +(define-extern *net-process-class-info-eco-mgr* net-process-class-info) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; menu2-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype menu-string (hud-string) - () + ((pad int32)) :method-count-assert 10 :size-assert #x44 :flag-assert #xa00000044 ) -|# -#| (deftype menu-option-info (structure) ((display-name-id uint32 :offset-assert 0) (sym basic :offset-assert 4) (extra basic :offset-assert 8) - (extra-object basic :offset-assert 8) - (extra-int int32 :offset-assert 8) + (extra-object basic :offset 8) + (extra-int int32 :offset 8) ) :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ;; field extra uses ~A with a signed load. field extra-object uses ~A with a signed load. ) -|# -#| (deftype strings-extra-struct (structure) - ((text UNKNOWN 128 :offset-assert 0) + ((text uint8 128 :offset-assert 0) (extra basic :offset-assert 128) - (extra-object basic :offset-assert 128) - (extra-int int32 :offset-assert 128) - (extra-int16 UNKNOWN 2 :offset-assert 128) + (extra-object basic :offset 128) + (extra-int int32 :offset 128) + (extra-int16 int16 2 :offset 128) ) :method-count-assert 9 :size-assert #x84 :flag-assert #x900000084 ;; field extra uses ~A with a signed load. field extra-object uses ~A with a signed load. ) -|# -#| (deftype menu-selection-struct (structure) ((array-ptr basic :offset-assert 0) (selection-index int32 :offset-assert 4) @@ -46689,9 +46734,7 @@ :size-assert #xc :flag-assert #x90000000c ) -|# -#| (deftype animation-info (structure) ((enter-anim int32 :offset-assert 0) (exit-anim int32 :offset-assert 4) @@ -46699,18 +46742,16 @@ (anim-speed float :offset-assert 12) (enter-delay uint32 :offset-assert 16) (3d-offset vector :inline :offset-assert 32) - (3d-offset-x float :offset-assert 32) - (3d-offset-y float :offset-assert 36) - (3d-offset-z float :offset-assert 40) - (3d-offset-w float :offset-assert 44) + (3d-offset-x float :offset 32) + (3d-offset-y float :offset 36) + (3d-offset-z float :offset 40) + (3d-offset-w float :offset 44) ) :method-count-assert 9 :size-assert #x30 :flag-assert #x900000030 ) -|# -#| (deftype base-menu-info (structure) ((menu-type basic :offset-assert 0) (children basic :offset-assert 4) @@ -46733,9 +46774,7 @@ :size-assert #x34 :flag-assert #x900000034 ) -|# -#| (deftype base-menu (process-drawable) ((child-handles basic :offset-assert 248) (info-ptr base-menu-info :offset-assert 252) @@ -46777,18 +46816,14 @@ (base-menu-method-64 () none) ;; 64 ) ) -|# -#| (deftype jakx-logo-menu (base-menu) () :method-count-assert 65 :size-assert #x218 :flag-assert #x4101900218 ) -|# -#| (deftype map-menu (base-menu) () :method-count-assert 66 @@ -46798,9 +46833,7 @@ (map-menu-method-65 () none) ;; 65 ) ) -|# -#| (deftype selection-menu-manager (base-menu) ((selection-index int32 :offset-assert 536) (prev-selection-index int32 :offset-assert 540) @@ -46814,15 +46847,13 @@ (selection-menu-manager-method-66 () none) ;; 66 ) ) -|# -#| (deftype sprite-info (structure) ((offset vector :inline :offset-assert 0) - (offset-x float :offset-assert 0) - (offset-y float :offset-assert 4) - (offset-z float :offset-assert 8) - (offset-w float :offset-assert 12) + (offset-x float :offset 0) + (offset-y float :offset 4) + (offset-z float :offset 8) + (offset-w float :offset 12) (pos-z int32 :offset-assert 16) (tex-name basic :offset-assert 20) (tex-id uint32 :offset-assert 24) @@ -46837,9 +46868,7 @@ :size-assert #x29 :flag-assert #x900000029 ) -|# -#| (deftype transition-info (animation-info) ((enter-pos-x float :offset-assert 48) (enter-pos-y float :offset-assert 52) @@ -46855,15 +46884,14 @@ (scroll-offset-y int32 :offset-assert 92) (scroll-rate float :offset-assert 96) ) + :pack-me :method-count-assert 9 :size-assert #x64 :flag-assert #x900000064 ) -|# -#| (deftype sprite-menu-info (base-menu-info) - ((trans-info transition-info :offset-assert 16) + ((trans-info transition-info :override) (sprites-info basic :offset-assert 52) (color uint32 :offset-assert 56) ) @@ -46871,21 +46899,15 @@ :size-assert #x3c :flag-assert #x90000003c ) -|# -#| (deftype hud-sprite-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data UNKNOWN :dynamic :offset-assert 16) + ((data hud-sprite :dynamic :inline :offset-assert 16) ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype sprite-menu (base-menu) ((sprites basic :offset-assert 536) (alpha float :offset-assert 540) @@ -46897,9 +46919,7 @@ (sprite-menu-method-65 () none) ;; 65 ) ) -|# -#| (deftype menu-prim-strip-client (prim-client) ((strip basic :offset-assert 4) ) @@ -46910,9 +46930,7 @@ (menu-prim-strip-client-method-10 () none) ;; 10 ) ) -|# -#| (deftype prim-strip-menu (sprite-menu) ((p-client-array basic :offset-assert 544) (colors basic :offset-assert 548) @@ -46924,9 +46942,7 @@ (prim-strip-menu-method-66 () none) ;; 66 ) ) -|# -#| (deftype sprite-ptr-info (sprite-info) ((sprite-ptr basic :offset-assert 44) ) @@ -46934,29 +46950,24 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| (deftype sprite-ptr-menu-info (sprite-menu-info) () :method-count-assert 9 :size-assert #x3c :flag-assert #x90000003c ) -|# -#| (deftype sprite-ptr-menu (prim-strip-menu) () :method-count-assert 67 :size-assert #x228 :flag-assert #x4301a00228 ) -|# -#| (deftype index-sprite-list-menu-info (sprite-menu-info) - ((index-list basic :offset-assert 68) + ((pad1 uint32 2) + (index-list basic :offset-assert 68) (horiz-list? basic :offset-assert 72) (item-offset int32 :offset-assert 76) (color-array basic :offset-assert 80) @@ -46965,9 +46976,7 @@ :size-assert #x54 :flag-assert #x900000054 ) -|# -#| (deftype index-sprite-list-menu (prim-strip-menu) ((index-list basic :offset-assert 552) ) @@ -46975,15 +46984,13 @@ :size-assert #x22c :flag-assert #x4301a0022c ) -|# -#| (deftype string-info (structure) ((offset vector :inline :offset-assert 0) - (offset-x float :offset-assert 0) - (offset-y float :offset-assert 4) - (offset-z float :offset-assert 8) - (offset-w float :offset-assert 12) + (offset-x float :offset 0) + (offset-y float :offset 4) + (offset-z float :offset 8) + (offset-w float :offset 12) (pos-z int32 :offset-assert 16) (id uint32 :offset-assert 20) (font-scale float :offset-assert 24) @@ -47006,21 +47013,15 @@ :size-assert #x40 :flag-assert #x900000040 ) -|# -#| (deftype menu-string-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data UNKNOWN :dynamic :offset-assert 16) + ((data menu-string :dynamic :inline :offset-assert 16) ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype string-menu-info (sprite-menu-info) ((strings-info basic :offset-assert 60) (text-ids basic :offset-assert 64) @@ -47029,9 +47030,7 @@ :size-assert #x44 :flag-assert #x900000044 ) -|# -#| (deftype string-menu (prim-strip-menu) ((strings basic :offset-assert 552) (text-ids basic :offset-assert 556) @@ -47044,18 +47043,14 @@ (string-menu-method-68 () none) ;; 68 ) ) -|# -#| (deftype options-bar-indicator (string-menu) () :method-count-assert 69 :size-assert #x230 :flag-assert #x4501a00230 ) -|# -#| (deftype game-text-menu-info (string-menu-info) ((text-id uint32 :offset-assert 68) ) @@ -47063,9 +47058,7 @@ :size-assert #x48 :flag-assert #x900000048 ) -|# -#| (deftype game-text-menu (string-menu) ((text-id uint32 :offset-assert 560) ) @@ -47073,27 +47066,21 @@ :size-assert #x234 :flag-assert #x4501b00234 ) -|# -#| (deftype dynamic-string-menu (string-menu) () :method-count-assert 69 :size-assert #x230 :flag-assert #x4501a00230 ) -|# -#| (deftype dynamic-driver-info (dynamic-string-menu) () :method-count-assert 69 :size-assert #x230 :flag-assert #x4501a00230 ) -|# -#| (deftype dropdown-trans-info (transition-info) ((selected-offset vector :offset-assert 100) ) @@ -47101,20 +47088,18 @@ :size-assert #x68 :flag-assert #x900000068 ) -|# -#| (deftype dropdown-item-info (string-menu-info) - ((trans-info dropdown-trans-info :offset-assert 16) + ((trans-info dropdown-trans-info :override) (selection-box-width int32 :offset-assert 68) (selection-box-height int32 :offset-assert 72) (selection-type basic :offset-assert 76) (selection-extra int32 :offset-assert 80) (selection-box-offset vector :inline :offset-assert 96) - (selection-box-offset-x float :offset-assert 96) - (selection-box-offset-y float :offset-assert 100) - (selection-box-offset-z float :offset-assert 104) - (selection-box-offset-w float :offset-assert 108) + (selection-box-offset-x float :offset 96) + (selection-box-offset-y float :offset 100) + (selection-box-offset-z float :offset 104) + (selection-box-offset-w float :offset 108) (selection-box-color uint32 :offset-assert 112) (down-index-modifier int8 :offset-assert 116) (up-index-modifier int8 :offset-assert 117) @@ -47127,9 +47112,7 @@ :size-assert #x7a :flag-assert #x90000007a ) -|# -#| (deftype dropdown-item (string-menu) ((selected basic :offset-assert 560) (p-client-selection basic :offset-assert 564) @@ -47144,9 +47127,7 @@ (dropdown-item-method-69 () none) ;; 69 ) ) -|# -#| (deftype item-list-selection-info (dropdown-item-info) ((menu-options-info-sym basic :offset-assert 124) (add-string uint32 :offset-assert 128) @@ -47155,9 +47136,7 @@ :size-assert #x84 :flag-assert #x900000084 ) -|# -#| (deftype item-list-selection (dropdown-item) ((menu-options-info-ptr menu-selection-struct :offset-assert 592) (selection-type basic :offset-assert 596) @@ -47167,27 +47146,21 @@ :size-assert #x25c :flag-assert #x4601d0025c ) -|# -#| (deftype item-list-driver-selection (item-list-selection) () :method-count-assert 70 :size-assert #x25c :flag-assert #x4601d0025c ) -|# -#| (deftype item-num-selection-info (item-list-selection-info) - () + ((pad1 uint32)) :method-count-assert 9 :size-assert #x88 :flag-assert #x900000088 ) -|# -#| (deftype menu-num-info (structure) ((min int32 :offset-assert 0) (max int32 :offset-assert 4) @@ -47198,9 +47171,7 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype item-num-selection (item-list-selection) ((num-selection int32 :offset-assert 604) (sound-id uint32 :offset-assert 608) @@ -47209,18 +47180,14 @@ :size-assert #x264 :flag-assert #x4601e00264 ) -|# -#| (deftype item-num-max-selection (item-num-selection) - () + ((pad1 uint32)) :method-count-assert 70 :size-assert #x268 :flag-assert #x4601e00268 ) -|# -#| (deftype games-list-selection (string-menu) ((selection-index int8 :offset-assert 560) ) @@ -47228,18 +47195,14 @@ :size-assert #x231 :flag-assert #x4501b00231 ) -|# -#| (deftype player-ct-string-menu (string-menu) () :method-count-assert 69 :size-assert #x230 :flag-assert #x4501a00230 ) -|# -#| (deftype string-list-selection (dropdown-item) ((selection-index int8 :offset-assert 592) ) @@ -47247,9 +47210,7 @@ :size-assert #x251 :flag-assert #x4601d00251 ) -|# -#| (deftype basic-list-selection-info (string-menu-info) ((menu-options-info-sym basic :offset-assert 68) ) @@ -47257,9 +47218,7 @@ :size-assert #x48 :flag-assert #x900000048 ) -|# -#| (deftype basic-list-selection (string-menu) ((menu-options-info-ptr basic :offset-assert 560) (selection-index int8 :offset-assert 564) @@ -47268,9 +47227,7 @@ :size-assert #x235 :flag-assert #x4501b00235 ) -|# -#| (deftype big-text-menu-info (sprite-menu-info) ((string-info string-info :offset-assert 60) (text basic :offset-assert 64) @@ -47281,9 +47238,7 @@ :size-assert #x4c :flag-assert #x90000004c ) -|# -#| (deftype big-text-menu (sprite-menu) ((big-text basic :offset-assert 544) (vert-offset float :offset-assert 548) @@ -47297,9 +47252,8 @@ (big-text-menu-method-66 () none) ;; 66 ) ) -|# -;; (define-extern *jakx-logo-seen?* object) +(define-extern *jakx-logo-seen?* symbol) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; menu2-lists ;; @@ -47775,7 +47729,7 @@ ;; (define-extern *class-mode* object) ;; (define-extern restore-selection-index function) ;; (define-extern *lobby-timetrial-lock-mode* object) -;; (define-extern *vehicle-class-data* (array menu-option-info)) +(define-extern *vehicle-class-data* (array menu-option-info)) ;; (define-extern *vehicle-class* object) ;; (define-extern *time-of-day-data* array) ;; (define-extern *time-of-day-array* object) @@ -48228,7 +48182,7 @@ ;; net-mgr-medius-buddies ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *medius-player-account-id* object) +(define-extern *medius-player-account-id* int) ;; (define-extern buddies-refreshing-callback function) ;; (define-extern buddies-refreshing function) ;; (define-extern buddies-adding-player function) @@ -48668,7 +48622,7 @@ ;; net-start ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *net-start-view-ct* object) +(define-extern *net-start-view-ct* int) ;; (define-extern *listener-cpt* object) ;; (define-extern *net-hw-initted* object) ;; (define-extern *net-hw-config-id* object) @@ -48682,10 +48636,10 @@ ;; (define-extern artist-clean-up-net-mgr function) ;; (define-extern *artist-continue-busy* object) ;; (define-extern artist-continue function) -;; (define-extern listener-continue function) +(define-extern listener-continue (function string none)) ;; (define-extern listener-task function) ;; (define-extern select-continue-point function) -;; (define-extern set-local-vehicle function) +(define-extern set-local-vehicle (function int none)) ;; (define-extern qo function) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -49078,7 +49032,7 @@ ;; (define-extern net-test-init-remote function) ;; (define-extern *msg-map-net-test* array) -;; (define-extern *net-process-class-info-net-test* object) +;; (define-extern *net-process-class-info-net-test* net-process-class-info) ;; (define-extern net-test-init-by-other function) ;; (define-extern spawn-local function) @@ -49282,7 +49236,7 @@ ;; net-projectile ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern net-projectile-init-by-other function) +(define-extern net-projectile-init-by-other (function process none :behavior net-projectile)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; udp-layer ;; @@ -50269,7 +50223,7 @@ ) |# -;; (define-extern cam-fixed state) ;; (state camera-slave) +(define-extern cam-fixed (state camera-slave)) ;; ;; (define-extern cam-fixed-read-entity state) ;; (state camera-slave) ;; (define-extern cam-standoff-calc-trans function) ;; (function vector :behavior camera-slave) ;; (define-extern cam-standoff state) ;; (state camera-slave) @@ -50354,7 +50308,7 @@ ;; (define-extern cam-mouse-input function) ;; (function matrix vector vector object) ;; (define-extern cam-free-floating-input function) ;; (function matrix vector vector int int vector) ;; (define-extern cam-free-floating-move function) ;; (function matrix vector vector int vector) -;; (define-extern cam-free-floating state) ;; (state camera-slave) +(define-extern cam-free-floating (state camera-slave)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; speech-jak ;; @@ -50385,7 +50339,7 @@ ;; vehicle-part ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern sparticle-vehicle-direction-light function) +(define-extern sparticle-vehicle-direction-light (function sparticle-system sparticle-cpuinfo sparticle-launchinfo symbol)) (define-extern sparticle-sparks-birth (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -50439,7 +50393,7 @@ ;; (define-extern *vehicle-headlight-glow-template* object) ;; sprite-glow-data ;; (define-extern *vehicle-taillight-glow-template* object) ;; sprite-glow-data ;; (define-extern *vehicle-thruster-glow-template* object) ;; sprite-glow-data -;; (define-extern *vehicle-particle-common-info* object) ;; vehicle-particle-common-info +(define-extern *vehicle-particle-common-info* vehicle-particle-common-info) ;; ;; (define-extern vehicle-draw-thruster function) ;; (function vehicle-particle-common-info vehicle-draw-thruster-params none) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -50462,8 +50416,8 @@ ;; wcar-skel-template ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *car-part-temp-string* string) -;; (define-extern get-car-skel-part function) +(define-extern *car-part-temp-string* string) +(define-extern get-car-skel-part (function level string art-group art-group)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; vehicle-util ;; @@ -50594,7 +50548,7 @@ |# ;; (define-extern *search-info* object) ;; search-info -;; (define-extern find-nearest-focusable function) ;; (function (array collide-shape) vector float search-info-flag search-info-flag vector vector float process-focusable) +(define-extern find-nearest-focusable (function (array collide-shape) vector float search-info-flag search-info-flag vector vector float process-focusable)) ;; ;; (define-extern in-process-array? function) ;; (define-extern fst-insertion-helper function) ;; (define-extern find-sorted-targets! function) @@ -50753,7 +50707,6 @@ ) |# -;; anim-tester is already defined! #| (deftype anim-test-obj (glst-named-node) @@ -50806,11 +50759,13 @@ ) |# +(declare-type anim-tester process-focusable) + ;; (define-extern *DISP_LIST-bank* DISP_LIST-bank) ;; (define-extern display-list-control function) ;; (define-extern *ANIM_TESTER-bank* anim-tester-bank) ;; (define-extern anim-tester-num-print function) -;; (define-extern *anim-tester* object) ;; (pointer anim-tester) +(define-extern *anim-tester* (pointer anim-tester)) ;; ;; (define-extern anim-test-obj-init function) ;; (define-extern anim-test-sequence-init function) ;; (define-extern anim-test-seq-item-copy! function) @@ -51422,10 +51377,10 @@ ;; (define-extern set-light-value function) ;; (function int float object) ;; (define-extern keybd-set-time-of-day! function) ;; (function int time-of-day-palette-id object) ;; (define-extern lookup-bsp-by-name function) -;; (define-extern editable-player-init function) ;; (function symbol none :behavior editable-player) +(define-extern editable-player-init (function symbol none :behavior editable-player)) ;; ;; (define-extern set-editable-name function) ;; (function string object) ;; (define-extern select-editable-by-name function) ;; (function string object) -;; (define-extern *editable-menu-context* object) ;; debug-menu-context +(define-extern *editable-menu-context* debug-menu-context) ;; ;; (define-extern editable-menu-command function) ;; (function int object) ;; (define-extern editable-menu-command-no-close function) ;; (function int object) ;; (define-extern dm-region-tree-pick-func function) ;; (function symbol debug-menu-msg symbol) @@ -51771,21 +51726,26 @@ ;; nav-mesh-editor-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; vector-array is already defined! -#| (deftype int16-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data int16 :dynamic :offset-assert 16) ;; guessed by decompiler + ((data int16 :dynamic :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| +;; +++nav-mesh-editor-h:nav-mesh-poly-flag +(defenum nav-mesh-poly-flag + :type uint32 + :bitfield #t + (gap 0) + (off 1) + (nmpf2 2) + (user0 3) + ) +;; ---nav-mesh-editor-h:nav-mesh-poly-flag + (deftype nav-mesh-poly (structure) ((poly-id uint32 :offset-assert 0) (flags nav-mesh-poly-flag :offset-assert 4) ;; guessed by decompiler @@ -51797,7 +51757,7 @@ :flag-assert #xf00000010 (:methods (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) - (nav-mesh-poly-method-9 () none) ;; 9 ;; (init-fields! (_type_) none) + (init-fields! (_type_) none) (nav-mesh-poly-method-10 () none) ;; 10 ;; (nav-mesh-poly-method-10 (_type_ nav-mesh-editable) none) (nav-mesh-poly-method-11 () none) ;; 11 ;; (nav-mesh-poly-method-11 (_type_ int) none) (nav-mesh-poly-method-12 () none) ;; 12 ;; (nav-mesh-poly-method-12 (_type_ int) none) @@ -51805,21 +51765,15 @@ (nav-mesh-poly-method-14 () none) ;; 14 ;; (nav-mesh-poly-method-14 (_type_ int int) object) ) ) -|# -#| (deftype nav-mesh-poly-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data nav-mesh-poly :dynamic :offset-assert 16) ;; guessed by decompiler + ((data nav-mesh-poly :dynamic :inline :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype nav-mesh-tri-quad (structure) ((indices uint32 4 :offset-assert 0) ;; guessed by decompiler (poly uint32 :offset-assert 16) @@ -51828,21 +51782,23 @@ :size-assert #x14 :flag-assert #x900000014 ) -|# -#| (deftype nav-mesh-tri-quad-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data nav-mesh-tri-quad :dynamic :offset-assert 16) ;; guessed by decompiler + ((data nav-mesh-tri-quad :dynamic :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| +;; +++nav-mesh-editor-h:nav-mesh-editable-flag +(defenum nav-mesh-editable-flag + :type uint32 + :bitfield #t + (nmef0 0) + ) +;; ---nav-mesh-editor-h:nav-mesh-editable-flag + (deftype nav-mesh-editable (structure) ((flags nav-mesh-editable-flag :offset-assert 0) ;; guessed by decompiler (verts vector-array :offset-assert 4) ;; guessed by decompiler @@ -51860,7 +51816,7 @@ :flag-assert #x1300000028 (:methods (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) - (nav-mesh-editable-method-9 () none) ;; 9 ;; (init-fields! (_type_) none) + (init-fields! (_type_) none) (nav-mesh-editable-method-10 () none) ;; 10 ;; (nav-mesh-editable-method-10 (_type_ symbol) none) (nav-mesh-editable-method-11 () none) ;; 11 ;; (add-vert! (_type_ vector) int) (nav-mesh-editable-method-12 () none) ;; 12 ;; (nav-mesh-editable-method-12 (_type_ vector symbol) object) @@ -51872,21 +51828,15 @@ (nav-mesh-editable-method-18 () none) ;; 18 ;; (nav-mesh-editable-method-18 (_type_) none) ) ) -|# -#| (deftype nav-mesh-editable-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data nav-mesh-editable :dynamic :offset-assert 16) ;; guessed by decompiler + ((data nav-mesh-editable :dynamic :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype nav-mesh-editor-undo (structure) ((current-nav-mesh nav-mesh-editable :offset-assert 0) (selected-poly uint32 :offset-assert 4) @@ -51899,24 +51849,18 @@ :flag-assert #xa00000014 (:methods (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) - (nav-mesh-editor-undo-method-9 () none) ;; 9 ;; (init-fields! (_type_) none) + (init-fields! (_type_) none) ) ) -|# -#| (deftype nav-mesh-editor-undo-array (inline-array-class) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - (data nav-mesh-editor-undo :dynamic :offset-assert 16) ;; guessed by decompiler + ((data nav-mesh-editor-undo :dynamic :offset-assert 16) ;; guessed by decompiler ) :method-count-assert 14 :size-assert #x10 :flag-assert #xe00000010 ) -|# -#| (deftype nav-mesh-editor (process-drawable) ((close-menu-time uint64 :offset-assert 248) ;; time-frame (external-cam-mode symbol :offset-assert 256) ;; guessed by decompiler @@ -51962,9 +51906,8 @@ (nav-mesh-editor-method-57 () none) ;; 57 ) ) -|# -;; (define-extern *nav-mesh-editor* object) ;; (pointer nav-mesh-editor) +(define-extern *nav-mesh-editor* (pointer nav-mesh-editor)) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; nav-mesh-editor ;; @@ -52022,125 +51965,125 @@ ;; default-menu ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *debug-menu-context* object) ;; debug-menu-context -;; (define-extern *dm-cam-mode-interpolation* object) ;; int -;; (define-extern dm-cam-mode-func function) ;; (function (state camera-slave) debug-menu-msg object) -;; (define-extern dm-cam-mode-default function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-cam-settings-default function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-cam-settings-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-cam-settings-func-int function) ;; (function int debug-menu-msg int int int) -;; (define-extern dm-cam-externalize function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-cam-setting-float function) ;; (function float debug-menu-msg float float float) -;; (define-extern dm-cam-render-float function) ;; (function int debug-menu-msg float float float) -;; (define-extern dm-subdiv-float function) ;; (function symbol debug-menu-msg float float float) -;; (define-extern dm-subdiv-int function) ;; (function symbol debug-menu-msg int int int) -;; (define-extern dm-select-race-path function) ;; (function object debug-menu-msg int int) -;; (define-extern dm-select-start-record-scene function) -;; (define-extern dm-select-end-record-scene function) -;; (define-extern dm-setting-player1-controls function) -;; (define-extern dm-setting-player2-controls function) -;; (define-extern dm-setting-vehicle-tuning-engine function) -;; (define-extern dm-setting-vehicle-tuning-gearbox function) -;; (define-extern dm-setting-vehicle-tuning-armor function) -;; (define-extern dm-setting-vehicle-tuning-turbo function) -;; (define-extern dm-setting-net-vehicle function) -;; (define-extern dm-setting-net-player-count function) -;; (define-extern dm-setting-language function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-setting-subtitle-language function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-setting-audio-language function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-setting-stereo-mode function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-current-continue function) ;; (function string debug-menu-msg symbol) -;; (define-extern dm-subdiv-draw-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-scissor-subdiv-draw-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-foreground-subdiv-draw-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-col-rend-on-func function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-col-cache-on-func function) -;; (define-extern dm-col-rend-outline-func function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-col-rend-back-face-func function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-col-rend-normals-func function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-col-rend-ghost-hidden-func function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-col-rend-track-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-col-rend-show-only-toggle-func function) ;; (function uint debug-menu-msg symbol) -;; (define-extern dm-col-rend-show-material-func function) -;; (define-extern dm-col-rend-show-event-func function) -;; (define-extern dm-col-rend-show-only-set-func function) ;; (function uint debug-menu-msg symbol) -;; (define-extern dm-col-rend-cspec-toggle function) ;; (function uint debug-menu-msg symbol) -;; (define-extern dm-col-rend-size function) ;; (function object debug-menu-msg float float) -;; (define-extern dm-col-rend-cam-dist function) ;; (function object debug-menu-msg float float) -;; (define-extern dm-ocean-subdiv-draw-func function) ;; (function object debug-menu-msg symbol) -;; (define-extern dm-time-of-day-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-time-of-day-func2 function) ;; (function symbol debug-menu-msg object) -;; (define-extern dm-time-of-day-palette-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-boolean-toggle-pick-func function) ;; (function symbol debug-menu-msg object) -;; (define-extern dm-time-of-day-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-stats-memory-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-actor-marks-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-debug-actor-lod-dist function) ;; (function int debug-menu-msg float object) -;; (define-extern dm-select-race-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-compact-actor-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-actor-vis-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-game-mode-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-game-feature-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-game-vehicle-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-game-secret-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern display-scene-control-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern display-scene-control-set-pick-func function) ;; (function scene-controls debug-menu-msg symbol) -;; (define-extern display-bot-marks-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern display-bot-marks-set-pick-func function) ;; (function bot-marks-controls debug-menu-msg symbol) -;; (define-extern display-race-marks-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern display-race-marks-set-pick-func function) ;; (function race-marks-controls debug-menu-msg symbol) -;; (define-extern dm-vu1-user-toggle-pick-func function) ;; (function vu1-renderer-mask debug-menu-msg symbol) -;; (define-extern dm-vu1-user-all-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-vu1-user-none-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-texture-user-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-texture-user-set-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-strip-lines-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern dm-strip-lines-set-pick-func function) ;; (function strip-lines-controls debug-menu-msg symbol) -;; (define-extern dm-edit-instance-toggle-pick-func function) ;; (function int debug-menu-msg symbol) -;; (define-extern all-texture-tweak-adjust function) ;; (function texture-page-dir float none) -;; (define-extern dm-float-field-tie-rvanish-func function) ;; (function symbol debug-menu-msg float float float) -;; (define-extern dm-float-field-tie-vanish-far-func function) ;; (function symbol debug-menu-msg float float float) -;; (define-extern dm-bug-report-output-pick-func function) ;; (function symbol debug-menu-msg symbol) -;; (define-extern dm-bug-report-report-pick-func function) ;; (function symbol debug-menu-msg none) -;; (define-extern debug-menu-nodeget_size_in_memory(), elt_type_info->get_inline_array_stride_alignment()); - ASSERT(stride == elt_size); + ASSERT_MSG(stride == elt_size, + fmt::format("stride ({}) != elt_size ({}::{}) -- {}/{}", stride, elt_size, + array_elt_type.base_type(), elt_type_info->get_size_in_memory(), + elt_type_info->get_inline_array_stride_alignment())); // the input is the location of the data field. // we expect that to be a label: @@ -1070,12 +1073,37 @@ const std::unordered_map< }}, {GameVersion::JakX, { + {"ocean-near-indices", + {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-near-index"), 32)}}}, + {"ocean-mid-masks", {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-mid-mask"), 8)}}}, {"lightning-probe-vars", {{"probe-dirs", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}}}, {"sparticle-launcher", {{"init-specs", ArrayFieldDecompMeta(TypeSpec("sp-field-init-spec"), 16)}}}, {"sparticle-launch-group", {{"launcher", ArrayFieldDecompMeta(TypeSpec("sparticle-group-item"), 32)}}}, + {"continue-point", + {{"want", ArrayFieldDecompMeta(TypeSpec("level-buffer-state-small"), 8)}}}, + {"vehicle-sound-info", + { + {"engine-loop-array", + ArrayFieldDecompMeta(TypeSpec("vehicle-sound-engine-loop-info"), 0x18)}, + }}, + {"vehicle-rider-info", + { + {"attach-point-array", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}, + {"attach-node-array", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}, + }}, + {"vehicle-daxter-info", + { + {"chassis-seats", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}, + {"trunk-seats", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}, + {"roof-seats", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}, + }}, + {"vehicle-hardpoint-info", + { + {"local-pos-array", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}, + }}, }}}; goos::Object decompile_structure(const TypeSpec& type, diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt index efdf194ee6..ec771661b0 100644 --- a/game/CMakeLists.txt +++ b/game/CMakeLists.txt @@ -242,6 +242,31 @@ set(RUNTIME_SOURCE mips2c/jak3_functions/ocean.cpp mips2c/jak3_functions/ocean_vu0.cpp mips2c/jak3_functions/generic_merc.cpp + mips2c/jakx_functions/collide_func.cpp + mips2c/jakx_functions/debug.cpp + mips2c/jakx_functions/font.cpp + mips2c/jakx_functions/foreground.cpp + mips2c/jakx_functions/generic_effect.cpp + mips2c/jakx_functions/joint.cpp + mips2c/jakx_functions/lights.cpp + mips2c/jakx_functions/sky.cpp + mips2c/jakx_functions/texture.cpp + mips2c/jakx_functions/particle_curves.cpp + mips2c/jakx_functions/cloth.cpp + mips2c/jakx_functions/collide_cache.cpp + mips2c/jakx_functions/collide_hash.cpp + mips2c/jakx_functions/collide_mesh.cpp + mips2c/jakx_functions/spatial_hash.cpp + mips2c/jakx_functions/sparticle.cpp + mips2c/jakx_functions/sparticle_launcher.cpp + mips2c/jakx_functions/nav_control.cpp + mips2c/jakx_functions/nav_engine.cpp + mips2c/jakx_functions/merc_blend_shape.cpp + mips2c/jakx_functions/wvehicle_part.cpp + mips2c/jakx_functions/ripple.cpp + mips2c/jakx_functions/shadow.cpp + mips2c/jakx_functions/ocean.cpp + mips2c/jakx_functions/generic_merc.cpp mips2c/mips2c_table.cpp overlord/common/dma.cpp overlord/common/fake_iso.cpp diff --git a/game/mips2c/jakx_functions/bones.cpp b/game/mips2c/jakx_functions/bones.cpp new file mode 100644 index 0000000000..210e3aa3ac --- /dev/null +++ b/game/mips2c/jakx_functions/bones.cpp @@ -0,0 +1,503 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace bones_mtx_calc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s2, 16, sp); // sq s2, 16(sp) + c->sq(s3, 32, sp); // sq s3, 32(sp) + c->sq(s4, 48, sp); // sq s4, 48(sp) + c->sq(s5, 64, sp); // sq s5, 64(sp) + c->sq(gp, 80, sp); // sq gp, 80(sp) + c->lui(v1, 4096); // lui v1, 4096 + c->lui(t0, 4096); // lui t0, 4096 + c->ori(v1, v1, 54272); // ori v1, v1, 54272 + c->ori(t0, t0, 53248); // ori t0, t0, 53248 + c->lui(t2, 32767); // lui t2, 32767 + c->daddiu(t1, a3, -16); // daddiu t1, a3, -16 + c->ori(t2, t2, 65535); // ori t2, t2, 65535 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->addiu(t4, r0, 64); // addiu t4, r0, 64 + c->addiu(t5, r0, 1280); // addiu t5, r0, 1280 + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L15 + c->addiu(t3, r0, 16); // addiu t3, r0, 16 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(t3, a3); // or t3, a3, r0 + // nop // sll r0, r0, 0 + c->dsll(t4, t3, 2); // dsll t4, t3, 2 + c->dsll(a3, t3, 4); // dsll a3, t3, 4 + c->dsll(t1, t3, 6); // dsll t1, t3, 6 + // nop // sll r0, r0, 0 + c->daddu(t5, t1, a3); // daddu t5, t1, a3 + c->addiu(t1, r0, 0); // addiu t1, r0, 0 + +block_2: + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + c->addiu(t6, r0, 1); // addiu t6, r0, 1 + c->and_(a1, a1, t2); // and a1, a1, t2 + // nop // sll r0, r0, 0 + c->daddiu(a1, a1, 12); // daddiu a1, a1, 12 + c->mov64(a0, a0); // or a0, a0, r0 + c->daddiu(a1, a1, -80); // daddiu a1, a1, -80 + // nop // sll r0, r0, 0 + +block_3: + c->lw(t6, 0, v1); // lw t6, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->andi(t6, t6, 256); // andi t6, t6, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t6) == 0; // beq t6, r0, L17 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + //beq r0, r0, L16 // beq r0, r0, L16 + // nop // sll r0, r0, 0 + goto block_3; // branch always + + +block_5: + c->addiu(t6, r0, 80); // addiu t6, r0, 80 + c->addiu(t7, r0, 264); // addiu t7, r0, 264 + c->sw(t6, 128, v1); // sw t6, 128(v1) + c->sw(a1, 16, v1); // sw a1, 16(v1) + c->sw(t4, 32, v1); // sw t4, 32(v1) + c->sw(t7, 0, v1); // sw t7, 0(v1) + c->daddu(a1, a1, t5); // daddu a1, a1, t5 + +block_6: + c->lw(t4, 0, v1); // lw t4, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->andi(t4, t4, 256); // andi t4, t4, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t4) == 0; // beq t4, r0, L19 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + //beq r0, r0, L18 // beq r0, r0, L18 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_8: + c->and_(a2, a2, t2); // and a2, a2, t2 + // nop // sll r0, r0, 0 + c->dsll(t2, t3, 2); // dsll t2, t3, 2 + c->addiu(t4, r0, 256); // addiu t4, r0, 256 + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->addiu(t6, r0, 1104); // addiu t6, r0, 1104 + c->dsll(t5, t2, 4); // dsll t5, t2, 4 + c->sw(t6, 128, v1); // sw t6, 128(v1) + c->addiu(t8, r0, 0); // addiu t8, r0, 0 + c->sw(a2, 16, v1); // sw a2, 16(v1) + c->daddu(a2, a2, t5); // daddu a2, a2, t5 + c->sw(t2, 32, v1); // sw t2, 32(v1) + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->sw(t4, 0, v1); // sw t4, 0(v1) + +block_9: + c->lw(t5, 0, v1); // lw t5, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->andi(t5, t5, 256); // andi t5, t5, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t5) == 0; // beq t5, r0, L21 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + //beq r0, r0, L20 // beq r0, r0, L20 + // nop // sll r0, r0, 0 + goto block_9; // branch always + + +block_11: + c->dsll(t5, t8, 2); // dsll t5, t8, 2 + c->daddu(t9, t5, at); // daddu t9, t5, at + // nop // sll r0, r0, 0 + c->lwu(t5, 0, t9); // lwu t5, 0(t9) + c->mov64(t6, t3); // or t6, t3, r0 + c->lwu(t7, 8, t9); // lwu t7, 8(t9) + c->mov64(ra, t3); // or ra, t3, r0 + c->lwu(t3, 16, t9); // lwu t3, 16(t9) + // nop // sll r0, r0, 0 + c->sw(ra, 44, at); // sw ra, 44(at) + bc = c->sgpr64(ra) == 0; // beq ra, r0, L34 + c->sw(t8, 48, at); // sw t8, 48(at) + if (bc) {goto block_33;} // branch non-likely + + c->daddiu(t1, t1, -16); // daddiu t1, t1, -16 + c->addiu(t9, r0, 1280); // addiu t9, r0, 1280 + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L22 + c->addiu(t8, r0, 16); // addiu t8, r0, 16 + if (bc) {goto block_14;} // branch non-likely + + c->daddiu(t8, t1, 16); // daddiu t8, t1, 16 + c->addiu(t1, r0, 0); // addiu t1, r0, 0 + c->dsll(t9, t8, 4); // dsll t9, t8, 4 + c->dsll(ra, t8, 6); // dsll ra, t8, 6 + bc = c->sgpr64(t8) == 0; // beq t8, r0, L23 + c->daddu(t9, ra, t9); // daddu t9, ra, t9 + if (bc) {goto block_15;} // branch non-likely + + +block_14: + c->dsll(t4, t8, 2); // dsll t4, t8, 2 + c->dsll(ra, t2, 2); // dsll ra, t2, 2 + c->daddu(gp, ra, at); // daddu gp, ra, at + c->sw(a1, 16, v1); // sw a1, 16(v1) + c->addiu(ra, r0, 264); // addiu ra, r0, 264 + c->lwu(gp, 0, gp); // lwu gp, 0(gp) + c->andi(gp, gp, 16383); // andi gp, gp, 16383 + c->sw(t4, 32, v1); // sw t4, 32(v1) + c->daddu(a1, a1, t9); // daddu a1, a1, t9 + c->sw(gp, 128, v1); // sw gp, 128(v1) + c->addiu(t4, r0, 0); // addiu t4, r0, 0 + c->sw(ra, 0, v1); // sw ra, 0(v1) + +block_15: + // nop // sll r0, r0, 0 + c->sw(t8, 40, at); // sw t8, 40(at) + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, t5); // lqc2 vf1, 0(t5) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, t5); // lqc2 vf2, 16(t5) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, t5); // lqc2 vf3, 32(t5) + // nop // sll r0, r0, 0 + c->lqc2(vf4, 48, t5); // lqc2 vf4, 48(t5) + // nop // sll r0, r0, 0 + c->lqc2(vf5, 0, t7); // lqc2 vf5, 0(t7) + // nop // sll r0, r0, 0 + c->lqc2(vf6, 16, t7); // lqc2 vf6, 16(t7) + // nop // sll r0, r0, 0 + c->lqc2(vf7, 32, t7); // lqc2 vf7, 32(t7) + // nop // sll r0, r0, 0 + c->lqc2(vf8, 48, t7); // lqc2 vf8, 48(t7) + // Unknown instr: vcallms 0 + // nop // sll r0, r0, 0 + +block_16: + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->daddiu(t5, t5, 64); // daddiu t5, t5, 64 + // nop // sll r0, r0, 0 + c->daddiu(t7, t7, 80); // daddiu t7, t7, 80 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lq(t8, 0, t5); // lq t8, 0(t5) + // nop // sll r0, r0, 0 + c->lq(t9, 16, t5); // lq t9, 16(t5) + // nop // sll r0, r0, 0 + c->lq(ra, 32, t5); // lq ra, 32(t5) + // nop // sll r0, r0, 0 + c->lq(gp, 48, t5); // lq gp, 48(t5) + // nop // sll r0, r0, 0 + c->lq(s5, 0, t7); // lq s5, 0(t7) + // nop // sll r0, r0, 0 + c->lq(s4, 16, t7); // lq s4, 16(t7) + // nop // sll r0, r0, 0 + c->lq(s3, 32, t7); // lq s3, 32(t7) + // nop // sll r0, r0, 0 + c->lq(s2, 48, t7); // lq s2, 48(t7) + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf1, t8); // qmtc2.ni vf1, t8 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t9); // qmtc2.ni vf2, t9 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf3, ra); // qmtc2.ni vf3, ra + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, gp); // qmtc2.ni vf4, gp + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf5, s5); // qmtc2.ni vf5, s5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf6, s4); // qmtc2.ni vf6, s4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf7, s3); // qmtc2.ni vf7, s3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf8, s2); // qmtc2.ni vf8, s2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t8, vf13); // qmfc2.i t8, vf13 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t9, vf14); // qmfc2.ni t9, vf14 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(ra, vf15); // qmfc2.ni ra, vf15 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(gp, vf16); // qmfc2.ni gp, vf16 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s5, vf9); // qmfc2.ni s5, vf9 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s4, vf10); // qmfc2.ni s4, vf10 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s3, vf11); // qmfc2.ni s3, vf11 + // Unknown instr: vcallms 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(t8, 0, t3); // sq t8, 0(t3) + // nop // sll r0, r0, 0 + c->sq(t9, 16, t3); // sq t9, 16(t3) + // nop // sll r0, r0, 0 + c->sq(ra, 32, t3); // sq ra, 32(t3) + // nop // sll r0, r0, 0 + c->sq(gp, 48, t3); // sq gp, 48(t3) + // nop // sll r0, r0, 0 + c->sq(s5, 64, t3); // sq s5, 64(t3) + // nop // sll r0, r0, 0 + c->sq(s4, 80, t3); // sq s4, 80(t3) + // nop // sll r0, r0, 0 + c->sq(s3, 96, t3); // sq s3, 96(t3) + // nop // sll r0, r0, 0 + c->sq(r0, 112, t3); // sq r0, 112(t3) + c->daddiu(t3, t3, 128); // daddiu t3, t3, 128 + c->daddiu(t6, t6, -1); // daddiu t6, t6, -1 + bc = ((s64)c->sgpr64(t6)) > 0; // bgtz t6, L24 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lw(t3, 40, at); // lw t3, 40(at) + bc = c->sgpr64(t3) == 0; // beq t3, r0, L27 + // nop // sll r0, r0, 0 + if (bc) {goto block_21;} // branch non-likely + + +block_18: + c->lw(t4, 0, v1); // lw t4, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->andi(t4, t4, 256); // andi t4, t4, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t4) == 0; // beq t4, r0, L26 + // nop // sll r0, r0, 0 + if (bc) {goto block_20;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + //beq r0, r0, L25 // beq r0, r0, L25 + // nop // sll r0, r0, 0 + goto block_18; // branch always + + +block_20: + c->dsll(t5, t2, 2); // dsll t5, t2, 2 + // nop // sll r0, r0, 0 + c->addiu(t4, r0, 1); // addiu t4, r0, 1 + c->daddu(t5, t5, at); // daddu t5, t5, at + // nop // sll r0, r0, 0 + c->lwu(t6, 8, t5); // lwu t6, 8(t5) + c->dsll(t5, t3, 2); // dsll t5, t3, 2 + c->andi(t6, t6, 16383); // andi t6, t6, 16383 + c->daddu(t5, t5, t3); // daddu t5, t5, t3 + c->sw(t6, 128, v1); // sw t6, 128(v1) + c->dsll(t6, t5, 4); // dsll t6, t5, 4 + c->sw(a2, 16, v1); // sw a2, 16(v1) + c->addiu(t7, r0, 256); // addiu t7, r0, 256 + c->sw(t5, 32, v1); // sw t5, 32(v1) + c->daddu(a2, a2, t6); // daddu a2, a2, t6 + c->sw(t7, 0, v1); // sw t7, 0(v1) + +block_21: + // nop // sll r0, r0, 0 + c->lw(t5, 48, at); // lw t5, 48(at) + // nop // sll r0, r0, 0 + c->lw(t6, 44, at); // lw t6, 44(at) + +block_22: + c->lw(t7, 0, t0); // lw t7, 0(t0) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->andi(t7, t7, 256); // andi t7, t7, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t7) == 0; // beq t7, r0, L29 + // nop // sll r0, r0, 0 + if (bc) {goto block_24;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + //beq r0, r0, L28 // beq r0, r0, L28 + // nop // sll r0, r0, 0 + goto block_22; // branch always + + +block_24: + bc = c->sgpr64(t6) == 0; // beq t6, r0, L30 + // nop // sll r0, r0, 0 + if (bc) {goto block_26;} // branch non-likely + + c->dsll(t7, t5, 2); // dsll t7, t5, 2 + get_fake_spad_addr2(t8, cache.fake_scratchpad_data, 0, c);// lui t8, 28672 + c->daddu(t7, t7, t8); // daddu t7, t7, t8 + c->lwu(t7, 16, t7); // lwu t7, 16(t7) + c->andi(t7, t7, 16383); // andi t7, t7, 16383 + c->sw(t7, 128, t0); // sw t7, 128(t0) + c->sw(a0, 16, t0); // sw a0, 16(t0) + c->dsll(t7, t6, 3); // dsll t7, t6, 3 + c->sw(t7, 32, t0); // sw t7, 32(t0) + c->addiu(t7, r0, 256); // addiu t7, r0, 256 + c->sw(t7, 0, t0); // sw t7, 0(t0) + c->dsll(t6, t6, 7); // dsll t6, t6, 7 + c->daddu(a0, a0, t6); // daddu a0, a0, t6 + +block_26: + bc = c->sgpr64(t3) == 0; // beq t3, r0, L33 + // nop // sll r0, r0, 0 + if (bc) {goto block_31;} // branch non-likely + + bc = c->sgpr64(t4) != 0; // bne t4, r0, L33 + // nop // sll r0, r0, 0 + if (bc) {goto block_31;} // branch non-likely + + +block_28: + c->lw(t6, 0, v1); // lw t6, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->andi(t6, t6, 256); // andi t6, t6, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t6) == 0; // beq t6, r0, L32 + // nop // sll r0, r0, 0 + if (bc) {goto block_30;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + //beq r0, r0, L31 // beq r0, r0, L31 + // nop // sll r0, r0, 0 + goto block_28; // branch always + + +block_30: + c->dsll(t6, t2, 2); // dsll t6, t2, 2 + get_fake_spad_addr2(t7, cache.fake_scratchpad_data, 0, c);// lui t7, 28672 + c->daddu(t6, t6, t7); // daddu t6, t6, t7 + c->lwu(t6, 8, t6); // lwu t6, 8(t6) + c->andi(t6, t6, 16383); // andi t6, t6, 16383 + c->sw(t6, 128, v1); // sw t6, 128(v1) + c->sw(a2, 16, v1); // sw a2, 16(v1) + c->addiu(t6, r0, 5); // addiu t6, r0, 5 + c->mult3(t6, t6, t3); // mult3 t6, t6, t3 + c->sw(t6, 32, v1); // sw t6, 32(v1) + c->addiu(t6, r0, 256); // addiu t6, r0, 256 + c->sw(t6, 0, v1); // sw t6, 0(v1) + c->addiu(t6, r0, 80); // addiu t6, r0, 80 + c->mult3(t6, t6, t3); // mult3 t6, t6, t3 + c->daddu(a2, a2, t6); // daddu a2, a2, t6 + +block_31: + c->mov64(t8, t2); // or t8, t2, r0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L20 + c->mov64(t2, t5); // or t2, t5, r0 + if (bc) {goto block_9;} // branch non-likely + + bc = c->sgpr64(a3) == 0; // beq a3, r0, L20 + c->addiu(a3, r0, 1); // addiu a3, r0, 1 + if (bc) {goto block_9;} // branch non-likely + + +block_33: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 80, sp); // lq gp, 80(sp) + c->lq(s5, 64, sp); // lq s5, 64(sp) + c->lq(s4, 48, sp); // lq s4, 48(sp) + c->lq(s3, 32, sp); // lq s3, 32(sp) + c->lq(s2, 16, sp); // lq s2, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("bones-mtx-calc", execute, 256); +} + +} // namespace bones_mtx_calc +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/cloth.cpp b/game/mips2c/jakx_functions/cloth.cpp new file mode 100644 index 0000000000..3aecbf0fcc --- /dev/null +++ b/game/mips2c/jakx_functions/cloth.cpp @@ -0,0 +1,218 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_21_cloth_system { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->daddiu(a3, sp, 16); // daddiu a3, sp, 16 + c->daddiu(t0, sp, 32); // daddiu t0, sp, 32 + c->lwu(v1, 68, a0); // lwu v1, 68(a0) + c->lw(v1, 0, v1); // lw v1, 0(v1) + c->lw(a1, 96, a0); // lw a1, 96(a0) + c->daddiu(a1, a1, -1); // daddiu a1, a1, -1 + c->lw(a2, 100, a0); // lw a2, 100(a0) + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + c->addiu(t1, r0, 0); // addiu t1, r0, 0 + c->addiu(t1, r0, 0); // addiu t1, r0, 0 + c->mov64(t1, a3); // or t1, a3, r0 + c->lui(t2, 16000); // lui t2, 16000 + c->mtc1(f0, t2); // mtc1 f0, t2 + c->swc1(f0, 0, t1); // swc1 f0, 0(t1) + c->lui(t2, 16000); // lui t2, 16000 + c->mtc1(f0, t2); // mtc1 f0, t2 + c->swc1(f0, 4, t1); // swc1 f0, 4(t1) + c->lui(t2, 16000); // lui t2, 16000 + c->mtc1(f0, t2); // mtc1 f0, t2 + c->swc1(f0, 8, t1); // swc1 f0, 8(t1) + c->lui(t2, 16000); // lui t2, 16000 + c->mtc1(f0, t2); // mtc1 f0, t2 + c->swc1(f0, 12, t1); // swc1 f0, 12(t1) + c->mov64(t1, t0); // or t1, t0, r0 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 0, t1); // swc1 f0, 0(t1) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 4, t1); // swc1 f0, 4(t1) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 8, t1); // swc1 f0, 8(t1) + c->lwc1(f0, 144, a0); // lwc1 f0, 144(a0) + c->swc1(f0, 12, t1); // swc1 f0, 12(t1) + c->vmax_bc(DEST::xyzw, BC::w, vf1, vf0, vf0); // vmaxw.xyzw vf1, vf0, vf0 + c->lqc2(vf10, 0, a3); // lqc2 vf10, 0(a3) + c->lqc2(vf15, 0, t0); // lqc2 vf15, 0(t0) + c->sd(r0, 48, sp); // sd r0, 48(sp) + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + //beq r0, r0, L185 // beq r0, r0, L185 + // nop // sll r0, r0, 0 + goto block_10; // branch always + + +block_1: + c->addiu(t0, r0, 0); // addiu t0, r0, 0 + //beq r0, r0, L184 // beq r0, r0, L184 + // nop // sll r0, r0, 0 + goto block_8; // branch always + + +block_2: + c->addiu(t1, r0, 48); // addiu t1, r0, 48 + c->ld(t2, 48, sp); // ld t2, 48(sp) + c->mult3(t1, t1, t2); // mult3 t1, t1, t2 + c->daddiu(t1, t1, 12); // daddiu t1, t1, 12 + c->lwu(t2, 0, a0); // lwu t2, 0(a0) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->sw(t1, 56, sp); // sw t1, 56(sp) + c->addiu(t1, r0, 48); // addiu t1, r0, 48 + c->ld(t2, 48, sp); // ld t2, 48(sp) + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + c->mult3(t1, t1, t2); // mult3 t1, t1, t2 + c->daddiu(t1, t1, 12); // daddiu t1, t1, 12 + c->lwu(t2, 0, a0); // lwu t2, 0(a0) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->sw(t1, 60, sp); // sw t1, 60(sp) + c->addiu(t1, r0, 48); // addiu t1, r0, 48 + c->ld(t2, 48, sp); // ld t2, 48(sp) + c->lw(t3, 96, a0); // lw t3, 96(a0) + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->mult3(t1, t1, t2); // mult3 t1, t1, t2 + c->daddiu(t1, t1, 12); // daddiu t1, t1, 12 + c->lwu(t2, 0, a0); // lwu t2, 0(a0) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->sw(t1, 64, sp); // sw t1, 64(sp) + c->addiu(t1, r0, 48); // addiu t1, r0, 48 + c->lw(t2, 96, a0); // lw t2, 96(a0) + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + c->ld(t3, 48, sp); // ld t3, 48(sp) + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->mult3(t1, t1, t2); // mult3 t1, t1, t2 + c->daddiu(t1, t1, 12); // daddiu t1, t1, 12 + c->lwu(t2, 0, a0); // lwu t2, 0(a0) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->sw(t1, 68, sp); // sw t1, 68(sp) + c->lwu(t1, 56, sp); // lwu t1, 56(sp) + c->lqc2(vf2, 0, t1); // lqc2 vf2, 0(t1) + c->lwu(t1, 68, sp); // lwu t1, 68(sp) + c->lqc2(vf5, 0, t1); // lqc2 vf5, 0(t1) + c->lwu(t1, 60, sp); // lwu t1, 60(sp) + c->lqc2(vf3, 0, t1); // lqc2 vf3, 0(t1) + c->lwu(t1, 64, sp); // lwu t1, 64(sp) + c->lqc2(vf4, 0, t1); // lqc2 vf4, 0(t1) + c->lwu(t1, 56, sp); // lwu t1, 56(sp) + c->lqc2(vf20, 32, t1); // lqc2 vf20, 32(t1) + c->lwu(t1, 68, sp); // lwu t1, 68(sp) + c->lqc2(vf23, 32, t1); // lqc2 vf23, 32(t1) + c->lwu(t1, 60, sp); // lwu t1, 60(sp) + c->lqc2(vf21, 32, t1); // lqc2 vf21, 32(t1) + c->lwu(t1, 64, sp); // lwu t1, 64(sp) + c->lqc2(vf22, 32, t1); // lqc2 vf22, 32(t1) + c->vmula_bc(DEST::xyzw, BC::x, vf2, vf20); // vmulax.xyzw acc, vf2, vf20 + c->vmadda_bc(DEST::xyzw, BC::x, vf3, vf21); // vmaddax.xyzw acc, vf3, vf21 + c->vmadda_bc(DEST::xyzw, BC::x, vf5, vf23); // vmaddax.xyzw acc, vf5, vf23 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf4, vf22); // vmaddx.xyzw vf8, vf4, vf22 + c->vmul_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmulx.xyzw vf8, vf8, vf10 + c->lwu(t1, 68, a0); // lwu t1, 68(a0) + c->daddiu(t1, t1, 12); // daddiu t1, t1, 12 + c->addiu(t2, r0, 0); // addiu t2, r0, 0 + //beq r0, r0, L183 // beq r0, r0, L183 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_3: + c->lqc2(vf11, 0, t1); // lqc2 vf11, 0(t1) + c->vsub(DEST::xyzw, vf13, vf8, vf11); // vsub.xyzw vf13, vf8, vf11 + c->vmul(DEST::xyzw, vf9, vf13, vf13); // vmul.xyzw vf9, vf13, vf13 + c->vmula_bc(DEST::xyzw, BC::x, vf1, vf9); // vmulax.xyzw acc, vf1, vf9 + c->vmadda_bc(DEST::xyzw, BC::y, vf1, vf9); // vmadday.xyzw acc, vf1, vf9 + c->vmadd_bc(DEST::xyzw, BC::z, vf14, vf1, vf9); // vmaddz.xyzw vf14, vf1, vf9 + c->vadd_bc(DEST::w, BC::w, vf11, vf11, vf15); // vaddw.w vf11, vf11, vf15 + c->vmul(DEST::xyzw, vf12, vf11, vf11); // vmul.xyzw vf12, vf11, vf11 + c->vsub_bc(DEST::xyzw, BC::w, vf9, vf14, vf12); // vsubw.xyzw vf9, vf14, vf12 + c->mov128_gpr_vf(t3, vf9); // qmfc2.i t3, vf9 + bc = ((s64)c->sgpr64(t3)) >= 0; // bgez t3, L182 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->vrsqrt(vf11, BC::w, vf14, BC::x); // vrsqrt Q, vf11.w, vf14.x + c->vmax_bc(DEST::xyz, BC::x, vf20, vf0, vf20); // vmaxx.xyz vf20, vf0, vf20 + c->vmax_bc(DEST::xyz, BC::x, vf21, vf0, vf21); // vmaxx.xyz vf21, vf0, vf21 + c->vmax_bc(DEST::xyz, BC::x, vf22, vf0, vf22); // vmaxx.xyz vf22, vf0, vf22 + c->vmax_bc(DEST::xyz, BC::x, vf23, vf0, vf23); // vmaxx.xyz vf23, vf0, vf23 + c->vwaitq(); // vwaitq + // Unknown instr: vmulaq.xyzw acc, vf13, Q + c->vmsuba(DEST::xyzw, vf1, vf13); // vmsuba.xyzw acc, vf1, vf13 + c->vmadd(DEST::xyzw, vf2, vf1, vf2); // vmadd.xyzw vf2, vf1, vf2 + c->vmadd(DEST::xyzw, vf3, vf1, vf3); // vmadd.xyzw vf3, vf1, vf3 + c->vmadd(DEST::xyzw, vf5, vf1, vf5); // vmadd.xyzw vf5, vf1, vf5 + c->vmadd(DEST::xyzw, vf4, vf1, vf4); // vmadd.xyzw vf4, vf1, vf4 + c->vmadd(DEST::xyzw, vf8, vf1, vf8); // vmadd.xyzw vf8, vf1, vf8 + +block_5: + c->daddiu(t1, t1, 16); // daddiu t1, t1, 16 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + +block_6: + c->slt(t3, t2, v1); // slt t3, t2, v1 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L181 + // nop // sll r0, r0, 0 + if (bc) {goto block_3;} // branch non-likely + + c->mov64(t1, s7); // or t1, s7, r0 + c->mov64(t1, s7); // or t1, s7, r0 + c->lwu(t1, 56, sp); // lwu t1, 56(sp) + c->sqc2(vf2, 0, t1); // sqc2 vf2, 0(t1) + c->lwu(t1, 68, sp); // lwu t1, 68(sp) + c->sqc2(vf5, 0, t1); // sqc2 vf5, 0(t1) + c->lwu(t1, 60, sp); // lwu t1, 60(sp) + c->sqc2(vf3, 0, t1); // sqc2 vf3, 0(t1) + c->lwu(t1, 64, sp); // lwu t1, 64(sp) + c->sqc2(vf4, 0, t1); // sqc2 vf4, 0(t1) + c->mov128_gpr_vf(t1, vf4); // qmfc2.i t1, vf4 + c->ld(t1, 48, sp); // ld t1, 48(sp) + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->sd(t1, 48, sp); // sd t1, 48(sp) + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + +block_8: + c->slt(t1, t0, a1); // slt t1, t0, a1 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L180 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(t0, s7); // or t0, s7, r0 + c->mov64(t0, s7); // or t0, s7, r0 + c->ld(t0, 48, sp); // ld t0, 48(sp) + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + c->sd(t0, 48, sp); // sd t0, 48(sp) + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + +block_10: + c->slt(t0, a3, a2); // slt t0, a3, a2 + bc = c->sgpr64(t0) != 0; // bne t0, r0, L179 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v0, s7); // or v0, s7, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 21 cloth-system)", execute, 256); +} + +} // namespace method_21_cloth_system +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/collide_cache.cpp b/game/mips2c/jakx_functions/collide_cache.cpp new file mode 100644 index 0000000000..88784db8ce --- /dev/null +++ b/game/mips2c/jakx_functions/collide_cache.cpp @@ -0,0 +1,1890 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_10_collide_puss_work { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lwu(v1, 116, a2); // lwu v1, 116(a2) + c->daddiu(a2, a0, 96); // daddiu a2, a0, 96 + c->lqc2(vf1, 0, a1); // lqc2 vf1, 0(a1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L10 + c->lq(a1, 64, a0); // lq a1, 64(a0) + if (bc) {goto block_12;} // branch non-likely + + c->vmax_bc(DEST::xyzw, BC::w, vf4, vf0, vf0); // vmaxw.xyzw vf4, vf0, vf0 + c->lq(a3, 80, a0); // lq a3, 80(a0) + c->vsub_bc(DEST::xyz, BC::w, vf2, vf1, vf1); // vsubw.xyz vf2, vf1, vf1 + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->vadd_bc(DEST::xyz, BC::w, vf3, vf1, vf1); // vaddw.xyz vf3, vf1, vf1 + c->lqc2(vf5, 0, a2); // lqc2 vf5, 0(a2) + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + c->lqc2(vf6, 48, a2); // lqc2 vf6, 48(a2) + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + c->lqc2(vf7, 96, a2); // lqc2 vf7, 96(a2) + // nop // sll r0, r0, 0 + c->vsub_bc(DEST::w, BC::w, vf1, vf0, vf1); // vsubw.w vf1, vf0, vf1 + c->mov128_gpr_vf(t0, vf2); // qmfc2.i t0, vf2 + c->lqc2(vf8, 144, a2); // lqc2 vf8, 144(a2) + c->mov128_gpr_vf(t1, vf3); // qmfc2.i t1, vf3 + // nop // sll r0, r0, 0 + c->pcgtw(a1, a1, t1); // pcgtw a1, a1, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(a3, t0, a3); // pcgtw a3, t0, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(a1, a1, a3); // por a1, a1, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(a1, r0, a1); // ppach a1, r0, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(a1, a1, 16); // dsll a1, a1, 16 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L10 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + +block_2: + c->vsub(DEST::xyzw, vf9, vf5, vf1); // vsub.xyzw vf9, vf5, vf1 + c->daddiu(a2, a2, 192); // daddiu a2, a2, 192 + c->vsub(DEST::xyzw, vf10, vf6, vf1); // vsub.xyzw vf10, vf6, vf1 + c->lqc2(vf5, 0, a2); // lqc2 vf5, 0(a2) + c->vsub(DEST::xyzw, vf11, vf7, vf1); // vsub.xyzw vf11, vf7, vf1 + c->lqc2(vf6, 48, a2); // lqc2 vf6, 48(a2) + c->vsub(DEST::xyzw, vf12, vf8, vf1); // vsub.xyzw vf12, vf8, vf1 + c->lqc2(vf7, 96, a2); // lqc2 vf7, 96(a2) + c->vmul(DEST::xyzw, vf9, vf9, vf9); // vmul.xyzw vf9, vf9, vf9 + c->lqc2(vf8, 144, a2); // lqc2 vf8, 144(a2) + c->vmul(DEST::xyzw, vf10, vf10, vf10); // vmul.xyzw vf10, vf10, vf10 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf11, vf11, vf11); // vmul.xyzw vf11, vf11, vf11 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf12, vf12, vf12); // vmul.xyzw vf12, vf12, vf12 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf4, vf9); // vmulax.xyzw acc, vf4, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf4, vf9); // vmadday.xyzw acc, vf4, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::z, vf4, vf9); // vmaddaz.xyzw acc, vf4, vf9 + // nop // sll r0, r0, 0 + c->vmsub_bc(DEST::xyzw, BC::w, vf9, vf4, vf9); // vmsubw.xyzw vf9, vf4, vf9 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf4, vf10); // vmulax.xyzw acc, vf4, vf10 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf4, vf10); // vmadday.xyzw acc, vf4, vf10 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::z, vf4, vf10); // vmaddaz.xyzw acc, vf4, vf10 + // nop // sll r0, r0, 0 + c->vmsub_bc(DEST::xyzw, BC::w, vf10, vf4, vf10); // vmsubw.xyzw vf10, vf4, vf10 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf9); // qmfc2.i a1, vf9 + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + bc = ((s64)c->sgpr64(a1)) <= 0; // blez a1, L9 + c->vmula_bc(DEST::xyzw, BC::x, vf4, vf11); // vmulax.xyzw acc, vf4, vf11 + if (bc) {goto block_11;} // branch non-likely + + bc = c->sgpr64(a0) == c->sgpr64(v1); // beq a0, v1, L10 + c->vmadda_bc(DEST::xyzw, BC::y, vf4, vf11); // vmadday.xyzw acc, vf4, vf11 + if (bc) {goto block_12;} // branch non-likely + + c->vmadda_bc(DEST::xyzw, BC::z, vf4, vf11); // vmaddaz.xyzw acc, vf4, vf11 + // nop // sll r0, r0, 0 + c->vmsub_bc(DEST::xyzw, BC::w, vf11, vf4, vf11); // vmsubw.xyzw vf11, vf4, vf11 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf10); // qmfc2.i a1, vf10 + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + bc = ((s64)c->sgpr64(a1)) <= 0; // blez a1, L9 + c->vmula_bc(DEST::xyzw, BC::x, vf4, vf12); // vmulax.xyzw acc, vf4, vf12 + if (bc) {goto block_11;} // branch non-likely + + bc = c->sgpr64(a0) == c->sgpr64(v1); // beq a0, v1, L10 + c->vmadda_bc(DEST::xyzw, BC::y, vf4, vf12); // vmadday.xyzw acc, vf4, vf12 + if (bc) {goto block_12;} // branch non-likely + + c->vmadda_bc(DEST::xyzw, BC::z, vf4, vf12); // vmaddaz.xyzw acc, vf4, vf12 + // nop // sll r0, r0, 0 + c->vmsub_bc(DEST::xyzw, BC::w, vf12, vf4, vf12); // vmsubw.xyzw vf12, vf4, vf12 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf11); // qmfc2.i a1, vf11 + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + bc = ((s64)c->sgpr64(a1)) <= 0; // blez a1, L9 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + bc = c->sgpr64(a0) == c->sgpr64(v1); // beq a0, v1, L10 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + c->mov128_gpr_vf(a1, vf12); // qmfc2.i a1, vf12 + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + bc = ((s64)c->sgpr64(a1)) <= 0; // blez a1, L9 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + bc = c->sgpr64(a0) != c->sgpr64(v1); // bne a0, v1, L8 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + //beq r0, r0, L10 // beq r0, r0, L10 + // nop // sll r0, r0, 0 + goto block_12; // branch always + + +block_11: + c->daddiu(v1, s7, 4); // daddiu v1, s7, #t + c->mov64(v0, v1); // or v0, v1, r0 + //beq r0, r0, L11 // beq r0, r0, L11 + // nop // sll r0, r0, 0 + goto block_14; // branch always + + +block_12: + c->mov64(v0, s7); // or v0, s7, r0 + //beq r0, r0, L11 // beq r0, r0, L11 + // nop // sll r0, r0, 0 + goto block_14; // branch always + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + +block_14: + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 10 collide-puss-work)", execute, 256); +} + +} // namespace method_10_collide_puss_work +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_9_collide_puss_work { +struct Cache { + void* closest_pt_in_triangle; // closest-pt-in-triangle +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a2); // or s5, a2, r0 + // nop // sll r0, r0, 0 + c->lwu(a0, 32, a1); // lwu a0, 32(a1) + // nop // sll r0, r0, 0 + c->lhu(v1, 40, a1); // lhu v1, 40(a1) + c->lw(a0, 124, a0); // lw a0, 124(a0) + c->lhu(s4, 42, a1); // lhu s4, 42(a1) + c->dsll(v1, v1, 6); // dsll v1, v1, 6 + // nop // sll r0, r0, 0 + c->daddu(s3, a0, v1); // daddu s3, a0, v1 + // nop // sll r0, r0, 0 + +block_1: + bc = c->sgpr64(s4) == 0; // beq s4, r0, L15 + c->lqc2(vf1, 0, s3); // lqc2 vf1, 0(s3) + if (bc) {goto block_12;} // branch non-likely + + c->daddiu(s4, s4, -1); // daddiu s4, s4, -1 + c->lqc2(vf2, 16, s3); // lqc2 vf2, 16(s3) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, s3); // lqc2 vf3, 32(s3) + c->vsub(DEST::xyzw, vf4, vf2, vf1); // vsub.xyzw vf4, vf2, vf1 + c->lq(a1, 64, gp); // lq a1, 64(gp) + c->vsub(DEST::xyzw, vf5, vf3, vf1); // vsub.xyzw vf5, vf3, vf1 + c->lq(v1, 80, gp); // lq v1, 80(gp) + c->vmini(DEST::xyzw, vf6, vf1, vf2); // vmini.xyzw vf6, vf1, vf2 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyzw, vf7, vf1, vf2); // vmax.xyzw vf7, vf1, vf2 + // nop // sll r0, r0, 0 + c->vopmula(vf4, vf5); // vopmula.xyz acc, vf4, vf5 + // nop // sll r0, r0, 0 + c->vmove(DEST::xyzw, vf8, vf0); // vmove.xyzw vf8, vf0 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyzw, vf6, vf6, vf3); // vmini.xyzw vf6, vf6, vf3 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyzw, vf7, vf7, vf3); // vmax.xyzw vf7, vf7, vf3 + // nop // sll r0, r0, 0 + c->vopmsub(vf8, vf5, vf4); // vopmsub.xyz vf8, vf5, vf4 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf6, vf6); // vftoi0.xyzw vf6, vf6 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf7, vf7); // vftoi0.xyzw vf7, vf7 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf9, vf8, vf8); // vmul.xyzw vf9, vf8, vf8 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a0, vf6); // qmfc2.i a0, vf6 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a2, vf7); // qmfc2.i a2, vf7 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::w, BC::x, vf0, vf9); // vmulax.w acc, vf0, vf9 + c->sqc2(vf6, 32, gp); // sqc2 vf6, 32(gp) + c->vmadda_bc(DEST::w, BC::y, vf0, vf9); // vmadday.w acc, vf0, vf9 + c->sqc2(vf7, 48, gp); // sqc2 vf7, 48(gp) + c->vmadd_bc(DEST::w, BC::z, vf9, vf0, vf9); // vmaddz.w vf9, vf0, vf9 + // nop // sll r0, r0, 0 + c->pcgtw(a1, a1, a2); // pcgtw a1, a1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(v1, a0, v1); // pcgtw v1, a0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(v1, a1, v1); // por v1, a1, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->vrsqrt(vf0, BC::w, vf9, BC::w); // vrsqrt Q, vf0.w, vf9.w + // nop // sll r0, r0, 0 + c->ppach(v1, r0, v1); // ppach v1, r0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(v1, v1, 16); // dsll v1, v1, 16 + // nop // sll r0, r0, 0 + if (((s64)c->sgpr64(v1)) != ((s64)0)) { // bnel v1, r0, L13 + c->daddiu(s3, s3, 64); // daddiu s3, s3, 64 + goto block_1; + } + +block_4: + c->vwaitq(); // vwaitq + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyz, vf8, vf8); // vmulq.xyz vf8, vf8, Q + c->daddiu(s2, gp, 96); // daddiu s2, gp, 96 + // nop // sll r0, r0, 0 + c->lwu(s1, 116, s5); // lwu s1, 116(s5) + c->gprs[s0].du64[0] = 0; // or s0, r0, r0 + c->sqc2(vf8, 16, gp); // sqc2 vf8, 16(gp) + +block_5: + if (((s64)c->sgpr64(s0)) == ((s64)c->sgpr64(s1))) {// beql s0, s1, L13 + c->daddiu(s3, s3, 64); // daddiu s3, s3, 64 + goto block_1; + } + +block_7: + c->daddiu(s0, s0, 1); // daddiu s0, s0, 1 + c->lq(a1, 16, s2); // lq a1, 16(s2) + // nop // sll r0, r0, 0 + c->lq(a2, 48, gp); // lq a2, 48(gp) + // nop // sll r0, r0, 0 + c->lq(v1, 32, s2); // lq v1, 32(s2) + // nop // sll r0, r0, 0 + c->lq(a0, 32, gp); // lq a0, 32(gp) + c->pcgtw(a1, a1, a2); // pcgtw a1, a1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(v1, a0, v1); // pcgtw v1, a0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(v1, a1, v1); // por v1, a1, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(v1, r0, v1); // ppach v1, r0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(v1, v1, 16); // dsll v1, v1, 16 + // nop // sll r0, r0, 0 + if (((s64)c->sgpr64(v1)) != ((s64)0)) { // bnel v1, r0, L14 + c->daddiu(s2, s2, 48); // daddiu s2, s2, 48 + goto block_5; + } + +block_9: + c->load_symbol2(t9, cache.closest_pt_in_triangle);// lw t9, closest-pt-in-triangle(s7) + c->daddu(a0, r0, gp); // daddu a0, r0, gp + c->daddu(a1, r0, s2); // daddu a1, r0, s2 + c->daddu(a2, r0, s3); // daddu a2, r0, s3 + c->daddiu(a3, gp, 16); // daddiu a3, gp, 16 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lqc2(vf10, 0, gp); // lqc2 vf10, 0(gp) + c->lqc2(vf11, 0, s2); // lqc2 vf11, 0(s2) + c->daddiu(s2, s2, 48); // daddiu s2, s2, 48 + c->vsub(DEST::xyz, vf9, vf10, vf11); // vsub.xyz vf9, vf10, vf11 + c->vmul(DEST::w, vf11, vf11, vf11); // vmul.w vf11, vf11, vf11 + c->vmul(DEST::xyzw, vf9, vf9, vf9); // vmul.xyzw vf9, vf9, vf9 + c->vmula_bc(DEST::w, BC::x, vf0, vf9); // vmulax.w acc, vf0, vf9 + c->vmadda_bc(DEST::w, BC::y, vf0, vf9); // vmadday.w acc, vf0, vf9 + c->vmadd_bc(DEST::w, BC::z, vf9, vf0, vf9); // vmaddz.w vf9, vf0, vf9 + c->vsub(DEST::w, vf9, vf9, vf11); // vsub.w vf9, vf9, vf11 + c->mov128_gpr_vf(v1, vf9); // qmfc2.i v1, vf9 + c->pcpyud(v1, v1, v1); // pcpyud v1, v1, v1 + if (((s64)c->sgpr64(v1)) > 0) { // bgtzl v1, L14 + // nop // sll r0, r0, 0 + goto block_5; + } + +block_11: + c->daddiu(v1, s7, 4); // daddiu v1, s7, #t + c->mov64(v0, v1); // or v0, v1, r0 + //beq r0, r0, L16 // beq r0, r0, L16 + // nop // sll r0, r0, 0 + goto block_14; // branch always + + +block_12: + c->mov64(v0, s7); // or v0, s7, r0 + //beq r0, r0, L16 // beq r0, r0, L16 + // nop // sll r0, r0, 0 + goto block_14; // branch always + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + +block_14: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.closest_pt_in_triangle = intern_from_c(-1, 0, "closest-pt-in-triangle").c(); + gLinkedFunctionTable.reg("(method 9 collide-puss-work)", execute, 512); +} + +} // namespace method_9_collide_puss_work +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_17_collide_cache { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* collide_puss_work; // collide-puss-work + void* format; // format +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + c->sq(s2, 16, sp); // sq s2, 16(sp) + c->sq(s3, 32, sp); // sq s3, 32(sp) + c->sq(s4, 48, sp); // sq s4, 48(sp) + c->sq(s5, 64, sp); // sq s5, 64(sp) + c->sq(gp, 80, sp); // sq gp, 80(sp) + c->mov64(gp, a1); // or gp, a1, r0 + get_fake_spad_addr2(s5, cache.fake_scratchpad_data, 0, c);// lui s5, 28672 + c->addiu(a3, r0, 64); // addiu a3, r0, 64 + c->lwu(a2, 116, gp); // lwu a2, 116(gp) + c->daddiu(v1, s5, 96); // daddiu v1, s5, 96 + c->lwu(a1, 112, gp); // lwu a1, 112(gp) + c->dsubu(a3, a2, a3); // dsubu a3, a2, a3 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a3)) > 0; // bgtz a3, L26 + // nop // sll r0, r0, 0 + if (bc) {goto block_20;} // branch non-likely + + bc = c->sgpr64(a2) == 0; // beq a2, r0, L19 + c->lqc2(vf1, 0, a1); // lqc2 vf1, 0(a1) + if (bc) {goto block_5;} // branch non-likely + + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->vsub_bc(DEST::xyz, BC::w, vf2, vf1, vf1); // vsubw.xyz vf2, vf1, vf1 + c->sqc2(vf1, 0, v1); // sqc2 vf1, 0(v1) + c->vadd_bc(DEST::xyz, BC::w, vf3, vf1, vf1); // vaddw.xyz vf3, vf1, vf1 + c->daddiu(v1, v1, 48); // daddiu v1, v1, 48 + c->vftoi0(DEST::xyzw, vf4, vf2); // vftoi0.xyzw vf4, vf2 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf5, vf3); // vftoi0.xyzw vf5, vf3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf4, -32, v1); // sqc2 vf4, -32(v1) + // nop // sll r0, r0, 0 + c->sqc2(vf5, -16, v1); // sqc2 vf5, -16(v1) + +block_3: + bc = c->sgpr64(a2) == 0; // beq a2, r0, L19 + c->lqc2(vf1, 0, a1); // lqc2 vf1, 0(a1) + if (bc) {goto block_5;} // branch non-likely + + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->vsub_bc(DEST::xyz, BC::w, vf4, vf1, vf1); // vsubw.xyz vf4, vf1, vf1 + c->sqc2(vf1, 0, v1); // sqc2 vf1, 0(v1) + c->vadd_bc(DEST::xyz, BC::w, vf5, vf1, vf1); // vaddw.xyz vf5, vf1, vf1 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyz, vf2, vf2, vf4); // vmini.xyz vf2, vf2, vf4 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyz, vf3, vf3, vf5); // vmax.xyz vf3, vf3, vf5 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf4, vf4); // vftoi0.xyzw vf4, vf4 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf5, vf5); // vftoi0.xyzw vf5, vf5 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf4, 16, v1); // sqc2 vf4, 16(v1) + // nop // sll r0, r0, 0 + c->sqc2(vf5, 32, v1); // sqc2 vf5, 32(v1) + //beq r0, r0, L18 // beq r0, r0, L18 + c->daddiu(v1, v1, 48); // daddiu v1, v1, 48 + goto block_3; // branch always + + +block_5: + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf2, 64, s5); // sqc2 vf2, 64(s5) + // nop // sll r0, r0, 0 + c->sqc2(vf3, 80, s5); // sqc2 vf3, 80(s5) + c->lwu(v1, 108, a0); // lwu v1, 108(a0) + c->daddu(s4, r0, v1); // daddu s4, r0, v1 + c->lwu(s3, 100, gp); // lwu s3, 100(gp) + c->lw(s2, 8, a0); // lw s2, 8(a0) + //beq r0, r0, L25 // beq r0, r0, L25 + // nop // sll r0, r0, 0 + goto block_18; // branch always + + +block_6: + c->daddiu(s2, s2, -1); // daddiu s2, s2, -1 + c->lwu(v1, 16, s4); // lwu v1, 16(s4) + c->and_(v1, s3, v1); // and v1, s3, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L24 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_17;} // branch non-likely + + c->lwu(v1, 120, gp); // lwu v1, 120(gp) + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L21 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + goto block_10; + } + +block_9: + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + c->lwu(a0, 24, s4); // lwu a0, 24(s4) + c->andi(a0, a0, 1); // andi a0, a0, 1 + c->movz(v1, s7, a0); // movz v1, s7, a0 + +block_10: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L24 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_17;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->lb(v1, 28, s4); // lb v1, 28(s4) + c->slt(v1, v1, r0); // slt v1, v1, r0 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L22 + // nop // sll r0, r0, 0 + if (bc) {goto block_13;} // branch non-likely + + c->mov64(a0, s5); // or a0, s5, r0 + c->load_symbol2(v1, cache.collide_puss_work); // lw v1, collide-puss-work(s7) + c->lwu(t9, 52, v1); // lwu t9, 52(v1) + c->mov64(a1, s4); // or a1, s4, r0 + c->mov64(a2, gp); // or a2, gp, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mov64(a0, v1); // or a0, v1, r0 + //beq r0, r0, L23 // beq r0, r0, L23 + // nop // sll r0, r0, 0 + goto block_14; // branch always + + +block_13: + c->mov64(a0, s5); // or a0, s5, r0 + c->load_symbol2(v1, cache.collide_puss_work); // lw v1, collide-puss-work(s7) + c->lwu(t9, 56, v1); // lwu t9, 56(v1) + c->mov64(a1, s4); // or a1, s4, r0 + c->mov64(a2, gp); // or a2, gp, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mov64(a0, v1); // or a0, v1, r0 + +block_14: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L24 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_17;} // branch non-likely + + c->daddiu(v1, s7, 4); // daddiu v1, s7, #t + c->mov64(v0, v1); // or v0, v1, r0 + //beq r0, r0, L28 // beq r0, r0, L28 + // nop // sll r0, r0, 0 + goto block_22; // branch always + + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + +block_17: + c->daddiu(s4, s4, 48); // daddiu s4, s4, 48 + +block_18: + bc = c->sgpr64(s2) != 0; // bne s2, r0, L20 + // nop // sll r0, r0, 0 + if (bc) {goto block_6;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + //beq r0, r0, L27 // beq r0, r0, L27 + // nop // sll r0, r0, 0 + goto block_21; // branch always + + +block_20: + c->load_symbol2(t9, cache.format); // lw t9, format(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 +// daddiu a1, fp, L216 // daddiu a1, fp, L216 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + +block_21: + c->mov64(v0, s7); // or v0, s7, r0 + +block_22: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + c->lq(gp, 80, sp); // lq gp, 80(sp) + c->lq(s5, 64, sp); // lq s5, 64(sp) + c->lq(s4, 48, sp); // lq s4, 48(sp) + c->lq(s3, 32, sp); // lq s3, 32(sp) + c->lq(s2, 16, sp); // lq s2, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.collide_puss_work = intern_from_c(-1, 0, "collide-puss-work").c(); + cache.format = intern_from_c(-1, 0, "format").c(); + gLinkedFunctionTable.reg("(method 17 collide-cache)", execute, 256); +} + +} // namespace method_17_collide_cache +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_10_collide_cache_prim { +struct Cache { + void* moving_sphere_sphere_intersect; // moving-sphere-sphere-intersect +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + c->mov64(s3, a0); // or s3, a0, r0 + c->mov64(gp, a1); // or gp, a1, r0 + c->mov64(s5, a3); // or s5, a3, r0 + c->mov64(s2, t0); // or s2, t0, r0 + c->mov64(s4, t1); // or s4, t1, r0 + c->daddiu(s1, sp, 16); // daddiu s1, sp, 16 + c->load_symbol2(t9, cache.moving_sphere_sphere_intersect);// lw t9, moving-sphere-sphere-intersect(s7) + c->mov64(a0, a2); // or a0, a2, r0 + c->mov64(a1, s5); // or a1, s5, r0 + c->daddu(a2, r0, s3); // daddu a2, r0, s3 + c->mov64(a3, s1); // or a3, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mtc1(f3, v0); // mtc1 f3, v0 + c->lui(v1, -13122); // lui v1, -13122 + c->ori(v1, v1, 48160); // ori v1, v1, 48160 + c->mtc1(f4, v1); // mtc1 f4, v1 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->lqc2(vf4, 0, s1); // lqc2 vf4, 0(s1) + c->movs(f1, f3); // mov.s f1, f3 + c->lqc2(vf5, 0, s3); // lqc2 vf5, 0(s3) + cop1_bc = c->fprs[f1] < c->fprs[f0]; // c.lt.s f1, f0 + c->vmove(DEST::xyzw, vf1, vf0); // vmove.xyzw vf1, vf0 + bc = cop1_bc; // bc1t L35 + c->mtc1(f2, s2); // mtc1 f2, s2 + if (bc) {goto block_11;} // branch non-likely + + cop1_bc = c->fprs[f2] < c->fprs[f0]; // c.lt.s f2, f0 + c->vsub(DEST::xyz, vf1, vf4, vf5); // vsub.xyz vf1, vf4, vf5 + bc = cop1_bc; // bc1t L32 + c->lwu(v1, 36, s3); // lwu v1, 36(s3) + if (bc) {goto block_4;} // branch non-likely + + cop1_bc = c->fprs[f2] <= c->fprs[f1]; // c.le.s f2, f1 + // nop // sll r0, r0, 0 + if (cop1_bc) { // bc1tl L35 + c->movs(f3, f4); // mov.s f3, f4 + goto block_11; + } + +block_4: + c->andi(a0, s4, 1); // andi a0, s4, 1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L33 + c->lqc2(vf15, 0, s5); // lqc2 vf15, 0(s5) + if (bc) {goto block_7;} // branch non-likely + + c->vmul(DEST::xyzw, vf16, vf15, vf1); // vmul.xyzw vf16, vf15, vf1 + c->vadd_bc(DEST::y, BC::x, vf16, vf16, vf16); // vaddx.y vf16, vf16, vf16 + c->vadd_bc(DEST::y, BC::z, vf16, vf16, vf16); // vaddz.y vf16, vf16, vf16 + c->mov128_gpr_vf(a0, vf16); // qmfc2.i a0, vf16 + if (((s64)c->sgpr64(a0)) >= 0) { // bgezl a0, L35 + c->movs(f3, f4); // mov.s f3, f4 + goto block_11; + } + +block_7: + // daddiu a0, fp, L217 // daddiu a0, fp, L217 + // L217: + // .word 0x0 + // .word 0x45800000 + // .word 0x0 + // .word 0x3f800000 + // .word 0x0 + // .word 0xc5800000 + // .word 0x45800000 + // .word 0x3f800000 + // .word 0x0 + // .word 0xc5800000 + // .word 0xc5800000 + // .word 0x3f800000 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf12, vf1, vf1); // vmul.xyzw vf12, vf1, vf1 + c->sqc2(vf4, 48, gp); // sqc2 vf4, 48(gp) + c->vmula_bc(DEST::w, BC::x, vf0, vf12); // vmulax.w acc, vf0, vf12 + // c->lqc2(vf9, 0, a0); // lqc2 vf9, 0(a0) + c->vfs[9].vf.set_u32s(0, 0x45800000, 0, 0x3f800000); + c->vmadda_bc(DEST::w, BC::y, vf0, vf12); // vmadday.w acc, vf0, vf12 + // c->lqc2(vf10, 16, a0); // lqc2 vf10, 16(a0) + c->vfs[10].vf.set_u32s(0, 0xc5800000, 0x45800000, 0x3f800000); + c->vmadd_bc(DEST::w, BC::z, vf12, vf0, vf12); // vmaddz.w vf12, vf0, vf12 + // c->lqc2(vf11, 32, a0); // lqc2 vf11, 32(a0) + c->vfs[11].vf.set_u32s(0, 0xc5800000, 0xc5800000, 0x3f800000); + c->vrsqrt(vf0, BC::w, vf12, BC::w); // vrsqrt Q, vf0.w, vf12.w + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->lwu(a0, 60, v1); // lwu a0, 60(v1) + c->vmulq(DEST::xyz, vf1, vf1); // vmulq.xyz vf1, vf1, Q + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf14, vf1, vf1); // vmul.xyzw vf14, vf1, vf1 + c->sqc2(vf1, 64, gp); // sqc2 vf1, 64(gp) + c->vabs(DEST::xyzw, vf13, vf1); // vabs.xyzw vf13, vf1 + c->sw(a0, 80, gp); // sw a0, 80(gp) + c->vmove(DEST::xyzw, vf2, vf0); // vmove.xyzw vf2, vf0 + c->sw(v1, 84, gp); // sw v1, 84(gp) + c->vadd_bc(DEST::x, BC::y, vf14, vf14, vf14); // vaddy.x vf14, vf14, vf14 + c->mov128_gpr_vf(v1, vf13); // qmfc2.i v1, vf13 + if (((s64)c->sgpr64(v1)) == ((s64)0)) { // beql v1, r0, L34 + c->vadd_bc(DEST::x, BC::z, vf2, vf0, vf1); // vaddz.x vf2, vf0, vf1 + goto block_10; + } + +block_9: + c->vsub_bc(DEST::x, BC::y, vf2, vf0, vf1); // vsuby.x vf2, vf0, vf1 + // nop // sll r0, r0, 0 + c->vrsqrt(vf0, BC::w, vf14, BC::x); // vrsqrt Q, vf0.w, vf14.x + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::y, BC::x, vf2, vf0, vf1); // vaddx.y vf2, vf0, vf1 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + // nop // sll r0, r0, 0 + c->vmulq(DEST::xy, vf2, vf2); // vmulq.xy vf2, vf2, Q + // nop // sll r0, r0, 0 + +block_10: + c->vopmula(vf1, vf2); // vopmula.xyz acc, vf1, vf2 + // nop // sll r0, r0, 0 + c->vopmsub(vf3, vf2, vf1); // vopmsub.xyz vf3, vf2, vf1 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf9); // vmaddax.xyzw acc, vf1, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf9); // vmadday.xyzw acc, vf2, vf9 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyz, BC::z, vf9, vf3, vf9); // vmaddz.xyz vf9, vf3, vf9 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf10); // vmaddax.xyzw acc, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf10); // vmadday.xyzw acc, vf2, vf10 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyz, BC::z, vf10, vf3, vf10); // vmaddz.xyz vf10, vf3, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf11); // vmaddax.xyzw acc, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf11); // vmadday.xyzw acc, vf2, vf11 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyz, BC::z, vf11, vf3, vf11); // vmaddz.xyz vf11, vf3, vf11 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf9, 0, gp); // sqc2 vf9, 0(gp) + // nop // sll r0, r0, 0 + c->sqc2(vf10, 16, gp); // sqc2 vf10, 16(gp) + // nop // sll r0, r0, 0 + c->sqc2(vf11, 32, gp); // sqc2 vf11, 32(gp) + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + +block_11: + c->mfc1(v0, f3); // mfc1 v0, f3 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.moving_sphere_sphere_intersect = intern_from_c(-1, 0, "moving-sphere-sphere-intersect").c(); + gLinkedFunctionTable.reg("(method 10 collide-cache-prim)", execute, 512); +} + +} // namespace method_10_collide_cache_prim +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_9_collide_cache_prim { +struct Cache { + void* moving_sphere_triangle_intersect; // moving-sphere-triangle-intersect +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -672); // daddiu sp, sp, -672 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s1, 576, sp); // sq s1, 576(sp) + c->sq(s2, 592, sp); // sq s2, 592(sp) + c->sq(s3, 608, sp); // sq s3, 608(sp) + c->sq(s4, 624, sp); // sq s4, 624(sp) + c->sq(s5, 640, sp); // sq s5, 640(sp) + c->sq(gp, 656, sp); // sq gp, 656(sp) + c->mov64(gp, a1); // or gp, a1, r0 + c->mov64(s5, a2); // or s5, a2, r0 + c->mov64(s4, a3); // or s4, a3, r0 + c->daddiu(s3, sp, 16); // daddiu s3, sp, 16 + // nop // sll r0, r0, 0 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->sw(t1, 8, s3); // sw t1, 8(s3) + c->mtc1(f1, t0); // mtc1 f1, t0 + c->lhu(v1, 40, a0); // lhu v1, 40(a0) + // nop // sll r0, r0, 0 + c->lwu(a1, 32, a0); // lwu a1, 32(a0) + cop1_bc = c->fprs[f0] <= c->fprs[f1]; // c.le.s f0, f1 + c->dsll(v1, v1, 6); // dsll v1, v1, 6 + bc = cop1_bc; // bc1t L37 + c->lw(a1, 124, a1); // lw a1, 124(a1) + if (bc) {goto block_2;} // branch non-likely + + c->lui(a2, 16384); // lui a2, 16384 + c->mtc1(f1, a2); // mtc1 f1, a2 + +block_2: + c->daddu(s2, a1, v1); // daddu s2, a1, v1 + c->swc1(f1, 0, s3); // swc1 f1, 0(s3) + // nop // sll r0, r0, 0 + c->lhu(s1, 42, a0); // lhu s1, 42(a0) + // nop // sll r0, r0, 0 + c->swc1(f1, 4, s3); // swc1 f1, 4(s3) + +block_3: + bc = c->sgpr64(s1) == 0; // beq s1, r0, L40 + c->daddiu(s1, s1, -1); // daddiu s1, s1, -1 + if (bc) {goto block_14;} // branch non-likely + + c->load_symbol2(t9, cache.moving_sphere_triangle_intersect);// lw t9, moving-sphere-triangle-intersect(s7) + c->mov64(a0, s5); // or a0, s5, r0 + c->mov64(a1, s4); // or a1, s4, r0 + c->lwc1(f0, 12, s5); // lwc1 f0, 12(s5) + c->mfc1(a2, f0); // mfc1 a2, f0 + c->daddu(a3, r0, s2); // daddu a3, r0, s2 + c->daddiu(t0, s3, 64); // daddiu t0, s3, 64 + c->daddiu(t1, s3, 80); // daddiu t1, s3, 80 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + // nop // sll r0, r0, 0 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->lqc2(vf1, 0, s4); // lqc2 vf1, 0(s4) + c->mtc1(f2, v1); // mtc1 f2, v1 + c->lwc1(f1, 0, s3); // lwc1 f1, 0(s3) + cop1_bc = c->fprs[f2] < c->fprs[f0]; // c.lt.s f2, f0 + c->lqc2(vf2, 80, s3); // lqc2 vf2, 80(s3) + if (cop1_bc) { // bc1tl L38 + c->daddiu(s2, s2, 64); // daddiu s2, s2, 64 + goto block_3; + } + +block_6: + cop1_bc = c->fprs[f1] <= c->fprs[f2]; // c.le.s f1, f2 + c->lqc2(vf3, 64, s3); // lqc2 vf3, 64(s3) + if (cop1_bc) { // bc1tl L38 + c->daddiu(s2, s2, 64); // daddiu s2, s2, 64 + goto block_3; + } + +block_8: + c->vmul(DEST::xyzw, vf5, vf1, vf2); // vmul.xyzw vf5, vf1, vf2 + c->lqc2(vf4, 0, s5); // lqc2 vf4, 0(s5) + // nop // sll r0, r0, 0 + c->lwu(v1, 8, s3); // lwu v1, 8(s3) + c->vsub(DEST::xyzw, vf7, vf4, vf3); // vsub.xyzw vf7, vf4, vf3 + c->andi(v1, v1, 1); // andi v1, v1, 1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L39 + c->vadd_bc(DEST::x, BC::y, vf5, vf5, vf5); // vaddy.x vf5, vf5, vf5 + if (bc) {goto block_13;} // branch non-likely + + c->vmul(DEST::xyzw, vf6, vf7, vf2); // vmul.xyzw vf6, vf7, vf2 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::x, BC::z, vf5, vf5, vf5); // vaddz.x vf5, vf5, vf5 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::x, BC::y, vf6, vf6, vf6); // vaddy.x vf6, vf6, vf6 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(v1, vf5); // qmfc2.i v1, vf5 + // nop // sll r0, r0, 0 + c->mtc1(f3, v1); // mtc1 f3, v1 + // nop // sll r0, r0, 0 + cop1_bc = c->fprs[f0] <= c->fprs[f3]; // c.le.s f0, f3 + // nop // sll r0, r0, 0 + if (cop1_bc) { // bc1tl L38 + c->daddiu(s2, s2, 64); // daddiu s2, s2, 64 + goto block_3; + } + +block_11: + c->vadd_bc(DEST::x, BC::z, vf6, vf6, vf6); // vaddz.x vf6, vf6, vf6 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(v1, vf6); // qmfc2.i v1, vf6 + // nop // sll r0, r0, 0 + c->mtc1(f4, v1); // mtc1 f4, v1 + // nop // sll r0, r0, 0 + cop1_bc = c->fprs[f4] < c->fprs[f0]; // c.lt.s f4, f0 + // nop // sll r0, r0, 0 + if (cop1_bc) { // bc1tl L38 + c->daddiu(s2, s2, 64); // daddiu s2, s2, 64 + goto block_3; + } + +block_13: + c->lqc2(vf8, 0, s2); // lqc2 vf8, 0(s2) + c->lqc2(vf9, 16, s2); // lqc2 vf9, 16(s2) + c->lqc2(vf10, 32, s2); // lqc2 vf10, 32(s2) + c->lwu(v1, 48, s2); // lwu v1, 48(s2) + c->lw(a0, 52, s2); // lw a0, 52(s2) + c->swc1(f2, 0, s3); // swc1 f2, 0(s3) + c->sqc2(vf3, 48, gp); // sqc2 vf3, 48(gp) + c->sqc2(vf2, 64, gp); // sqc2 vf2, 64(gp) + c->sqc2(vf8, 0, gp); // sqc2 vf8, 0(gp) + c->sqc2(vf9, 16, gp); // sqc2 vf9, 16(gp) + c->sqc2(vf10, 32, gp); // sqc2 vf10, 32(gp) + c->sw(v1, 80, gp); // sw v1, 80(gp) + c->sw(a0, 84, gp); // sw a0, 84(gp) + //beq r0, r0, L38 // beq r0, r0, L38 + c->daddiu(s2, s2, 64); // daddiu s2, s2, 64 + goto block_3; // branch always + + +block_14: + c->lwc1(f1, 0, s3); // lwc1 f1, 0(s3) + c->lwc1(f5, 4, s3); // lwc1 f5, 4(s3) + cop1_bc = c->fprs[f1] == c->fprs[f5]; // c.eq.s f1, f5 + if (!cop1_bc) { // bc1fl L41 + c->mfc1(v0, f1); // mfc1 v0, f1 + goto block_17; + } + +block_16: + c->lui(v0, -13122); // lui v0, -13122 + c->ori(v0, v0, 48160); // ori v0, v0, 48160 + +block_17: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 656, sp); // lq gp, 656(sp) + c->lq(s5, 640, sp); // lq s5, 640(sp) + c->lq(s4, 624, sp); // lq s4, 624(sp) + c->lq(s3, 608, sp); // lq s3, 608(sp) + c->lq(s2, 592, sp); // lq s2, 592(sp) + c->lq(s1, 576, sp); // lq s1, 576(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 672); // daddiu sp, sp, 672 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.moving_sphere_triangle_intersect = intern_from_c(-1, 0, "moving-sphere-triangle-intersect").c(); + gLinkedFunctionTable.reg("(method 9 collide-cache-prim)", execute, 1024); +} + +} // namespace method_9_collide_cache_prim +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_11_collide_shape_prim_group { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + c->mov64(gp, a1); // or gp, a1, r0 + c->mov64(s5, a2); // or s5, a2, r0 + c->mov64(s4, a0); // or s4, a0, r0 + c->lbu(s3, 60, a0); // lbu s3, 60(a0) + // nop // sll r0, r0, 0 + c->lq(s2, 368, s5); // lq s2, 368(s5) + // nop // sll r0, r0, 0 + c->lq(s1, 384, s5); // lq s1, 384(s5) + // nop // sll r0, r0, 0 + c->lwu(s0, 92, gp); // lwu s0, 92(gp) + // nop // sll r0, r0, 0 + c->lqc2(vf28, 288, s5); // lqc2 vf28, 288(s5) + // nop // sll r0, r0, 0 + c->lqc2(vf29, 304, s5); // lqc2 vf29, 304(s5) + // nop // sll r0, r0, 0 + c->lqc2(vf30, 320, s5); // lqc2 vf30, 320(s5) + // nop // sll r0, r0, 0 + c->lqc2(vf31, 336, s5); // lqc2 vf31, 336(s5) + +block_1: + bc = c->sgpr64(s3) == 0; // beq s3, r0, L54 + c->daddiu(s4, s4, 80); // daddiu s4, s4, 80 + if (bc) {goto block_5;} // branch non-likely + + +block_2: + c->daddiu(s3, s3, -1); // daddiu s3, s3, -1 + c->lqc2(vf1, 12, s4); // lqc2 vf1, 12(s4) + // nop // sll r0, r0, 0 + c->lwu(v1, 28, s4); // lwu v1, 28(s4) + c->vmula_bc(DEST::xyzw, BC::w, vf31, vf0); // vmulaw.xyzw acc, vf31, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf28, vf1); // vmaddax.xyzw acc, vf28, vf1 + c->and_(v1, s0, v1); // and v1, s0, v1 + c->vmadda_bc(DEST::xyzw, BC::y, vf29, vf1); // vmadday.xyzw acc, vf29, vf1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L52 + c->vmadd_bc(DEST::xyzw, BC::z, vf10, vf30, vf1); // vmaddz.xyzw vf10, vf30, vf1 + if (bc) {goto block_1;} // branch non-likely + + c->vsub_bc(DEST::xyz, BC::w, vf2, vf10, vf1); // vsubw.xyz vf2, vf10, vf1 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::xyz, BC::w, vf3, vf10, vf1); // vaddw.xyz vf3, vf10, vf1 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf4, vf2); // vftoi0.xyzw vf4, vf2 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf5, vf3); // vftoi0.xyzw vf5, vf3 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a0, vf4); // qmfc2.i a0, vf4 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(v1, vf5); // qmfc2.i v1, vf5 + // nop // sll r0, r0, 0 + c->pcgtw(a0, a0, s1); // pcgtw a0, a0, s1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(v1, s2, v1); // pcgtw v1, s2, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(v1, a0, v1); // por v1, a0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(v1, r0, v1); // ppach v1, r0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(v1, v1, 16); // dsll v1, v1, 16 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L52 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(a0, s4); // or a0, s4, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 60, v1); // lwu t9, 60(v1) + c->mov64(a1, gp); // or a1, gp, r0 + c->mov64(a2, s5); // or a2, s5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + bc = c->sgpr64(s3) != 0; // bne s3, r0, L53 + c->daddiu(s4, s4, 80); // daddiu s4, s4, 80 + if (bc) {goto block_2;} // branch non-likely + + +block_5: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 11 collide-shape-prim-group)", execute, 512); +} + +} // namespace method_11_collide_shape_prim_group +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_11_collide_shape_prim_sphere { +struct Cache { + void* format; // format +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + // nop // sll r0, r0, 0 + c->lw(t0, 108, a1); // lw t0, 108(a1) + c->lwu(a3, 8, a1); // lwu a3, 8(a1) + c->lwu(t1, 12, a1); // lwu t1, 12(a1) + c->lq(v1, 12, a0); // lq v1, 12(a0) + c->dsll(t2, a3, 1); // dsll t2, a3, 1 + c->lq(a2, 28, a0); // lq a2, 28(a0) + bc = c->sgpr64(a3) == c->sgpr64(t1); // beq a3, t1, L56 + c->daddu(t1, t2, a3); // daddu t1, t2, a3 + if (bc) {goto block_2;} // branch non-likely + + c->dsll(t1, t1, 4); // dsll t1, t1, 4 + c->daddu(t0, t0, t1); // daddu t0, t0, t1 + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + c->sq(r0, 32, t0); // sq r0, 32(t0) + // nop // sll r0, r0, 0 + c->sw(a0, 36, t0); // sw a0, 36(t0) + // nop // sll r0, r0, 0 + c->sq(v1, 0, t0); // sq v1, 0(t0) + // nop // sll r0, r0, 0 + c->sq(a2, 16, t0); // sq a2, 16(t0) + // nop // sll r0, r0, 0 + c->sw(a3, 8, a1); // sw a3, 8(a1) + // nop // sll r0, r0, 0 + c->sw(a1, 32, t0); // sw a1, 32(t0) + c->mov64(v0, s7); // or v0, s7, r0 + //beq r0, r0, L57 // beq r0, r0, L57 + // nop // sll r0, r0, 0 + goto block_3; // branch always + + +block_2: + c->load_symbol2(t9, cache.format); // lw t9, format(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + // daddiu a1, fp, L222 // daddiu a1, fp, L222 + // call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + // c->jalr(call_addr); // jalr ra, t9 + printf("ERROR: Exceeded max number of collide-cache prims!\n"); + +block_3: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.format = intern_from_c(-1, 0, "format").c(); + gLinkedFunctionTable.reg("(method 11 collide-shape-prim-sphere)", execute, 256); +} + +} // namespace method_11_collide_shape_prim_sphere +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_11_collide_shape_prim_mesh { +struct Cache { + void* cheat_mode; // *cheat-mode* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* debug; // debug + void* format; // format + void* print_exceeded_max_cache_tris; // print-exceeded-max-cache-tris +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + c->sq(s2, 16, sp); // sq s2, 16(sp) + c->sq(s3, 32, sp); // sq s3, 32(sp) + c->sq(s4, 48, sp); // sq s4, 48(sp) + c->sq(s5, 64, sp); // sq s5, 64(sp) + c->sq(gp, 80, sp); // sq gp, 80(sp) + c->mov64(s5, a0); // or s5, a0, r0 + c->mov64(gp, a1); // or gp, a1, r0 + c->mov64(s3, a2); // or s3, a2, r0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lwu(s2, 60, s5); // lwu s2, 60(s5) + c->lw(v1, 108, gp); // lw v1, 108(gp) + c->lwu(a0, 8, gp); // lwu a0, 8(gp) + bc = c->sgpr64(s2) == c->sgpr64(s7); // beq s2, s7, L63 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + c->lwu(a1, 12, gp); // lwu a1, 12(gp) + c->dsll(a2, a0, 1); // dsll a2, a0, 1 + bc = c->sgpr64(a0) == c->sgpr64(a1); // beq a0, a1, L61 + c->daddu(a0, a2, a0); // daddu a0, a2, a0 + if (bc) {goto block_11;} // branch non-likely + + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->daddu(s4, v1, a0); // daddu s4, v1, a0 + c->mov64(a0, s2); // or a0, s2, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 72, v1); // lwu t9, 72(v1) + c->lwu(v1, 0, s5); // lwu v1, 0(s5) + c->lwu(v1, 136, v1); // lwu v1, 136(v1) + c->lwu(v1, 188, v1); // lwu v1, 188(v1) + c->lb(a1, 8, s5); // lb a1, 8(s5) + c->dsll(a1, a1, 5); // dsll a1, a1, 5 + c->daddu(v1, v1, a1); // daddu v1, v1, a1 + c->lwu(v1, 28, v1); // lwu v1, 28(v1) + c->daddu(a1, r0, v1); // daddu a1, r0, v1 + c->daddiu(a2, s3, 288); // daddiu a2, s3, 288 + get_fake_spad_addr2(a3, cache.fake_scratchpad_data, 0, c);// lui a3, 28672 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + // nop // sll r0, r0, 0 + c->lwu(a0, 8, gp); // lwu a0, 8(gp) + c->lwu(a1, 4, gp); // lwu a1, 4(gp) + c->lwu(v1, 0, gp); // lwu v1, 0(gp) + c->dsll32(a0, a0, 0); // dsll32 a0, a0, 0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf1, a0); // qmtc2.i vf1, a0 + // nop // sll r0, r0, 0 + c->dsubu(a0, a1, v1); // dsubu a0, a1, v1 + c->dsll(t1, v1, 6); // dsll t1, v1, 6 + bc = ((s64)c->sgpr64(a0)) < 0; // bltz a0, L62 + c->daddiu(a2, s2, 28); // daddiu a2, s2, 28 + if (bc) {goto block_12;} // branch non-likely + + c->mov64(a0, v1); // or a0, v1, r0 + c->lwu(a3, 4, s2); // lwu a3, 4(s2) + c->lw(t2, 124, gp); // lw t2, 124(gp) + c->lq(t0, 368, s3); // lq t0, 368(s3) + c->daddu(t1, t2, t1); // daddu t1, t2, t1 + c->lq(t2, 384, s3); // lq t2, 384(s3) + get_fake_spad_addr2(t3, cache.fake_scratchpad_data, 0, c);// lui t3, 28672 + c->lwu(t4, 16, gp); // lwu t4, 16(gp) + c->vsub(DEST::zw, vf1, vf0, vf0); // vsub.zw vf1, vf0, vf0 + // nop // sll r0, r0, 0 + +block_4: + bc = c->sgpr64(a3) == 0; // beq a3, r0, L60 + c->lbu(t5, 0, a2); // lbu t5, 0(a2) + if (bc) {goto block_9;} // branch non-likely + + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + c->lbu(t6, 1, a2); // lbu t6, 1(a2) + c->dsll(t8, t5, 5); // dsll t8, t5, 5 + c->lbu(t5, 2, a2); // lbu t5, 2(a2) + c->dsll(t7, t6, 5); // dsll t7, t6, 5 + c->daddu(t6, t8, t3); // daddu t6, t8, t3 + c->dsll(t5, t5, 5); // dsll t5, t5, 5 + // nop // sll r0, r0, 0 + c->daddu(t7, t7, t3); // daddu t7, t7, t3 + c->lq(t9, 16, t6); // lq t9, 16(t6) + c->daddu(t5, t5, t3); // daddu t5, t5, t3 + c->lq(s3, 16, t7); // lq s3, 16(t7) + // nop // sll r0, r0, 0 + c->lq(t8, 16, t5); // lq t8, 16(t5) + c->pminw(ra, t9, s3); // pminw ra, t9, s3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(t9, t9, s3); // pmaxw t9, t9, s3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(ra, ra, t8); // pminw ra, ra, t8 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(t8, t9, t8); // pmaxw t8, t9, t8 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(t9, ra, t2); // pcgtw t9, ra, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(ra, t0, t8); // pcgtw ra, t0, t8 + c->lwu(t8, 4, a2); // lwu t8, 4(a2) + c->por(t9, t9, ra); // por t9, t9, ra + c->lq(t6, 0, t6); // lq t6, 0(t6) + c->ppach(t9, r0, t9); // ppach t9, r0, t9 + c->lq(t7, 0, t7); // lq t7, 0(t7) + c->dsll(t9, t9, 16); // dsll t9, t9, 16 + c->lq(t5, 0, t5); // lq t5, 0(t5) + bc = c->sgpr64(t9) != 0; // bne t9, r0, L59 + c->daddiu(a2, a2, 8); // daddiu a2, a2, 8 + if (bc) {goto block_4;} // branch non-likely + + bc = c->sgpr64(v1) == c->sgpr64(a1); // beq v1, a1, L62 + c->sqc2(vf1, 48, t1); // sqc2 vf1, 48(t1) + if (bc) {goto block_12;} // branch non-likely + + c->and_(t9, t8, t4); // and t9, t8, t4 + c->sw(t8, 48, t1); // sw t8, 48(t1) + // nop // sll r0, r0, 0 + c->sw(s5, 52, t1); // sw s5, 52(t1) + bc = c->sgpr64(t9) != 0; // bne t9, r0, L59 + c->sq(t6, 0, t1); // sq t6, 0(t1) + if (bc) {goto block_4;} // branch non-likely + + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + c->sq(t7, 16, t1); // sq t7, 16(t1) + // nop // sll r0, r0, 0 + c->sq(t5, 32, t1); // sq t5, 32(t1) + //beq r0, r0, L59 // beq r0, r0, L59 + c->daddiu(t1, t1, 64); // daddiu t1, t1, 64 + goto block_4; // branch always + + +block_9: + c->dsubu(a3, v1, a0); // dsubu a3, v1, a0 + c->lwu(t0, 8, gp); // lwu t0, 8(gp) + bc = c->sgpr64(a3) == 0; // beq a3, r0, L63 + c->lq(a1, 12, s5); // lq a1, 12(s5) + if (bc) {goto block_14;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(a2, 28, s5); // lq a2, 28(s5) + // nop // sll r0, r0, 0 + c->sq(r0, 32, s4); // sq r0, 32(s4) + // nop // sll r0, r0, 0 + c->sh(a3, 42, s4); // sh a3, 42(s4) + // nop // sll r0, r0, 0 + c->sw(gp, 32, s4); // sw gp, 32(s4) + // nop // sll r0, r0, 0 + c->sw(s5, 36, s4); // sw s5, 36(s4) + // nop // sll r0, r0, 0 + c->sh(a0, 40, s4); // sh a0, 40(s4) + c->daddiu(a0, t0, 1); // daddiu a0, t0, 1 + c->sq(a1, 0, s4); // sq a1, 0(s4) + // nop // sll r0, r0, 0 + c->sq(a2, 16, s4); // sq a2, 16(s4) + // nop // sll r0, r0, 0 + c->sw(a0, 8, gp); // sw a0, 8(gp) + //beq r0, r0, L63 // beq r0, r0, L63 + c->sw(v1, 0, gp); // sw v1, 0(gp) + goto block_14; // branch always + + +block_11: + c->load_symbol2(t9, cache.format); // lw t9, format(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + // daddiu a1, fp, L222 // daddiu a1, fp, L222 + // call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + // c->jalr(call_addr); // jalr ra, t9 + printf("ERROR: Exceeded max number of collide-cache prims!\n"); + //beq r0, r0, L63 // beq r0, r0, L63 + // nop // sll r0, r0, 0 + goto block_14; // branch always + + +block_12: + c->load_symbol_addr(v1, cache.debug); // daddiu v1, s7, debug + c->load_symbol2(a0, cache.cheat_mode); // lw a0, *cheat-mode*(s7) + bc = c->sgpr64(a0) != c->sgpr64(v1); // bne a0, v1, L63 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_14;} // branch non-likely + + c->load_symbol2(t9, cache.print_exceeded_max_cache_tris);// lw t9, print-exceeded-max-cache-tris(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_14: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + c->lq(gp, 80, sp); // lq gp, 80(sp) + c->lq(s5, 64, sp); // lq s5, 64(sp) + c->lq(s4, 48, sp); // lq s4, 48(sp) + c->lq(s3, 32, sp); // lq s3, 32(sp) + c->lq(s2, 16, sp); // lq s2, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.cheat_mode = intern_from_c(-1, 0, "*cheat-mode*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.debug = intern_from_c(-1, 0, "debug").c(); + cache.format = intern_from_c(-1, 0, "format").c(); + cache.print_exceeded_max_cache_tris = intern_from_c(-1, 0, "print-exceeded-max-cache-tris").c(); + gLinkedFunctionTable.reg("(method 11 collide-shape-prim-mesh)", execute, 256); +} + +} // namespace method_11_collide_shape_prim_mesh +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_10_collide_shape_prim_group { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -112); // daddiu sp, sp, -112 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s1, 16, sp); // sq s1, 16(sp) + c->sq(s2, 32, sp); // sq s2, 32(sp) + c->sq(s3, 48, sp); // sq s3, 48(sp) + c->sq(s4, 64, sp); // sq s4, 64(sp) + c->sq(s5, 80, sp); // sq s5, 80(sp) + c->sq(gp, 96, sp); // sq gp, 96(sp) + c->mov64(gp, a1); // or gp, a1, r0 + c->mov64(s5, a0); // or s5, a0, r0 + c->lbu(s4, 60, a0); // lbu s4, 60(a0) + // nop // sll r0, r0, 0 + c->lq(s3, 60, gp); // lq s3, 60(gp) + // nop // sll r0, r0, 0 + c->lq(s2, 76, gp); // lq s2, 76(gp) + // nop // sll r0, r0, 0 + c->lwu(s1, 92, gp); // lwu s1, 92(gp) + +block_1: + bc = c->sgpr64(s4) == 0; // beq s4, r0, L83 + c->daddiu(s5, s5, 80); // daddiu s5, s5, 80 + if (bc) {goto block_5;} // branch non-likely + + +block_2: + c->daddiu(s4, s4, -1); // daddiu s4, s4, -1 + c->lqc2(vf1, 12, s5); // lqc2 vf1, 12(s5) + // nop // sll r0, r0, 0 + c->lwu(v1, 28, s5); // lwu v1, 28(s5) + c->vsub_bc(DEST::xyzw, BC::w, vf2, vf1, vf1); // vsubw.xyzw vf2, vf1, vf1 + c->and_(v1, s1, v1); // and v1, s1, v1 + c->vadd_bc(DEST::xyzw, BC::w, vf3, vf1, vf1); // vaddw.xyzw vf3, vf1, vf1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L81 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->vftoi0(DEST::xyzw, vf4, vf2); // vftoi0.xyzw vf4, vf2 + c->vftoi0(DEST::xyzw, vf5, vf3); // vftoi0.xyzw vf5, vf3 + c->mov128_gpr_vf(a0, vf4); // qmfc2.i a0, vf4 + c->mov128_gpr_vf(v1, vf5); // qmfc2.i v1, vf5 + c->pcgtw(a0, a0, s2); // pcgtw a0, a0, s2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(v1, s3, v1); // pcgtw v1, s3, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(v1, a0, v1); // por v1, a0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(v1, r0, v1); // ppach v1, r0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(v1, v1, 16); // dsll v1, v1, 16 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L81 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(a0, s5); // or a0, s5, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 56, v1); // lwu t9, 56(v1) + c->mov64(a1, gp); // or a1, gp, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + bc = c->sgpr64(s4) != 0; // bne s4, r0, L82 + c->daddiu(s5, s5, 80); // daddiu s5, s5, 80 + if (bc) {goto block_2;} // branch non-likely + + +block_5: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 96, sp); // lq gp, 96(sp) + c->lq(s5, 80, sp); // lq s5, 80(sp) + c->lq(s4, 64, sp); // lq s4, 64(sp) + c->lq(s3, 48, sp); // lq s3, 48(sp) + c->lq(s2, 32, sp); // lq s2, 32(sp) + c->lq(s1, 16, sp); // lq s1, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 112); // daddiu sp, sp, 112 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 10 collide-shape-prim-group)", execute, 512); +} + +} // namespace method_10_collide_shape_prim_group +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_10_collide_shape_prim_sphere { +struct Cache { + void* format; // format +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + // nop // sll r0, r0, 0 + c->lw(t0, 108, a1); // lw t0, 108(a1) + c->lwu(a3, 8, a1); // lwu a3, 8(a1) + c->lwu(t1, 12, a1); // lwu t1, 12(a1) + c->lq(v1, 12, a0); // lq v1, 12(a0) + c->dsll(t2, a3, 1); // dsll t2, a3, 1 + c->lq(a2, 28, a0); // lq a2, 28(a0) + bc = c->sgpr64(a3) == c->sgpr64(t1); // beq a3, t1, L85 + c->daddu(t1, t2, a3); // daddu t1, t2, a3 + if (bc) {goto block_2;} // branch non-likely + + c->dsll(t1, t1, 4); // dsll t1, t1, 4 + c->daddu(t0, t0, t1); // daddu t0, t0, t1 + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + c->sq(r0, 32, t0); // sq r0, 32(t0) + // nop // sll r0, r0, 0 + c->sw(a0, 36, t0); // sw a0, 36(t0) + // nop // sll r0, r0, 0 + c->sq(v1, 0, t0); // sq v1, 0(t0) + // nop // sll r0, r0, 0 + c->sq(a2, 16, t0); // sq a2, 16(t0) + // nop // sll r0, r0, 0 + c->sw(a3, 8, a1); // sw a3, 8(a1) + // nop // sll r0, r0, 0 + c->sw(a1, 32, t0); // sw a1, 32(t0) + c->mov64(v0, s7); // or v0, s7, r0 + //beq r0, r0, L86 // beq r0, r0, L86 + // nop // sll r0, r0, 0 + goto block_3; // branch always + + +block_2: + c->load_symbol2(t9, cache.format); // lw t9, format(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + // daddiu a1, fp, L222 // daddiu a1, fp, L222 + // call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + // c->jalr(call_addr); // jalr ra, t9 + printf("ERROR: Exceeded max number of collide-cache prims!\n"); + +block_3: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.format = intern_from_c(-1, 0, "format").c(); + gLinkedFunctionTable.reg("(method 10 collide-shape-prim-sphere)", execute, 256); +} + +} // namespace method_10_collide_shape_prim_sphere +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_10_collide_shape_prim_mesh { +struct Cache { + void* cheat_mode; // *cheat-mode* + void* display_capture_mode; // *display-capture-mode* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* debug; // debug + void* format; // format + void* print_exceeded_max_cache_tris; // print-exceeded-max-cache-tris +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + c->sq(s2, 16, sp); // sq s2, 16(sp) + c->sq(s3, 32, sp); // sq s3, 32(sp) + c->sq(s4, 48, sp); // sq s4, 48(sp) + c->sq(s5, 64, sp); // sq s5, 64(sp) + c->sq(gp, 80, sp); // sq gp, 80(sp) + c->mov64(s5, a0); // or s5, a0, r0 + c->mov64(gp, a1); // or gp, a1, r0 + // nop // sll r0, r0, 0 + c->lwu(s3, 60, s5); // lwu s3, 60(s5) + c->lw(v1, 108, gp); // lw v1, 108(gp) + c->lwu(a0, 8, gp); // lwu a0, 8(gp) + bc = c->sgpr64(s3) == c->sgpr64(s7); // beq s3, s7, L93 + // nop // sll r0, r0, 0 + if (bc) {goto block_18;} // branch non-likely + + c->lwu(a1, 12, gp); // lwu a1, 12(gp) + c->dsll(a2, a0, 1); // dsll a2, a0, 1 + bc = c->sgpr64(a0) == c->sgpr64(a1); // beq a0, a1, L90 + c->daddu(a0, a2, a0); // daddu a0, a2, a0 + if (bc) {goto block_11;} // branch non-likely + + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->daddu(s4, v1, a0); // daddu s4, v1, a0 + c->mov64(a0, s3); // or a0, s3, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 68, v1); // lwu t9, 68(v1) + c->lwu(v1, 0, s5); // lwu v1, 0(s5) + c->lwu(v1, 136, v1); // lwu v1, 136(v1) + c->lwu(v1, 188, v1); // lwu v1, 188(v1) + c->lb(a1, 8, s5); // lb a1, 8(s5) + c->dsll(a1, a1, 5); // dsll a1, a1, 5 + c->daddu(v1, v1, a1); // daddu v1, v1, a1 + c->lwu(v1, 28, v1); // lwu v1, 28(v1) + c->daddu(a1, r0, v1); // daddu a1, r0, v1 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lwu(a1, 8, gp); // lwu a1, 8(gp) + c->lwu(a2, 4, gp); // lwu a2, 4(gp) + c->lwu(v1, 0, gp); // lwu v1, 0(gp) + c->dsll32(a0, a1, 0); // dsll32 a0, a1, 0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf1, a0); // qmtc2.i vf1, a0 + // nop // sll r0, r0, 0 + c->dsubu(a0, a2, v1); // dsubu a0, a2, v1 + c->dsll(t2, v1, 6); // dsll t2, v1, 6 + bc = ((s64)c->sgpr64(a0)) < 0; // bltz a0, L91 + c->daddiu(a3, s3, 28); // daddiu a3, s3, 28 + if (bc) {goto block_12;} // branch non-likely + + c->mov64(a0, v1); // or a0, v1, r0 + c->lwu(t0, 4, s3); // lwu t0, 4(s3) + c->lw(t3, 124, gp); // lw t3, 124(gp) + c->lq(t1, 60, gp); // lq t1, 60(gp) + c->daddu(t2, t3, t2); // daddu t2, t3, t2 + c->lq(t3, 76, gp); // lq t3, 76(gp) + get_fake_spad_addr2(t4, cache.fake_scratchpad_data, 0, c);// lui t4, 28672 + c->lwu(t5, 16, gp); // lwu t5, 16(gp) + c->vsub(DEST::zw, vf1, vf0, vf0); // vsub.zw vf1, vf0, vf0 + // nop // sll r0, r0, 0 + +block_4: + bc = c->sgpr64(t0) == 0; // beq t0, r0, L89 + c->lbu(t6, 0, a3); // lbu t6, 0(a3) + if (bc) {goto block_9;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->lbu(t7, 1, a3); // lbu t7, 1(a3) + c->dsll(t9, t6, 5); // dsll t9, t6, 5 + c->lbu(t6, 2, a3); // lbu t6, 2(a3) + c->dsll(t8, t7, 5); // dsll t8, t7, 5 + c->daddu(t7, t9, t4); // daddu t7, t9, t4 + c->dsll(t6, t6, 5); // dsll t6, t6, 5 + // nop // sll r0, r0, 0 + c->daddu(t8, t8, t4); // daddu t8, t8, t4 + c->lq(ra, 16, t7); // lq ra, 16(t7) + c->daddu(t6, t6, t4); // daddu t6, t6, t4 + c->lq(s2, 16, t8); // lq s2, 16(t8) + c->pminw(s3, ra, s2); // pminw s3, ra, s2 + c->lq(t9, 16, t6); // lq t9, 16(t6) + c->pmaxw(ra, ra, s2); // pmaxw ra, ra, s2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(s3, s3, t9); // pminw s3, s3, t9 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(t9, ra, t9); // pmaxw t9, ra, t9 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(ra, s3, t3); // pcgtw ra, s3, t3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(s3, t1, t9); // pcgtw s3, t1, t9 + c->lwu(t9, 4, a3); // lwu t9, 4(a3) + c->por(ra, ra, s3); // por ra, ra, s3 + c->lq(t7, 0, t7); // lq t7, 0(t7) + c->ppach(ra, r0, ra); // ppach ra, r0, ra + c->lq(t8, 0, t8); // lq t8, 0(t8) + c->dsll(ra, ra, 16); // dsll ra, ra, 16 + c->lq(t6, 0, t6); // lq t6, 0(t6) + bc = c->sgpr64(ra) != 0; // bne ra, r0, L88 + c->daddiu(a3, a3, 8); // daddiu a3, a3, 8 + if (bc) {goto block_4;} // branch non-likely + + bc = c->sgpr64(v1) == c->sgpr64(a2); // beq v1, a2, L91 + c->sqc2(vf1, 48, t2); // sqc2 vf1, 48(t2) + if (bc) {goto block_12;} // branch non-likely + + c->and_(ra, t9, t5); // and ra, t9, t5 + c->sw(t9, 48, t2); // sw t9, 48(t2) + c->sw(s5, 52, t2); // sw s5, 52(t2) + c->sh(a1, 56, t2); // sh a1, 56(t2) + bc = c->sgpr64(ra) != 0; // bne ra, r0, L88 + c->sq(t7, 0, t2); // sq t7, 0(t2) + if (bc) {goto block_4;} // branch non-likely + + // nop // sll r0, r0, 0 + c->sq(t8, 16, t2); // sq t8, 16(t2) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + c->sq(t6, 32, t2); // sq t6, 32(t2) + //beq r0, r0, L88 // beq r0, r0, L88 + c->daddiu(t2, t2, 64); // daddiu t2, t2, 64 + goto block_4; // branch always + + +block_9: + c->dsubu(a3, v1, a0); // dsubu a3, v1, a0 + c->lwu(t0, 8, gp); // lwu t0, 8(gp) + bc = c->sgpr64(a3) == 0; // beq a3, r0, L93 + c->lq(a1, 12, s5); // lq a1, 12(s5) + if (bc) {goto block_18;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(a2, 28, s5); // lq a2, 28(s5) + // nop // sll r0, r0, 0 + c->sq(r0, 32, s4); // sq r0, 32(s4) + // nop // sll r0, r0, 0 + c->sh(a3, 42, s4); // sh a3, 42(s4) + // nop // sll r0, r0, 0 + c->sw(gp, 32, s4); // sw gp, 32(s4) + // nop // sll r0, r0, 0 + c->sw(s5, 36, s4); // sw s5, 36(s4) + // nop // sll r0, r0, 0 + c->sh(a0, 40, s4); // sh a0, 40(s4) + c->daddiu(a0, t0, 1); // daddiu a0, t0, 1 + c->sq(a1, 0, s4); // sq a1, 0(s4) + // nop // sll r0, r0, 0 + c->sq(a2, 16, s4); // sq a2, 16(s4) + // nop // sll r0, r0, 0 + c->sw(a0, 8, gp); // sw a0, 8(gp) + //beq r0, r0, L93 // beq r0, r0, L93 + c->sw(v1, 0, gp); // sw v1, 0(gp) + goto block_18; // branch always + + +block_11: + c->load_symbol2(t9, cache.format); // lw t9, format(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + // daddiu a1, fp, L222 // daddiu a1, fp, L222 + // call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + // c->jalr(call_addr); // jalr ra, t9 + printf("ERROR: Exceeded max number of collide-cache prims!\n"); + //beq r0, r0, L93 // beq r0, r0, L93 + // nop // sll r0, r0, 0 + goto block_18; // branch always + + +block_12: + c->load_symbol2(v1, cache.cheat_mode); // lw v1, *cheat-mode*(s7) + c->load_symbol_addr(a0, cache.debug); // daddiu a0, s7, debug + c->dsubu(v1, v1, a0); // dsubu v1, v1, a0 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movn(a0, s7, v1); // movn a0, s7, v1 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a0))) {// beql s7, a0, L92 + c->mov64(v1, a0); // or v1, a0, r0 + goto block_16; + } + +block_14: + c->load_symbol2(v1, cache.display_capture_mode); // lw v1, *display-capture-mode*(s7) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L92 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_16;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_16: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L93 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_18;} // branch non-likely + + c->load_symbol2(t9, cache.print_exceeded_max_cache_tris);// lw t9, print-exceeded-max-cache-tris(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_18: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + c->lq(gp, 80, sp); // lq gp, 80(sp) + c->lq(s5, 64, sp); // lq s5, 64(sp) + c->lq(s4, 48, sp); // lq s4, 48(sp) + c->lq(s3, 32, sp); // lq s3, 32(sp) + c->lq(s2, 16, sp); // lq s2, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.cheat_mode = intern_from_c(-1, 0, "*cheat-mode*").c(); + cache.display_capture_mode = intern_from_c(-1, 0, "*display-capture-mode*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.debug = intern_from_c(-1, 0, "debug").c(); + cache.format = intern_from_c(-1, 0, "format").c(); + cache.print_exceeded_max_cache_tris = intern_from_c(-1, 0, "print-exceeded-max-cache-tris").c(); + gLinkedFunctionTable.reg("(method 10 collide-shape-prim-mesh)", execute, 256); +} + +} // namespace method_10_collide_shape_prim_mesh +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/collide_func.cpp b/game/mips2c/jakx_functions/collide_func.cpp new file mode 100644 index 0000000000..c46624f5cb --- /dev/null +++ b/game/mips2c/jakx_functions/collide_func.cpp @@ -0,0 +1,499 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace moving_sphere_triangle_intersect { +struct Cache { + void* collide_do_primitives; // collide-do-primitives +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->lqc2(vf14, 0, a0); // lqc2 vf14, 0(a0) + c->lqc2(vf15, 0, a1); // lqc2 vf15, 0(a1) + c->lqc2(vf11, 0, a3); // lqc2 vf11, 0(a3) + c->lqc2(vf12, 16, a3); // lqc2 vf12, 16(a3) + c->lqc2(vf13, 32, a3); // lqc2 vf13, 32(a3) + c->mov128_vf_gpr(vf1, a2); // qmtc2.i vf1, a2 + c->vadd(DEST::xyzw, vf6, vf14, vf15); // vadd.xyzw vf6, vf14, vf15 + c->vsub(DEST::xyzw, vf11, vf11, vf12); // vsub.xyzw vf11, vf11, vf12 + c->vsub(DEST::xyzw, vf13, vf13, vf12); // vsub.xyzw vf13, vf13, vf12 + c->vsub(DEST::xyzw, vf14, vf14, vf12); // vsub.xyzw vf14, vf14, vf12 + c->vsub(DEST::xyzw, vf6, vf6, vf12); // vsub.xyzw vf6, vf6, vf12 + c->vmini(DEST::xyzw, vf2, vf11, vf0); // vmini.xyzw vf2, vf11, vf0 + c->vopmula(vf13, vf11); // vopmula.xyz acc, vf13, vf11 + c->vopmsub(vf16, vf11, vf13); // vopmsub.xyz vf16, vf11, vf13 + c->vmax(DEST::xyzw, vf3, vf11, vf0); // vmax.xyzw vf3, vf11, vf0 + c->vmini(DEST::xyzw, vf4, vf14, vf6); // vmini.xyzw vf4, vf14, vf6 + c->vmax(DEST::xyzw, vf5, vf14, vf6); // vmax.xyzw vf5, vf14, vf6 + c->vmul(DEST::xyzw, vf7, vf16, vf16); // vmul.xyzw vf7, vf16, vf16 + c->vmini(DEST::xyzw, vf2, vf2, vf13); // vmini.xyzw vf2, vf2, vf13 + c->vmax(DEST::xyzw, vf3, vf3, vf13); // vmax.xyzw vf3, vf3, vf13 + c->vsub_bc(DEST::xyzw, BC::x, vf4, vf4, vf1); // vsubx.xyzw vf4, vf4, vf1 + c->vadd_bc(DEST::x, BC::y, vf7, vf7, vf7); // vaddy.x vf7, vf7, vf7 + c->vadd_bc(DEST::xyzw, BC::x, vf5, vf5, vf1); // vaddx.xyzw vf5, vf5, vf1 + // nop // sll r0, r0, 0 + c->vsub(DEST::xyzw, vf3, vf3, vf4); // vsub.xyzw vf3, vf3, vf4 + c->vadd_bc(DEST::x, BC::z, vf7, vf7, vf7); // vaddz.x vf7, vf7, vf7 + c->vsub(DEST::xyzw, vf5, vf5, vf2); // vsub.xyzw vf5, vf5, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t2, vf3); // qmfc2.i t2, vf3 + c->mov128_gpr_vf(v1, vf5); // qmfc2.i v1, vf5 + c->vrsqrt(vf0, BC::w, vf7, BC::x); // vrsqrt Q, vf0.w, vf7.x + c->or_(v1, t2, v1); // or v1, t2, v1 + c->pcgtw(v1, r0, v1); // pcgtw v1, r0, v1 + c->ppach(v1, r0, v1); // ppach v1, r0, v1 + c->dsll(v1, v1, 16); // dsll v1, v1, 16 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L14 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + c->vmul(DEST::xyzw, vf2, vf16, vf15); // vmul.xyzw vf2, vf16, vf15 + c->vmul(DEST::xyzw, vf3, vf16, vf14); // vmul.xyzw vf3, vf16, vf14 + c->vadd_bc(DEST::x, BC::y, vf2, vf2, vf2); // vaddy.x vf2, vf2, vf2 + c->vsub_bc(DEST::y, BC::y, vf3, vf0, vf3); // vsuby.y vf3, vf0, vf3 + c->vadd_bc(DEST::x, BC::z, vf2, vf2, vf2); // vaddz.x vf2, vf2, vf2 + c->vsub_bc(DEST::y, BC::x, vf3, vf3, vf3); // vsubx.y vf3, vf3, vf3 + c->vsub_bc(DEST::y, BC::z, vf3, vf3, vf3); // vsubz.y vf3, vf3, vf3 + c->vadd_bc(DEST::x, BC::x, vf3, vf0, vf0); // vaddx.x vf3, vf0, vf0 + c->vadd_bc(DEST::x, BC::x, vf4, vf0, vf0); // vaddx.x vf4, vf0, vf0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf16, vf16); // vmulq.xyzw vf16, vf16, Q + c->vmove(DEST::w, vf16, vf0); // vmove.w vf16, vf0 + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->vmulq(DEST::xyzw, vf4, vf3); // vmulq.xyzw vf4, vf3, Q + c->vmulq(DEST::xyzw, vf3, vf3); // vmulq.xyzw vf3, vf3, Q + c->sqc2(vf16, 0, t1); // sqc2 vf16, 0(t1) + // nop // vnop + // nop // vnop + c->vdiv(vf0, BC::w, vf2, BC::x); // vdiv Q, vf0.w, vf2.x + c->vadd_bc(DEST::y, BC::x, vf3, vf3, vf1); // vaddx.y vf3, vf3, vf1 + c->vsub_bc(DEST::y, BC::x, vf4, vf4, vf1); // vsubx.y vf4, vf4, vf1 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf3, vf3); // vmulq.xyzw vf3, vf3, Q + c->vmulq(DEST::xyzw, vf4, vf4); // vmulq.xyzw vf4, vf4, Q + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(v1, vf3); // qmfc2.i v1, vf3 + c->mov128_gpr_vf(t1, vf4); // qmfc2.i t1, vf4 + bc = ((s64)c->sgpr64(v1)) < 0; // bltz v1, L12 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + bc = ((s64)c->sgpr64(t1)) < 0; // bltz t1, L13 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + c->dsubu(v1, v1, t1); // dsubu v1, v1, t1 + bc = ((s64)c->sgpr64(v1)) < 0; // bltz v1, L9 + // nop // sll r0, r0, 0 + if (bc) {goto block_6;} // branch non-likely + + c->vsub_bc(DEST::xyzw, BC::w, vf2, vf4, vf0); // vsubw.xyzw vf2, vf4, vf0 + c->mov128_gpr_vf(v1, vf2); // qmfc2.i v1, vf2 + bc = ((s64)c->sgpr64(v1)) >= 0; // bgez v1, L14 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + c->mov128_gpr_vf(v0, vf4); // qmfc2.i v0, vf4 + c->vmula_bc(DEST::xyzw, BC::w, vf14, vf0); // vmulaw.xyzw acc, vf14, vf0 + c->vmadd_bc(DEST::xyzw, BC::y, vf8, vf15, vf4); // vmaddy.xyzw vf8, vf15, vf4 + //beq r0, r0, L10 // beq r0, r0, L10 + // nop // sll r0, r0, 0 + goto block_8; // branch always + + +block_6: + c->vsub_bc(DEST::xyzw, BC::w, vf2, vf3, vf0); // vsubw.xyzw vf2, vf3, vf0 + c->mov128_gpr_vf(v1, vf2); // qmfc2.i v1, vf2 + bc = ((s64)c->sgpr64(v1)) >= 0; // bgez v1, L14 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + c->vmula_bc(DEST::xyzw, BC::w, vf14, vf0); // vmulaw.xyzw acc, vf14, vf0 + c->vmadd_bc(DEST::xyzw, BC::y, vf8, vf15, vf3); // vmaddy.xyzw vf8, vf15, vf3 + c->mov128_gpr_vf(v0, vf3); // qmfc2.i v0, vf3 + +block_8: + c->dsra32(v0, v0, 0); // dsra32 v0, v0, 0 + c->vsub(DEST::xyzw, vf9, vf8, vf13); // vsub.xyzw vf9, vf8, vf13 + c->vsub(DEST::xyzw, vf10, vf8, vf11); // vsub.xyzw vf10, vf8, vf11 + c->vopmula(vf13, vf8); // vopmula.xyz acc, vf13, vf8 + c->vopmsub(vf5, vf8, vf13); // vopmsub.xyz vf5, vf8, vf13 + c->vopmula(vf8, vf11); // vopmula.xyz acc, vf8, vf11 + c->vopmsub(vf6, vf11, vf8); // vopmsub.xyz vf6, vf11, vf8 + c->vopmula(vf9, vf10); // vopmula.xyz acc, vf9, vf10 + c->vopmsub(vf7, vf10, vf9); // vopmsub.xyz vf7, vf10, vf9 + c->vmul(DEST::xyzw, vf5, vf5, vf16); // vmul.xyzw vf5, vf5, vf16 + c->vmul(DEST::xyzw, vf6, vf6, vf16); // vmul.xyzw vf6, vf6, vf16 + c->vmul(DEST::xyzw, vf7, vf7, vf16); // vmul.xyzw vf7, vf7, vf16 + c->vadd_bc(DEST::y, BC::x, vf5, vf5, vf5); // vaddx.y vf5, vf5, vf5 + c->vadd_bc(DEST::y, BC::x, vf6, vf6, vf6); // vaddx.y vf6, vf6, vf6 + c->vadd_bc(DEST::y, BC::x, vf7, vf7, vf7); // vaddx.y vf7, vf7, vf7 + c->vadd_bc(DEST::y, BC::z, vf5, vf5, vf5); // vaddz.y vf5, vf5, vf5 + c->vadd_bc(DEST::y, BC::z, vf6, vf6, vf6); // vaddz.y vf6, vf6, vf6 + c->vadd_bc(DEST::y, BC::z, vf7, vf7, vf7); // vaddz.y vf7, vf7, vf7 + c->mov128_gpr_vf(t1, vf5); // qmfc2.i t1, vf5 + c->mov128_gpr_vf(t2, vf6); // qmfc2.i t2, vf6 + c->mov128_gpr_vf(v1, vf7); // qmfc2.i v1, vf7 + c->or_(t1, t1, t2); // or t1, t1, t2 + c->or_(v1, t1, v1); // or v1, t1, v1 + bc = ((s64)c->sgpr64(v1)) < 0; // bltz v1, L11 + // nop // sll r0, r0, 0 + if (bc) {goto block_10;} // branch non-likely + + c->vopmula(vf8, vf16); // vopmula.xyz acc, vf8, vf16 + c->vopmsub(vf5, vf16, vf8); // vopmsub.xyz vf5, vf16, vf8 + c->vopmula(vf16, vf5); // vopmula.xyz acc, vf16, vf5 + c->vopmsub(vf5, vf5, vf16); // vopmsub.xyz vf5, vf5, vf16 + c->vadd(DEST::xyzw, vf5, vf5, vf12); // vadd.xyzw vf5, vf5, vf12 + c->sqc2(vf5, 0, t0); // sqc2 vf5, 0(t0) + //beq r0, r0, L15 // beq r0, r0, L15 + // nop // sll r0, r0, 0 + goto block_15; // branch always + + +block_10: + c->load_symbol2(t9, cache.collide_do_primitives); // lw t9, collide-do-primitives(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + //beq r0, r0, L15 // beq r0, r0, L15 + // nop // sll r0, r0, 0 + goto block_15; // branch always + + +block_11: + bc = ((s64)c->sgpr64(t1)) < 0; // bltz t1, L14 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + +block_12: + c->vsub(DEST::xyzw, vf9, vf14, vf13); // vsub.xyzw vf9, vf14, vf13 + c->vsub(DEST::xyzw, vf10, vf14, vf11); // vsub.xyzw vf10, vf14, vf11 + c->vopmula(vf13, vf14); // vopmula.xyz acc, vf13, vf14 + c->vopmsub(vf5, vf14, vf13); // vopmsub.xyz vf5, vf14, vf13 + c->vopmula(vf14, vf11); // vopmula.xyz acc, vf14, vf11 + c->vopmsub(vf6, vf11, vf14); // vopmsub.xyz vf6, vf11, vf14 + c->vopmula(vf9, vf10); // vopmula.xyz acc, vf9, vf10 + c->vopmsub(vf7, vf10, vf9); // vopmsub.xyz vf7, vf10, vf9 + c->vmul(DEST::xyzw, vf5, vf5, vf16); // vmul.xyzw vf5, vf5, vf16 + c->vmul(DEST::xyzw, vf6, vf6, vf16); // vmul.xyzw vf6, vf6, vf16 + c->vmul(DEST::xyzw, vf7, vf7, vf16); // vmul.xyzw vf7, vf7, vf16 + c->vadd_bc(DEST::y, BC::x, vf5, vf5, vf5); // vaddx.y vf5, vf5, vf5 + c->vadd_bc(DEST::y, BC::x, vf6, vf6, vf6); // vaddx.y vf6, vf6, vf6 + c->vadd_bc(DEST::y, BC::x, vf7, vf7, vf7); // vaddx.y vf7, vf7, vf7 + c->vadd_bc(DEST::y, BC::z, vf5, vf5, vf5); // vaddz.y vf5, vf5, vf5 + c->vadd_bc(DEST::y, BC::z, vf6, vf6, vf6); // vaddz.y vf6, vf6, vf6 + c->vadd_bc(DEST::y, BC::z, vf7, vf7, vf7); // vaddz.y vf7, vf7, vf7 + c->mov128_gpr_vf(t1, vf5); // qmfc2.i t1, vf5 + c->mov128_gpr_vf(t2, vf6); // qmfc2.i t2, vf6 + c->mov128_gpr_vf(v1, vf7); // qmfc2.i v1, vf7 + c->or_(t1, t1, t2); // or t1, t1, t2 + c->or_(v1, t1, v1); // or v1, t1, v1 + bc = ((s64)c->sgpr64(v1)) < 0; // bltz v1, L11 + // nop // sll r0, r0, 0 + if (bc) {goto block_10;} // branch non-likely + + c->vopmula(vf14, vf16); // vopmula.xyz acc, vf14, vf16 + c->vopmsub(vf5, vf16, vf14); // vopmsub.xyz vf5, vf16, vf14 + c->vopmula(vf16, vf5); // vopmula.xyz acc, vf16, vf5 + c->vopmsub(vf5, vf5, vf16); // vopmsub.xyz vf5, vf5, vf16 + c->vadd(DEST::xyzw, vf5, vf5, vf12); // vadd.xyzw vf5, vf5, vf12 + c->sqc2(vf5, 0, t0); // sqc2 vf5, 0(t0) + //beq r0, r0, L15 // beq r0, r0, L15 + c->addiu(v0, r0, 0); // addiu v0, r0, 0 + goto block_15; // branch always + + +block_14: + c->lui(v0, -13122); // lui v0, -13122 + c->ori(v0, v0, 48160); // ori v0, v0, 48160 + +block_15: + c->ld(ra, 0, sp); // ld ra, 0(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.collide_do_primitives = intern_from_c(-1, 0, "collide-do-primitives").c(); + gLinkedFunctionTable.reg("moving-sphere-triangle-intersect", execute, 256); +} + +} // namespace moving_sphere_triangle_intersect +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace collide_do_primitives { +struct Cache { + void* ray_cylinder_intersect; // ray-cylinder-intersect + void* ray_sphere_intersect; // ray-sphere-intersect +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -144); // daddiu sp, sp, -144 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + c->swc1(f28, 128, sp); // swc1 f28, 128(sp) + c->swc1(f30, 132, sp); // swc1 f30, 132(sp) + c->mov64(s4, a0); // or s4, a0, r0 + c->mov64(s3, a1); // or s3, a1, r0 + c->mov64(s1, a2); // or s1, a2, r0 + c->mov64(s5, a3); // or s5, a3, r0 + c->mov64(gp, t0); // or gp, t0, r0 + c->daddiu(s2, sp, 16); // daddiu s2, sp, 16 + c->lui(v1, 16384); // lui v1, 16384 + c->mtc1(f31, v1); // mtc1 f31, v1 + c->mtc1(f28, r0); // mtc1 f28, r0 + c->load_symbol2(t9, cache.ray_sphere_intersect); // lw t9, ray-sphere-intersect(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s3); // or a1, s3, r0 + c->daddu(a2, r0, s5); // daddu a2, r0, s5 + c->mov64(a3, s1); // or a3, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f30, v0); // mtc1 f30, v0 + cop1_bc = c->fprs[f30] < c->fprs[f28]; // c.lt.s f30, f28 + bc = cop1_bc; // bc1t L17 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mtc1(f31, v0); // mtc1 f31, v0 + c->lqc2(vf31, 0, s5); // lqc2 vf31, 0(s5) + +block_2: + c->load_symbol2(t9, cache.ray_sphere_intersect); // lw t9, ray-sphere-intersect(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s3); // or a1, s3, r0 + c->daddiu(a2, s5, 16); // daddiu a2, s5, 16 + c->mov64(a3, s1); // or a3, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f30, v0); // mtc1 f30, v0 + cop1_bc = c->fprs[f30] < c->fprs[f28]; // c.lt.s f30, f28 + bc = cop1_bc; // bc1t L18 + cop1_bc = c->fprs[f30] < c->fprs[f31]; // c.lt.s f30, f31 + if (bc) {goto block_5;} // branch non-likely + + bc = !cop1_bc; // bc1f L18 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->mtc1(f31, v0); // mtc1 f31, v0 + c->lqc2(vf31, 16, s5); // lqc2 vf31, 16(s5) + +block_5: + c->load_symbol2(t9, cache.ray_sphere_intersect); // lw t9, ray-sphere-intersect(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s3); // or a1, s3, r0 + c->daddiu(a2, s5, 32); // daddiu a2, s5, 32 + c->mov64(a3, s1); // or a3, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f30, v0); // mtc1 f30, v0 + cop1_bc = c->fprs[f30] < c->fprs[f28]; // c.lt.s f30, f28 + bc = cop1_bc; // bc1t L19 + cop1_bc = c->fprs[f30] < c->fprs[f31]; // c.lt.s f30, f31 + if (bc) {goto block_8;} // branch non-likely + + bc = !cop1_bc; // bc1f L19 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + c->mtc1(f31, v0); // mtc1 f31, v0 + c->lqc2(vf31, 32, s5); // lqc2 vf31, 32(s5) + +block_8: + c->lqc2(vf1, 0, s5); // lqc2 vf1, 0(s5) + c->lqc2(vf2, 16, s5); // lqc2 vf2, 16(s5) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->vmul(DEST::xyzw, vf3, vf2, vf2); // vmul.xyzw vf3, vf2, vf2 + c->vadd_bc(DEST::x, BC::y, vf3, vf3, vf3); // vaddy.x vf3, vf3, vf3 + c->vadd_bc(DEST::x, BC::z, vf3, vf3, vf3); // vaddz.x vf3, vf3, vf3 + c->vrsqrt(vf0, BC::w, vf3, BC::x); // vrsqrt Q, vf0.w, vf3.x + c->mov128_gpr_vf(v1, vf3); // qmfc2.i v1, vf3 + c->mtc1(f30, v1); // mtc1 f30, v1 + c->sqrts(f30, f30); // sqrt.s f30, f30 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->sqc2(vf2, 0, s2); // sqc2 vf2, 0(s2) + c->mfc1(t1, f30); // mfc1 t1, f30 + c->load_symbol2(t9, cache.ray_cylinder_intersect);// lw t9, ray-cylinder-intersect(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s3); // or a1, s3, r0 + c->daddu(a2, r0, s5); // daddu a2, r0, s5 + c->mov64(a3, s2); // or a3, s2, r0 + c->mov64(t0, s1); // or t0, s1, r0 + c->mov64(t2, gp); // or t2, gp, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f30, v0); // mtc1 f30, v0 + cop1_bc = c->fprs[f30] < c->fprs[f28]; // c.lt.s f30, f28 + bc = cop1_bc; // bc1t L20 + cop1_bc = c->fprs[f30] < c->fprs[f31]; // c.lt.s f30, f31 + if (bc) {goto block_11;} // branch non-likely + + bc = !cop1_bc; // bc1f L20 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + c->mtc1(f31, v0); // mtc1 f31, v0 + c->lqc2(vf31, 0, gp); // lqc2 vf31, 0(gp) + +block_11: + c->lqc2(vf1, 16, s5); // lqc2 vf1, 16(s5) + c->lqc2(vf2, 32, s5); // lqc2 vf2, 32(s5) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->vmul(DEST::xyzw, vf3, vf2, vf2); // vmul.xyzw vf3, vf2, vf2 + c->vadd_bc(DEST::x, BC::y, vf3, vf3, vf3); // vaddy.x vf3, vf3, vf3 + c->vadd_bc(DEST::x, BC::z, vf3, vf3, vf3); // vaddz.x vf3, vf3, vf3 + c->vrsqrt(vf0, BC::w, vf3, BC::x); // vrsqrt Q, vf0.w, vf3.x + c->mov128_gpr_vf(v1, vf3); // qmfc2.i v1, vf3 + c->mtc1(f30, v1); // mtc1 f30, v1 + c->sqrts(f30, f30); // sqrt.s f30, f30 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->sqc2(vf2, 0, s2); // sqc2 vf2, 0(s2) + c->mfc1(t1, f30); // mfc1 t1, f30 + c->load_symbol2(t9, cache.ray_cylinder_intersect);// lw t9, ray-cylinder-intersect(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s3); // or a1, s3, r0 + c->daddiu(a2, s5, 16); // daddiu a2, s5, 16 + c->mov64(a3, s2); // or a3, s2, r0 + c->mov64(t0, s1); // or t0, s1, r0 + c->mov64(t2, gp); // or t2, gp, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f30, v0); // mtc1 f30, v0 + cop1_bc = c->fprs[f30] < c->fprs[f28]; // c.lt.s f30, f28 + bc = cop1_bc; // bc1t L21 + cop1_bc = c->fprs[f30] < c->fprs[f31]; // c.lt.s f30, f31 + if (bc) {goto block_14;} // branch non-likely + + bc = !cop1_bc; // bc1f L21 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + c->mtc1(f31, v0); // mtc1 f31, v0 + c->lqc2(vf31, 0, gp); // lqc2 vf31, 0(gp) + +block_14: + c->lqc2(vf1, 32, s5); // lqc2 vf1, 32(s5) + c->lqc2(vf2, 0, s5); // lqc2 vf2, 0(s5) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->vmul(DEST::xyzw, vf3, vf2, vf2); // vmul.xyzw vf3, vf2, vf2 + c->vadd_bc(DEST::x, BC::y, vf3, vf3, vf3); // vaddy.x vf3, vf3, vf3 + c->vadd_bc(DEST::x, BC::z, vf3, vf3, vf3); // vaddz.x vf3, vf3, vf3 + c->vrsqrt(vf0, BC::w, vf3, BC::x); // vrsqrt Q, vf0.w, vf3.x + c->mov128_gpr_vf(v1, vf3); // qmfc2.i v1, vf3 + c->mtc1(f30, v1); // mtc1 f30, v1 + c->sqrts(f30, f30); // sqrt.s f30, f30 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->sqc2(vf2, 0, s2); // sqc2 vf2, 0(s2) + c->mfc1(t1, f30); // mfc1 t1, f30 + c->load_symbol2(t9, cache.ray_cylinder_intersect);// lw t9, ray-cylinder-intersect(s7) + c->daddiu(a2, s5, 32); // daddiu a2, s5, 32 + c->mov64(t2, gp); // or t2, gp, r0 + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s3); // or a1, s3, r0 + c->mov64(a3, s2); // or a3, s2, r0 + c->mov64(t0, s1); // or t0, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f30, v0); // mtc1 f30, v0 + cop1_bc = c->fprs[f30] < c->fprs[f28]; // c.lt.s f30, f28 + bc = cop1_bc; // bc1t L22 + cop1_bc = c->fprs[f30] < c->fprs[f31]; // c.lt.s f30, f31 + if (bc) {goto block_17;} // branch non-likely + + bc = !cop1_bc; // bc1f L22 + // nop // sll r0, r0, 0 + if (bc) {goto block_17;} // branch non-likely + + c->mtc1(f31, v0); // mtc1 f31, v0 + c->lqc2(vf31, 0, gp); // lqc2 vf31, 0(gp) + +block_17: + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lui(v1, -13122); // lui v1, -13122 + c->ori(v1, v1, 48160); // ori v1, v1, 48160 + cop1_bc = c->fprs[f0] < c->fprs[f31]; // c.lt.s f0, f31 + if (cop1_bc) { // bc1tl L23 + c->mtc1(f31, v1); // mtc1 f31, v1 + goto block_19; + } + +block_19: + c->mfc1(v0, f31); // mfc1 v0, f31 + c->sqc2(vf31, 0, gp); // sqc2 vf31, 0(gp) + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lwc1(f30, 132, sp); // lwc1 f30, 132(sp) + c->lwc1(f28, 128, sp); // lwc1 f28, 128(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 144); // daddiu sp, sp, 144 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.ray_cylinder_intersect = intern_from_c(-1, 0, "ray-cylinder-intersect").c(); + cache.ray_sphere_intersect = intern_from_c(-1, 0, "ray-sphere-intersect").c(); + gLinkedFunctionTable.reg("collide-do-primitives", execute, 512); +} + +} // namespace collide_do_primitives +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/collide_hash.cpp b/game/mips2c/jakx_functions/collide_hash.cpp new file mode 100644 index 0000000000..3330717527 --- /dev/null +++ b/game/mips2c/jakx_functions/collide_hash.cpp @@ -0,0 +1,1541 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace fill_bg_using_line_sphere_new { +struct Cache { + void* cheat_mode; // *cheat-mode* + void* collide_stats; // *collide-stats* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* debug; // debug + void* print_exceeded_max_cache_tris; // print-exceeded-max-cache-tris +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + // nop // sll r0, r0, 0 + c->lw(v1, 40, a1); // lw v1, 40(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 44, a1); // lqc2 vf2, 44(a1) + c->lui(a3, 1); // lui a3, 1 + c->lqc2(vf3, 128, a2); // lqc2 vf3, 128(a2) + c->ori(a3, a3, 257); // ori a3, a3, 257 + c->lqc2(vf4, 144, a2); // lqc2 vf4, 144(a2) + c->dsubu(v1, v1, a3); // dsubu v1, v1, a3 + c->lqc2(vf5, 60, a1); // lqc2 vf5, 60(a1) + c->vsub(DEST::xyzw, vf3, vf3, vf2); // vsub.xyzw vf3, vf3, vf2 + c->lq(a3, 160, a2); // lq a3, 160(a2) + c->vsub(DEST::xyzw, vf4, vf4, vf2); // vsub.xyzw vf4, vf4, vf2 + c->lq(t0, 176, a2); // lq t0, 176(a2) + c->pextlb(v1, r0, v1); // pextlb v1, r0, v1 + c->lq(t1, 76, a1); // lq t1, 76(a1) + c->pextlh(v1, r0, v1); // pextlh v1, r0, v1 + c->lq(t2, 92, a1); // lq t2, 92(a1) + c->pcgtw(t0, t1, t0); // pcgtw t0, t1, t0 + c->vmul(DEST::xyzw, vf3, vf3, vf5); // vmul.xyzw vf3, vf3, vf5 + c->pcgtw(a3, a3, t2); // pcgtw a3, a3, t2 + c->vmul(DEST::xyzw, vf4, vf4, vf5); // vmul.xyzw vf4, vf4, vf5 + c->por(a3, t0, a3); // por a3, t0, a3 + c->lqc2(vf10, 256, a2); // lqc2 vf10, 256(a2) + c->ppach(a3, r0, a3); // ppach a3, r0, a3 + c->lqc2(vf11, 272, a2); // lqc2 vf11, 272(a2) + c->dsll(a3, a3, 16); // dsll a3, a3, 16 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L63 + c->vftoi0(DEST::xyzw, vf4, vf4); // vftoi0.xyzw vf4, vf4 + if (bc) {goto block_22;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lqc2(vf8, 208, a2); // lqc2 vf8, 208(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf9, 224, a2); // lqc2 vf9, 224(a2) + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t0, vf3); // qmfc2.i t0, vf3 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf4); // qmfc2.i a3, vf4 + c->pmaxw(t0, t0, r0); // pmaxw t0, t0, r0 + c->lqc2(vf6, 28, a1); // lqc2 vf6, 28(a1) + c->pmaxw(a3, a3, r0); // pmaxw a3, a3, r0 + c->lqc2(vf7, 240, a2); // lqc2 vf7, 240(a2) + c->pminw(t0, t0, v1); // pminw t0, t0, v1 + c->vmax_bc(DEST::xyzw, BC::w, vf1, vf0, vf0); // vmaxw.xyzw vf1, vf0, vf0 + c->pminw(v1, a3, v1); // pminw v1, a3, v1 + c->lqc2(vf23, 448, a2); // lqc2 vf23, 448(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf24, 464, a2); // lqc2 vf24, 464(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf25, 480, a2); // lqc2 vf25, 480(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf26, 496, a2); // lqc2 vf26, 496(a2) + // nop // sll r0, r0, 0 + c->sq(t0, 400, a2); // sq t0, 400(a2) + // nop // sll r0, r0, 0 + c->sq(v1, 416, a2); // sq v1, 416(a2) + c->vsub(DEST::xyzw, vf8, vf8, vf2); // vsub.xyzw vf8, vf8, vf2 + // nop // sll r0, r0, 0 + c->addiu(t8, r0, 4); // addiu t8, r0, 4 + c->lbu(v1, 40, a1); // lbu v1, 40(a1) + c->multu3(t9, v1, t8); // multu3 t9, v1, t8 + c->lbu(v1, 42, a1); // lbu v1, 42(a1) + c->multu3(t6, v1, t9); // multu3 t6, v1, t9 + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->lw(a3, 400, a2); // lw a3, 400(a2) + c->dsubu(v1, v1, a3); // dsubu v1, v1, a3 + c->lw(a3, 416, a2); // lw a3, 416(a2) + c->daddu(v1, v1, a3); // daddu v1, v1, a3 + c->addiu(a3, r0, 1); // addiu a3, r0, 1 + c->lw(t0, 404, a2); // lw t0, 404(a2) + c->dsubu(a3, a3, t0); // dsubu a3, a3, t0 + c->lw(t0, 420, a2); // lw t0, 420(a2) + c->daddu(a3, a3, t0); // daddu a3, a3, t0 + c->addiu(t0, r0, 1); // addiu t0, r0, 1 + c->lw(t1, 408, a2); // lw t1, 408(a2) + c->dsubu(t0, t0, t1); // dsubu t0, t0, t1 + c->lw(t1, 424, a2); // lw t1, 424(a2) + c->daddu(t0, t0, t1); // daddu t0, t0, t1 + c->lwu(t1, 8, a1); // lwu t1, 8(a1) + c->lw(t2, 400, a2); // lw t2, 400(a2) + c->mult3(t2, t2, t8); // mult3 t2, t2, t8 + c->lw(t3, 404, a2); // lw t3, 404(a2) + c->mult3(t3, t3, t6); // mult3 t3, t3, t6 + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->lw(t3, 408, a2); // lw t3, 408(a2) + c->mult3(t3, t3, t9); // mult3 t3, t3, t9 + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->daddu(t7, t1, t2); // daddu t7, t1, t2 + c->mov64(t1, a3); // or t1, a3, r0 + // nop // sll r0, r0, 0 + +block_2: + c->mov64(t2, t0); // or t2, t0, r0 + c->mov64(ra, t7); // or ra, t7, r0 + // nop // sll r0, r0, 0 + c->sw(t7, 524, a2); // sw t7, 524(a2) + // nop // sll r0, r0, 0 + c->sw(t6, 528, a2); // sw t6, 528(a2) + +block_3: + c->mov64(t6, v1); // or t6, v1, r0 + c->mov64(t7, ra); // or t7, ra, r0 + // nop // sll r0, r0, 0 + c->sw(ra, 532, a2); // sw ra, 532(a2) + // nop // sll r0, r0, 0 + c->sw(t9, 536, a2); // sw t9, 536(a2) + +block_4: + // nop // sll r0, r0, 0 + c->sw(t8, 520, a2); // sw t8, 520(a2) + c->dsubu(s5, v1, t6); // dsubu s5, v1, t6 + c->lw(s4, 400, a2); // lw s4, 400(a2) + c->dsubu(ra, a3, t1); // dsubu ra, a3, t1 + c->lw(gp, 404, a2); // lw gp, 404(a2) + c->dsubu(t8, t0, t2); // dsubu t8, t0, t2 + c->lw(t9, 408, a2); // lw t9, 408(a2) + c->daddu(s5, s5, s4); // daddu s5, s5, s4 + c->sw(r0, 444, a2); // sw r0, 444(a2) + c->daddu(ra, ra, gp); // daddu ra, ra, gp + c->sw(s5, 432, a2); // sw s5, 432(a2) + c->daddu(t8, t8, t9); // daddu t8, t8, t9 + c->sw(ra, 436, a2); // sw ra, 436(a2) + // nop // sll r0, r0, 0 + c->sw(t8, 440, a2); // sw t8, 440(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 432, a2); // lqc2 vf3, 432(a2) + c->vitof0(DEST::xyzw, vf3, vf3); // vitof0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf3, vf6); // vmula.xyzw acc, vf3, vf6 + // nop // sll r0, r0, 0 + c->vmsub_bc(DEST::xyzw, BC::w, vf3, vf1, vf10); // vmsubw.xyzw vf3, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadda(DEST::xyzw, vf1, vf6); // vmadda.xyzw acc, vf1, vf6 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf4, vf1, vf10); // vmaddw.xyzw vf4, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf7, vf3); // vmula.xyzw acc, vf7, vf3 + // nop // sll r0, r0, 0 + c->vmsuba(DEST::xyzw, vf7, vf8); // vmsuba.xyzw acc, vf7, vf8 + // nop // sll r0, r0, 0 + c->vmsub(DEST::xyzw, vf13, vf1, vf10); // vmsub.xyzw vf13, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadd(DEST::xyzw, vf15, vf1, vf11); // vmadd.xyzw vf15, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf7, vf4); // vmula.xyzw acc, vf7, vf4 + // nop // sll r0, r0, 0 + c->vmsuba(DEST::xyzw, vf7, vf8); // vmsuba.xyzw acc, vf7, vf8 + // nop // sll r0, r0, 0 + c->vmsub(DEST::xyzw, vf14, vf1, vf11); // vmsub.xyzw vf14, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmadd(DEST::xyzw, vf16, vf1, vf10); // vmadd.xyzw vf16, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyzw, vf13, vf13, vf14); // vmax.xyzw vf13, vf13, vf14 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyzw, vf15, vf15, vf16); // vmini.xyzw vf15, vf15, vf16 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::xyzw, BC::y, vf13, vf13, vf13); // vmaxy.xyzw vf13, vf13, vf13 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::xyzw, BC::y, vf15, vf15, vf15); // vminiy.xyzw vf15, vf15, vf15 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::xyzw, BC::z, vf13, vf13, vf13); // vmaxz.xyzw vf13, vf13, vf13 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::xyzw, BC::z, vf15, vf15, vf15); // vminiz.xyzw vf15, vf15, vf15 + // nop // sll r0, r0, 0 + c->vftoi12(DEST::xyzw, vf13, vf13); // vftoi12.xyzw vf13, vf13 + // nop // sll r0, r0, 0 + c->vftoi12(DEST::xyzw, vf15, vf15); // vftoi12.xyzw vf15, vf15 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(ra, vf13); // qmfc2.i ra, vf13 + c->addiu(gp, r0, 4096); // addiu gp, r0, 4096 + c->mov128_gpr_vf(t8, vf15); // qmfc2.i t8, vf15 + c->subu(t9, t8, ra); // subu t9, t8, ra + c->subu(ra, gp, ra); // subu ra, gp, ra + bc = ((s64)c->sgpr64(t9)) < 0; // bltz t9, L62 + // nop // sll r0, r0, 0 + if (bc) {goto block_18;} // branch non-likely + + bc = ((s64)c->sgpr64(ra)) < 0; // bltz ra, L62 + // nop // sll r0, r0, 0 + if (bc) {goto block_18;} // branch non-likely + + bc = ((s64)c->sgpr64(t8)) < 0; // bltz t8, L62 + // nop // sll r0, r0, 0 + if (bc) {goto block_18;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lhu(ra, 0, t7); // lhu ra, 0(t7) + // nop // sll r0, r0, 0 + c->lw(gp, 104, a1); // lw gp, 104(a1) + // nop // sll r0, r0, 0 + c->lhu(t8, 2, t7); // lhu t8, 2(t7) + // nop // sll r0, r0, 0 + c->lw(t9, 72, a1); // lw t9, 72(a1) + bc = c->sgpr64(t8) == 0; // beq t8, r0, L62 + c->daddu(ra, ra, gp); // daddu ra, ra, gp + if (bc) {goto block_18;} // branch non-likely + + +block_8: + get_fake_spad_addr2(gp, cache.fake_scratchpad_data, 0, c);// lui gp, 28672 + c->lbu(s4, 0, ra); // lbu s4, 0(ra) + c->addiu(s3, r0, 1); // addiu s3, r0, 1 + c->andi(s2, s4, 7); // andi s2, s4, 7 + c->sra(s5, s4, 3); // sra s5, s4, 3 + c->sll(s4, s4, 2); // sll s4, s4, 2 + c->daddu(s5, s5, gp); // daddu s5, s5, gp + c->daddu(s4, s4, t9); // daddu s4, s4, t9 + c->sllv(s3, s3, s2); // sllv s3, s3, s2 + c->lb(s2, 0, s5); // lb s2, 0(s5) + // nop // sll r0, r0, 0 + c->lbu(s0, 3, s4); // lbu s0, 3(s4) + c->and_(s1, s2, s3); // and s1, s2, s3 + c->daddiu(t8, t8, -1); // daddiu t8, t8, -1 + bc = c->sgpr64(s1) != 0; // bne s1, r0, L61 + c->lw(s1, 4, a1); // lw s1, 4(a1) + if (bc) {goto block_17;} // branch non-likely + + c->dsll(s0, s0, 2); // dsll s0, s0, 2 + c->or_(s3, s2, s3); // or s3, s2, s3 + c->daddu(s2, s0, s1); // daddu s2, s0, s1 + c->sb(s3, 0, s5); // sb s3, 0(s5) + // nop // sll r0, r0, 0 + c->lwu(s5, 0, s2); // lwu s5, 0(s2) + // nop // sll r0, r0, 0 + c->lwu(s2, 96, a2); // lwu s2, 96(a2) + // nop // sll r0, r0, 0 + c->lw(s3, 88, a1); // lw s3, 88(a1) + c->and_(s2, s2, s5); // and s2, s2, s5 + c->lbu(s1, 0, s4); // lbu s1, 0(s4) + bc = c->sgpr64(s2) != 0; // bne s2, r0, L61 + c->lbu(s2, 1, s4); // lbu s2, 1(s4) + if (bc) {goto block_17;} // branch non-likely + + c->sll(s1, s1, 1); // sll s1, s1, 1 + c->lbu(s4, 2, s4); // lbu s4, 2(s4) + c->sll(s0, s1, 1); // sll s0, s1, 1 + c->sll(s2, s2, 1); // sll s2, s2, 1 + c->daddu(s1, s1, s0); // daddu s1, s1, s0 + c->sll(s0, s2, 1); // sll s0, s2, 1 + c->sll(s4, s4, 1); // sll s4, s4, 1 + c->daddu(s0, s2, s0); // daddu s0, s2, s0 + c->sll(v0, s4, 1); // sll v0, s4, 1 + c->daddu(s2, s1, s3); // daddu s2, s1, s3 + c->daddu(s1, s4, v0); // daddu s1, s4, v0 + c->daddu(s4, s0, s3); // daddu s4, s0, s3 + c->daddu(s3, s1, s3); // daddu s3, s1, s3 + c->ldr(t3, 0, s2); // ldr t3, 0(s2) + // nop // sll r0, r0, 0 + c->ldl(t3, 7, s2); // ldl t3, 7(s2) + // nop // sll r0, r0, 0 + c->ldr(t4, 0, s4); // ldr t4, 0(s4) + c->pextlh(t3, r0, t3); // pextlh t3, r0, t3 + c->ldl(t4, 7, s4); // ldl t4, 7(s4) + c->psllw(t3, t3, 4); // psllw t3, t3, 4 + c->ldr(t5, 0, s3); // ldr t5, 0(s3) + c->pextlh(t4, r0, t4); // pextlh t4, r0, t4 + c->ldl(t5, 7, s3); // ldl t5, 7(s3) + c->psllw(t4, t4, 4); // psllw t4, t4, 4 + c->mov128_vf_gpr(vf17, t3); // qmtc2.i vf17, t3 + c->pextlh(t5, r0, t5); // pextlh t5, r0, t5 + c->mov128_vf_gpr(vf18, t4); // qmtc2.i vf18, t4 + c->psllw(t5, t5, 4); // psllw t5, t5, 4 + c->lw(s4, 2048, gp); // lw s4, 2048(gp) + c->mov128_vf_gpr(vf19, t5); // qmtc2.i vf19, t5 + // nop // sll r0, r0, 0 + c->vitof0(DEST::xyzw, vf17, vf17); // vitof0.xyzw vf17, vf17 + c->daddiu(s4, s4, 1); // daddiu s4, s4, 1 + c->vitof0(DEST::xyzw, vf18, vf18); // vitof0.xyzw vf18, vf18 + c->sw(s4, 2048, gp); // sw s4, 2048(gp) + c->vitof0(DEST::xyzw, vf19, vf19); // vitof0.xyzw vf19, vf19 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyzw, vf3, vf17, vf18); // vmini.xyzw vf3, vf17, vf18 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyzw, vf4, vf17, vf18); // vmax.xyzw vf4, vf17, vf18 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf17, vf17, vf2); // vadd.xyzw vf17, vf17, vf2 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf18, vf18, vf2); // vadd.xyzw vf18, vf18, vf2 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyzw, vf3, vf3, vf19); // vmini.xyzw vf3, vf3, vf19 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyzw, vf4, vf4, vf19); // vmax.xyzw vf4, vf4, vf19 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf19, vf19, vf2); // vadd.xyzw vf19, vf19, vf2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->vsub_bc(DEST::xyzw, BC::w, vf3, vf3, vf10); // vsubw.xyzw vf3, vf3, vf10 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::xyzw, BC::w, vf4, vf4, vf10); // vaddw.xyzw vf4, vf4, vf10 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf7, vf3); // vmula.xyzw acc, vf7, vf3 + // nop // sll r0, r0, 0 + c->vmsuba(DEST::xyzw, vf7, vf8); // vmsuba.xyzw acc, vf7, vf8 + // nop // sll r0, r0, 0 + c->vmsub(DEST::xyzw, vf13, vf1, vf10); // vmsub.xyzw vf13, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadd(DEST::xyzw, vf15, vf1, vf11); // vmadd.xyzw vf15, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf7, vf4); // vmula.xyzw acc, vf7, vf4 + // nop // sll r0, r0, 0 + c->vmsuba(DEST::xyzw, vf7, vf8); // vmsuba.xyzw acc, vf7, vf8 + // nop // sll r0, r0, 0 + c->vmsub(DEST::xyzw, vf14, vf1, vf11); // vmsub.xyzw vf14, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmadd(DEST::xyzw, vf16, vf1, vf10); // vmadd.xyzw vf16, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf23, vf17); // vmulax.xyzw acc, vf23, vf17 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf24, vf17); // vmadday.xyzw acc, vf24, vf17 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyzw, vf13, vf13, vf14); // vmax.xyzw vf13, vf13, vf14 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyzw, vf15, vf15, vf16); // vmini.xyzw vf15, vf15, vf16 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::z, vf25, vf17); // vmaddaz.xyzw acc, vf25, vf17 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf20, vf26, vf0); // vmaddw.xyzw vf20, vf26, vf0 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::xyzw, BC::y, vf13, vf13, vf13); // vmaxy.xyzw vf13, vf13, vf13 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::xyzw, BC::y, vf15, vf15, vf15); // vminiy.xyzw vf15, vf15, vf15 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf23, vf18); // vmulax.xyzw acc, vf23, vf18 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf24, vf18); // vmadday.xyzw acc, vf24, vf18 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::xyzw, BC::z, vf13, vf13, vf13); // vmaxz.xyzw vf13, vf13, vf13 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::xyzw, BC::z, vf15, vf15, vf15); // vminiz.xyzw vf15, vf15, vf15 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::z, vf25, vf18); // vmaddaz.xyzw acc, vf25, vf18 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf21, vf26, vf0); // vmaddw.xyzw vf21, vf26, vf0 + // nop // sll r0, r0, 0 + c->vftoi12(DEST::xyzw, vf13, vf13); // vftoi12.xyzw vf13, vf13 + // nop // sll r0, r0, 0 + c->vftoi12(DEST::xyzw, vf15, vf15); // vftoi12.xyzw vf15, vf15 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf23, vf19); // vmulax.xyzw acc, vf23, vf19 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf24, vf19); // vmadday.xyzw acc, vf24, vf19 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s3, vf13); // qmfc2.i s3, vf13 + c->addiu(s2, r0, 4096); // addiu s2, r0, 4096 + c->mov128_gpr_vf(s4, vf15); // qmfc2.i s4, vf15 + c->subu(gp, s4, s3); // subu gp, s4, s3 + c->subu(s3, s2, s3); // subu s3, s2, s3 + bc = ((s64)c->sgpr64(gp)) < 0; // bltz gp, L61 + c->lwu(gp, 512, a2); // lwu gp, 512(a2) + if (bc) {goto block_17;} // branch non-likely + + bc = ((s64)c->sgpr64(s3)) < 0; // bltz s3, L61 + // nop // sll r0, r0, 0 + if (bc) {goto block_17;} // branch non-likely + + bc = ((s64)c->sgpr64(s4)) < 0; // bltz s4, L61 + // nop // sll r0, r0, 0 + if (bc) {goto block_17;} // branch non-likely + + c->pextlw(s5, gp, s5); // pextlw s5, gp, s5 + c->lw(s3, 0, a0); // lw s3, 0(a0) + c->lwu(s2, 4, a0); // lwu s2, 4(a0) + c->lw(s4, 124, a0); // lw s4, 124(a0) + c->dsubu(s2, s3, s2); // dsubu s2, s3, s2 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(s2)) >= 0; // bgez s2, L64 + c->dsll(s2, s3, 6); // dsll s2, s3, 6 + if (bc) {goto block_23;} // branch non-likely + + c->daddiu(s3, s3, 1); // daddiu s3, s3, 1 + c->daddu(s4, s4, s2); // daddu s4, s4, s2 + bc = c->sgpr64(gp) == c->sgpr64(s7); // beq gp, s7, L60 + c->sw(s3, 0, a0); // sw s3, 0(a0) + if (bc) {goto block_16;} // branch non-likely + + c->vmadda_bc(DEST::xyzw, BC::z, vf25, vf19); // vmaddaz.xyzw acc, vf25, vf19 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf22, vf26, vf0); // vmaddw.xyzw vf22, vf26, vf0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(s5, 48, s4); // sq s5, 48(s4) + // nop // sll r0, r0, 0 + c->sqc2(vf20, 0, s4); // sqc2 vf20, 0(s4) + // nop // sll r0, r0, 0 + c->sqc2(vf21, 16, s4); // sqc2 vf21, 16(s4) + //beq r0, r0, L61 // beq r0, r0, L61 + c->sqc2(vf22, 32, s4); // sqc2 vf22, 32(s4) + goto block_17; // branch always + + +block_16: + // nop // sll r0, r0, 0 + c->sq(s5, 48, s4); // sq s5, 48(s4) + // nop // sll r0, r0, 0 + c->sqc2(vf17, 0, s4); // sqc2 vf17, 0(s4) + // nop // sll r0, r0, 0 + c->sqc2(vf18, 16, s4); // sqc2 vf18, 16(s4) + // nop // sll r0, r0, 0 + c->sqc2(vf19, 32, s4); // sqc2 vf19, 32(s4) + +block_17: + bc = ((s64)c->sgpr64(t8)) > 0; // bgtz t8, L59 + c->daddiu(ra, ra, 1); // daddiu ra, ra, 1 + if (bc) {goto block_8;} // branch non-likely + + +block_18: + // nop // sll r0, r0, 0 + c->lw(t8, 520, a2); // lw t8, 520(a2) + c->daddiu(t6, t6, -1); // daddiu t6, t6, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t6) != 0; // bne t6, r0, L58 + c->daddu(t7, t7, t8); // daddu t7, t7, t8 + if (bc) {goto block_4;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lw(t6, 532, a2); // lw t6, 532(a2) + // nop // sll r0, r0, 0 + c->lw(t9, 536, a2); // lw t9, 536(a2) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L57 + c->daddu(ra, t6, t9); // daddu ra, t6, t9 + if (bc) {goto block_3;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lw(t2, 524, a2); // lw t2, 524(a2) + // nop // sll r0, r0, 0 + c->lw(t6, 528, a2); // lw t6, 528(a2) + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L56 + c->daddu(t7, t2, t6); // daddu t7, t2, t6 + if (bc) {goto block_2;} // branch non-likely + + c->load_symbol2(v1, cache.collide_stats); // lw v1, *collide-stats*(s7) + c->lwu(v1, 12, v1); // lwu v1, 12(v1) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + c->load_symbol2(a0, cache.collide_stats); // lw a0, *collide-stats*(s7) + c->sw(v1, 12, a0); // sw v1, 12(a0) + +block_22: + c->mov64(v0, s7); // or v0, s7, r0 + //beq r0, r0, L66 // beq r0, r0, L66 + // nop // sll r0, r0, 0 + goto block_26; // branch always + + +block_23: + c->load_symbol_addr(v1, cache.debug); // daddiu v1, s7, debug + c->load_symbol2(a0, cache.cheat_mode); // lw a0, *cheat-mode*(s7) + bc = c->sgpr64(a0) != c->sgpr64(v1); // bne a0, v1, L65 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_25;} // branch non-likely + + c->load_symbol2(t9, cache.print_exceeded_max_cache_tris);// lw t9, print-exceeded-max-cache-tris(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_25: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + +block_26: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.cheat_mode = intern_from_c(-1, 0, "*cheat-mode*").c(); + cache.collide_stats = intern_from_c(-1, 0, "*collide-stats*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.debug = intern_from_c(-1, 0, "debug").c(); + cache.print_exceeded_max_cache_tris = intern_from_c(-1, 0, "print-exceeded-max-cache-tris").c(); + gLinkedFunctionTable.reg("fill-bg-using-line-sphere-new", execute, 512); +} + +} // namespace fill_bg_using_line_sphere_new +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace fill_bg_using_box_new { +struct Cache { + void* cheat_mode; // *cheat-mode* + void* collide_stats; // *collide-stats* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* debug; // debug + void* print_exceeded_max_cache_tris; // print-exceeded-max-cache-tris +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + // nop // sll r0, r0, 0 + c->lw(v1, 40, a1); // lw v1, 40(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf1, 44, a1); // lqc2 vf1, 44(a1) + c->lui(a3, 1); // lui a3, 1 + c->lqc2(vf2, 128, a2); // lqc2 vf2, 128(a2) + c->ori(a3, a3, 257); // ori a3, a3, 257 + c->lqc2(vf3, 144, a2); // lqc2 vf3, 144(a2) + c->dsubu(v1, v1, a3); // dsubu v1, v1, a3 + c->lqc2(vf6, 60, a1); // lqc2 vf6, 60(a1) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->lq(a3, 160, a2); // lq a3, 160(a2) + c->vsub(DEST::xyzw, vf3, vf3, vf1); // vsub.xyzw vf3, vf3, vf1 + c->lq(t0, 176, a2); // lq t0, 176(a2) + c->pextlb(v1, r0, v1); // pextlb v1, r0, v1 + c->lq(t1, 76, a1); // lq t1, 76(a1) + c->pextlh(v1, r0, v1); // pextlh v1, r0, v1 + c->lq(t2, 92, a1); // lq t2, 92(a1) + c->pcgtw(t0, t1, t0); // pcgtw t0, t1, t0 + c->vftoi0(DEST::xyzw, vf4, vf2); // vftoi0.xyzw vf4, vf2 + c->pcgtw(a3, a3, t2); // pcgtw a3, a3, t2 + c->vftoi0(DEST::xyzw, vf5, vf3); // vftoi0.xyzw vf5, vf3 + c->por(a3, t0, a3); // por a3, t0, a3 + c->vmul(DEST::xyzw, vf2, vf2, vf6); // vmul.xyzw vf2, vf2, vf6 + c->ppach(a3, r0, a3); // ppach a3, r0, a3 + c->vmul(DEST::xyzw, vf3, vf3, vf6); // vmul.xyzw vf3, vf3, vf6 + c->dsll(t0, a3, 16); // dsll t0, a3, 16 + c->mov128_gpr_vf(a3, vf4); // qmfc2.i a3, vf4 + bc = c->sgpr64(t0) != 0; // bne t0, r0, L75 + c->mov128_gpr_vf(t0, vf5); // qmfc2.i t0, vf5 + if (bc) {goto block_17;} // branch non-likely + + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + c->psraw(a3, a3, 4); // psraw a3, a3, 4 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + c->psraw(t0, t0, 4); // psraw t0, t0, 4 + // nop // sll r0, r0, 0 + c->sq(a3, 368, a2); // sq a3, 368(a2) + // nop // sll r0, r0, 0 + c->sq(t0, 384, a2); // sq t0, 384(a2) + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t0, vf2); // qmfc2.i t0, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf3); // qmfc2.i a3, vf3 + c->pmaxw(t0, t0, r0); // pmaxw t0, t0, r0 + c->lqc2(vf10, 448, a2); // lqc2 vf10, 448(a2) + c->pmaxw(a3, a3, r0); // pmaxw a3, a3, r0 + c->lqc2(vf11, 464, a2); // lqc2 vf11, 464(a2) + c->pminw(t0, t0, v1); // pminw t0, t0, v1 + c->lqc2(vf12, 480, a2); // lqc2 vf12, 480(a2) + c->pminw(v1, a3, v1); // pminw v1, a3, v1 + c->lqc2(vf13, 496, a2); // lqc2 vf13, 496(a2) + // nop // sll r0, r0, 0 + c->sq(t0, 400, a2); // sq t0, 400(a2) + // nop // sll r0, r0, 0 + c->sq(v1, 416, a2); // sq v1, 416(a2) + c->addiu(v1, r0, 4); // addiu v1, r0, 4 + c->lbu(a3, 40, a1); // lbu a3, 40(a1) + c->multu3(t8, a3, v1); // multu3 t8, a3, v1 + c->lbu(a3, 42, a1); // lbu a3, 42(a1) + c->multu3(t6, a3, t8); // multu3 t6, a3, t8 + c->addiu(a3, r0, 1); // addiu a3, r0, 1 + c->lw(t0, 400, a2); // lw t0, 400(a2) + c->dsubu(a3, a3, t0); // dsubu a3, a3, t0 + c->lw(t0, 416, a2); // lw t0, 416(a2) + c->daddu(a3, a3, t0); // daddu a3, a3, t0 + c->addiu(t0, r0, 1); // addiu t0, r0, 1 + c->lw(t1, 404, a2); // lw t1, 404(a2) + c->dsubu(t0, t0, t1); // dsubu t0, t0, t1 + c->lw(t1, 420, a2); // lw t1, 420(a2) + c->daddu(t1, t0, t1); // daddu t1, t0, t1 + c->addiu(t0, r0, 1); // addiu t0, r0, 1 + c->lw(t2, 408, a2); // lw t2, 408(a2) + c->dsubu(t0, t0, t2); // dsubu t0, t0, t2 + c->lw(t2, 424, a2); // lw t2, 424(a2) + c->daddu(t0, t0, t2); // daddu t0, t0, t2 + c->lwu(t2, 8, a1); // lwu t2, 8(a1) + c->lw(t3, 400, a2); // lw t3, 400(a2) + c->mult3(t3, t3, v1); // mult3 t3, t3, v1 + c->lw(t4, 404, a2); // lw t4, 404(a2) + c->mult3(t4, t4, t6); // mult3 t4, t4, t6 + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->lw(t4, 408, a2); // lw t4, 408(a2) + c->mult3(t4, t4, t8); // mult3 t4, t4, t8 + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->daddu(t7, t2, t3); // daddu t7, t2, t3 + c->mov64(t1, t1); // or t1, t1, r0 + // nop // sll r0, r0, 0 + +block_2: + c->mov64(t5, t0); // or t5, t0, r0 + c->mov64(t9, t7); // or t9, t7, r0 + // nop // sll r0, r0, 0 + c->sw(t7, 524, a2); // sw t7, 524(a2) + // nop // sll r0, r0, 0 + c->sw(t6, 528, a2); // sw t6, 528(a2) + +block_3: + c->mov64(t6, a3); // or t6, a3, r0 + c->mov64(t7, t9); // or t7, t9, r0 + // nop // sll r0, r0, 0 + c->sw(t9, 532, a2); // sw t9, 532(a2) + // nop // sll r0, r0, 0 + c->sw(t8, 536, a2); // sw t8, 536(a2) + +block_4: + // nop // sll r0, r0, 0 + c->lhu(ra, 0, t7); // lhu ra, 0(t7) + // nop // sll r0, r0, 0 + c->lw(gp, 104, a1); // lw gp, 104(a1) + // nop // sll r0, r0, 0 + c->lhu(t8, 2, t7); // lhu t8, 2(t7) + // nop // sll r0, r0, 0 + c->lw(t9, 72, a1); // lw t9, 72(a1) + bc = c->sgpr64(t8) == 0; // beq t8, r0, L74 + c->daddu(ra, ra, gp); // daddu ra, ra, gp + if (bc) {goto block_13;} // branch non-likely + + +block_5: + get_fake_spad_addr2(gp, cache.fake_scratchpad_data, 0, c);// lui gp, 28672 + c->lbu(s4, 0, ra); // lbu s4, 0(ra) + c->addiu(s3, r0, 1); // addiu s3, r0, 1 + c->andi(s2, s4, 7); // andi s2, s4, 7 + c->sra(s5, s4, 3); // sra s5, s4, 3 + c->sll(s4, s4, 2); // sll s4, s4, 2 + c->daddu(s5, s5, gp); // daddu s5, s5, gp + c->daddu(s4, s4, t9); // daddu s4, s4, t9 + c->sllv(s3, s3, s2); // sllv s3, s3, s2 + c->lb(s2, 0, s5); // lb s2, 0(s5) + // nop // sll r0, r0, 0 + c->lbu(s0, 3, s4); // lbu s0, 3(s4) + c->and_(s1, s2, s3); // and s1, s2, s3 + c->daddiu(t8, t8, -1); // daddiu t8, t8, -1 + bc = c->sgpr64(s1) != 0; // bne s1, r0, L73 + c->lw(s1, 4, a1); // lw s1, 4(a1) + if (bc) {goto block_12;} // branch non-likely + + c->dsll(s0, s0, 2); // dsll s0, s0, 2 + c->or_(s3, s2, s3); // or s3, s2, s3 + c->daddu(s2, s0, s1); // daddu s2, s0, s1 + c->sb(s3, 0, s5); // sb s3, 0(s5) + // nop // sll r0, r0, 0 + c->lwu(s5, 0, s2); // lwu s5, 0(s2) + // nop // sll r0, r0, 0 + c->lwu(s2, 96, a2); // lwu s2, 96(a2) + // nop // sll r0, r0, 0 + c->lw(s3, 88, a1); // lw s3, 88(a1) + c->and_(s2, s2, s5); // and s2, s2, s5 + c->lbu(s1, 0, s4); // lbu s1, 0(s4) + bc = c->sgpr64(s2) != 0; // bne s2, r0, L73 + c->lbu(s2, 1, s4); // lbu s2, 1(s4) + if (bc) {goto block_12;} // branch non-likely + + c->sll(s1, s1, 1); // sll s1, s1, 1 + c->lbu(s4, 2, s4); // lbu s4, 2(s4) + c->sll(s0, s1, 1); // sll s0, s1, 1 + c->sll(s2, s2, 1); // sll s2, s2, 1 + c->daddu(s1, s1, s0); // daddu s1, s1, s0 + c->sll(s0, s2, 1); // sll s0, s2, 1 + c->sll(s4, s4, 1); // sll s4, s4, 1 + c->daddu(s0, s2, s0); // daddu s0, s2, s0 + c->sll(v0, s4, 1); // sll v0, s4, 1 + c->daddu(s2, s1, s3); // daddu s2, s1, s3 + c->daddu(s4, s4, v0); // daddu s4, s4, v0 + c->daddu(s1, s0, s3); // daddu s1, s0, s3 + c->daddu(s4, s4, s3); // daddu s4, s4, s3 + c->ldr(t2, 0, s2); // ldr t2, 0(s2) + // nop // sll r0, r0, 0 + c->ldl(t2, 7, s2); // ldl t2, 7(s2) + // nop // sll r0, r0, 0 + c->ldr(t3, 0, s1); // ldr t3, 0(s1) + // nop // sll r0, r0, 0 + c->ldl(t3, 7, s1); // ldl t3, 7(s1) + // nop // sll r0, r0, 0 + c->ldr(t4, 0, s4); // ldr t4, 0(s4) + c->pextlh(t2, r0, t2); // pextlh t2, r0, t2 + c->ldl(t4, 7, s4); // ldl t4, 7(s4) + c->pextlh(t3, r0, t3); // pextlh t3, r0, t3 + c->lq(s4, 368, a2); // lq s4, 368(a2) + c->pextlh(t4, r0, t4); // pextlh t4, r0, t4 + c->lq(s3, 384, a2); // lq s3, 384(a2) + c->pminw(s1, t2, t3); // pminw s1, t2, t3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(s2, t2, t3); // pmaxw s2, t2, t3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(s1, s1, t4); // pminw s1, s1, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(s2, s2, t4); // pmaxw s2, s2, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(s3, s1, s3); // pcgtw s3, s1, s3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(s4, s4, s2); // pcgtw s4, s4, s2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(s4, s3, s4); // por s4, s3, s4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(s4, r0, s4); // ppach s4, r0, s4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(s4, s4, 16); // dsll s4, s4, 16 + // nop // sll r0, r0, 0 + bc = c->sgpr64(s4) != 0; // bne s4, r0, L73 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + c->psllw(t2, t2, 4); // psllw t2, t2, 4 + c->lw(s4, 2048, gp); // lw s4, 2048(gp) + c->psllw(t3, t3, 4); // psllw t3, t3, 4 + c->mov128_vf_gpr(vf7, t2); // qmtc2.i vf7, t2 + c->psllw(t4, t4, 4); // psllw t4, t4, 4 + c->mov128_vf_gpr(vf8, t3); // qmtc2.i vf8, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t4); // qmtc2.i vf9, t4 + c->vitof0(DEST::xyzw, vf7, vf7); // vitof0.xyzw vf7, vf7 + c->daddiu(s4, s4, 1); // daddiu s4, s4, 1 + c->vitof0(DEST::xyzw, vf8, vf8); // vitof0.xyzw vf8, vf8 + c->sw(s4, 2048, gp); // sw s4, 2048(gp) + c->vitof0(DEST::xyzw, vf9, vf9); // vitof0.xyzw vf9, vf9 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf7, vf7, vf1); // vadd.xyzw vf7, vf7, vf1 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf8, vf8, vf1); // vadd.xyzw vf8, vf8, vf1 + c->lwu(gp, 512, a2); // lwu gp, 512(a2) + c->vadd(DEST::xyzw, vf9, vf9, vf1); // vadd.xyzw vf9, vf9, vf1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(gp) == c->sgpr64(s7); // beq gp, s7, L72 + // nop // sll r0, r0, 0 + if (bc) {goto block_10;} // branch non-likely + + c->vmula_bc(DEST::xyzw, BC::x, vf10, vf7); // vmulax.xyzw acc, vf10, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf11, vf7); // vmadday.xyzw acc, vf11, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::z, vf12, vf7); // vmaddaz.xyzw acc, vf12, vf7 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf7, vf13, vf0); // vmaddw.xyzw vf7, vf13, vf0 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf10, vf8); // vmulax.xyzw acc, vf10, vf8 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf11, vf8); // vmadday.xyzw acc, vf11, vf8 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::z, vf12, vf8); // vmaddaz.xyzw acc, vf12, vf8 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf8, vf13, vf0); // vmaddw.xyzw vf8, vf13, vf0 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf10, vf9); // vmulax.xyzw acc, vf10, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf11, vf9); // vmadday.xyzw acc, vf11, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::z, vf12, vf9); // vmaddaz.xyzw acc, vf12, vf9 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf9, vf13, vf0); // vmaddw.xyzw vf9, vf13, vf0 + // nop // sll r0, r0, 0 + +block_10: + c->pextlw(gp, gp, s5); // pextlw gp, gp, s5 + c->lw(s4, 0, a0); // lw s4, 0(a0) + c->lw(s3, 4, a0); // lw s3, 4(a0) + c->lw(s5, 124, a0); // lw s5, 124(a0) + c->dsubu(s3, s4, s3); // dsubu s3, s4, s3 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(s3)) >= 0; // bgez s3, L76 + c->dsll(s3, s4, 6); // dsll s3, s4, 6 + if (bc) {goto block_18;} // branch non-likely + + c->daddiu(s4, s4, 1); // daddiu s4, s4, 1 + c->daddu(s5, s5, s3); // daddu s5, s5, s3 + // nop // sll r0, r0, 0 + c->sw(s4, 0, a0); // sw s4, 0(a0) + // nop // sll r0, r0, 0 + c->sq(gp, 48, s5); // sq gp, 48(s5) + // nop // sll r0, r0, 0 + c->sqc2(vf7, 0, s5); // sqc2 vf7, 0(s5) + // nop // sll r0, r0, 0 + c->sqc2(vf8, 16, s5); // sqc2 vf8, 16(s5) + // nop // sll r0, r0, 0 + c->sqc2(vf9, 32, s5); // sqc2 vf9, 32(s5) + +block_12: + bc = ((s64)c->sgpr64(t8)) > 0; // bgtz t8, L71 + c->daddiu(ra, ra, 1); // daddiu ra, ra, 1 + if (bc) {goto block_5;} // branch non-likely + + +block_13: + c->daddiu(t6, t6, -1); // daddiu t6, t6, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t6) != 0; // bne t6, r0, L70 + c->daddu(t7, t7, v1); // daddu t7, t7, v1 + if (bc) {goto block_4;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lw(t6, 532, a2); // lw t6, 532(a2) + // nop // sll r0, r0, 0 + c->lw(t8, 536, a2); // lw t8, 536(a2) + c->daddiu(t5, t5, -1); // daddiu t5, t5, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t5) != 0; // bne t5, r0, L69 + c->daddu(t9, t6, t8); // daddu t9, t6, t8 + if (bc) {goto block_3;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lw(t5, 524, a2); // lw t5, 524(a2) + // nop // sll r0, r0, 0 + c->lw(t6, 528, a2); // lw t6, 528(a2) + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L68 + c->daddu(t7, t5, t6); // daddu t7, t5, t6 + if (bc) {goto block_2;} // branch non-likely + + c->load_symbol2(v1, cache.collide_stats); // lw v1, *collide-stats*(s7) + c->lwu(v1, 12, v1); // lwu v1, 12(v1) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + c->load_symbol2(a0, cache.collide_stats); // lw a0, *collide-stats*(s7) + c->sw(v1, 12, a0); // sw v1, 12(a0) + +block_17: + c->mov64(v0, s7); // or v0, s7, r0 + //beq r0, r0, L78 // beq r0, r0, L78 + // nop // sll r0, r0, 0 + goto block_21; // branch always + + +block_18: + c->load_symbol_addr(v1, cache.debug); // daddiu v1, s7, debug + c->load_symbol2(a0, cache.cheat_mode); // lw a0, *cheat-mode*(s7) + bc = c->sgpr64(a0) != c->sgpr64(v1); // bne a0, v1, L77 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_20;} // branch non-likely + + c->load_symbol2(t9, cache.print_exceeded_max_cache_tris);// lw t9, print-exceeded-max-cache-tris(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_20: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + +block_21: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.cheat_mode = intern_from_c(-1, 0, "*cheat-mode*").c(); + cache.collide_stats = intern_from_c(-1, 0, "*collide-stats*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.debug = intern_from_c(-1, 0, "debug").c(); + cache.print_exceeded_max_cache_tris = intern_from_c(-1, 0, "print-exceeded-max-cache-tris").c(); + gLinkedFunctionTable.reg("fill-bg-using-box-new", execute, 512); +} + +} // namespace fill_bg_using_box_new +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_12_collide_hash { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -112); // daddiu sp, sp, -112 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s1, 16, sp); // sq s1, 16(sp) + c->sq(s2, 32, sp); // sq s2, 32(sp) + c->sq(s3, 48, sp); // sq s3, 48(sp) + c->sq(s4, 64, sp); // sq s4, 64(sp) + c->sq(s5, 80, sp); // sq s5, 80(sp) + c->sq(gp, 96, sp); // sq gp, 96(sp) + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + //beq r0, r0, L81 // beq r0, r0, L81 + // nop // sll r0, r0, 0 + goto block_2; // branch always + + +block_1: + c->dsll(a1, v1, 4); // dsll a1, v1, 4 + get_fake_spad_addr2(t0, cache.fake_scratchpad_data, 0, c);// lui t0, 28672 + c->daddu(a1, a1, t0); // daddu a1, a1, t0 + c->sq(r0, 0, a1); // sq r0, 0(a1) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + +block_2: + c->lwu(a1, 8, a0); // lwu a1, 8(a0) + c->slt(a1, v1, a1); // slt a1, v1, a1 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L80 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lw(v1, 72, a0); // lw v1, 72(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 28, a0); // lqc2 vf2, 28(a0) + c->lui(a1, 1); // lui a1, 1 + c->lqc2(vf3, 128, a3); // lqc2 vf3, 128(a3) + c->ori(a1, a1, 257); // ori a1, a1, 257 + c->lqc2(vf4, 144, a3); // lqc2 vf4, 144(a3) + c->dsubu(v1, v1, a1); // dsubu v1, v1, a1 + c->lqc2(vf5, 44, a0); // lqc2 vf5, 44(a0) + c->vsub(DEST::xyzw, vf3, vf3, vf2); // vsub.xyzw vf3, vf3, vf2 + c->lq(a1, 160, a3); // lq a1, 160(a3) + c->vsub(DEST::xyzw, vf4, vf4, vf2); // vsub.xyzw vf4, vf4, vf2 + c->lq(t0, 176, a3); // lq t0, 176(a3) + c->pextlb(v1, r0, v1); // pextlb v1, r0, v1 + c->lq(t1, 60, a0); // lq t1, 60(a0) + c->pextlh(v1, r0, v1); // pextlh v1, r0, v1 + c->lq(t2, 76, a0); // lq t2, 76(a0) + c->pcgtw(t0, t1, t0); // pcgtw t0, t1, t0 + c->vmul(DEST::xyzw, vf3, vf3, vf5); // vmul.xyzw vf3, vf3, vf5 + c->pcgtw(a1, a1, t2); // pcgtw a1, a1, t2 + c->vmul(DEST::xyzw, vf4, vf4, vf5); // vmul.xyzw vf4, vf4, vf5 + c->por(a1, t0, a1); // por a1, t0, a1 + c->lqc2(vf10, 256, a3); // lqc2 vf10, 256(a3) + c->ppach(a1, r0, a1); // ppach a1, r0, a1 + c->lqc2(vf11, 272, a3); // lqc2 vf11, 272(a3) + c->dsll(a1, a1, 16); // dsll a1, a1, 16 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L88 + c->vftoi0(DEST::xyzw, vf4, vf4); // vftoi0.xyzw vf4, vf4 + if (bc) {goto block_19;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lqc2(vf8, 208, a3); // lqc2 vf8, 208(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf9, 224, a3); // lqc2 vf9, 224(a3) + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t0, vf3); // qmfc2.i t0, vf3 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf4); // qmfc2.i a1, vf4 + c->pmaxw(t0, t0, r0); // pmaxw t0, t0, r0 + c->lqc2(vf6, 12, a0); // lqc2 vf6, 12(a0) + c->pmaxw(a1, a1, r0); // pmaxw a1, a1, r0 + c->lqc2(vf7, 240, a3); // lqc2 vf7, 240(a3) + c->pminw(t0, t0, v1); // pminw t0, t0, v1 + c->vmax_bc(DEST::xyzw, BC::w, vf1, vf0, vf0); // vmaxw.xyzw vf1, vf0, vf0 + c->pminw(v1, a1, v1); // pminw v1, a1, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->sq(t0, 400, a3); // sq t0, 400(a3) + // nop // sll r0, r0, 0 + c->sq(v1, 416, a3); // sq v1, 416(a3) + c->addiu(v1, r0, 4); // addiu v1, r0, 4 + c->lbu(a1, 72, a0); // lbu a1, 72(a0) + c->multu3(a1, a1, v1); // multu3 a1, a1, v1 + c->lbu(t0, 74, a0); // lbu t0, 74(a0) + c->multu3(t0, t0, a1); // multu3 t0, t0, a1 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + c->lw(t2, 400, a3); // lw t2, 400(a3) + c->dsubu(t1, t1, t2); // dsubu t1, t1, t2 + c->lw(t2, 416, a3); // lw t2, 416(a3) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->lw(t3, 404, a3); // lw t3, 404(a3) + c->dsubu(t2, t2, t3); // dsubu t2, t2, t3 + c->lw(t3, 420, a3); // lw t3, 420(a3) + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->addiu(t3, r0, 1); // addiu t3, r0, 1 + c->lw(t4, 408, a3); // lw t4, 408(a3) + c->dsubu(t3, t3, t4); // dsubu t3, t3, t4 + c->lw(t4, 424, a3); // lw t4, 424(a3) + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->lwu(t4, 40, a0); // lwu t4, 40(a0) + c->lw(t5, 400, a3); // lw t5, 400(a3) + c->mult3(t5, t5, v1); // mult3 t5, t5, v1 + c->lw(t6, 404, a3); // lw t6, 404(a3) + c->mult3(t6, t6, t0); // mult3 t6, t6, t0 + c->daddu(t5, t5, t6); // daddu t5, t5, t6 + c->lw(t6, 408, a3); // lw t6, 408(a3) + c->mult3(t6, t6, a1); // mult3 t6, t6, a1 + c->daddu(t5, t5, t6); // daddu t5, t5, t6 + c->daddu(t4, t4, t5); // daddu t4, t4, t5 + c->mov64(t5, t2); // or t5, t2, r0 + // nop // sll r0, r0, 0 + +block_5: + c->mov64(t6, t3); // or t6, t3, r0 + c->mov64(t7, t4); // or t7, t4, r0 + +block_6: + c->mov64(t8, t1); // or t8, t1, r0 + c->mov64(t9, t7); // or t9, t7, r0 + +block_7: + c->dsubu(s3, t1, t8); // dsubu s3, t1, t8 + c->lw(s2, 400, a3); // lw s2, 400(a3) + c->dsubu(s5, t2, t5); // dsubu s5, t2, t5 + c->lw(s4, 404, a3); // lw s4, 404(a3) + c->dsubu(ra, t3, t6); // dsubu ra, t3, t6 + c->lw(gp, 408, a3); // lw gp, 408(a3) + c->daddu(s3, s3, s2); // daddu s3, s3, s2 + c->sw(r0, 444, a3); // sw r0, 444(a3) + c->daddu(s5, s5, s4); // daddu s5, s5, s4 + c->sw(s3, 432, a3); // sw s3, 432(a3) + c->daddu(ra, ra, gp); // daddu ra, ra, gp + c->sw(s5, 436, a3); // sw s5, 436(a3) + // nop // sll r0, r0, 0 + c->sw(ra, 440, a3); // sw ra, 440(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 432, a3); // lqc2 vf3, 432(a3) + c->vitof0(DEST::xyzw, vf3, vf3); // vitof0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf3, vf6); // vmula.xyzw acc, vf3, vf6 + // nop // sll r0, r0, 0 + c->vmadda(DEST::xyzw, vf1, vf2); // vmadda.xyzw acc, vf1, vf2 + // nop // sll r0, r0, 0 + c->vmsub_bc(DEST::xyzw, BC::w, vf3, vf1, vf10); // vmsubw.xyzw vf3, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadda(DEST::xyzw, vf1, vf6); // vmadda.xyzw acc, vf1, vf6 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf4, vf1, vf10); // vmaddw.xyzw vf4, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf7, vf3); // vmula.xyzw acc, vf7, vf3 + // nop // sll r0, r0, 0 + c->vmsuba(DEST::xyzw, vf7, vf8); // vmsuba.xyzw acc, vf7, vf8 + // nop // sll r0, r0, 0 + c->vmsub(DEST::xyzw, vf13, vf1, vf10); // vmsub.xyzw vf13, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadd(DEST::xyzw, vf15, vf1, vf11); // vmadd.xyzw vf15, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf7, vf4); // vmula.xyzw acc, vf7, vf4 + // nop // sll r0, r0, 0 + c->vmsuba(DEST::xyzw, vf7, vf8); // vmsuba.xyzw acc, vf7, vf8 + // nop // sll r0, r0, 0 + c->vmsub(DEST::xyzw, vf14, vf1, vf11); // vmsub.xyzw vf14, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmadd(DEST::xyzw, vf16, vf1, vf10); // vmadd.xyzw vf16, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmax(DEST::xyzw, vf13, vf13, vf14); // vmax.xyzw vf13, vf13, vf14 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyzw, vf15, vf15, vf16); // vmini.xyzw vf15, vf15, vf16 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::xyzw, BC::y, vf13, vf13, vf13); // vmaxy.xyzw vf13, vf13, vf13 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::xyzw, BC::y, vf15, vf15, vf15); // vminiy.xyzw vf15, vf15, vf15 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::xyzw, BC::z, vf13, vf13, vf13); // vmaxz.xyzw vf13, vf13, vf13 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::xyzw, BC::z, vf15, vf15, vf15); // vminiz.xyzw vf15, vf15, vf15 + // nop // sll r0, r0, 0 + c->vftoi4(DEST::xyzw, vf13, vf13); // vftoi4.xyzw vf13, vf13 + // nop // sll r0, r0, 0 + c->vftoi4(DEST::xyzw, vf15, vf15); // vftoi4.xyzw vf15, vf15 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s5, vf13); // qmfc2.i s5, vf13 + c->addiu(s4, r0, 4096); // addiu s4, r0, 4096 + c->mov128_gpr_vf(ra, vf15); // qmfc2.i ra, vf15 + c->subu(gp, ra, s5); // subu gp, ra, s5 + c->subu(s5, s4, s5); // subu s5, s4, s5 + bc = ((s64)c->sgpr64(gp)) < 0; // bltz gp, L87 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + bc = ((s64)c->sgpr64(s5)) < 0; // bltz s5, L87 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + bc = ((s64)c->sgpr64(ra)) < 0; // bltz ra, L87 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lhu(ra, 0, t9); // lhu ra, 0(t9) + // nop // sll r0, r0, 0 + c->lw(gp, 56, a0); // lw gp, 56(a0) + c->sll(s5, ra, 3); // sll s5, ra, 3 + c->lhu(ra, 2, t9); // lhu ra, 2(t9) + bc = c->sgpr64(ra) == 0; // beq ra, r0, L87 + c->daddu(gp, s5, gp); // daddu gp, s5, gp + if (bc) {goto block_16;} // branch non-likely + + +block_11: + get_fake_spad_addr2(s4, cache.fake_scratchpad_data, 0, c);// lui s4, 28672 + c->lw(s1, 0, gp); // lw s1, 0(gp) + c->addiu(s3, r0, 1); // addiu s3, r0, 1 + c->lw(s5, 4, gp); // lw s5, 4(gp) + c->andi(s2, s1, 7); // andi s2, s1, 7 + c->sra(s1, s1, 3); // sra s1, s1, 3 + c->daddu(s4, s1, s4); // daddu s4, s1, s4 + c->lqc2(vf12, 12, s5); // lqc2 vf12, 12(s5) + c->sllv(s3, s3, s2); // sllv s3, s3, s2 + c->lb(s2, 0, s4); // lb s2, 0(s4) + c->and_(s1, s2, s3); // and s1, s2, s3 + c->daddiu(ra, ra, -1); // daddiu ra, ra, -1 + bc = c->sgpr64(s1) != 0; // bne s1, r0, L86 + c->or_(s3, s2, s3); // or s3, s2, s3 + if (bc) {goto block_15;} // branch non-likely + + c->vmula(DEST::xyzw, vf9, vf12); // vmula.xyzw acc, vf9, vf12 + c->sb(s3, 0, s4); // sb s3, 0(s4) + c->vmsub(DEST::xyzw, vf13, vf9, vf8); // vmsub.xyzw vf13, vf9, vf8 + // nop // sll r0, r0, 0 + c->vmul_bc(DEST::xyzw, BC::w, vf14, vf1, vf7); // vmulw.xyzw vf14, vf1, vf7 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf1, vf12); // vmulaw.xyzw acc, vf1, vf12 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::w, vf15, vf1, vf10); // vmaddw.xyzw vf15, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf13, vf7); // vmulaw.xyzw acc, vf13, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf13); // vmadday.xyzw acc, vf14, vf13 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf13, vf14, vf13); // vmaddz.xyzw vf13, vf14, vf13 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::xyzw, BC::w, vf13, vf13, vf0); // vminiw.xyzw vf13, vf13, vf0 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::xyzw, BC::x, vf13, vf13, vf0); // vmaxx.xyzw vf13, vf13, vf0 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf9, vf13); // vmulax.xyzw acc, vf9, vf13 + // nop // sll r0, r0, 0 + c->vmadda(DEST::xyzw, vf1, vf8); // vmadda.xyzw acc, vf1, vf8 + // nop // sll r0, r0, 0 + c->vmsub(DEST::xyzw, vf13, vf1, vf12); // vmsub.xyzw vf13, vf1, vf12 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf13, vf13, vf13); // vmul.xyzw vf13, vf13, vf13 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf0, vf0); // vmulax.xyzw acc, vf0, vf0 + // nop // sll r0, r0, 0 + c->vmsuba(DEST::xyzw, vf15, vf15); // vmsuba.xyzw acc, vf15, vf15 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf13); // vmaddax.xyzw acc, vf1, vf13 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf1, vf13); // vmadday.xyzw acc, vf1, vf13 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf13, vf1, vf13); // vmaddz.xyzw vf13, vf1, vf13 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s4, vf13); // qmfc2.i s4, vf13 + bc = ((s64)c->sgpr64(s4)) > 0; // bgtz s4, L86 + // nop // sll r0, r0, 0 + if (bc) {goto block_15;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lw(s3, 0, a2); // lw s3, 0(a2) + c->daddiu(s2, s3, -256); // daddiu s2, s3, -256 + c->sll(s4, s3, 3); // sll s4, s3, 3 + bc = ((s64)c->sgpr64(s2)) >= 0; // bgez s2, L88 + c->daddiu(s3, s3, 1); // daddiu s3, s3, 1 + if (bc) {goto block_19;} // branch non-likely + + c->daddu(s4, s4, a2); // daddu s4, s4, a2 + c->sw(s3, 0, a2); // sw s3, 0(a2) + // nop // sll r0, r0, 0 + c->sw(s7, 20, s4); // sw s7, 20(s4) + // nop // sll r0, r0, 0 + c->sw(s5, 16, s4); // sw s5, 16(s4) + +block_15: + bc = ((s64)c->sgpr64(ra)) > 0; // bgtz ra, L85 + c->daddiu(gp, gp, 8); // daddiu gp, gp, 8 + if (bc) {goto block_11;} // branch non-likely + + +block_16: + c->daddiu(t8, t8, -1); // daddiu t8, t8, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t8) != 0; // bne t8, r0, L84 + c->daddu(t9, t9, v1); // daddu t9, t9, v1 + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(t6, t6, -1); // daddiu t6, t6, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t6) != 0; // bne t6, r0, L83 + c->daddu(t7, t7, a1); // daddu t7, t7, a1 + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(t5, t5, -1); // daddiu t5, t5, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t5) != 0; // bne t5, r0, L82 + c->daddu(t4, t4, t0); // daddu t4, t4, t0 + if (bc) {goto block_5;} // branch non-likely + + +block_19: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 96, sp); // lq gp, 96(sp) + c->lq(s5, 80, sp); // lq s5, 80(sp) + c->lq(s4, 64, sp); // lq s4, 64(sp) + c->lq(s3, 48, sp); // lq s3, 48(sp) + c->lq(s2, 32, sp); // lq s2, 32(sp) + c->lq(s1, 16, sp); // lq s1, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 112); // daddiu sp, sp, 112 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("(method 12 collide-hash)", execute, 512); +} + +} // namespace method_12_collide_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_11_collide_hash { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s2, 16, sp); // sq s2, 16(sp) + c->sq(s3, 32, sp); // sq s3, 32(sp) + c->sq(s4, 48, sp); // sq s4, 48(sp) + c->sq(s5, 64, sp); // sq s5, 64(sp) + c->sq(gp, 80, sp); // sq gp, 80(sp) + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + //beq r0, r0, L91 // beq r0, r0, L91 + // nop // sll r0, r0, 0 + goto block_2; // branch always + + +block_1: + c->dsll(a1, v1, 4); // dsll a1, v1, 4 + get_fake_spad_addr2(t0, cache.fake_scratchpad_data, 0, c);// lui t0, 28672 + c->daddu(a1, a1, t0); // daddu a1, a1, t0 + c->sq(r0, 0, a1); // sq r0, 0(a1) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + +block_2: + c->lwu(a1, 8, a0); // lwu a1, 8(a0) + c->slt(a1, v1, a1); // slt a1, v1, a1 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L90 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + // nop // sll r0, r0, 0 + c->lw(v1, 72, a0); // lw v1, 72(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf1, 28, a0); // lqc2 vf1, 28(a0) + c->lui(a1, 1); // lui a1, 1 + c->lqc2(vf2, 128, a3); // lqc2 vf2, 128(a3) + c->ori(a1, a1, 257); // ori a1, a1, 257 + c->lqc2(vf3, 144, a3); // lqc2 vf3, 144(a3) + c->dsubu(v1, v1, a1); // dsubu v1, v1, a1 + c->lqc2(vf4, 44, a0); // lqc2 vf4, 44(a0) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->lq(a1, 160, a3); // lq a1, 160(a3) + c->vsub(DEST::xyzw, vf3, vf3, vf1); // vsub.xyzw vf3, vf3, vf1 + c->lq(t0, 176, a3); // lq t0, 176(a3) + c->pextlb(v1, r0, v1); // pextlb v1, r0, v1 + c->lq(t1, 60, a0); // lq t1, 60(a0) + c->pextlh(v1, r0, v1); // pextlh v1, r0, v1 + c->lq(t2, 76, a0); // lq t2, 76(a0) + c->pcgtw(t0, t1, t0); // pcgtw t0, t1, t0 + c->vmul(DEST::xyzw, vf2, vf2, vf4); // vmul.xyzw vf2, vf2, vf4 + c->pcgtw(a1, a1, t2); // pcgtw a1, a1, t2 + c->vmul(DEST::xyzw, vf3, vf3, vf4); // vmul.xyzw vf3, vf3, vf4 + c->por(a1, t0, a1); // por a1, t0, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(a1, r0, a1); // ppach a1, r0, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(a1, a1, 16); // dsll a1, a1, 16 + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L98 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + if (bc) {goto block_16;} // branch non-likely + + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t0, vf2); // qmfc2.i t0, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf3); // qmfc2.i a1, vf3 + c->pmaxw(t0, t0, r0); // pmaxw t0, t0, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(a1, a1, r0); // pmaxw a1, a1, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(t0, t0, v1); // pminw t0, t0, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(v1, a1, v1); // pminw v1, a1, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->sq(t0, 400, a3); // sq t0, 400(a3) + // nop // sll r0, r0, 0 + c->sq(v1, 416, a3); // sq v1, 416(a3) + c->addiu(v1, r0, 4); // addiu v1, r0, 4 + c->lbu(a1, 72, a0); // lbu a1, 72(a0) + c->multu3(a1, a1, v1); // multu3 a1, a1, v1 + c->lbu(t0, 74, a0); // lbu t0, 74(a0) + c->multu3(t0, t0, a1); // multu3 t0, t0, a1 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + c->lw(t2, 400, a3); // lw t2, 400(a3) + c->dsubu(t1, t1, t2); // dsubu t1, t1, t2 + c->lw(t2, 416, a3); // lw t2, 416(a3) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->lw(t3, 404, a3); // lw t3, 404(a3) + c->dsubu(t2, t2, t3); // dsubu t2, t2, t3 + c->lw(t3, 420, a3); // lw t3, 420(a3) + c->daddu(t4, t2, t3); // daddu t4, t2, t3 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->lw(t3, 408, a3); // lw t3, 408(a3) + c->dsubu(t2, t2, t3); // dsubu t2, t2, t3 + c->lw(t3, 424, a3); // lw t3, 424(a3) + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->lwu(t3, 40, a0); // lwu t3, 40(a0) + c->lw(t5, 400, a3); // lw t5, 400(a3) + c->mult3(t5, t5, v1); // mult3 t5, t5, v1 + c->lw(t6, 404, a3); // lw t6, 404(a3) + c->mult3(t6, t6, t0); // mult3 t6, t6, t0 + c->daddu(t5, t5, t6); // daddu t5, t5, t6 + c->lw(t6, 408, a3); // lw t6, 408(a3) + c->mult3(t6, t6, a1); // mult3 t6, t6, a1 + c->daddu(t5, t5, t6); // daddu t5, t5, t6 + c->daddu(t3, t3, t5); // daddu t3, t3, t5 + c->mov64(t4, t4); // or t4, t4, r0 + // nop // sll r0, r0, 0 + +block_5: + c->mov64(t5, t2); // or t5, t2, r0 + c->mov64(t6, t3); // or t6, t3, r0 + +block_6: + c->mov64(t7, t1); // or t7, t1, r0 + c->mov64(t8, t6); // or t8, t6, r0 + +block_7: + // nop // sll r0, r0, 0 + c->lhu(t9, 0, t8); // lhu t9, 0(t8) + // nop // sll r0, r0, 0 + c->lw(ra, 56, a0); // lw ra, 56(a0) + c->sll(gp, t9, 3); // sll gp, t9, 3 + c->lhu(t9, 2, t8); // lhu t9, 2(t8) + bc = c->sgpr64(t9) == 0; // beq t9, r0, L97 + c->daddu(ra, gp, ra); // daddu ra, gp, ra + if (bc) {goto block_13;} // branch non-likely + + +block_8: + get_fake_spad_addr2(s5, cache.fake_scratchpad_data, 0, c);// lui s5, 28672 + c->lw(s2, 0, ra); // lw s2, 0(ra) + c->addiu(s4, r0, 1); // addiu s4, r0, 1 + c->lw(gp, 4, ra); // lw gp, 4(ra) + c->andi(s3, s2, 7); // andi s3, s2, 7 + c->sra(s2, s2, 3); // sra s2, s2, 3 + c->daddu(s5, s2, s5); // daddu s5, s2, s5 + c->lqc2(vf8, 12, gp); // lqc2 vf8, 12(gp) + c->sllv(s4, s4, s3); // sllv s4, s4, s3 + c->lb(s3, 0, s5); // lb s3, 0(s5) + c->and_(s2, s3, s4); // and s2, s3, s4 + c->daddiu(t9, t9, -1); // daddiu t9, t9, -1 + bc = c->sgpr64(s2) != 0; // bne s2, r0, L96 + c->or_(s4, s3, s4); // or s4, s3, s4 + if (bc) {goto block_12;} // branch non-likely + + c->vsub_bc(DEST::xyzw, BC::w, vf2, vf8, vf8); // vsubw.xyzw vf2, vf8, vf8 + c->sb(s4, 0, s5); // sb s4, 0(s5) + c->vadd_bc(DEST::xyzw, BC::w, vf3, vf8, vf8); // vaddw.xyzw vf3, vf8, vf8 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + c->lq(s5, 160, a3); // lq s5, 160(a3) + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + c->lq(s3, 176, a3); // lq s3, 176(a3) + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s2, vf2); // qmfc2.i s2, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(s4, vf3); // qmfc2.i s4, vf3 + c->pcgtw(s3, s2, s3); // pcgtw s3, s2, s3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcgtw(s5, s5, s4); // pcgtw s5, s5, s4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(s5, s3, s5); // por s5, s3, s5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(s5, r0, s5); // ppach s5, r0, s5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsll(s5, s5, 16); // dsll s5, s5, 16 + // nop // sll r0, r0, 0 + bc = c->sgpr64(s5) != 0; // bne s5, r0, L96 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lw(s4, 0, a2); // lw s4, 0(a2) + c->daddiu(s3, s4, -256); // daddiu s3, s4, -256 + c->sll(s5, s4, 3); // sll s5, s4, 3 + bc = ((s64)c->sgpr64(s3)) >= 0; // bgez s3, L98 + c->daddiu(s4, s4, 1); // daddiu s4, s4, 1 + if (bc) {goto block_16;} // branch non-likely + + c->daddu(s5, s5, a2); // daddu s5, s5, a2 + c->sw(s4, 0, a2); // sw s4, 0(a2) + // nop // sll r0, r0, 0 + c->sw(s7, 20, s5); // sw s7, 20(s5) + // nop // sll r0, r0, 0 + c->sw(gp, 16, s5); // sw gp, 16(s5) + +block_12: + bc = ((s64)c->sgpr64(t9)) > 0; // bgtz t9, L95 + c->daddiu(ra, ra, 8); // daddiu ra, ra, 8 + if (bc) {goto block_8;} // branch non-likely + + +block_13: + c->daddiu(t7, t7, -1); // daddiu t7, t7, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t7) != 0; // bne t7, r0, L94 + c->daddu(t8, t8, v1); // daddu t8, t8, v1 + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(t5, t5, -1); // daddiu t5, t5, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t5) != 0; // bne t5, r0, L93 + c->daddu(t6, t6, a1); // daddu t6, t6, a1 + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(t4, t4, -1); // daddiu t4, t4, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t4) != 0; // bne t4, r0, L92 + c->daddu(t3, t3, t0); // daddu t3, t3, t0 + if (bc) {goto block_5;} // branch non-likely + + +block_16: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 80, sp); // lq gp, 80(sp) + c->lq(s5, 64, sp); // lq s5, 64(sp) + c->lq(s4, 48, sp); // lq s4, 48(sp) + c->lq(s3, 32, sp); // lq s3, 32(sp) + c->lq(s2, 16, sp); // lq s2, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("(method 11 collide-hash)", execute, 256); +} + +} // namespace method_11_collide_hash +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/collide_mesh.cpp b/game/mips2c/jakx_functions/collide_mesh.cpp new file mode 100644 index 0000000000..813556b442 --- /dev/null +++ b/game/mips2c/jakx_functions/collide_mesh.cpp @@ -0,0 +1,486 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_12_collide_mesh { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + get_fake_spad_addr2(t0, cache.fake_scratchpad_data, 0, c);// lui t0, 28672 + c->lwu(v1, 8, a0); // lwu v1, 8(a0) + // nop // sll r0, r0, 0 + c->lwu(a3, 12, a0); // lwu a3, 12(a0) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L7 + c->lqc2(vf1, 0, a2); // lqc2 vf1, 0(a2) + if (bc) {goto block_3;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a2); // lqc2 vf2, 16(a2) + c->daddiu(t0, t0, -64); // daddiu t0, t0, -64 + c->lqc2(vf3, 32, a2); // lqc2 vf3, 32(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf4, 48, a2); // lqc2 vf4, 48(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf5, 0, a3); // lqc2 vf5, 0(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf6, 16, a3); // lqc2 vf6, 16(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf7, 32, a3); // lqc2 vf7, 32(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf8, 48, a3); // lqc2 vf8, 48(a3) + +block_2: + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->daddiu(a3, a3, 64); // daddiu a3, a3, 64 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf5); // vmaddax.xyzw acc, vf1, vf5 + c->daddiu(t0, t0, 64); // daddiu t0, t0, 64 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf5); // vmadday.xyzw acc, vf2, vf5 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf9, vf3, vf5); // vmaddz.xyzw vf9, vf3, vf5 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->lqc2(vf5, 0, a3); // lqc2 vf5, 0(a3) + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf6); // vmaddax.xyzw acc, vf1, vf6 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf6); // vmadday.xyzw acc, vf2, vf6 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf10, vf3, vf6); // vmaddz.xyzw vf10, vf3, vf6 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->lqc2(vf6, 16, a3); // lqc2 vf6, 16(a3) + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf7); // vmaddax.xyzw acc, vf1, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf7); // vmadday.xyzw acc, vf2, vf7 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf11, vf3, vf7); // vmaddz.xyzw vf11, vf3, vf7 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->lqc2(vf7, 32, a3); // lqc2 vf7, 32(a3) + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf8); // vmaddax.xyzw acc, vf1, vf8 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf8); // vmadday.xyzw acc, vf2, vf8 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf12, vf3, vf8); // vmaddz.xyzw vf12, vf3, vf8 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lqc2(vf8, 48, a3); // lqc2 vf8, 48(a3) + c->daddiu(v1, v1, -4); // daddiu v1, v1, -4 + c->sqc2(vf9, 0, t0); // sqc2 vf9, 0(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf10, 16, t0); // sqc2 vf10, 16(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf11, 32, t0); // sqc2 vf11, 32(t0) + bc = ((s64)c->sgpr64(v1)) > 0; // bgtz v1, L6 + c->sqc2(vf12, 48, t0); // sqc2 vf12, 48(t0) + if (bc) {goto block_2;} // branch non-likely + + +block_3: + c->daddiu(v1, a0, 28); // daddiu v1, a0, 28 + // nop // sll r0, r0, 0 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->lwu(a0, 4, a0); // lwu a0, 4(a0) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L9 + c->lbu(t0, 0, v1); // lbu t0, 0(v1) + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(a1, a1, -96); // daddiu a1, a1, -96 + c->lbu(a3, 1, v1); // lbu a3, 1(v1) + c->dsll(t0, t0, 4); // dsll t0, t0, 4 + c->lbu(t2, 2, v1); // lbu t2, 2(v1) + c->dsll(t1, a3, 4); // dsll t1, a3, 4 + c->lwu(a3, 4, v1); // lwu a3, 4(v1) + c->dsll(t2, t2, 4); // dsll t2, t2, 4 + c->daddu(t0, t0, a2); // daddu t0, t0, a2 + c->daddu(t1, t1, a2); // daddu t1, t1, a2 + c->daddu(t2, t2, a2); // daddu t2, t2, a2 + +block_5: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->lqc2(vf1, 0, t0); // lqc2 vf1, 0(t0) + c->daddiu(v1, v1, 8); // daddiu v1, v1, 8 + c->lqc2(vf2, 0, t1); // lqc2 vf2, 0(t1) + c->daddiu(a1, a1, 96); // daddiu a1, a1, 96 + c->lqc2(vf3, 0, t2); // lqc2 vf3, 0(t2) + c->vsub(DEST::xyzw, vf4, vf2, vf1); // vsub.xyzw vf4, vf2, vf1 + c->sqc2(vf1, 0, a1); // sqc2 vf1, 0(a1) + c->vmini(DEST::xyzw, vf8, vf1, vf2); // vmini.xyzw vf8, vf1, vf2 + c->sqc2(vf2, 16, a1); // sqc2 vf2, 16(a1) + c->vsub(DEST::xyzw, vf5, vf3, vf1); // vsub.xyzw vf5, vf3, vf1 + c->sqc2(vf3, 32, a1); // sqc2 vf3, 32(a1) + c->vmax(DEST::xyzw, vf9, vf1, vf2); // vmax.xyzw vf9, vf1, vf2 + c->lbu(t1, 0, v1); // lbu t1, 0(v1) + c->vopmula(vf4, vf5); // vopmula.xyz acc, vf4, vf5 + c->lbu(t2, 1, v1); // lbu t2, 1(v1) + c->vopmsub(vf6, vf5, vf4); // vopmsub.xyz vf6, vf5, vf4 + c->lbu(t0, 2, v1); // lbu t0, 2(v1) + c->vmul(DEST::xyzw, vf7, vf6, vf6); // vmul.xyzw vf7, vf6, vf6 + // nop // sll r0, r0, 0 + c->vmini(DEST::xyzw, vf8, vf8, vf3); // vmini.xyzw vf8, vf8, vf3 + c->dsll(t1, t1, 4); // dsll t1, t1, 4 + c->vmax(DEST::xyzw, vf9, vf9, vf3); // vmax.xyzw vf9, vf9, vf3 + c->dsll(t2, t2, 4); // dsll t2, t2, 4 + c->vmula_bc(DEST::w, BC::x, vf0, vf7); // vmulax.w acc, vf0, vf7 + c->dsll(t3, t0, 4); // dsll t3, t0, 4 + c->vmadda_bc(DEST::w, BC::y, vf0, vf7); // vmadday.w acc, vf0, vf7 + c->daddu(t0, t1, a2); // daddu t0, t1, a2 + c->vmadd_bc(DEST::w, BC::z, vf7, vf0, vf7); // vmaddz.w vf7, vf0, vf7 + c->daddu(t1, t2, a2); // daddu t1, t2, a2 + c->vrsqrt(vf0, BC::w, vf7, BC::w); // vrsqrt Q, vf0.w, vf7.w + c->daddu(t2, t3, a2); // daddu t2, t3, a2 + c->vftoi0(DEST::xyzw, vf8, vf8); // vftoi0.xyzw vf8, vf8 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf9, vf9); // vftoi0.xyzw vf9, vf9 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf8, 64, a1); // sqc2 vf8, 64(a1) + c->vwaitq(); // vwaitq + c->sqc2(vf9, 80, a1); // sqc2 vf9, 80(a1) + c->vmulq(DEST::xyz, vf6, vf6); // vmulq.xyz vf6, vf6, Q + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf6, 48, a1); // sqc2 vf6, 48(a1) + // nop // sll r0, r0, 0 + c->sw(a3, 60, a1); // sw a3, 60(a1) + bc = c->sgpr64(a0) != 0; // bne a0, r0, L8 + c->lwu(a3, 4, v1); // lwu a3, 4(v1) + if (bc) {goto block_5;} // branch non-likely + + +block_6: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("(method 12 collide-mesh)", execute, 512); +} + +} // namespace method_12_collide_mesh +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_14_collide_mesh { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lwu(v1, 12, a0); // lwu v1, 12(a0) + // nop // sll r0, r0, 0 + c->lwu(a0, 8, a0); // lwu a0, 8(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, a1); // lqc2 vf1, 0(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a1); // lqc2 vf2, 16(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a1); // lqc2 vf3, 32(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf4, 48, a1); // lqc2 vf4, 48(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf13, 0, a2); // lqc2 vf13, 0(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf14, 16, a2); // lqc2 vf14, 16(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf15, 32, a2); // lqc2 vf15, 32(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf16, 48, a2); // lqc2 vf16, 48(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf5, 0, v1); // lqc2 vf5, 0(v1) + // nop // sll r0, r0, 0 + c->lqc2(vf6, 16, v1); // lqc2 vf6, 16(v1) + // nop // sll r0, r0, 0 + c->lqc2(vf7, 32, v1); // lqc2 vf7, 32(v1) + // nop // sll r0, r0, 0 + c->lqc2(vf8, 48, v1); // lqc2 vf8, 48(v1) + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->lqc2(vf9, 64, v1); // lqc2 vf9, 64(v1) + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf5); // vmaddax.xyzw acc, vf1, vf5 + c->lqc2(vf10, 80, v1); // lqc2 vf10, 80(v1) + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf5); // vmadday.xyzw acc, vf2, vf5 + c->lqc2(vf11, 96, v1); // lqc2 vf11, 96(v1) + c->vmadd_bc(DEST::xyzw, BC::z, vf5, vf3, vf5); // vmaddz.xyzw vf5, vf3, vf5 + c->lqc2(vf12, 112, v1); // lqc2 vf12, 112(v1) + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf6); // vmaddax.xyzw acc, vf1, vf6 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf6); // vmadday.xyzw acc, vf2, vf6 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf6, vf3, vf6); // vmaddz.xyzw vf6, vf3, vf6 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf7); // vmaddax.xyzw acc, vf1, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf7); // vmadday.xyzw acc, vf2, vf7 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf7, vf3, vf7); // vmaddz.xyzw vf7, vf3, vf7 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf8); // vmaddax.xyzw acc, vf1, vf8 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf8); // vmadday.xyzw acc, vf2, vf8 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf8, vf3, vf8); // vmaddz.xyzw vf8, vf3, vf8 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + c->sqc2(vf5, 0, a3); // sqc2 vf5, 0(a3) + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf5); // vmaddax.xyzw acc, vf13, vf5 + c->sqc2(vf6, 32, a3); // sqc2 vf6, 32(a3) + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf5); // vmadday.xyzw acc, vf14, vf5 + c->sqc2(vf7, 64, a3); // sqc2 vf7, 64(a3) + c->vmadd_bc(DEST::xyzw, BC::z, vf5, vf15, vf5); // vmaddz.xyzw vf5, vf15, vf5 + c->sqc2(vf8, 96, a3); // sqc2 vf8, 96(a3) + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf6); // vmaddax.xyzw acc, vf13, vf6 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf6); // vmadday.xyzw acc, vf14, vf6 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf6, vf15, vf6); // vmaddz.xyzw vf6, vf15, vf6 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf7); // vmaddax.xyzw acc, vf13, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf7); // vmadday.xyzw acc, vf14, vf7 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf7, vf15, vf7); // vmaddz.xyzw vf7, vf15, vf7 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf8); // vmaddax.xyzw acc, vf13, vf8 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf8); // vmadday.xyzw acc, vf14, vf8 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf8, vf15, vf8); // vmaddz.xyzw vf8, vf15, vf8 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf5, vf5); // vftoi0.xyzw vf5, vf5 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf6, vf6); // vftoi0.xyzw vf6, vf6 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf7, vf7); // vftoi0.xyzw vf7, vf7 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf8, vf8); // vftoi0.xyzw vf8, vf8 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf5, 16, a3); // sqc2 vf5, 16(a3) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->sqc2(vf6, 48, a3); // sqc2 vf6, 48(a3) + c->daddiu(v1, v1, 128); // daddiu v1, v1, 128 + c->sqc2(vf7, 80, a3); // sqc2 vf7, 80(a3) + bc = ((s64)c->sgpr64(a0)) <= 0; // blez a0, L22 + c->sqc2(vf8, 112, a3); // sqc2 vf8, 112(a3) + if (bc) {goto block_3;} // branch non-likely + + +block_1: + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->lqc2(vf5, 0, v1); // lqc2 vf5, 0(v1) + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf9); // vmaddax.xyzw acc, vf1, vf9 + c->lqc2(vf6, 16, v1); // lqc2 vf6, 16(v1) + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf9); // vmadday.xyzw acc, vf2, vf9 + c->lqc2(vf7, 32, v1); // lqc2 vf7, 32(v1) + c->vmadd_bc(DEST::xyzw, BC::z, vf9, vf3, vf9); // vmaddz.xyzw vf9, vf3, vf9 + c->lqc2(vf8, 48, v1); // lqc2 vf8, 48(v1) + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf10); // vmaddax.xyzw acc, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf10); // vmadday.xyzw acc, vf2, vf10 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf10, vf3, vf10); // vmaddz.xyzw vf10, vf3, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf11); // vmaddax.xyzw acc, vf1, vf11 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf11); // vmadday.xyzw acc, vf2, vf11 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf11, vf3, vf11); // vmaddz.xyzw vf11, vf3, vf11 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf12); // vmaddax.xyzw acc, vf1, vf12 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf12); // vmadday.xyzw acc, vf2, vf12 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf12, vf3, vf12); // vmaddz.xyzw vf12, vf3, vf12 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + c->sqc2(vf9, 128, a3); // sqc2 vf9, 128(a3) + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf9); // vmaddax.xyzw acc, vf13, vf9 + c->sqc2(vf10, 160, a3); // sqc2 vf10, 160(a3) + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf9); // vmadday.xyzw acc, vf14, vf9 + c->sqc2(vf11, 192, a3); // sqc2 vf11, 192(a3) + c->vmadd_bc(DEST::xyzw, BC::z, vf9, vf15, vf9); // vmaddz.xyzw vf9, vf15, vf9 + c->sqc2(vf12, 224, a3); // sqc2 vf12, 224(a3) + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf10); // vmaddax.xyzw acc, vf13, vf10 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf10); // vmadday.xyzw acc, vf14, vf10 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf10, vf15, vf10); // vmaddz.xyzw vf10, vf15, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf11); // vmaddax.xyzw acc, vf13, vf11 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf11); // vmadday.xyzw acc, vf14, vf11 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf11, vf15, vf11); // vmaddz.xyzw vf11, vf15, vf11 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf12); // vmaddax.xyzw acc, vf13, vf12 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf12); // vmadday.xyzw acc, vf14, vf12 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf12, vf15, vf12); // vmaddz.xyzw vf12, vf15, vf12 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf9, vf9); // vftoi0.xyzw vf9, vf9 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf10, vf10); // vftoi0.xyzw vf10, vf10 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf11, vf11); // vftoi0.xyzw vf11, vf11 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf12, vf12); // vftoi0.xyzw vf12, vf12 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf9, 144, a3); // sqc2 vf9, 144(a3) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->sqc2(vf10, 176, a3); // sqc2 vf10, 176(a3) + // nop // sll r0, r0, 0 + c->sqc2(vf11, 208, a3); // sqc2 vf11, 208(a3) + bc = ((s64)c->sgpr64(a0)) <= 0; // blez a0, L22 + c->sqc2(vf12, 240, a3); // sqc2 vf12, 240(a3) + if (bc) {goto block_3;} // branch non-likely + + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->lqc2(vf9, 64, v1); // lqc2 vf9, 64(v1) + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf5); // vmaddax.xyzw acc, vf1, vf5 + c->lqc2(vf10, 80, v1); // lqc2 vf10, 80(v1) + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf5); // vmadday.xyzw acc, vf2, vf5 + c->lqc2(vf11, 96, v1); // lqc2 vf11, 96(v1) + c->vmadd_bc(DEST::xyzw, BC::z, vf5, vf3, vf5); // vmaddz.xyzw vf5, vf3, vf5 + c->lqc2(vf12, 112, v1); // lqc2 vf12, 112(v1) + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->daddiu(a3, a3, 256); // daddiu a3, a3, 256 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf6); // vmaddax.xyzw acc, vf1, vf6 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf6); // vmadday.xyzw acc, vf2, vf6 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf6, vf3, vf6); // vmaddz.xyzw vf6, vf3, vf6 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf7); // vmaddax.xyzw acc, vf1, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf7); // vmadday.xyzw acc, vf2, vf7 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf7, vf3, vf7); // vmaddz.xyzw vf7, vf3, vf7 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf8); // vmaddax.xyzw acc, vf1, vf8 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf8); // vmadday.xyzw acc, vf2, vf8 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf8, vf3, vf8); // vmaddz.xyzw vf8, vf3, vf8 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + c->sqc2(vf5, 0, a3); // sqc2 vf5, 0(a3) + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf5); // vmaddax.xyzw acc, vf13, vf5 + c->sqc2(vf6, 32, a3); // sqc2 vf6, 32(a3) + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf5); // vmadday.xyzw acc, vf14, vf5 + c->sqc2(vf7, 64, a3); // sqc2 vf7, 64(a3) + c->vmadd_bc(DEST::xyzw, BC::z, vf5, vf15, vf5); // vmaddz.xyzw vf5, vf15, vf5 + c->sqc2(vf8, 96, a3); // sqc2 vf8, 96(a3) + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf6); // vmaddax.xyzw acc, vf13, vf6 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf6); // vmadday.xyzw acc, vf14, vf6 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf6, vf15, vf6); // vmaddz.xyzw vf6, vf15, vf6 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf7); // vmaddax.xyzw acc, vf13, vf7 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf7); // vmadday.xyzw acc, vf14, vf7 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf7, vf15, vf7); // vmaddz.xyzw vf7, vf15, vf7 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf16, vf0); // vmulaw.xyzw acc, vf16, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf13, vf8); // vmaddax.xyzw acc, vf13, vf8 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf14, vf8); // vmadday.xyzw acc, vf14, vf8 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf8, vf15, vf8); // vmaddz.xyzw vf8, vf15, vf8 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf5, vf5); // vftoi0.xyzw vf5, vf5 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf6, vf6); // vftoi0.xyzw vf6, vf6 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf7, vf7); // vftoi0.xyzw vf7, vf7 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf8, vf8); // vftoi0.xyzw vf8, vf8 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf5, 16, a3); // sqc2 vf5, 16(a3) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->sqc2(vf6, 48, a3); // sqc2 vf6, 48(a3) + c->daddiu(v1, v1, 128); // daddiu v1, v1, 128 + c->sqc2(vf7, 80, a3); // sqc2 vf7, 80(a3) + bc = ((s64)c->sgpr64(a0)) > 0; // bgtz a0, L21 + c->sqc2(vf8, 112, a3); // sqc2 vf8, 112(a3) + if (bc) {goto block_1;} // branch non-likely + + +block_3: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 14 collide-mesh)", execute, 512); +} + +} // namespace method_14_collide_mesh +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/debug.cpp b/game/mips2c/jakx_functions/debug.cpp new file mode 100644 index 0000000000..31f811e6a1 --- /dev/null +++ b/game/mips2c/jakx_functions/debug.cpp @@ -0,0 +1,615 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace draw_boundary_polygon { +struct Cache { + void* clip_polygon_against_negative_hyperplane; // clip-polygon-against-negative-hyperplane + void* clip_polygon_against_positive_hyperplane; // clip-polygon-against-positive-hyperplane +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + // nop // sll r0, r0, 0 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->load_symbol2(t9, cache.clip_polygon_against_positive_hyperplane);// lw t9, clip-polygon-against-positive-hyperplane(s7) + c->mov64(a3, t5); // or a3, t5, r0 + c->mov64(t0, t6); // or t0, t6, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddu(t3, a3, r0); // daddu t3, a3, r0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L36 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t6); // or a3, t6, r0 + c->mov64(t0, t5); // or t0, t5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(t3, a3, 4); // daddiu t3, a3, 4 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L36 + c->load_symbol2(t9, cache.clip_polygon_against_negative_hyperplane);// lw t9, clip-polygon-against-negative-hyperplane(s7) + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t5); // or a3, t5, r0 + c->mov64(t0, t6); // or t0, t6, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddu(t3, a3, r0); // daddu t3, a3, r0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L36 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t6); // or a3, t6, r0 + c->mov64(t0, t5); // or t0, t5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(t3, a3, 4); // daddiu t3, a3, 4 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L36 + c->lw(t0, 4, a1); // lw t0, 4(a1) + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t5); // or a3, t5, r0 + // nop // sll r0, r0, 0 + c->sqc2(vf27, 0, t0); // sqc2 vf27, 0(t0) + c->daddiu(t0, t0, 16); // daddiu t0, t0, 16 + c->sw(t1, -16, t0); // sw t1, -16(t0) + // nop // sll r0, r0, 0 + +block_5: + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a3); // lqc2 vf2, 16(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a3); // lqc2 vf3, 32(a3) + c->vdiv(vf0, BC::w, vf1, BC::w); // vdiv Q, vf0.w, vf1.w + c->vmul(DEST::xyzw, vf1, vf1, vf26); // vmul.xyzw vf1, vf1, vf26 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf2, vf2, vf24); // vadd.xyzw vf2, vf2, vf24 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyz, vf1, vf1); // vmulq.xyz vf1, vf1, Q + c->sqc2(vf3, 16, t0); // sqc2 vf3, 16(t0) + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + c->vadd(DEST::xyzw, vf1, vf1, vf25); // vadd.xyzw vf1, vf1, vf25 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->vmax_bc(DEST::z, BC::z, vf1, vf1, vf0); // vmaxz.z vf1, vf1, vf0 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::w, BC::z, vf1, vf1, vf13); // vminiz.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::w, BC::y, vf1, vf1, vf13); // vmaxy.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->sqc2(vf2, -48, t0); // sqc2 vf2, -48(t0) + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->vftoi4(DEST::xyzw, vf1, vf1); // vftoi4.xyzw vf1, vf1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L35 + c->sqc2(vf1, -16, t0); // sqc2 vf1, -16(t0) + if (bc) {goto block_5;} // branch non-likely + + c->sw(t0, 4, a1); // sw t0, 4(a1) + // nop // sll r0, r0, 0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->daddiu(v0, s7, 4); // daddiu v0, s7, 4 + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + +block_7: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->mov64(v0, s7); // or v0, s7, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.clip_polygon_against_negative_hyperplane = intern_from_c(-1, 0, "clip-polygon-against-negative-hyperplane").c(); + cache.clip_polygon_against_positive_hyperplane = intern_from_c(-1, 0, "clip-polygon-against-positive-hyperplane").c(); + gLinkedFunctionTable.reg("draw-boundary-polygon", execute, 512); +} + +} // namespace draw_boundary_polygon +} // namespace Mips2C +// add draw_boundary_polygon::link to the link callback table for the object file. +// FWD DEC: +namespace draw_boundary_polygon { extern void link(); } + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace render_boundary_tri { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* draw_boundary_polygon; // draw-boundary-polygon +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->mov64(v1, a0); // or v1, a0, r0 + get_fake_spad_addr2(t5, cache.fake_scratchpad_data, 0, c);// lui t5, 28672 + c->ori(t5, t5, 12288); // ori t5, t5, 12288 + get_fake_spad_addr2(t6, cache.fake_scratchpad_data, 0, c);// lui t6, 28672 + c->ori(t6, t6, 14336); // ori t6, t6, 14336 + c->mov64(t0, t5); // or t0, t5, r0 + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, a0); // lqc2 vf1, 0(a0) + c->addiu(t1, r0, 3); // addiu t1, r0, 3 + c->lqc2(vf2, 16, a0); // lqc2 vf2, 16(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a0); // lqc2 vf3, 32(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf1); // vmulax.xyzw acc, vf31, vf1 + c->lqc2(vf4, 48, a0); // lqc2 vf4, 48(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf1); // vmadday.xyzw acc, vf30, vf1 + c->lqc2(vf5, 64, a0); // lqc2 vf5, 64(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf1); // vmaddaz.xyzw acc, vf29, vf1 + c->lqc2(vf6, 80, a0); // lqc2 vf6, 80(a0) + c->vmadd_bc(DEST::xyzw, BC::w, vf1, vf28, vf1); // vmaddw.xyzw vf1, vf28, vf1 + c->lqc2(vf7, 96, a0); // lqc2 vf7, 96(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf8, 112, a0); // lqc2 vf8, 112(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf4); // vmulax.xyzw acc, vf31, vf4 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf4); // vmadday.xyzw acc, vf30, vf4 + c->sqc2(vf2, 16, t0); // sqc2 vf2, 16(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf4); // vmaddaz.xyzw acc, vf29, vf4 + c->sqc2(vf3, 32, t0); // sqc2 vf3, 32(t0) + c->vmadd_bc(DEST::xyzw, BC::w, vf4, vf28, vf4); // vmaddw.xyzw vf4, vf28, vf4 + c->sqc2(vf5, 64, t0); // sqc2 vf5, 64(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf3, 80, t0); // sqc2 vf3, 80(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf7); // vmulax.xyzw acc, vf31, vf7 + c->sqc2(vf8, 112, t0); // sqc2 vf8, 112(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf7); // vmadday.xyzw acc, vf30, vf7 + c->sqc2(vf3, 128, t0); // sqc2 vf3, 128(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf7); // vmaddaz.xyzw acc, vf29, vf7 + c->sqc2(vf2, 160, t0); // sqc2 vf2, 160(t0) + c->vmadd_bc(DEST::xyzw, BC::w, vf7, vf28, vf7); // vmaddw.xyzw vf7, vf28, vf7 + c->sqc2(vf3, 176, t0); // sqc2 vf3, 176(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 144, t0); // sqc2 vf1, 144(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf4, 48, t0); // sqc2 vf4, 48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf7, 96, t0); // sqc2 vf7, 96(t0) + c->load_symbol2(t9, cache.draw_boundary_polygon); // lw t9, draw-boundary-polygon(s7) + c->vsub(DEST::xyzw, vf4, vf4, vf1); // vsub.xyzw vf4, vf4, vf1 + // nop // sll r0, r0, 0 + c->vsub(DEST::xyzw, vf7, vf7, vf1); // vsub.xyzw vf7, vf7, vf1 + // nop // sll r0, r0, 0 + c->vopmula(vf4, vf7); // vopmula.xyz acc, vf4, vf7 + // nop // sll r0, r0, 0 + c->vopmsub(vf10, vf7, vf4); // vopmsub.xyz vf10, vf7, vf4 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf10, vf10, vf1); // vmul.xyzw vf10, vf10, vf1 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::y, BC::x, vf10, vf10, vf10); // vaddx.y vf10, vf10, vf10 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::y, BC::z, vf10, vf10, vf10); // vaddz.y vf10, vf10, vf10 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(v0, vf10); // qmfc2.i v0, vf10 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(v0)) >= 0; // bgez v0, L31 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + // Unknown instr: jr t9 + draw_boundary_polygon::execute(ctxt); + goto end_of_function; + // nop // sll r0, r0, 0 + +block_2: + c->sqc2(vf6, 32, t0); // sqc2 vf6, 32(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 80, t0); // sqc2 vf6, 80(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 128, t0); // sqc2 vf6, 128(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 176, t0); // sqc2 vf6, 176(t0) + // nop // sll r0, r0, 0 + // Unknown instr: jr t9 + draw_boundary_polygon::execute(ctxt); + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.draw_boundary_polygon = intern_from_c(-1, 0, "draw-boundary-polygon").c(); + gLinkedFunctionTable.reg("render-boundary-tri", execute, 512); +} + +} // namespace render_boundary_tri +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace render_boundary_quad { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* draw_boundary_polygon; // draw-boundary-polygon +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->mov64(v1, a0); // or v1, a0, r0 + c->mov64(v1, a2); // or v1, a2, r0 + c->lqc2(vf14, 780, a2); // lqc2 vf14, 780(a2) + get_fake_spad_addr2(t5, cache.fake_scratchpad_data, 0, c);// lui t5, 28672 + c->ori(t5, t5, 12288); // ori t5, t5, 12288 + get_fake_spad_addr2(t6, cache.fake_scratchpad_data, 0, c);// lui t6, 28672 + c->ori(t6, t6, 14336); // ori t6, t6, 14336 + c->mov64(t0, t5); // or t0, t5, r0 + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, a0); // lqc2 vf1, 0(a0) + c->addiu(t1, r0, 4); // addiu t1, r0, 4 + c->lqc2(vf2, 16, a0); // lqc2 vf2, 16(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a0); // lqc2 vf3, 32(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf1); // vmulax.xyzw acc, vf31, vf1 + c->lqc2(vf4, 48, a0); // lqc2 vf4, 48(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf1); // vmadday.xyzw acc, vf30, vf1 + c->lqc2(vf5, 64, a0); // lqc2 vf5, 64(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf1); // vmaddaz.xyzw acc, vf29, vf1 + c->lqc2(vf6, 80, a0); // lqc2 vf6, 80(a0) + c->vmadd_bc(DEST::xyzw, BC::w, vf1, vf28, vf1); // vmaddw.xyzw vf1, vf28, vf1 + c->lqc2(vf7, 96, a0); // lqc2 vf7, 96(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf8, 112, a0); // lqc2 vf8, 112(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf4); // vmulax.xyzw acc, vf31, vf4 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf4); // vmadday.xyzw acc, vf30, vf4 + c->lqc2(vf10, 144, a0); // lqc2 vf10, 144(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf4); // vmaddaz.xyzw acc, vf29, vf4 + c->lqc2(vf11, 160, a0); // lqc2 vf11, 160(a0) + c->vmadd_bc(DEST::xyzw, BC::w, vf4, vf28, vf4); // vmaddw.xyzw vf4, vf28, vf4 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf2, 16, t0); // sqc2 vf2, 16(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf7); // vmulax.xyzw acc, vf31, vf7 + c->sqc2(vf3, 32, t0); // sqc2 vf3, 32(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf7); // vmadday.xyzw acc, vf30, vf7 + c->sqc2(vf5, 64, t0); // sqc2 vf5, 64(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf7); // vmaddaz.xyzw acc, vf29, vf7 + c->sqc2(vf3, 80, t0); // sqc2 vf3, 80(t0) + c->vmadd_bc(DEST::xyzw, BC::w, vf7, vf28, vf7); // vmaddw.xyzw vf7, vf28, vf7 + c->sqc2(vf8, 112, t0); // sqc2 vf8, 112(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf3, 128, t0); // sqc2 vf3, 128(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf10); // vmulax.xyzw acc, vf31, vf10 + c->sqc2(vf11, 160, t0); // sqc2 vf11, 160(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf10); // vmadday.xyzw acc, vf30, vf10 + c->sqc2(vf3, 176, t0); // sqc2 vf3, 176(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf10); // vmaddaz.xyzw acc, vf29, vf10 + c->sqc2(vf2, 208, t0); // sqc2 vf2, 208(t0) + c->vmadd_bc(DEST::xyzw, BC::w, vf10, vf28, vf10); // vmaddw.xyzw vf10, vf28, vf10 + c->sqc2(vf3, 224, t0); // sqc2 vf3, 224(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 192, t0); // sqc2 vf1, 192(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf4, 48, t0); // sqc2 vf4, 48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf7, 96, t0); // sqc2 vf7, 96(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf10, 144, t0); // sqc2 vf10, 144(t0) + c->load_symbol2(t9, cache.draw_boundary_polygon); // lw t9, draw-boundary-polygon(s7) + c->vsub(DEST::xyzw, vf4, vf4, vf1); // vsub.xyzw vf4, vf4, vf1 + // nop // sll r0, r0, 0 + c->vsub(DEST::xyzw, vf7, vf7, vf1); // vsub.xyzw vf7, vf7, vf1 + // nop // sll r0, r0, 0 + c->vopmula(vf4, vf7); // vopmula.xyz acc, vf4, vf7 + // nop // sll r0, r0, 0 + c->vopmsub(vf10, vf7, vf4); // vopmsub.xyz vf10, vf7, vf4 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf10, vf10, vf1); // vmul.xyzw vf10, vf10, vf1 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::y, BC::x, vf10, vf10, vf10); // vaddx.y vf10, vf10, vf10 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::y, BC::z, vf10, vf10, vf10); // vaddz.y vf10, vf10, vf10 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(v0, vf10); // qmfc2.i v0, vf10 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(v0)) >= 0; // bgez v0, L33 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + // Unknown instr: jr t9 + // nop // sll r0, r0, 0 + +block_2: + c->sqc2(vf6, 32, t0); // sqc2 vf6, 32(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 80, t0); // sqc2 vf6, 80(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 128, t0); // sqc2 vf6, 128(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 176, t0); // sqc2 vf6, 176(t0) + // nop // sll r0, r0, 0 + // Unknown instr: jr t9 + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.draw_boundary_polygon = intern_from_c(-1, 0, "draw-boundary-polygon").c(); + gLinkedFunctionTable.reg("render-boundary-quad", execute, 512); +} + +} // namespace render_boundary_quad +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace init_boundary_regs { +struct Cache { + void* sky_work; // *sky-work* + void* view_get_active_math_camera; // view-get-active-math-camera +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->load_symbol2(t9, cache.view_get_active_math_camera);// lw t9, view-get-active-math-camera(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a2, v0); // or a2, v0, r0 + c->load_symbol2(v1, cache.sky_work); // lw v1, *sky-work*(s7) + c->daddiu(v1, v1, 1024); // daddiu v1, v1, 1024 + c->lwc1(f0, 908, a2); // lwc1 f0, 908(a2) + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->lwc1(f0, 128, a2); // lwc1 f0, 128(a2) + c->swc1(f0, 4, v1); // swc1 f0, 4(v1) + c->lwc1(f0, 124, a2); // lwc1 f0, 124(a2) + c->swc1(f0, 8, v1); // swc1 f0, 8(v1) + c->lui(a0, 17727); // lui a0, 17727 + c->ori(a0, a0, 61440); // ori a0, a0, 61440 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + c->lqc2(vf31, 572, a2); // lqc2 vf31, 572(a2) + c->lqc2(vf30, 588, a2); // lqc2 vf30, 588(a2) + c->lqc2(vf29, 604, a2); // lqc2 vf29, 604(a2) + c->lqc2(vf28, 620, a2); // lqc2 vf28, 620(a2) + c->lqc2(vf14, 780, a2); // lqc2 vf14, 780(a2) + c->lqc2(vf26, 796, a2); // lqc2 vf26, 796(a2) + c->lqc2(vf25, 812, a2); // lqc2 vf25, 812(a2) + c->load_symbol2(v1, cache.sky_work); // lw v1, *sky-work*(s7) + c->lqc2(vf13, 1024, v1); // lqc2 vf13, 1024(v1) + c->vmul(DEST::xyzw, vf31, vf31, vf14); // vmul.xyzw vf31, vf31, vf14 + c->vmul(DEST::xyzw, vf30, vf30, vf14); // vmul.xyzw vf30, vf30, vf14 + c->vmul(DEST::xyzw, vf29, vf29, vf14); // vmul.xyzw vf29, vf29, vf14 + c->vmul(DEST::xyzw, vf28, vf28, vf14); // vmul.xyzw vf28, vf28, vf14 + c->vmove(DEST::xyzw, vf24, vf0); // vmove.xyzw vf24, vf0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.sky_work = intern_from_c(-1, 0, "*sky-work*").c(); + cache.view_get_active_math_camera = intern_from_c(-1, 0, "view-get-active-math-camera").c(); + gLinkedFunctionTable.reg("init-boundary-regs", execute, 256); +} + +} // namespace init_boundary_regs +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace debug_line_clip { +struct Cache { + void* view_get_active_math_camera; // view-get-active-math-camera +} cache; + +void qfsrv_same_mtsab_4(ExecutionContext* c, int reg) { + u32 temp[4]; + auto& val = c->gprs[reg]; + temp[0] = val.du32[1]; + temp[1] = val.du32[2]; + temp[2] = val.du32[3]; + temp[3] = val.du32[0]; + val.du32[0] = temp[0]; + val.du32[1] = temp[1]; + val.du32[2] = temp[2]; + val.du32[3] = temp[3]; +} + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s3, 16, sp); // sq s3, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s5, 48, sp); // sq s5, 48(sp) + c->sq(gp, 64, sp); // sq gp, 64(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a1); // or s5, a1, r0 + c->mov64(s4, a2); // or s4, a2, r0 + c->mov64(s3, a3); // or s3, a3, r0 + c->load_symbol2(t9, cache.view_get_active_math_camera);// lw t9, view-get-active-math-camera(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->lqc2(vf9, 0, s4); // lqc2 vf9, 0(s4) + c->lqc2(vf10, 0, s3); // lqc2 vf10, 0(s3) + c->lqc2(vf16, 940, v1); // lqc2 vf16, 940(v1) + c->lqc2(vf17, 956, v1); // lqc2 vf17, 956(v1) + c->lqc2(vf18, 972, v1); // lqc2 vf18, 972(v1) + c->lqc2(vf19, 988, v1); // lqc2 vf19, 988(v1) + c->vmula_bc(DEST::xyzw, BC::x, vf16, vf9); // vmulax.xyzw acc, vf16, vf9 + c->vmadda_bc(DEST::xyzw, BC::y, vf17, vf9); // vmadday.xyzw acc, vf17, vf9 + c->vmadda_bc(DEST::xyzw, BC::z, vf18, vf9); // vmaddaz.xyzw acc, vf18, vf9 + c->vmsub_bc(DEST::xyzw, BC::w, vf11, vf19, vf0); // vmsubw.xyzw vf11, vf19, vf0 + c->vmula_bc(DEST::xyzw, BC::x, vf16, vf10); // vmulax.xyzw acc, vf16, vf10 + c->vmadda_bc(DEST::xyzw, BC::y, vf17, vf10); // vmadday.xyzw acc, vf17, vf10 + c->vmadda_bc(DEST::xyzw, BC::z, vf18, vf10); // vmaddaz.xyzw acc, vf18, vf10 + c->vmsub_bc(DEST::xyzw, BC::w, vf12, vf19, vf0); // vmsubw.xyzw vf12, vf19, vf0 + c->mov128_gpr_vf(v1, vf11); // qmfc2.i v1, vf11 + c->pcgtw(v1, r0, v1); // pcgtw v1, r0, v1 + c->ppach(a0, r0, v1); // ppach a0, r0, v1 + c->mov128_gpr_vf(v1, vf12); // qmfc2.i v1, vf12 + c->pcgtw(v1, r0, v1); // pcgtw v1, r0, v1 + c->ppach(a1, r0, v1); // ppach a1, r0, v1 + c->and_(v1, a0, a1); // and v1, a0, a1 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L258 + // nop // sll r0, r0, 0 + if (bc) {goto block_10;} // branch non-likely + + c->vmove(DEST::xyzw, vf13, vf9); // vmove.xyzw vf13, vf9 + c->vmove(DEST::xyzw, vf14, vf10); // vmove.xyzw vf14, vf10 + c->or_(a0, a0, a1); // or a0, a0, a1 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L257 + // nop // sll r0, r0, 0 + if (bc) {goto block_9;} // branch non-likely + + c->mov128_gpr_vf(a0, vf11); // qmfc2.i a0, vf11 + c->mov128_gpr_vf(a1, vf12); // qmfc2.i a1, vf12 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->mtc1(f1, r0); // mtc1 f1, r0 + c->lui(a2, 16256); // lui a2, 16256 + c->mtc1(f2, a2); // mtc1 f2, a2 + c->addiu(a2, r0, 3); // addiu a2, r0, 3 + // Unknown instr: mtsab r0, 4 + +block_3: + c->mtc1(f3, a0); // mtc1 f3, a0 + c->mtc1(f4, a1); // mtc1 f4, a1 + c->subs(f5, f3, f4); // sub.s f5, f3, f4 + cop1_bc = c->fprs[f3] < c->fprs[f0]; // c.lt.s f3, f0 + bc = !cop1_bc; // bc1f L255 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->divs(f6, f3, f5); // div.s f6, f3, f5 + c->maxs(f1, f6, f1); // max.s f1, f6, f1 + +block_5: + cop1_bc = c->fprs[f4] < c->fprs[f0]; // c.lt.s f4, f0 + bc = !cop1_bc; // bc1f L256 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->divs(f3, f3, f5); // div.s f3, f3, f5 + c->mins(f2, f3, f2); // min.s f2, f3, f2 + +block_7: + // Unknown instr: qfsrv a0, a0, a0 + qfsrv_same_mtsab_4(c, a0); + // Unknown instr: qfsrv a1, a1, a1 + qfsrv_same_mtsab_4(c, a1); + bc = c->sgpr64(a2) != 0; // bne a2, r0, L254 + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + if (bc) {goto block_3;} // branch non-likely + + c->mfc1(a0, f1); // mfc1 a0, f1 + c->mfc1(a1, f2); // mfc1 a1, f2 + c->mov128_vf_gpr(vf20, a0); // qmtc2.i vf20, a0 + c->mov128_vf_gpr(vf21, a1); // qmtc2.i vf21, a1 + c->vsub(DEST::xyzw, vf15, vf10, vf9); // vsub.xyzw vf15, vf10, vf9 + c->vmul_bc(DEST::xyzw, BC::x, vf13, vf15, vf20); // vmulx.xyzw vf13, vf15, vf20 + c->vadd(DEST::xyzw, vf13, vf9, vf13); // vadd.xyzw vf13, vf9, vf13 + c->vmul_bc(DEST::xyzw, BC::x, vf14, vf15, vf21); // vmulx.xyzw vf14, vf15, vf21 + c->vadd(DEST::xyzw, vf14, vf9, vf14); // vadd.xyzw vf14, vf9, vf14 + +block_9: + c->sqc2(vf13, 0, gp); // sqc2 vf13, 0(gp) + c->sqc2(vf14, 0, s5); // sqc2 vf14, 0(s5) + +block_10: + c->daddiu(v0, s7, 4); // daddiu v0, s7, 4 + c->movn(v0, s7, v1); // movn v0, s7, v1 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 64, sp); // lq gp, 64(sp) + c->lq(s5, 48, sp); // lq s5, 48(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s3, 16, sp); // lq s3, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.view_get_active_math_camera = intern_from_c(-1, 0, "view-get-active-math-camera").c(); + gLinkedFunctionTable.reg("debug-line-clip?", execute, 256); +} + +} // namespace debug_line_clip +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/font.cpp b/game/mips2c/jakx_functions/font.cpp new file mode 100644 index 0000000000..8e6241f431 --- /dev/null +++ b/game/mips2c/jakx_functions/font.cpp @@ -0,0 +1 @@ +// TODO - jakx's font code has been altered quite heavily, causes a mips2c error \ No newline at end of file diff --git a/game/mips2c/jakx_functions/foreground.cpp b/game/mips2c/jakx_functions/foreground.cpp new file mode 100644 index 0000000000..bc4677af00 --- /dev/null +++ b/game/mips2c/jakx_functions/foreground.cpp @@ -0,0 +1,1676 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace foreground_draw_hud { +struct Cache { + void* bone_calculation_list; // *bone-calculation-list* + void* display; // *display* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* foreground; // *foreground* + void* foreground_generic_merc; // foreground-generic-merc +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lwu(a2, 4, a1); // lwu a2, 4(a1) + c->daddiu(v1, a2, 64); // daddiu v1, a2, 64 + c->andi(a3, v1, 48); // andi a3, v1, 48 + bc = c->sgpr64(a3) == 0; // beq a3, r0, L2 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->daddiu(v1, v1, 64); // daddiu v1, v1, 64 + c->dsubu(v1, v1, a3); // dsubu v1, v1, a3 + +block_2: + c->lwu(a3, 20, a0); // lwu a3, 20(a0) + c->lw(a3, 8, a3); // lw a3, 8(a3) + c->daddiu(t1, a3, 3); // daddiu t1, a3, 3 + c->dsll(a3, t1, 7); // dsll a3, t1, 7 + get_fake_spad_addr2(t0, cache.fake_scratchpad_data, 0, c);// lui t0, 28672 + c->daddu(t0, r0, t0); // daddu t0, r0, t0 + c->lwu(t2, 16, a0); // lwu t2, 16(a0) + c->lwu(t2, 44, t2); // lwu t2, 44(t2) + c->sw(t2, 24, t0); // sw t2, 24(t0) + c->lwu(t2, 28, a0); // lwu t2, 28(a0) + c->daddiu(t2, t2, 12); // daddiu t2, t2, 12 + c->sw(t2, 28, t0); // sw t2, 28(t0) + c->sw(t1, 32, t0); // sw t1, 32(t0) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 0, t0); // swc1 f0, 0(t0) + c->sw(a1, 40, t0); // sw a1, 40(t0) + c->addiu(a1, r0, 480); // addiu a1, r0, 480 + c->lbu(t1, 130, a0); // lbu t1, 130(a0) + get_fake_spad_addr2(t2, cache.fake_scratchpad_data, 0, c);// lui t2, 28672 + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->lbu(t1, 64, t1); // lbu t1, 64(t1) + c->multu3(a1, a1, t1); // multu3 a1, a1, t1 + c->daddiu(a1, a1, 96); // daddiu a1, a1, 96 + get_fake_spad_addr2(t1, cache.fake_scratchpad_data, 0, c);// lui t1, 28672 + c->daddu(a1, a1, t1); // daddu a1, a1, t1 + c->sw(a1, 52, t0); // sw a1, 52(t0) + c->mov64(t1, v1); // or t1, v1, r0 + c->addiu(t2, r0, 2); // addiu t2, r0, 2 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(t5, r0, a1); // daddu t5, r0, a1 + c->load_symbol2(a1, cache.bone_calculation_list); // lw a1, *bone-calculation-list*(s7) + c->mov64(t0, a2); // or t0, a2, r0 + c->lwu(t3, 24, t5); // lwu t3, 24(t5) + c->lwu(t4, 28, t5); // lwu t4, 28(t5) + c->lwu(t5, 32, t5); // lwu t5, 32(t5) + c->mov64(t6, t0); // or t6, t0, r0 + c->sh(t2, 0, t6); // sh t2, 0(t6) + c->sh(t5, 2, t6); // sh t5, 2(t6) + c->sw(t1, 4, t6); // sw t1, 4(t6) + c->sw(t3, 8, t6); // sw t3, 8(t6) + c->sw(t4, 12, t6); // sw t4, 12(t6) + c->sw(r0, 32, t6); // sw r0, 32(t6) + c->lwu(t1, 4, a1); // lwu t1, 4(a1) + bc = c->sgpr64(t1) == 0; // beq t1, r0, L3 + c->mov64(t1, s7); // or t1, s7, r0 + if (bc) {goto block_4;} // branch non-likely + + c->lwu(t1, 4, a1); // lwu t1, 4(a1) + c->sw(t0, 32, t1); // sw t0, 32(t1) + c->mov64(t1, t0); // or t1, t0, r0 + +block_4: + c->lwu(t1, 0, a1); // lwu t1, 0(a1) + bc = c->sgpr64(t1) != 0; // bne t1, r0, L4 + c->mov64(t1, s7); // or t1, s7, r0 + if (bc) {goto block_6;} // branch non-likely + + c->sw(t0, 0, a1); // sw t0, 0(a1) + c->mov64(t1, t0); // or t1, t0, r0 + +block_6: + c->sw(t0, 4, a1); // sw t0, 4(a1) + c->daddiu(a1, a2, 48); // daddiu a1, a2, 48 + c->daddu(a1, v1, a3); // daddu a1, v1, a3 + c->sw(v1, 36, at); // sw v1, 36(at) + c->load_symbol2(v1, cache.foreground); // lw v1, *foreground*(s7) + c->daddiu(v1, v1, 9152); // daddiu v1, v1, 9152 + c->addiu(a2, r0, 1); // addiu a2, r0, 1 + c->lbu(a3, 8, a0); // lbu a3, 8(a0) + bc = c->sgpr64(a3) != c->sgpr64(a2); // bne a3, a2, L14 + c->mov64(a2, s7); // or a2, s7, r0 + if (bc) {goto block_25;} // branch non-likely + + c->lwu(a2, 32, a0); // lwu a2, 32(a0) + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + //beq r0, r0, L13 // beq r0, r0, L13 + // nop // sll r0, r0, 0 + goto block_22; // branch always + + +block_8: + c->dsll(t0, a3, 5); // dsll t0, a3, 5 + c->daddiu(t0, t0, 172); // daddiu t0, t0, 172 + c->daddu(t0, t0, a2); // daddu t0, t0, a2 + c->lbu(t0, 27, t0); // lbu t0, 27(t0) + c->andi(t0, t0, 1); // andi t0, t0, 1 + bc = c->sgpr64(t0) == 0; // beq t0, r0, L9 + // nop // sll r0, r0, 0 + if (bc) {goto block_17;} // branch non-likely + + c->daddu(t1, r0, v1); // daddu t1, r0, v1 + c->addiu(t0, r0, 9264); // addiu t0, r0, 9264 + get_fake_spad_addr2(t2, cache.fake_scratchpad_data, 0, c);// lui t2, 28672 + c->daddu(t2, t0, t2); // daddu t2, t0, t2 + c->addiu(t0, r0, 7); // addiu t0, r0, 7 + c->daddiu(t3, t0, -4); // daddiu t3, t0, -4 + c->mov64(t1, t1); // or t1, t1, r0 + bc = ((s64)c->sgpr64(t3)) < 0; // bltz t3, L7 + c->mov64(t2, t2); // or t2, t2, r0 + if (bc) {goto block_11;} // branch non-likely + + +block_10: + // nop // sll r0, r0, 0 + c->lq(t6, 0, t2); // lq t6, 0(t2) + // nop // sll r0, r0, 0 + c->lq(t3, 16, t2); // lq t3, 16(t2) + c->daddiu(t0, t0, -4); // daddiu t0, t0, -4 + c->lq(t4, 32, t2); // lq t4, 32(t2) + c->daddiu(t1, t1, 64); // daddiu t1, t1, 64 + c->lq(t5, 48, t2); // lq t5, 48(t2) + c->daddiu(t2, t2, 64); // daddiu t2, t2, 64 + c->sq(t6, -64, t1); // sq t6, -64(t1) + c->daddiu(t6, t0, -4); // daddiu t6, t0, -4 + c->sq(t3, -48, t1); // sq t3, -48(t1) + // nop // sll r0, r0, 0 + c->sq(t4, -32, t1); // sq t4, -32(t1) + bc = ((s64)c->sgpr64(t6)) >= 0; // bgez t6, L6 + c->sq(t5, -16, t1); // sq t5, -16(t1) + if (bc) {goto block_10;} // branch non-likely + + +block_11: + bc = c->sgpr64(t0) == 0; // beq t0, r0, L8 + c->lq(t3, 0, t2); // lq t3, 0(t2) + if (bc) {goto block_16;} // branch non-likely + + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, 16); // daddiu t1, t1, 16 + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(t3, -16, t1); // sq t3, -16(t1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L8 + c->lq(t3, 0, t2); // lq t3, 0(t2) + if (bc) {goto block_16;} // branch non-likely + + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, 16); // daddiu t1, t1, 16 + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(t3, -16, t1); // sq t3, -16(t1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L8 + c->lq(t3, 0, t2); // lq t3, 0(t2) + if (bc) {goto block_16;} // branch non-likely + + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, 16); // daddiu t1, t1, 16 + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(t3, -16, t1); // sq t3, -16(t1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L8 + c->lq(t3, 0, t2); // lq t3, 0(t2) + if (bc) {goto block_16;} // branch non-likely + + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, 16); // daddiu t1, t1, 16 + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(t3, -16, t1); // sq t3, -16(t1) + +block_16: + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + // Unknown instr: ld t0, L218(fp) + // L218: + // .word 0x80808080 + // .word 0x0 + c->gprs[t0].du32[0] = 0x80808080; + c->gprs[t0].du32[1] = 0x0; + c->dsll(t1, a3, 3); // dsll t1, a3, 3 + c->daddu(t1, v1, t1); // daddu t1, v1, t1 + c->sw(t0, 124, t1); // sw t0, 124(t1) + c->addiu(t0, r0, 2); // addiu t0, r0, 2 + c->dsll(t1, a3, 3); // dsll t1, a3, 3 + c->daddu(t1, v1, t1); // daddu t1, v1, t1 + c->sb(t0, 128, t1); // sb t0, 128(t1) + //beq r0, r0, L10 // beq r0, r0, L10 + // nop // sll r0, r0, 0 + goto block_18; // branch always + + +block_17: + c->addiu(t0, r0, 2); // addiu t0, r0, 2 + c->dsll(t1, a3, 3); // dsll t1, a3, 3 + c->daddu(t1, v1, t1); // daddu t1, v1, t1 + c->sb(t0, 128, t1); // sb t0, 128(t1) + +block_18: + c->dsll(t0, a3, 3); // dsll t0, a3, 3 + c->daddu(t0, v1, t0); // daddu t0, v1, t0 + c->sb(r0, 130, t0); // sb r0, 130(t0) + c->dsll(t0, a3, 5); // dsll t0, a3, 5 + c->daddu(t0, a2, t0); // daddu t0, a2, t0 + c->lbu(t0, 189, t0); // lbu t0, 189(t0) + c->andi(t0, t0, 128); // andi t0, t0, 128 + bc = c->sgpr64(t0) == 0; // beq t0, r0, L11 + // nop // sll r0, r0, 0 + if (bc) {goto block_20;} // branch non-likely + + c->addiu(t0, r0, 1); // addiu t0, r0, 1 + //beq r0, r0, L12 // beq r0, r0, L12 + // nop // sll r0, r0, 0 + goto block_21; // branch always + + +block_20: + c->addiu(t0, r0, 0); // addiu t0, r0, 0 + +block_21: + c->dsll(t1, a3, 3); // dsll t1, a3, 3 + c->daddu(t1, v1, t1); // daddu t1, v1, t1 + c->sb(t0, 129, t1); // sb t0, 129(t1) + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + +block_22: + c->lwu(t0, 68, a2); // lwu t0, 68(a2) + c->slt(t0, a3, t0); // slt t0, a3, t0 + bc = c->sgpr64(t0) != 0; // bne t0, r0, L5 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->load_symbol2(v1, cache.display); // lw v1, *display*(s7) + c->ld(v1, 164, v1); // ld v1, 164(v1) + c->andi(v1, v1, 4096); // andi v1, v1, 4096 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L14 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_25;} // branch non-likely + + c->load_symbol2(t9, cache.foreground_generic_merc);// lw t9, foreground-generic-merc(s7) + c->addiu(a2, r0, 1); // addiu a2, r0, 1 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a1, v0); // or a1, v0, r0 + c->mov64(v1, a1); // or v1, a1, r0 + +block_25: + c->andi(v1, a1, 48); // andi v1, a1, 48 + c->mov128_gpr_gpr(a0, r0); // por a0, r0, r0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L15 + c->lui(a0, 8192); // lui a0, 8192 + if (bc) {goto block_27;} // branch non-likely + + c->sq(a0, 0, a1); // sq a0, 0(a1) + c->mov64(a0, a1); // or a0, a1, r0 + c->dsubu(v1, a1, v1); // dsubu v1, a1, v1 + c->daddiu(a1, v1, 64); // daddiu a1, v1, 64 + c->sw(a1, 4, a0); // sw a1, 4(a0) + +block_27: + c->lui(v1, 4095); // lui v1, 4095 + c->ori(v1, v1, 65535); // ori v1, v1, 65535 + c->and_(v1, a1, v1); // and v1, a1, v1 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lwu(a0, 40, a0); // lwu a0, 40(a0) + c->sw(v1, 4, a0); // sw v1, 4(a0) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.bone_calculation_list = intern_from_c(-1, 0, "*bone-calculation-list*").c(); + cache.display = intern_from_c(-1, 0, "*display*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.foreground = intern_from_c(-1, 0, "*foreground*").c(); + cache.foreground_generic_merc = intern_from_c(-1, 0, "foreground-generic-merc").c(); + gLinkedFunctionTable.reg("foreground-draw-hud", execute, 256); +} + +} // namespace foreground_draw_hud +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace foreground_check_longest_edge_asm { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* view_get_active_math_camera; // view-get-active-math-camera +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + float acc; + c->daddiu(sp, sp, -64); // daddiu sp, sp, -64 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s4, 16, sp); // sq s4, 16(sp) + c->sq(s5, 32, sp); // sq s5, 32(sp) + c->sq(gp, 48, sp); // sq gp, 48(sp) + c->mov64(s4, a0); // or s4, a0, r0 + c->mov64(s5, a1); // or s5, a1, r0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->mov64(gp, s7); // or gp, s7, r0 + c->load_symbol2(t9, cache.view_get_active_math_camera);// lw t9, view-get-active-math-camera(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->lwc1(f0, 124, s4); // lwc1 f0, 124(s4) + c->lwc1(f7, 9376, at); // lwc1 f7, 9376(at) + c->lwc1(f2, 9380, at); // lwc1 f2, 9380(at) + c->lwc1(f5, 9384, at); // lwc1 f5, 9384(at) + c->lwc1(f4, 184, s4); // lwc1 f4, 184(s4) + c->lwc1(f12, 0, v1); // lwc1 f12, 0(v1) + c->lwc1(f11, 64, v1); // lwc1 f11, 64(v1) + c->mtc1(f1, s5); // mtc1 f1, s5 + c->mtc1(f9, r0); // mtc1 f9, r0 + c->mtc1(f10, r0); // mtc1 f10, r0 + c->mtc1(f3, r0); // mtc1 f3, r0 + c->mtc1(f3, r0); // mtc1 f3, r0 + c->mtc1(f6, r0); // mtc1 f6, r0 + c->mtc1(f8, r0); // mtc1 f8, r0 + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f6, a0); // mtc1 f6, a0 + cop1_bc = c->fprs[f1] < c->fprs[f11]; // c.lt.s f1, f11 + bc = cop1_bc; // bc1t L102 + // nop // sll r0, r0, 0 + if (bc) {goto block_37;} // branch non-likely + + c->lwc1(f11, 12, v1); // lwc1 f11, 12(v1) + c->lwc1(f13, 16, v1); // lwc1 f13, 16(v1) + c->muls(f11, f11, f12); // mul.s f11, f11, f12 + c->muls(f13, f13, f12); // mul.s f13, f13, f12 + c->subs(f14, f5, f4); // sub.s f14, f5, f4 + cop1_bc = c->fprs[f12] < c->fprs[f14]; // c.lt.s f12, f14 + bc = !cop1_bc; // bc1f L86 + c->lwc1(f12, 60, v1); // lwc1 f12, 60(v1) + if (bc) {goto block_3;} // branch non-likely + + c->muls(f12, f14, f12); // mul.s f12, f14, f12 + cop1_bc = c->fprs[f0] < c->fprs[f12]; // c.lt.s f0, f12 + bc = cop1_bc; // bc1t L101 + // nop // sll r0, r0, 0 + if (bc) {goto block_36;} // branch non-likely + + +block_3: + c->subs(f14, f2, f4); // sub.s f14, f2, f4 + cop1_bc = c->fprs[f13] < c->fprs[f14]; // c.lt.s f13, f14 + bc = !cop1_bc; // bc1f L87 + c->lwc1(f12, 56, v1); // lwc1 f12, 56(v1) + if (bc) {goto block_5;} // branch non-likely + + //beq r0, r0, L88 // beq r0, r0, L88 + c->muls(f10, f14, f12); // mul.s f10, f14, f12 + goto block_7; // branch always + + +block_5: + c->adds(f14, f2, f4); // add.s f14, f2, f4 + c->negs(f13, f13); // neg.s f13, f13 + cop1_bc = c->fprs[f14] < c->fprs[f13]; // c.lt.s f14, f13 + bc = !cop1_bc; // bc1f L88 + c->negs(f13, f14); // neg.s f13, f14 + if (bc) {goto block_7;} // branch non-likely + + c->muls(f10, f13, f12); // mul.s f10, f13, f12 + +block_7: + cop1_bc = c->fprs[f0] < c->fprs[f10]; // c.lt.s f0, f10 + bc = cop1_bc; // bc1t L101 + // nop // sll r0, r0, 0 + if (bc) {goto block_36;} // branch non-likely + + c->subs(f12, f7, f4); // sub.s f12, f7, f4 + cop1_bc = c->fprs[f11] < c->fprs[f12]; // c.lt.s f11, f12 + bc = !cop1_bc; // bc1f L89 + c->lwc1(f10, 52, v1); // lwc1 f10, 52(v1) + if (bc) {goto block_10;} // branch non-likely + + //beq r0, r0, L90 // beq r0, r0, L90 + c->muls(f9, f12, f10); // mul.s f9, f12, f10 + goto block_12; // branch always + + +block_10: + c->adds(f12, f7, f4); // add.s f12, f7, f4 + c->negs(f11, f11); // neg.s f11, f11 + cop1_bc = c->fprs[f12] < c->fprs[f11]; // c.lt.s f12, f11 + bc = !cop1_bc; // bc1f L90 + c->negs(f11, f12); // neg.s f11, f12 + if (bc) {goto block_12;} // branch non-likely + + c->muls(f9, f11, f10); // mul.s f9, f11, f10 + +block_12: + cop1_bc = c->fprs[f0] < c->fprs[f9]; // c.lt.s f0, f9 + bc = cop1_bc; // bc1t L100 + // nop // sll r0, r0, 0 + if (bc) {goto block_36;} // branch non-likely + + c->abss(f14, f7); // abs.s f14, f7 + c->movs(f12, f6); // mov.s f12, f6 + acc = c->fprs[f14] * c->fprs[f14]; // Unknown instr: mula.s f14, f14 + c->fprs[f15] = acc + c->fprs[f12] * c->fprs[f12]; // Unknown instr: madd.s f15, f12, f12 + c->lwc1(f9, 76, v1); // lwc1 f9, 76(v1) + c->lwc1(f13, 80, v1); // lwc1 f13, 80(v1) + c->lwc1(f10, 84, v1); // lwc1 f10, 84(v1) + c->lwc1(f11, 88, v1); // lwc1 f11, 88(v1) + c->fprs[f16] = c->fprs[f5] / (std::sqrt(std::abs(c->fprs[f15]))); // Unknown instr: rsqrt.s f16, f5, f15 + c->muls(f15, f14, f16); // mul.s f15, f14, f16 + c->muls(f16, f12, f16); // mul.s f16, f12, f16 + acc = c->fprs[f9] * c->fprs[f16]; // Unknown instr: mula.s f9, f16 + c->fprs[f12] = acc - c->fprs[f13] * c->fprs[f15]; // Unknown instr: msub.s f12, f13, f15 + acc = c->fprs[f10] * c->fprs[f16]; // Unknown instr: mula.s f10, f16 + c->fprs[f14] = acc - c->fprs[f11] * c->fprs[f15];// Unknown instr: msub.s f14, f11, f15 + acc = c->fprs[f9] * c->fprs[f15];// Unknown instr: mula.s f9, f15 + c->fprs[f9] = acc + c->fprs[f13] * c->fprs[f16];// Unknown instr: madd.s f9, f13, f16 + acc = c->fprs[f10] * c->fprs[f15];// Unknown instr: mula.s f10, f15 + c->fprs[f10] = acc + c->fprs[f11] * c->fprs[f16];// Unknown instr: madd.s f10, f11, f16 + cop1_bc = c->fprs[f8] < c->fprs[f12]; // c.lt.s f8, f12 + bc = cop1_bc; // bc1t L90 + // nop // sll r0, r0, 0 + if (bc) {goto block_17;} // branch non-likely + + cop1_bc = c->fprs[f8] < c->fprs[f14]; // c.lt.s f8, f14 + bc = cop1_bc; // bc1t L91 + // nop // sll r0, r0, 0 + if (bc) {goto block_18;} // branch non-likely + + cop1_bc = c->fprs[f8] < c->fprs[f9]; // c.lt.s f8, f9 + bc = cop1_bc; // bc1t L92 + // nop // sll r0, r0, 0 + if (bc) {goto block_19;} // branch non-likely + + //beq r0, r0, L94 // beq r0, r0, L94 + // nop // sll r0, r0, 0 + goto block_23; // branch always + + +block_17: + //beq r0, r0, L95 // beq r0, r0, L95 + c->divs(f3, f1, f10); // div.s f3, f1, f10 + goto block_23; // branch always + + +block_18: + c->negs(f3, f12); // neg.s f3, f12 + c->divs(f3, f3, f9); // div.s f3, f3, f9 + c->divs(f7, f14, f10); // div.s f7, f14, f10 + c->adds(f3, f7, f3); // add.s f3, f7, f3 + //beq r0, r0, L95 // beq r0, r0, L95 + c->muls(f3, f3, f1); // mul.s f3, f3, f1 + goto block_23; // branch always + + +block_19: + c->subs(f8, f7, f4); // sub.s f8, f7, f4 + c->adds(f10, f7, f4); // add.s f10, f7, f4 + c->negs(f11, f7); // neg.s f11, f7 + cop1_bc = c->fprs[f7] < c->fprs[f8]; // c.lt.s f7, f8 + bc = cop1_bc; // bc1t L94 + // nop // sll r0, r0, 0 + if (bc) {goto block_22;} // branch non-likely + + cop1_bc = c->fprs[f10] < c->fprs[f11]; // c.lt.s f10, f11 + bc = cop1_bc; // bc1t L94 + // nop // sll r0, r0, 0 + if (bc) {goto block_22;} // branch non-likely + + //beq r0, r0, L95 // beq r0, r0, L95 + // nop // sll r0, r0, 0 + goto block_23; // branch always + + +block_22: + c->negs(f3, f12); // neg.s f3, f12 + c->muls(f3, f1, f3); // mul.s f3, f1, f3 + c->divs(f3, f3, f9); // div.s f3, f3, f9 + +block_23: + cop1_bc = c->fprs[f0] < c->fprs[f2]; // c.lt.s f0, f2 + bc = cop1_bc; // bc1t L100 + // nop // sll r0, r0, 0 + if (bc) {goto block_36;} // branch non-likely + + c->abss(f10, f3); // abs.s f10, f3 + c->movs(f12, f6); // mov.s f12, f6 + acc = c->fprs[10] * c->fprs[10]; // Unknown instr: mula.s f10, f10 + c->fprs[9] = acc + c->fprs[12] * c->fprs[12]; // Unknown instr: madd.s f9, f12, f12 + c->lwc1(f7, 96, v1); // lwc1 f7, 96(v1) + c->lwc1(f8, 100, v1); // lwc1 f8, 100(v1) + c->lwc1(f6, 104, v1); // lwc1 f6, 104(v1) + c->fprs[f5] = c->fprs[f5] / (std::sqrt(std::abs(c->fprs[f9]))); // Unknown instr: rsqrt.s f5, f5, f9 + c->lwc1(f11, 108, v1); // lwc1 f11, 108(v1) + c->mtc1(f9, r0); // mtc1 f9, r0 + c->muls(f13, f10, f5); // mul.s f13, f10, f5 + c->muls(f14, f12, f5); // mul.s f14, f12, f5 + acc = c->fprs[f7] * c->fprs[f14];// Unknown instr: mula.s f7, f14 + c->fprs[f10] = acc - c->fprs[f8] * c->fprs[f13];// Unknown instr: msub.s f10, f8, f13 + acc = c->fprs[f6] * c->fprs[f14];// Unknown instr: mula.s f6, f14 + c->fprs[f12] = acc - c->fprs[f11] * c->fprs[f13];// Unknown instr: msub.s f12, f11, f13 + acc = c->fprs[f7] * c->fprs[f13];// Unknown instr: mula.s f7, f13 + c->fprs[f5] = acc + c->fprs[f8] * c->fprs[f14];// Unknown instr: madd.s f5, f8, f14 + acc = c->fprs[f6] * c->fprs[f13];// Unknown instr: mula.s f6, f13 + c->fprs[f6] = acc + c->fprs[f11] * c->fprs[f14];// Unknown instr: madd.s f6, f11, f14 + cop1_bc = c->fprs[f9] < c->fprs[f10]; // c.lt.s f9, f10 + bc = cop1_bc; // bc1t L95 + // nop // sll r0, r0, 0 + if (bc) {goto block_28;} // branch non-likely + + cop1_bc = c->fprs[f9] < c->fprs[f12]; // c.lt.s f9, f12 + bc = cop1_bc; // bc1t L96 + // nop // sll r0, r0, 0 + if (bc) {goto block_29;} // branch non-likely + + cop1_bc = c->fprs[f9] < c->fprs[f5]; // c.lt.s f9, f5 + bc = cop1_bc; // bc1t L97 + // nop // sll r0, r0, 0 + if (bc) {goto block_30;} // branch non-likely + + //beq r0, r0, L99 // beq r0, r0, L99 + // nop // sll r0, r0, 0 + goto block_34; // branch always + + +block_28: + //beq r0, r0, L100 // beq r0, r0, L100 + c->divs(f1, f1, f5); // div.s f1, f1, f5 + goto block_34; // branch always + + +block_29: + c->negs(f2, f10); // neg.s f2, f10 + c->divs(f2, f2, f6); // div.s f2, f2, f6 + c->divs(f4, f12, f5); // div.s f4, f12, f5 + c->adds(f2, f4, f2); // add.s f2, f4, f2 + //beq r0, r0, L100 // beq r0, r0, L100 + c->muls(f1, f2, f1); // mul.s f1, f2, f1 + goto block_34; // branch always + + +block_30: + c->subs(f5, f2, f4); // sub.s f5, f2, f4 + c->adds(f4, f2, f4); // add.s f4, f2, f4 + c->negs(f7, f2); // neg.s f7, f2 + cop1_bc = c->fprs[f2] < c->fprs[f5]; // c.lt.s f2, f5 + bc = cop1_bc; // bc1t L99 + // nop // sll r0, r0, 0 + if (bc) {goto block_33;} // branch non-likely + + cop1_bc = c->fprs[f4] < c->fprs[f7]; // c.lt.s f4, f7 + bc = cop1_bc; // bc1t L99 + // nop // sll r0, r0, 0 + if (bc) {goto block_33;} // branch non-likely + + //beq r0, r0, L100 // beq r0, r0, L100 + // nop // sll r0, r0, 0 + goto block_34; // branch always + + +block_33: + c->negs(f2, f10); // neg.s f2, f10 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->divs(f1, f1, f6); // div.s f1, f1, f6 + +block_34: + cop1_bc = c->fprs[f0] < c->fprs[f3]; // c.lt.s f0, f3 + bc = cop1_bc; // bc1t L101 + // nop // sll r0, r0, 0 + if (bc) {goto block_36;} // branch non-likely + + //beq r0, r0, L102 // beq r0, r0, L102 + // nop // sll r0, r0, 0 + goto block_37; // branch always + + +block_36: + c->daddiu(gp, s7, 4); // daddiu gp, s7, #t + +block_37: + c->mov64(v0, gp); // or v0, gp, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 48, sp); // lq gp, 48(sp) + c->lq(s5, 32, sp); // lq s5, 32(sp) + c->lq(s4, 16, sp); // lq s4, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 64); // daddiu sp, sp, 64 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.view_get_active_math_camera = intern_from_c(-1, 0, "view-get-active-math-camera").c(); + gLinkedFunctionTable.reg("foreground-check-longest-edge-asm", execute, 256); +} + +} // namespace foreground_check_longest_edge_asm +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace foreground_merc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* foreground; // *foreground* + void* merc_global_stats; // *merc-global-stats* +} cache; + +struct MercEffectBucketInfo { + u8 color_fade[4]; + u8 merc_path; + u8 ignore_alpha; + u8 disable_draw; + u8 disable_envmap; +}; + +struct MercBucketInfo { + u8 lights[0x70]; + u32 needs_clip; + u32 mercprime; + u32 mercneric; + MercEffectBucketInfo effects[64]; +}; +static_assert(sizeof(MercBucketInfo) == 0x27c); + +// TODO: hack this up for pc merc rendering. +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + const MercBucketInfo* mbi = (const MercBucketInfo*)(g_ee_main_mem + c->sgpr64(t1)); + c->mov64(t7, a3); // or t7, a3, r0 + c->mov64(v1, t0); // or v1, t0, r0 + c->lui(t0, 4096); // lui t0, 4096 + c->lui(t1, 18304); // lui t1, 18304 + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + c->dsll32(t1, t1, 0); // dsll32 t1, t1, 0 + c->lui(a3, 12288); // lui a3, 12288 + c->lui(t8, 19201); // lui t8, 19201 + c->pcpyld(t0, a3, t0); // pcpyld t0, a3, t0 + c->lbu(a3, 78, a0); // lbu a3, 78(a0) + c->pcpyld(t1, t8, t1); // pcpyld t1, t8, t1 + c->lui(t2, 28160); // lui t2, 28160 + c->addiu(t8, r0, 8); // addiu t8, r0, 8 + c->multu3(a3, a3, t8); // multu3 a3, a3, t8 + c->lui(t3, 1280); // lui t3, 1280 + c->lui(t4, 27648); // lui t4, 27648 + c->dsll32(t2, t2, 0); // dsll32 t2, t2, 0 + c->dsll32(t4, t4, 0); // dsll32 t4, t4, 0 + c->daddu(t4, t4, t3); // daddu t4, t4, t3 + c->daddu(t3, t2, t3); // daddu t3, t2, t3 + c->daddiu(t3, t3, 1); // daddiu t3, t3, 1 + c->daddu(a0, a3, a0); // daddu a0, a3, a0 + c->pcpyld(t2, t2, r0); // pcpyld t2, t2, r0 + c->lw(a0, 28, a0); // lw a0, 28(a0) + c->pcpyld(t3, t3, r0); // pcpyld t3, t3, r0 + c->pcpyld(t4, t4, r0); // pcpyld t4, t4, r0 + c->lui(t5, 12288); // lui t5, 12288 + c->lui(t6, 4096); // lui t6, 4096 + c->daddiu(t5, t5, 7); // daddiu t5, t5, 7 + c->lui(t8, 5120); // lui t8, 5120 + c->lui(a3, 27655); // lui a3, 27655 + c->daddu(t7, t8, t7); // daddu t7, t8, t7 + c->dsll32(a3, a3, 0); // dsll32 a3, a3, 0 + c->dsll32(t8, t7, 0); // dsll32 t8, t7, 0 + c->pcpyld(t5, a3, t5); // pcpyld t5, a3, t5 + c->lwu(t7, 68, a0); // lwu t7, 68(a0) + c->pcpyld(t6, t8, t6); // pcpyld t6, t8, t6 + c->daddiu(t8, a0, 172); // daddiu t8, a0, 172 + bc = c->sgpr64(t7) == 0; // beq t7, r0, L118 + c->load_symbol2(a3, cache.foreground); // lw a3, *foreground*(s7) + if (bc) {goto block_16;} // branch non-likely + + c->daddiu(t9, a3, 3852); // daddiu t9, a3, 3852 + +block_2: + c->mov64(ra, a2); // or ra, a2, r0 + c->lbu(a3, 6, t9); // lbu a3, 6(t9) + c->lbu(gp, 4, t9); // lbu gp, 4(t9) + bc = c->sgpr64(a3) != 0; // bne a3, r0, L118 + c->load_symbol2(a3, cache.merc_global_stats); // lw a3, *merc-global-stats*(s7) + if (bc) {goto block_16;} // branch non-likely + + c->daddu(a3, r0, a3); // daddu a3, r0, a3 + bc = c->sgpr64(gp) != 0; // bne gp, r0, L118 + c->lhu(s4, 2, a3); // lhu s4, 2(a3) + if (bc) {goto block_16;} // branch non-likely + + c->lhu(s3, 18, t8); // lhu s3, 18(t8) + c->lwu(gp, 4, a3); // lwu gp, 4(a3) + c->lhu(s5, 22, t8); // lhu s5, 22(t8) + c->daddu(s4, s4, s3); // daddu s4, s4, s3 + c->lwu(s3, 8, a3); // lwu s3, 8(a3) + c->lhu(s2, 24, t8); // lhu s2, 24(t8) + c->daddu(gp, gp, s5); // daddu gp, gp, s5 + c->sh(s4, 2, a3); // sh s4, 2(a3) + c->sw(gp, 4, a3); // sw gp, 4(a3) + c->daddu(s5, s3, s2); // daddu s5, s3, s2 + c->lwu(t2, 0, t8); // lwu t2, 0(t8) + c->lwu(gp, 4, t8); // lwu gp, 4(t8) + c->lui(s4, 12288); // lui s4, 12288 + c->dsll32(t2, t2, 0); // dsll32 t2, t2, 0 + c->sw(s5, 8, a3); // sw s5, 8(a3) + c->or_(t2, t2, s4); // or t2, t2, s4 + c->lhu(s5, 18, t8); // lhu s5, 18(t8) + c->addiu(s4, r0, 0); // addiu s4, r0, 0 + bc = c->sgpr64(s5) == 0; // beq s5, r0, L118 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + // nop // sll r0, r0, 0 + +block_6: + c->lbu(s0, 0, gp); // lbu s0, 0(gp) + // nop // sll r0, r0, 0 + c->lbu(s2, 1, gp); // lbu s2, 1(gp) + c->xori(s1, r0, 49292); // xori s1, r0, 49292 + c->lbu(s3, 2, gp); // lbu s3, 2(gp) + c->daddiu(v0, s0, 3); // daddiu v0, s0, 3 + c->lw(a3, 60, a0); // lw a3, 60(a0) + c->srl(v0, v0, 2); // srl v0, v0, 2 + c->sq(t0, 0, a2); // sq t0, 0(a2) + c->xor_(t2, t2, v0); // xor t2, t2, v0 + c->sq(t2, 32, a2); // sq t2, 32(a2) + c->xor_(t2, t2, v0); // xor t2, t2, v0 + c->sh(s1, 44, a2); // sh s1, 44(a2) + c->daddu(s1, s1, s0); // daddu s1, s1, s0 + c->sb(s0, 46, a2); // sb s0, 46(a2) + c->dsll32(s0, v0, 4); // dsll32 s0, v0, 4 + c->daddu(t3, t2, s0); // daddu t3, t2, s0 + c->daddiu(s0, s2, 3); // daddiu s0, s2, 3 + c->sw(a3, 12, a2); // sw a3, 12(a2) + c->srl(s0, s0, 2); // srl s0, s0, 2 + c->sq(t1, 16, a2); // sq t1, 16(a2) + + // pc hack + { + u16 use_pc_merc_bits = 0; + u16 ignore_alpha_bits = 0; + for (int i = 0; i < 16; i++) { + if (!mbi->effects[i].disable_draw) { + use_pc_merc_bits |= (1 << i); + } + if (mbi->effects[i].ignore_alpha) { + ignore_alpha_bits |= (1 << i); + } + } + memcpy(g_ee_main_mem + c->sgpr64(a2) + 28, &use_pc_merc_bits, 2); + memcpy(g_ee_main_mem + c->sgpr64(a2) + 30, &ignore_alpha_bits, 2); + } + + c->xor_(t3, t3, s0); // xor t3, t3, s0 + c->sq(t3, 48, a2); // sq t3, 48(a2) + c->xor_(t3, t3, s0); // xor t3, t3, s0 + c->sh(s1, 60, a2); // sh s1, 60(a2) + c->daddu(s1, s1, s2); // daddu s1, s1, s2 + c->sb(s2, 62, a2); // sb s2, 62(a2) + c->dsll32(s2, s0, 4); // dsll32 s2, s0, 4 + c->sw(a3, 16, a2); // sw a3, 16(a2) + c->daddu(t4, t3, s2); // daddu t4, t3, s2 + c->xor_(t4, t4, s3); // xor t4, t4, s3 + c->xori(a3, s1, 16384); // xori a3, s1, 16384 + c->sq(t4, 64, a2); // sq t4, 64(a2) + c->xor_(t4, t4, s3); // xor t4, t4, s3 + c->sb(s3, 78, a2); // sb s3, 78(a2) + c->dsll32(s3, s3, 4); // dsll32 s3, s3, 4 + c->sh(a3, 76, a2); // sh a3, 76(a2) + c->daddu(t2, t4, s3); // daddu t2, t4, s3 + c->lbu(s3, 3, gp); // lbu s3, 3(gp) + c->daddiu(gp, gp, 4); // daddiu gp, gp, 4 + bc = c->sgpr64(s4) != 0; // bne s4, r0, L114 + c->daddiu(a2, a2, 80); // daddiu a2, a2, 80 + if (bc) {goto block_8;} // branch non-likely + + c->sd(t6, 0, a2); // sd t6, 0(a2) + c->addiu(s2, r0, 8); // addiu s2, r0, 8 + c->sd(t6, 8, a2); // sd t6, 8(a2) + c->lui(a3, 27656); // lui a3, 27656 + c->sb(s2, 0, a2); // sb s2, 0(a2) + c->daddiu(a3, a3, 132); // daddiu a3, a3, 132 + c->load_symbol2(s2, cache.foreground); // lw s2, *foreground*(s7) + c->daddiu(s1, s2, 3728); // daddiu s1, s2, 3728 + c->sw(a3, 12, a2); // sw a3, 12(a2) + c->lq(a3, 0, s1); // lq a3, 0(s1) + c->lq(s2, 16, s1); // lq s2, 16(s1) + c->lq(s0, 32, s1); // lq s0, 32(s1) + c->lq(v0, 48, s1); // lq v0, 48(s1) + c->sq(a3, 16, a2); // sq a3, 16(a2) + c->sq(s2, 32, a2); // sq s2, 32(a2) + c->sq(s0, 48, a2); // sq s0, 48(a2) + c->sq(v0, 64, a2); // sq v0, 64(a2) + c->lq(a3, 64, s1); // lq a3, 64(s1) + c->lq(s2, 80, s1); // lq s2, 80(s1) + c->lq(s1, 96, s1); // lq s1, 96(s1) + c->lui(s0, 16261); // lui s0, 16261 + c->daddiu(v0, s0, 4715); // daddiu v0, s0, 4715 + c->daddiu(v0, s0, 619); // daddiu v0, s0, 619 + c->lq(s0, 44, a0); // lq s0, 44(a0) + c->sq(a3, 80, a2); // sq a3, 80(a2) + c->lbu(a3, 5, t9); // lbu a3, 5(t9) + c->sq(s2, 96, a2); // sq s2, 96(a2) + c->sq(s1, 112, a2); // sq s1, 112(a2) + c->dsubu(a3, v0, a3); // dsubu a3, v0, a3 + c->sq(s0, 128, a2); // sq s0, 128(a2) + c->sw(a3, 28, a2); // sw a3, 28(a2) + c->daddiu(a2, a2, 144); // daddiu a2, a2, 144 + + // PC ADD BONUS DATA (bonus!) + { + // 10 qw test + u64 dmatag = 5 | (1 << 28); + memcpy(g_ee_main_mem + c->sgpr64(a2), &dmatag, 8); + u32 vif = (0b1001 << 24); + memcpy(g_ee_main_mem + c->sgpr64(a2) + 8, &vif, 4); + + for (int i = 0; i < 16; i++) { + memcpy(g_ee_main_mem + c->sgpr64(a2) + 16 + i * 4, mbi->effects[i].color_fade, 4); + } + + c->gprs[a2].du32[0] += 6 * 16; + } + +block_8: + bc = c->sgpr64(s3) == 0; // beq s3, r0, L116 + c->addiu(s2, r0, 128); // addiu s2, r0, 128 + if (bc) {goto block_11;} // branch non-likely + + c->lbu(a3, 0, gp); // lbu a3, 0(gp) + // nop // sll r0, r0, 0 + +block_10: + c->multu3(s1, a3, s2); // multu3 s1, a3, s2 + c->sq(t5, 0, a2); // sq t5, 0(a2) + c->lbu(s0, 1, gp); // lbu s0, 1(gp) + c->daddiu(gp, gp, 2); // daddiu gp, gp, 2 + + // HACK for PC PORT: stash the source matrix number in the unused bits of nop viftag. + c->sb(a3, 8, a2); + + c->lbu(a3, 0, gp); // lbu a3, 0(gp) + c->daddiu(s3, s3, -1); // daddiu s3, s3, -1 + c->sb(s0, 12, a2); // sb s0, 12(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddu(s1, s1, a1); // daddu s1, s1, a1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(s3) != 0; // bne s3, r0, L115 + c->sw(s1, -12, a2); // sw s1, -12(a2) + if (bc) {goto block_10;} // branch non-likely + + +block_11: + c->sq(t6, 0, a2); // sq t6, 0(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + bc = c->sgpr64(s4) != 0; // bne s4, r0, L117 + c->daddiu(s4, s4, 1); // daddiu s4, s4, 1 + if (bc) {goto block_13;} // branch non-likely + + c->mov64(a3, v1); // or a3, v1, r0 + c->sb(a3, -4, a2); // sb a3, -4(a2) + +block_13: + bc = c->sgpr64(s4) != c->sgpr64(s5); // bne s4, s5, L113 + // nop // sll r0, r0, 0 + if (bc) {goto block_6;} // branch non-likely + + get_fake_spad_addr2(s5, cache.fake_scratchpad_data, 0, c);// lui s5, 28672 + c->lbu(a3, 26, t8); // lbu a3, 26(t8) + c->addiu(gp, r0, 48); // addiu gp, r0, 48 + c->lw(s5, 52, s5); // lw s5, 52(s5) + c->mult3(a3, a3, gp); // mult3 a3, a3, gp + // nop // sll r0, r0, 0 + c->daddu(a3, s5, a3); // daddu a3, s5, a3 + // nop // sll r0, r0, 0 + c->lw(s4, 0, a3); // lw s4, 0(a3) + // nop // sll r0, r0, 0 + c->lw(gp, 4, a3); // lw gp, 4(a3) + c->movz(s4, ra, s4); // movz s4, ra, s4 + c->sq(r0, 0, a2); // sq r0, 0(a2) + c->lui(s5, 8192); // lui s5, 8192 + c->sw(s4, 0, a3); // sw s4, 0(a3) + c->mov64(s4, a2); // or s4, a2, r0 + c->sw(s5, 0, a2); // sw s5, 0(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + bc = c->sgpr64(gp) == 0; // beq gp, r0, L118 + c->sw(s4, 4, a3); // sw s4, 4(a3) + if (bc) {goto block_16;} // branch non-likely + + // nop // sll r0, r0, 0 + c->sw(ra, 4, gp); // sw ra, 4(gp) + +block_16: + c->daddiu(t8, t8, 32); // daddiu t8, t8, 32 + c->daddiu(t9, t9, 8); // daddiu t9, t9, 8 + c->daddiu(t7, t7, -1); // daddiu t7, t7, -1 + bc = c->sgpr64(t7) != 0; // bne t7, r0, L112 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v0, a2); // or v0, a2, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.foreground = intern_from_c(-1, 0, "*foreground*").c(); + cache.merc_global_stats = intern_from_c(-1, 0, "*merc-global-stats*").c(); + gLinkedFunctionTable.reg("foreground-merc", execute, 256); +} + +} // namespace foreground_merc +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace foreground_generic_merc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* foreground; // *foreground* + void* merc_global_stats; // *merc-global-stats* + void* foreground_generic_merc_add_fragments; // foreground-generic-merc-add-fragments + void* foreground_generic_merc_death; // foreground-generic-merc-death +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -112); // daddiu sp, sp, -112 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s1, 16, sp); // sq s1, 16(sp) + c->sq(s2, 32, sp); // sq s2, 32(sp) + c->sq(s3, 48, sp); // sq s3, 48(sp) + c->sq(s4, 64, sp); // sq s4, 64(sp) + c->sq(s5, 80, sp); // sq s5, 80(sp) + c->sq(gp, 96, sp); // sq gp, 96(sp) + c->mov64(gp, a0); // or gp, a0, r0 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->daddu(v1, r0, v1); // daddu v1, r0, v1 + c->sw(a2, 16, v1); // sw a2, 16(v1) + c->sw(a1, 20, v1); // sw a1, 20(v1) + c->lb(v1, 82, gp); // lb v1, 82(gp) + c->dsll(v1, v1, 3); // dsll v1, v1, 3 + c->daddu(v1, gp, v1); // daddu v1, gp, v1 + c->lwu(s5, 32, v1); // lwu s5, 32(v1) + c->daddiu(s3, a1, 16); // daddiu s3, a1, 16 + c->addiu(s4, r0, 0); // addiu s4, r0, 0 + //beq r0, r0, L157 // beq r0, r0, L157 + // nop // sll r0, r0, 0 + goto block_82; // branch always + + +block_1: + c->load_symbol2(v1, cache.foreground); // lw v1, *foreground*(s7) + c->daddiu(v1, v1, 9152); // daddiu v1, v1, 9152 + c->dsll(a0, s4, 3); // dsll a0, s4, 3 + c->daddu(a0, v1, a0); // daddu a0, v1, a0 + c->lbu(a0, 130, a0); // lbu a0, 130(a0) + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->daddiu(a1, s7, 4); // daddiu a1, s7, 4 + c->movz(a1, s7, a0); // movz a1, s7, a0 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a1))) {// beql s7, a1, L122 + c->mov64(v1, a1); // or v1, a1, r0 + goto block_4; + } + +block_3: + c->dsll(a0, s4, 3); // dsll a0, s4, 3 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->lbu(v1, 128, v1); // lbu v1, 128(v1) + c->daddiu(a0, v1, -2); // daddiu a0, v1, -2 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + c->movn(v1, s7, a0); // movn v1, s7, a0 + +block_4: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L156 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_81;} // branch non-likely + + c->mov64(s1, s3); // or s1, s3, r0 + c->dsll(v1, s4, 5); // dsll v1, s4, 5 + c->daddiu(v1, v1, 172); // daddiu v1, v1, 172 + c->daddu(s2, v1, s5); // daddu s2, v1, s5 + c->load_symbol2(v1, cache.merc_global_stats); // lw v1, *merc-global-stats*(s7) + c->daddiu(v1, v1, 32); // daddiu v1, v1, 32 + c->lhu(a0, 2, v1); // lhu a0, 2(v1) + c->lhu(a1, 18, s2); // lhu a1, 18(s2) + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->sh(a0, 2, v1); // sh a0, 2(v1) + c->lwu(a0, 4, v1); // lwu a0, 4(v1) + c->lhu(a1, 22, s2); // lhu a1, 22(s2) + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->sw(a0, 4, v1); // sw a0, 4(v1) + c->lwu(a0, 8, v1); // lwu a0, 8(v1) + c->lhu(a1, 24, s2); // lhu a1, 24(s2) + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->sw(a0, 8, v1); // sw a0, 8(v1) + c->load_symbol2(v1, cache.foreground); // lw v1, *foreground*(s7) + c->daddiu(v1, v1, 9152); // daddiu v1, v1, 9152 + c->daddiu(a1, s1, 16); // daddiu a1, s1, 16 + c->daddu(a2, r0, v1); // daddu a2, r0, v1 + c->addiu(a0, r0, 7); // addiu a0, r0, 7 + // nop // sll r0, r0, 0 + c->daddiu(a3, a0, -4); // daddiu a3, a0, -4 + c->mov64(a1, a1); // or a1, a1, r0 + bc = ((s64)c->sgpr64(a3)) < 0; // bltz a3, L124 + c->mov64(a2, a2); // or a2, a2, r0 + if (bc) {goto block_7;} // branch non-likely + + +block_6: + // nop // sll r0, r0, 0 + c->lq(t2, 0, a2); // lq t2, 0(a2) + // nop // sll r0, r0, 0 + c->lq(a3, 16, a2); // lq a3, 16(a2) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lq(t0, 32, a2); // lq t0, 32(a2) + c->daddiu(a1, a1, 64); // daddiu a1, a1, 64 + c->lq(t1, 48, a2); // lq t1, 48(a2) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->sq(t2, -64, a1); // sq t2, -64(a1) + c->daddiu(t2, a0, -4); // daddiu t2, a0, -4 + c->sq(a3, -48, a1); // sq a3, -48(a1) + // nop // sll r0, r0, 0 + c->sq(t0, -32, a1); // sq t0, -32(a1) + bc = ((s64)c->sgpr64(t2)) >= 0; // bgez t2, L123 + c->sq(t1, -16, a1); // sq t1, -16(a1) + if (bc) {goto block_6;} // branch non-likely + + +block_7: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L125 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_12;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L125 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_12;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L125 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_12;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L125 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_12;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + +block_12: + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->daddiu(a1, s1, 128); // daddiu a1, s1, 128 + c->daddiu(a2, s5, 44); // daddiu a2, s5, 44 + c->addiu(a0, r0, 8); // addiu a0, r0, 8 + c->daddiu(a3, a0, -4); // daddiu a3, a0, -4 + c->mov64(a1, a1); // or a1, a1, r0 + bc = ((s64)c->sgpr64(a3)) < 0; // bltz a3, L127 + c->mov64(a2, a2); // or a2, a2, r0 + if (bc) {goto block_14;} // branch non-likely + + +block_13: + // nop // sll r0, r0, 0 + c->lq(t2, 0, a2); // lq t2, 0(a2) + // nop // sll r0, r0, 0 + c->lq(a3, 16, a2); // lq a3, 16(a2) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lq(t0, 32, a2); // lq t0, 32(a2) + c->daddiu(a1, a1, 64); // daddiu a1, a1, 64 + c->lq(t1, 48, a2); // lq t1, 48(a2) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->sq(t2, -64, a1); // sq t2, -64(a1) + c->daddiu(t2, a0, -4); // daddiu t2, a0, -4 + c->sq(a3, -48, a1); // sq a3, -48(a1) + // nop // sll r0, r0, 0 + c->sq(t0, -32, a1); // sq t0, -32(a1) + bc = ((s64)c->sgpr64(t2)) >= 0; // bgez t2, L126 + c->sq(t1, -16, a1); // sq t1, -16(a1) + if (bc) {goto block_13;} // branch non-likely + + +block_14: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L128 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_19;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L128 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_19;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L128 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_19;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L128 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_19;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + +block_19: + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->lbu(a0, 17, s2); // lbu a0, 17(s2) + c->andi(a1, a0, 32); // andi a1, a0, 32 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L129 + // nop // sll r0, r0, 0 + if (bc) {goto block_21;} // branch non-likely + + c->addiu(a0, r0, 1); // addiu a0, r0, 1 + c->sb(a0, 182, s1); // sb a0, 182(s1) + //beq r0, r0, L131 // beq r0, r0, L131 + // nop // sll r0, r0, 0 + goto block_24; // branch always + + +block_21: + c->andi(a0, a0, 64); // andi a0, a0, 64 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L130 + // nop // sll r0, r0, 0 + if (bc) {goto block_23;} // branch non-likely + + c->addiu(a0, r0, 2); // addiu a0, r0, 2 + c->sb(a0, 182, s1); // sb a0, 182(s1) + //beq r0, r0, L131 // beq r0, r0, L131 + // nop // sll r0, r0, 0 + goto block_24; // branch always + + +block_23: + c->sb(r0, 182, s1); // sb r0, 182(s1) + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + +block_24: + c->lbu(a0, 26, s2); // lbu a0, 26(s2) + c->lbu(a1, 182, s1); // lbu a1, 182(s1) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L132 + // nop // sll r0, r0, 0 + if (bc) {goto block_26;} // branch non-likely + + c->addiu(a0, r0, 9216); // addiu a0, r0, 9216 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + //beq r0, r0, L133 // beq r0, r0, L133 + // nop // sll r0, r0, 0 + goto block_27; // branch always + + +block_26: + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->lwu(a1, 52, a1); // lwu a1, 52(a1) + c->daddiu(a1, a1, 24); // daddiu a1, a1, 24 + c->addiu(a2, r0, 48); // addiu a2, r0, 48 + c->multu3(a0, a2, a0); // multu3 a0, a2, a0 + c->daddu(a0, a1, a0); // daddu a0, a1, a0 + +block_27: + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->sw(a0, 48, a1); // sw a0, 48(a1) + c->lwu(a1, 4, a0); // lwu a1, 4(a0) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L134 + c->mov64(a2, s7); // or a2, s7, r0 + if (bc) {goto block_29;} // branch non-likely + + c->sw(s1, 0, a1); // sw s1, 0(a1) + c->mov64(a1, s1); // or a1, s1, r0 + +block_29: + c->lwu(a1, 0, a0); // lwu a1, 0(a0) + bc = c->sgpr64(a1) != 0; // bne a1, r0, L135 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_31;} // branch non-likely + + c->sw(s1, 0, a0); // sw s1, 0(a0) + c->mov64(a1, s1); // or a1, s1, r0 + +block_31: + c->daddiu(a1, s1, 12); // daddiu a1, s1, 12 + c->sw(a1, 4, a0); // sw a1, 4(a0) + c->dsll(a0, s4, 3); // dsll a0, s4, 3 + c->daddiu(a0, a0, 124); // daddiu a0, a0, 124 + c->daddu(a0, a0, v1); // daddu a0, a0, v1 + c->lwu(a1, 0, a0); // lwu a1, 0(a0) + c->sw(a1, 160, s1); // sw a1, 160(s1) + c->lbu(a1, 5, a0); // lbu a1, 5(a0) + c->sb(a1, 183, s1); // sb a1, 183(s1) + c->lbu(a0, 7, a0); // lbu a0, 7(a0) + c->sb(a0, 186, s1); // sb a0, 186(s1) + c->lw(v1, 112, v1); // lw v1, 112(v1) + c->sb(v1, 168, s1); // sb v1, 168(s1) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(v1, 16, v1); // lwu v1, 16(v1) + c->sb(v1, 169, s1); // sb v1, 169(s1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L136 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_33;} // branch non-likely + + c->sb(r0, 168, s1); // sb r0, 168(s1) + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + +block_33: + c->sb(r0, 170, s1); // sb r0, 170(s1) + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->sb(v1, 171, s1); // sb v1, 171(s1) + c->sh(r0, 172, s1); // sh r0, 172(s1) + c->addiu(v1, r0, 255); // addiu v1, r0, 255 + c->sb(v1, 184, s1); // sb v1, 184(s1) + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + c->lbu(a0, 17, s2); // lbu a0, 17(s2) + c->andi(a0, a0, 2); // andi a0, a0, 2 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L137 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_35;} // branch non-likely + + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->mov64(a0, v1); // or a0, v1, r0 + +block_35: + c->lwu(a0, 4, gp); // lwu a0, 4(gp) + c->andi(a0, a0, 1024); // andi a0, a0, 1024 + if (((s64)c->sgpr64(a0)) != ((s64)0)) { // bnel a0, r0, L138 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + goto block_40; + } + +block_37: + c->lwu(a0, 4, gp); // lwu a0, 4(gp) + c->andi(a0, a0, 2048); // andi a0, a0, 2048 + if (((s64)c->sgpr64(a0)) == ((s64)0)) { // beql a0, r0, L138 + c->mov64(a0, s7); // or a0, s7, r0 + goto block_40; + } + +block_39: + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->lbu(a1, 17, s2); // lbu a1, 17(s2) + c->andi(a1, a1, 64); // andi a1, a1, 64 + c->movz(a0, s7, a1); // movz a0, s7, a1 + +block_40: + bc = c->sgpr64(s7) == c->sgpr64(a0); // beq s7, a0, L139 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_42;} // branch non-likely + + c->lbu(v1, 238, gp); // lbu v1, 238(gp) + c->sb(v1, 184, s1); // sb v1, 184(s1) + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->mov64(a0, v1); // or a0, v1, r0 + +block_42: + c->lbu(a0, 9, gp); // lbu a0, 9(gp) + c->andi(a0, a0, 128); // andi a0, a0, 128 + if (((s64)c->sgpr64(a0)) == ((s64)0)) { // beql a0, r0, L140 + c->mov64(a0, s7); // or a0, s7, r0 + goto block_45; + } + +block_44: + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->dsll(a1, s4, 5); // dsll a1, s4, 5 + c->daddu(a1, s5, a1); // daddu a1, s5, a1 + c->lbu(a1, 199, a1); // lbu a1, 199(a1) + c->andi(a1, a1, 8); // andi a1, a1, 8 + c->movn(a0, s7, a1); // movn a0, s7, a1 + +block_45: + bc = c->sgpr64(s7) == c->sgpr64(a0); // beq s7, a0, L141 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_47;} // branch non-likely + + c->ori(v1, v1, 2); // ori v1, v1, 2 + c->mov64(a0, v1); // or a0, v1, r0 + +block_47: + c->sb(v1, 180, s1); // sb v1, 180(s1) + c->lbu(v1, 17, s2); // lbu v1, 17(s2) + c->andi(v1, v1, 64); // andi v1, v1, 64 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L142 + // nop // sll r0, r0, 0 + if (bc) {goto block_49;} // branch non-likely + + c->addiu(v1, r0, 4); // addiu v1, r0, 4 + c->sb(v1, 185, s1); // sb v1, 185(s1) + //beq r0, r0, L144 // beq r0, r0, L144 + // nop // sll r0, r0, 0 + goto block_52; // branch always + + +block_49: + c->lwu(v1, 4, gp); // lwu v1, 4(gp) + c->andi(v1, v1, 8192); // andi v1, v1, 8192 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L143 + // nop // sll r0, r0, 0 + if (bc) {goto block_51;} // branch non-likely + + c->addiu(v1, r0, 4); // addiu v1, r0, 4 + c->sb(v1, 185, s1); // sb v1, 185(s1) + //beq r0, r0, L144 // beq r0, r0, L144 + // nop // sll r0, r0, 0 + goto block_52; // branch always + + +block_51: + c->sb(r0, 185, s1); // sb r0, 185(s1) + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + +block_52: + c->lbu(v1, 132, gp); // lbu v1, 132(gp) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L145 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_54;} // branch non-likely + + c->load_symbol2(t9, cache.foreground_generic_merc_death);// lw t9, foreground-generic-merc-death(s7) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a1, s1); // or a1, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_54: + c->sw(r0, 164, s1); // sw r0, 164(s1) + c->lbu(v1, 17, s2); // lbu v1, 17(s2) + c->andi(v1, v1, 4); // andi v1, v1, 4 + if (((s64)c->sgpr64(v1)) == ((s64)0)) { // beql v1, r0, L146 + c->mov64(v1, s7); // or v1, s7, r0 + goto block_59; + } + +block_56: + c->lwu(v1, 120, gp); // lwu v1, 120(gp) + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L146 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_59; + } + +block_58: + c->lwu(v1, 120, gp); // lwu v1, 120(gp) + c->lwu(v1, 28, v1); // lwu v1, 28(v1) + +block_59: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L147 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_61;} // branch non-likely + + c->lwu(v1, 120, gp); // lwu v1, 120(gp) + c->lwu(v1, 32, v1); // lwu v1, 32(v1) + c->sw(v1, 164, s1); // sw v1, 164(s1) + +block_61: + c->daddiu(a0, s1, 256); // daddiu a0, s1, 256 + c->mov64(a1, s2); // or a1, s2, r0 + c->addiu(v1, r0, 2); // addiu v1, r0, 2 + c->daddiu(a2, v1, -4); // daddiu a2, v1, -4 + c->mov64(a0, a0); // or a0, a0, r0 + bc = ((s64)c->sgpr64(a2)) < 0; // bltz a2, L149 + c->mov64(a1, a1); // or a1, a1, r0 + if (bc) {goto block_63;} // branch non-likely + + +block_62: + // nop // sll r0, r0, 0 + c->lq(t1, 0, a1); // lq t1, 0(a1) + // nop // sll r0, r0, 0 + c->lq(a2, 16, a1); // lq a2, 16(a1) + c->daddiu(v1, v1, -4); // daddiu v1, v1, -4 + c->lq(a3, 32, a1); // lq a3, 32(a1) + c->daddiu(a0, a0, 64); // daddiu a0, a0, 64 + c->lq(t0, 48, a1); // lq t0, 48(a1) + c->daddiu(a1, a1, 64); // daddiu a1, a1, 64 + c->sq(t1, -64, a0); // sq t1, -64(a0) + c->daddiu(t1, v1, -4); // daddiu t1, v1, -4 + c->sq(a2, -48, a0); // sq a2, -48(a0) + // nop // sll r0, r0, 0 + c->sq(a3, -32, a0); // sq a3, -32(a0) + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L148 + c->sq(t0, -16, a0); // sq t0, -16(a0) + if (bc) {goto block_62;} // branch non-likely + + +block_63: + bc = c->sgpr64(v1) == 0; // beq v1, r0, L150 + c->lq(a2, 0, a1); // lq a2, 0(a1) + if (bc) {goto block_68;} // branch non-likely + + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, 16); // daddiu a0, a0, 16 + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sq(a2, -16, a0); // sq a2, -16(a0) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L150 + c->lq(a2, 0, a1); // lq a2, 0(a1) + if (bc) {goto block_68;} // branch non-likely + + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, 16); // daddiu a0, a0, 16 + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sq(a2, -16, a0); // sq a2, -16(a0) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L150 + c->lq(a2, 0, a1); // lq a2, 0(a1) + if (bc) {goto block_68;} // branch non-likely + + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, 16); // daddiu a0, a0, 16 + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sq(a2, -16, a0); // sq a2, -16(a0) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L150 + c->lq(a2, 0, a1); // lq a2, 0(a1) + if (bc) {goto block_68;} // branch non-likely + + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, 16); // daddiu a0, a0, 16 + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sq(a2, -16, a0); // sq a2, -16(a0) + +block_68: + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->addiu(v1, r0, 18); // addiu v1, r0, 18 + c->lwu(a0, 28, s2); // lwu a0, 28(s2) + if (((s64)c->sgpr64(a0)) == ((s64)0)) { // beql a0, r0, L151 + c->mov64(a0, s7); // or a0, s7, r0 + goto block_71; + } + +block_70: + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->lwu(a1, 28, s2); // lwu a1, 28(s2) + c->lbu(a1, 1, a1); // lbu a1, 1(a1) + c->movz(a0, s7, a1); // movz a0, s7, a1 + +block_71: + bc = c->sgpr64(s7) == c->sgpr64(a0); // beq s7, a0, L155 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_80;} // branch non-likely + + c->addiu(a0, r0, 1); // addiu a0, r0, 1 + c->sb(a0, 170, s1); // sb a0, 170(s1) + c->daddiu(a1, s1, 288); // daddiu a1, s1, 288 + c->lwu(a0, 28, s2); // lwu a0, 28(s2) + c->lwu(a2, 28, s2); // lwu a2, 28(s2) + c->lbu(a2, 1, a2); // lbu a2, 1(a2) + c->dsll(a2, a2, 4); // dsll a2, a2, 4 + c->daddu(a2, a0, a2); // daddu a2, a0, a2 + c->addiu(a0, r0, 5); // addiu a0, r0, 5 + c->daddiu(a3, a0, -4); // daddiu a3, a0, -4 + c->mov64(a1, a1); // or a1, a1, r0 + bc = ((s64)c->sgpr64(a3)) < 0; // bltz a3, L153 + c->mov64(a2, a2); // or a2, a2, r0 + if (bc) {goto block_74;} // branch non-likely + + +block_73: + // nop // sll r0, r0, 0 + c->lq(t2, 0, a2); // lq t2, 0(a2) + // nop // sll r0, r0, 0 + c->lq(a3, 16, a2); // lq a3, 16(a2) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lq(t0, 32, a2); // lq t0, 32(a2) + c->daddiu(a1, a1, 64); // daddiu a1, a1, 64 + c->lq(t1, 48, a2); // lq t1, 48(a2) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->sq(t2, -64, a1); // sq t2, -64(a1) + c->daddiu(t2, a0, -4); // daddiu t2, a0, -4 + c->sq(a3, -48, a1); // sq a3, -48(a1) + // nop // sll r0, r0, 0 + c->sq(t0, -32, a1); // sq t0, -32(a1) + bc = ((s64)c->sgpr64(t2)) >= 0; // bgez t2, L152 + c->sq(t1, -16, a1); // sq t1, -16(a1) + if (bc) {goto block_73;} // branch non-likely + + +block_74: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L154 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_79;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L154 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_79;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L154 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_79;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L154 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_79;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + +block_79: + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->daddiu(v1, v1, 5); // daddiu v1, v1, 5 + c->mov64(a0, v1); // or a0, v1, r0 + +block_80: + c->lui(a0, 4096); // lui a0, 4096 + c->daddiu(a1, v1, -1); // daddiu a1, v1, -1 + c->dsll32(a1, a1, 16); // dsll32 a1, a1, 16 + c->dsrl32(a1, a1, 16); // dsrl32 a1, a1, 16 + c->or_(a0, a0, a1); // or a0, a0, a1 + c->sd(a0, 0, s1); // sd a0, 0(s1) + c->sw(v1, 8, s1); // sw v1, 8(s1) + c->sw(r0, 12, s1); // sw r0, 12(s1) + c->dsll(v1, v1, 4); // dsll v1, v1, 4 + c->daddu(a1, s3, v1); // daddu a1, s3, v1 + c->mov64(v1, a1); // or v1, a1, r0 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(a2, 48, v1); // lwu a2, 48(v1) + c->load_symbol2(t9, cache.foreground_generic_merc_add_fragments);// lw t9, foreground-generic-merc-add-fragments(s7) + c->mov64(a0, s2); // or a0, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(s3, v0); // or s3, v0, r0 + c->mov64(v1, s3); // or v1, s3, r0 + +block_81: + c->daddiu(s4, s4, 1); // daddiu s4, s4, 1 + +block_82: + c->lwu(v1, 68, s5); // lwu v1, 68(s5) + c->slt(v1, s4, v1); // slt v1, s4, v1 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L121 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v0, s3); // or v0, s3, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 96, sp); // lq gp, 96(sp) + c->lq(s5, 80, sp); // lq s5, 80(sp) + c->lq(s4, 64, sp); // lq s4, 64(sp) + c->lq(s3, 48, sp); // lq s3, 48(sp) + c->lq(s2, 32, sp); // lq s2, 32(sp) + c->lq(s1, 16, sp); // lq s1, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 112); // daddiu sp, sp, 112 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.foreground = intern_from_c(-1, 0, "*foreground*").c(); + cache.merc_global_stats = intern_from_c(-1, 0, "*merc-global-stats*").c(); + cache.foreground_generic_merc_add_fragments = intern_from_c(-1, 0, "foreground-generic-merc-add-fragments").c(); + cache.foreground_generic_merc_death = intern_from_c(-1, 0, "foreground-generic-merc-death").c(); + gLinkedFunctionTable.reg("foreground-generic-merc", execute, 512); +} + +} // namespace foreground_generic_merc +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/generic_effect.cpp b/game/mips2c/jakx_functions/generic_effect.cpp new file mode 100644 index 0000000000..10443a96f7 --- /dev/null +++ b/game/mips2c/jakx_functions/generic_effect.cpp @@ -0,0 +1,2170 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_warp_envmap_dest { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* viewport_array; // *viewport-array* + void* generic_envmap_proc; // generic-envmap-proc + void* generic_no_light_proc; // generic-no-light-proc + void* generic_warp_dest_proc; // generic-warp-dest-proc +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(gp, 16, sp); // sq gp, 16(sp) + c->daddiu(v1, s7, 4); // daddiu v1, s7, #t + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L9 + c->mov64(v0, s7); // or v0, s7, r0 + if (bc) {goto block_11;} // branch non-likely + + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->mov64(v1, a0); // or v1, a0, r0 + c->load_symbol2(a0, cache.viewport_array); // lw a0, *viewport-array*(s7) + c->addiu(a1, r0, 688); // addiu a1, r0, 688 + c->lwu(a2, 8, a0); // lwu a2, 8(a0) + c->multu3(a1, a1, a2); // multu3 a1, a1, a2 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddu(a0, a1, a0); // daddu a0, a1, a0 + c->daddiu(gp, a0, 368); // daddiu gp, a0, 368 + c->mov64(a0, gp); // or a0, gp, r0 + c->addiu(a0, r0, 14); // addiu a0, r0, 14 + c->sh(a0, 11984, at); // sh a0, 11984(at) + c->sw(r0, 48, at); // sw r0, 48(at) + c->sw(v1, 44, at); // sw v1, 44(at) + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->sh(v1, 56, at); // sh v1, 56(at) + c->daddiu(v1, at, 12064); // daddiu v1, at, 12064 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6842, a0); // lbu a0, 6842(a0) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L4 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_3;} // branch non-likely + + c->addiu(v1, r0, 6960); // addiu v1, r0, 6960 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->mov64(v1, v1); // or v1, v1, r0 + c->mov64(a0, v1); // or a0, v1, r0 + +block_3: + c->sw(v1, 52, at); // sw v1, 52(at) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7468, v1); // lwu t9, 7468(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->ld(v1, 0, gp); // ld v1, 0(gp) + c->ld(a0, 16, gp); // ld a0, 16(gp) + c->ld(a1, 32, gp); // ld a1, 32(gp) + c->ld(a2, 48, gp); // ld a2, 48(gp) + c->ld(t0, 64, gp); // ld t0, 64(gp) + c->ld(a3, 11936, at); // ld a3, 11936(at) + get_fake_spad_addr2(t1, cache.fake_scratchpad_data, 0, c);// lui t1, 28672 + c->lbu(t1, 6856, t1); // lbu t1, 6856(t1) + c->addiu(t2, r0, 128); // addiu t2, r0, 128 + c->sltu(t2, t2, t1); // sltu t2, t2, t1 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L5 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->addiu(t2, r0, 128); // addiu t2, r0, 128 + c->dsubu(t1, t2, t1); // dsubu t1, t2, t1 + c->dsll32(t1, t1, 24); // dsll32 t1, t1, 24 + c->dsrl(t1, t1, 24); // dsrl t1, t1, 24 + c->ori(t1, t1, 100); // ori t1, t1, 100 + c->mov64(t1, t1); // or t1, t1, r0 + c->mov64(t2, t1); // or t2, t1, r0 + //beq r0, r0, L6 // beq r0, r0, L6 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_5: + c->ld(t1, 11904, at); // ld t1, 11904(at) + c->mov64(t2, t1); // or t2, t1, r0 + +block_6: + c->lw(t2, 24, at); // lw t2, 24(at) + c->sd(v1, 128, t2); // sd v1, 128(t2) + c->sd(a0, 144, t2); // sd a0, 144(t2) + c->sd(a1, 160, t2); // sd a1, 160(t2) + c->sd(a2, 176, t2); // sd a2, 176(t2) + c->sd(t0, 192, t2); // sd t0, 192(t2) + c->addiu(v1, r0, 71); // addiu v1, r0, 71 + c->sd(a3, 96, t2); // sd a3, 96(t2) + c->addiu(a0, r0, 66); // addiu a0, r0, 66 + c->sd(t1, 112, t2); // sd t1, 112(t2) + c->sw(v1, 104, t2); // sw v1, 104(t2) + c->sw(a0, 120, t2); // sw a0, 120(t2) + c->load_symbol2(t9, cache.generic_warp_dest_proc);// lw t9, generic-warp-dest-proc(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.generic_no_light_proc); // lw t9, generic-no-light-proc(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.generic_envmap_proc); // lw t9, generic-envmap-proc(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(v1, 24, at); // lw v1, 24(at) + c->lw(a0, 40, at); // lw a0, 40(at) + c->mov64(a3, v1); // or a3, v1, r0 + // nop // sll r0, r0, 0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lui(a2, 4096); // lui a2, 4096 + c->lwu(a1, 60, at); // lwu a1, 60(at) + c->ori(a2, a2, 53248); // ori a2, a2, 53248 + c->lw(t1, 0, a2); // lw t1, 0(a2) + // nop // sll r0, r0, 0 + c->daddiu(t0, at, 92); // daddiu t0, at, 92 + c->andi(a3, a3, 16383); // andi a3, a3, 16383 + c->andi(t1, t1, 256); // andi t1, t1, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L8 + // nop // sll r0, r0, 0 + if (bc) {goto block_10;} // branch non-likely + + c->mov64(t1, a2); // or t1, a2, r0 + // nop // sll r0, r0, 0 + +block_8: + c->lw(t2, 0, t0); // lw t2, 0(t0) + // nop // sll r0, r0, 0 + c->lw(t3, 0, t1); // lw t3, 0(t1) + // nop // sll r0, r0, 0 + c->andi(t3, t3, 256); // andi t3, t3, 256 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L7 + c->sw(t2, 0, t0); // sw t2, 0(t0) + if (bc) {goto block_8;} // branch non-likely + + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + +block_10: + c->dsll(t0, a0, 4); // dsll t0, a0, 4 + c->sw(a3, 128, a2); // sw a3, 128(a2) + // nop // sll r0, r0, 0 + c->sw(a1, 16, a2); // sw a1, 16(a2) + c->addiu(a3, r0, 256); // addiu a3, r0, 256 + c->sw(a0, 32, a2); // sw a0, 32(a2) + c->daddu(a0, a1, t0); // daddu a0, a1, t0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + // nop // sll r0, r0, 0 + c->sw(a0, 60, at); // sw a0, 60(at) + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->xori(v0, v1, 4608); // xori v0, v1, 4608 + c->sw(v0, 24, at); // sw v0, 24(at) + +block_11: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 16, sp); // lq gp, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.viewport_array = intern_from_c(-1, 0, "*viewport-array*").c(); + cache.generic_envmap_proc = intern_from_c(-1, 0, "generic-envmap-proc").c(); + cache.generic_no_light_proc = intern_from_c(-1, 0, "generic-no-light-proc").c(); + cache.generic_warp_dest_proc = intern_from_c(-1, 0, "generic-warp-dest-proc").c(); + gLinkedFunctionTable.reg("generic-warp-envmap-dest", execute, 256); +} + +} // namespace generic_warp_envmap_dest +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_warp_dest { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* viewport_array; // *viewport-array* + void* generic_no_light_proc; // generic-no-light-proc + void* generic_warp_dest_proc; // generic-warp-dest-proc +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(gp, 16, sp); // sq gp, 16(sp) + c->daddiu(v1, s7, 4); // daddiu v1, s7, #t + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L14 + c->mov64(v0, s7); // or v0, s7, r0 + if (bc) {goto block_8;} // branch non-likely + + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->mov64(v1, a0); // or v1, a0, r0 + c->load_symbol2(a0, cache.viewport_array); // lw a0, *viewport-array*(s7) + c->addiu(a1, r0, 688); // addiu a1, r0, 688 + c->lwu(a2, 8, a0); // lwu a2, 8(a0) + c->multu3(a1, a1, a2); // multu3 a1, a1, a2 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddu(a0, a1, a0); // daddu a0, a1, a0 + c->daddiu(gp, a0, 368); // daddiu gp, a0, 368 + c->mov64(a0, gp); // or a0, gp, r0 + c->addiu(a0, r0, 14); // addiu a0, r0, 14 + c->sh(a0, 11984, at); // sh a0, 11984(at) + c->sw(r0, 48, at); // sw r0, 48(at) + c->sw(v1, 44, at); // sw v1, 44(at) + c->sh(r0, 56, at); // sh r0, 56(at) + c->daddiu(v1, at, 12064); // daddiu v1, at, 12064 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6842, a0); // lbu a0, 6842(a0) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L11 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_3;} // branch non-likely + + c->addiu(v1, r0, 6960); // addiu v1, r0, 6960 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->mov64(v1, v1); // or v1, v1, r0 + c->mov64(a0, v1); // or a0, v1, r0 + +block_3: + c->sw(v1, 52, at); // sw v1, 52(at) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7464, v1); // lwu t9, 7464(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->ld(v1, 0, gp); // ld v1, 0(gp) + c->ld(a0, 16, gp); // ld a0, 16(gp) + c->ld(a1, 32, gp); // ld a1, 32(gp) + c->ld(a2, 48, gp); // ld a2, 48(gp) + c->ld(a3, 64, gp); // ld a3, 64(gp) + c->ld(t0, 11936, at); // ld t0, 11936(at) + c->lw(t1, 24, at); // lw t1, 24(at) + c->sd(v1, 128, t1); // sd v1, 128(t1) + c->sd(a0, 144, t1); // sd a0, 144(t1) + c->sd(a1, 160, t1); // sd a1, 160(t1) + c->sd(a2, 176, t1); // sd a2, 176(t1) + c->sd(a3, 192, t1); // sd a3, 192(t1) + c->sd(t0, 96, t1); // sd t0, 96(t1) + c->load_symbol2(t9, cache.generic_warp_dest_proc);// lw t9, generic-warp-dest-proc(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.generic_no_light_proc); // lw t9, generic-no-light-proc(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(v1, 24, at); // lw v1, 24(at) + c->lw(a0, 40, at); // lw a0, 40(at) + c->mov64(a3, v1); // or a3, v1, r0 + // nop // sll r0, r0, 0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lui(a2, 4096); // lui a2, 4096 + c->lwu(a1, 60, at); // lwu a1, 60(at) + c->ori(a2, a2, 53248); // ori a2, a2, 53248 + c->lw(t1, 0, a2); // lw t1, 0(a2) + // nop // sll r0, r0, 0 + c->daddiu(t0, at, 92); // daddiu t0, at, 92 + c->andi(a3, a3, 16383); // andi a3, a3, 16383 + c->andi(t1, t1, 256); // andi t1, t1, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L13 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->mov64(t1, a2); // or t1, a2, r0 + // nop // sll r0, r0, 0 + +block_5: + c->lw(t2, 0, t0); // lw t2, 0(t0) + // nop // sll r0, r0, 0 + c->lw(t3, 0, t1); // lw t3, 0(t1) + // nop // sll r0, r0, 0 + c->andi(t3, t3, 256); // andi t3, t3, 256 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L12 + c->sw(t2, 0, t0); // sw t2, 0(t0) + if (bc) {goto block_5;} // branch non-likely + + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + +block_7: + c->dsll(t0, a0, 4); // dsll t0, a0, 4 + c->sw(a3, 128, a2); // sw a3, 128(a2) + // nop // sll r0, r0, 0 + c->sw(a1, 16, a2); // sw a1, 16(a2) + c->addiu(a3, r0, 256); // addiu a3, r0, 256 + c->sw(a0, 32, a2); // sw a0, 32(a2) + c->daddu(a0, a1, t0); // daddu a0, a1, t0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + // nop // sll r0, r0, 0 + c->sw(a0, 60, at); // sw a0, 60(at) + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->xori(v0, v1, 4608); // xori v0, v1, 4608 + c->sw(v0, 24, at); // sw v0, 24(at) + +block_8: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 16, sp); // lq gp, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.viewport_array = intern_from_c(-1, 0, "*viewport-array*").c(); + cache.generic_no_light_proc = intern_from_c(-1, 0, "generic-no-light-proc").c(); + cache.generic_warp_dest_proc = intern_from_c(-1, 0, "generic-warp-dest-proc").c(); + gLinkedFunctionTable.reg("generic-warp-dest", execute, 256); +} + +} // namespace generic_warp_dest +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_warp_dest_proc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(fp, 12440, at); // sd fp, 12440(at) + c->mov64(fp, t9); // or fp, t9, r0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lw(a1, 44, at); // lw a1, 44(at) + c->lw(v1, 8, a1); // lw v1, 8(a1) + c->lw(a0, 4, a1); // lw a0, 4(a1) + c->lbu(a1, 17, a1); // lbu a1, 17(a1) + c->lhu(a3, 6820, at); // lhu a3, 6820(at) + c->lhu(a2, 6822, at); // lhu a2, 6822(at) + c->dsll(t0, a3, 16); // dsll t0, a3, 16 + c->or_(a3, a3, t0); // or a3, a3, t0 + // Unknown instr: ld t0, L111(fp) + c->gprs[t0].du64[0] = 0xffff'ffff; + +block_1: + c->lwu(t1, 12, a0); // lwu t1, 12(a0) + c->psubh(t1, t1, a3); // psubh t1, t1, a3 + c->dsrav(t1, t1, a2); // dsrav t1, t1, a2 + c->ppacb(t1, r0, t1); // ppacb t1, r0, t1 + c->and_(t1, t1, t0); // and t1, t1, t0 + c->sll(t1, t1, 2); // sll t1, t1, 2 + c->daddu(t1, v1, t1); // daddu t1, v1, t1 + c->lw(t1, 0, t1); // lw t1, 0(t1) + c->sw(t1, 12, a0); // sw t1, 12(a0) + c->daddiu(a1, a1, -1); // daddiu a1, a1, -1 + bc = ((s64)c->sgpr64(a1)) > 0; // bgtz a1, L16 + c->daddiu(a0, a0, 32); // daddiu a0, a0, 32 + if (bc) {goto block_1;} // branch non-likely + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(fp, 12440, at); // ld fp, 12440(at) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("generic-warp-dest-proc", execute, 256); +} + +} // namespace generic_warp_dest_proc +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_warp_source_proc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* view_get_active_math_camera; // view-get-active-math-camera +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -64); // daddiu sp, sp, -64 + c->sd(ra, 12432, at); // sd ra, 12432(at) + c->sd(fp, 12440, at); // sd fp, 12440(at) + c->mov64(fp, t9); // or fp, t9, r0 + c->sq(s4, 12448, at); // sq s4, 12448(at) + c->sq(s5, 12464, at); // sq s5, 12464(at) + c->sq(gp, 12480, at); // sq gp, 12480(at) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lw(v1, 44, at); // lw v1, 44(at) + c->lw(gp, 8, v1); // lw gp, 8(v1) + c->lw(s5, 4, v1); // lw s5, 4(v1) + c->lh(s4, 20, v1); // lh s4, 20(v1) + c->load_symbol2(t9, cache.view_get_active_math_camera);// lw t9, view-get-active-math-camera(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->lhu(a0, 6820, at); // lhu a0, 6820(at) + c->lhu(v1, 6822, at); // lhu v1, 6822(at) + c->dsll(a1, a0, 16); // dsll a1, a0, 16 + c->or_(a0, a0, a1); // or a0, a0, a1 + c->lqc2(vf5, 7520, at); // lqc2 vf5, 7520(at) + c->lqc2(vf6, 7536, at); // lqc2 vf6, 7536(at) + c->lqc2(vf1, 7136, at); // lqc2 vf1, 7136(at) + c->lqc2(vf2, 7152, at); // lqc2 vf2, 7152(at) + c->lqc2(vf3, 7168, at); // lqc2 vf3, 7168(at) + c->lqc2(vf4, 7184, at); // lqc2 vf4, 7184(at) + // Unknown instr: ld a1, L111(fp) + c->gprs[a1].du64[0] = 0xffff'ffff; + +block_1: + c->lqc2(vf9, 0, s5); // lqc2 vf9, 0(s5) + c->lwu(a2, 12, s5); // lwu a2, 12(s5) + c->vmax_bc(DEST::z, BC::z, vf9, vf9, vf6); // vmaxz.z vf9, vf9, vf6 + // nop // vnop + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf9); // vmaddax.xyzw acc, vf1, vf9 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf9); // vmadday.xyzw acc, vf2, vf9 + c->vmadd_bc(DEST::xyzw, BC::z, vf9, vf3, vf9); // vmaddz.xyzw vf9, vf3, vf9 + // nop // vnop + c->vdiv(vf5, BC::w, vf9, BC::w); // vdiv Q, vf5.w, vf9.w + // nop // vnop + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyz, vf9, vf9); // vmulq.xyz vf9, vf9, Q + c->vmul(DEST::xy, vf9, vf9, vf5); // vmul.xy vf9, vf9, vf5 + c->vadd_bc(DEST::xy, BC::z, vf9, vf9, vf5); // vaddz.xy vf9, vf9, vf5 + c->vadd(DEST::xy, vf9, vf9, vf6); // vadd.xy vf9, vf9, vf6 + c->vftoi12(DEST::xyzw, vf10, vf9); // vftoi12.xyzw vf10, vf9 + c->psubh(a2, a2, a0); // psubh a2, a2, a0 + c->dsrav(a2, a2, v1); // dsrav a2, a2, v1 + c->ppacb(a2, r0, a2); // ppacb a2, r0, a2 + c->and_(a2, a2, a1); // and a2, a2, a1 + bc = ((s64)c->sgpr64(a2)) < 0; // bltz a2, L20 + c->daddiu(a3, a2, -394); // daddiu a3, a2, -394 + if (bc) {goto block_3;} // branch non-likely + + bc = ((s64)c->sgpr64(a3)) < 0; // bltz a3, L21 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + +block_3: + // nop // sll r0, r0, 0 + +block_4: + c->sll(a2, a2, 2); // sll a2, a2, 2 + c->daddu(a2, gp, a2); // daddu a2, gp, a2 + c->mov128_gpr_vf(a3, vf10); // qmfc2.i a3, vf10 + c->ppach(a3, r0, a3); // ppach a3, r0, a3 + c->daddiu(s4, s4, -1); // daddiu s4, s4, -1 + c->sw(a3, 0, a2); // sw a3, 0(a2) + bc = ((s64)c->sgpr64(s4)) > 0; // bgtz s4, L19 + c->daddiu(s5, s5, 32); // daddiu s5, s5, 32 + if (bc) {goto block_1;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 12432, at); // ld ra, 12432(at) + c->ld(fp, 12440, at); // ld fp, 12440(at) + c->lq(gp, 12480, at); // lq gp, 12480(at) + c->lq(s5, 12464, at); // lq s5, 12464(at) + c->lq(s4, 12448, at); // lq s4, 12448(at) + //jr ra // jr ra + c->daddiu(sp, sp, 64); // daddiu sp, sp, 64 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.view_get_active_math_camera = intern_from_c(-1, 0, "view-get-active-math-camera").c(); + gLinkedFunctionTable.reg("generic-warp-source-proc", execute, 256); +} + +} // namespace generic_warp_source_proc +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_no_light_proc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 12432, at); // sd ra, 12432(at) + c->sq(s2, 12448, at); // sq s2, 12448(at) + c->sq(s3, 12464, at); // sq s3, 12464(at) + c->sq(s4, 12480, at); // sq s4, 12480(at) + c->sq(s5, 12496, at); // sq s5, 12496(at) + c->sq(gp, 12512, at); // sq gp, 12512(at) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + // nop // sll r0, r0, 0 + c->addiu(t1, r0, 256); // addiu t1, r0, 256 + c->lw(v1, 36, at); // lw v1, 36(at) + c->lui(a0, -2); // lui a0, -2 + c->lw(a1, 44, at); // lw a1, 44(at) + c->daddiu(v1, v1, 3); // daddiu v1, v1, 3 + c->addiu(a3, r0, 255); // addiu a3, r0, 255 + c->dsra(a2, v1, 2); // dsra a2, v1, 2 + c->lw(v1, 0, a1); // lw v1, 0(a1) + c->dsll(t0, a2, 3); // dsll t0, a2, 3 + c->lw(a2, 4, a1); // lw a2, 4(a1) + c->ori(a1, a0, 65534); // ori a1, a0, 65534 + c->daddu(a0, v1, t0); // daddu a0, v1, t0 + c->pextlw(a1, a1, a1); // pextlw a1, a1, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlw(a1, a1, a1); // pextlw a1, a1, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlw(a2, a2, a2); // pextlw a2, a2, a2 + c->lw(t2, 4, at); // lw t2, 4(at) + c->pextlw(a2, a2, a2); // pextlw a2, a2, a2 + c->lw(t3, 8, at); // lw t3, 8(at) + c->pcpyh(a3, a3); // pcpyh a3, a3 + c->lw(t4, 12, at); // lw t4, 12(at) + c->pcpyld(a3, a3, a3); // pcpyld a3, a3, a3 + c->lq(t0, 12160, at); // lq t0, 12160(at) + c->pcpyh(t1, t1); // pcpyh t1, t1 + c->ld(t5, 0, v1); // ld t5, 0(v1) + c->pcpyld(t1, t1, t1); // pcpyld t1, t1, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t6, r0, t5); // pextlh t6, r0, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t5, t6, a3); // pand t5, t6, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllw(t5, t5, 5); // psllw t5, t5, 5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->daddiu(t2, t2, -48); // daddiu t2, t2, -48 + c->daddiu(t3, t3, -16); // daddiu t3, t3, -16 + //beq r0, r0, L55 // beq r0, r0, L55 + c->daddiu(t4, t4, -16); // daddiu t4, t4, -16 + goto block_2; // branch always + + +block_1: + c->pextlh(t6, r0, ra); // pextlh t6, r0, ra + c->sq(t5, 0, t2); // sq t5, 0(t2) + c->pand(t5, t6, a3); // pand t5, t6, a3 + c->sq(t7, 16, t2); // sq t7, 16(t2) + c->psllw(t5, t5, 5); // psllw t5, t5, 5 + c->sq(t8, 32, t2); // sq t8, 32(t2) + +block_2: + c->paddw(gp, t5, a2); // paddw gp, t5, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsrl32(s4, gp, 0); // dsrl32 s4, gp, 0 + c->daddiu(t2, t2, 48); // daddiu t2, t2, 48 + c->pcpyud(s5, gp, r0); // pcpyud s5, gp, r0 + c->lq(t5, 0, gp); // lq t5, 0(gp) + c->dsrl32(t8, s5, 0); // dsrl32 t8, s5, 0 + c->daddiu(t3, t3, 16); // daddiu t3, t3, 16 + c->pand(t6, t6, t1); // pand t6, t6, t1 + c->lq(t7, 0, s4); // lq t7, 0(s4) + c->psraw(ra, t6, 8); // psraw ra, t6, 8 + c->lq(t6, 0, s5); // lq t6, 0(s5) + c->pextuw(s3, t7, t5); // pextuw s3, t7, t5 + c->lq(t9, 0, t8); // lq t9, 0(t8) + c->daddiu(t4, t4, 16); // daddiu t4, t4, 16 + c->daddiu(v1, v1, 8); // daddiu v1, v1, 8 + c->pextuw(s2, t9, t6); // pextuw s2, t9, t6 + c->lw(gp, 28, gp); // lw gp, 28(gp) + c->pcpyud(s3, s3, s2); // pcpyud s3, s3, s2 + c->lw(s4, 28, s4); // lw s4, 28(s4) + c->paddh(s3, s3, t0); // paddh s3, s3, t0 + c->lw(s5, 28, s5); // lw s5, 28(s5) + c->pand(s3, s3, a1); // pand s3, s3, a1 + c->lw(t8, 28, t8); // lw t8, 28(t8) + c->por(ra, s3, ra); // por ra, s3, ra + c->sw(gp, 0, t3); // sw gp, 0(t3) + c->prot3w(t9, t9); // prot3w t9, t9 + c->sq(ra, 0, t4); // sq ra, 0(t4) + c->prot3w(t7, t7); // prot3w t7, t7 + c->sw(s4, 4, t3); // sw s4, 4(t3) + c->pextuw(gp, t7, t5); // pextuw gp, t7, t5 + c->sw(s5, 8, t3); // sw s5, 8(t3) + c->pcpyld(t7, t6, t7); // pcpyld t7, t6, t7 + c->ld(ra, 0, v1); // ld ra, 0(v1) + c->pcpyld(t5, gp, t5); // pcpyld t5, gp, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuw(t6, t9, t6); // pextuw t6, t9, t6 + c->sw(t8, 12, t3); // sw t8, 12(t3) + bc = c->sgpr64(v1) != c->sgpr64(a0); // bne v1, a0, L54 + c->pcpyld(t8, t9, t6); // pcpyld t8, t9, t6 + if (bc) {goto block_1;} // branch non-likely + + // nop // sll r0, r0, 0 + c->sq(t5, 0, t2); // sq t5, 0(t2) + // nop // sll r0, r0, 0 + c->sq(t7, 16, t2); // sq t7, 16(t2) + // nop // sll r0, r0, 0 + c->sq(t8, 32, t2); // sq t8, 32(t2) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 12432, at); // ld ra, 12432(at) + c->lq(gp, 12512, at); // lq gp, 12512(at) + c->lq(s5, 12496, at); // lq s5, 12496(at) + c->lq(s4, 12480, at); // lq s4, 12480(at) + c->lq(s3, 12464, at); // lq s3, 12464(at) + c->lq(s2, 12448, at); // lq s2, 12448(at) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("generic-no-light-proc", execute, 256); +} + +} // namespace generic_no_light_proc +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_prepare_dma_single { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->sq(gp, 12448, at); // sq gp, 12448(at) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + // nop // sll r0, r0, 0 + c->lw(t1, 44, at); // lw t1, 44(at) + // nop // sll r0, r0, 0 + c->lw(t8, 48, at); // lw t8, 48(at) + // nop // sll r0, r0, 0 + c->lw(v1, 24, at); // lw v1, 24(at) + // nop // sll r0, r0, 0 + c->lh(t3, 56, at); // lh t3, 56(at) + // nop // sll r0, r0, 0 + c->lh(a1, 18, t1); // lh a1, 18(t1) + c->mov64(a0, v1); // or a0, v1, r0 + c->lbu(a2, 16, t1); // lbu a2, 16(t1) + bc = c->sgpr64(t8) == 0; // beq t8, r0, L70 + c->lq(t4, 11744, at); // lq t4, 11744(at) + if (bc) {goto block_10;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(t9, 11808, at); // lq t9, 11808(at) + // nop // sll r0, r0, 0 + c->lq(gp, 11824, at); // lq gp, 11824(at) + c->mov64(a3, a2); // or a3, a2, r0 + c->lq(t7, 11840, at); // lq t7, 11840(at) + bc = c->sgpr64(t3) != 0; // bne t3, r0, L64 + c->lq(t2, 11856, at); // lq t2, 11856(at) + if (bc) {goto block_3;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(t0, 11872, at); // lq t0, 11872(at) + // nop // sll r0, r0, 0 + c->lq(t5, 11888, at); // lq t5, 11888(at) + //beq r0, r0, L65 // beq r0, r0, L65 + c->lq(t6, 11936, at); // lq t6, 11936(at) + goto block_4; // branch always + + +block_3: + // nop // sll r0, r0, 0 + c->lq(t0, 12032, at); // lq t0, 12032(at) + // nop // sll r0, r0, 0 + c->lq(t5, 11936, at); // lq t5, 11936(at) + // nop // sll r0, r0, 0 + c->lq(t6, 11936, at); // lq t6, 11936(at) + +block_4: + // nop // sll r0, r0, 0 + c->sq(t4, 0, a0); // sq t4, 0(a0) + // nop // sll r0, r0, 0 + c->sq(t9, 16, a0); // sq t9, 16(a0) + // nop // sll r0, r0, 0 + c->sq(gp, 32, a0); // sq gp, 32(a0) + c->mov64(t4, t8); // or t4, t8, r0 + c->sq(t7, 48, a0); // sq t7, 48(a0) + c->daddiu(t1, t1, 22); // daddiu t1, t1, 22 + c->sq(t2, 64, a0); // sq t2, 64(a0) + c->addiu(t2, r0, 0); // addiu t2, r0, 0 + c->sq(t0, 80, a0); // sq t0, 80(a0) + c->addiu(t0, r0, 128); // addiu t0, r0, 128 + c->sq(t5, 96, a0); // sq t5, 96(a0) + bc = c->sgpr64(t3) != 0; // bne t3, r0, L67 + c->sq(t6, 112, a0); // sq t6, 112(a0) + if (bc) {goto block_7;} // branch non-likely + + +block_5: + c->daddu(a0, a0, t0); // daddu a0, a0, t0 + c->lq(t0, 0, t4); // lq t0, 0(t4) + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + c->lbu(t3, 0, t1); // lbu t3, 0(t1) + // nop // sll r0, r0, 0 + c->lq(t5, 16, t4); // lq t5, 16(t4) + c->daddu(t7, t3, t3); // daddu t7, t3, t3 + c->lq(t6, 32, t4); // lq t6, 32(t4) + c->daddu(t8, t7, t3); // daddu t8, t7, t3 + c->lq(t7, 48, t4); // lq t7, 48(t4) + c->daddiu(t9, t8, 9); // daddiu t9, t8, 9 + c->lq(t8, 64, t4); // lq t8, 64(t4) + c->daddiu(t4, t4, 80); // daddiu t4, t4, 80 + c->sq(t0, 0, a0); // sq t0, 0(a0) + // nop // sll r0, r0, 0 + c->sw(t2, 12, a0); // sw t2, 12(a0) + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->sq(t5, 16, a0); // sq t5, 16(a0) + c->daddu(t2, t2, t9); // daddu t2, t2, t9 + c->sw(t3, 28, a0); // sw t3, 28(a0) + // nop // sll r0, r0, 0 + c->sq(t6, 32, a0); // sq t6, 32(a0) + c->addiu(t0, r0, 80); // addiu t0, r0, 80 + c->sq(t7, 48, a0); // sq t7, 48(a0) + bc = ((s64)c->sgpr64(a3)) > 0; // bgtz a3, L66 + c->sq(t8, 64, a0); // sq t8, 64(a0) + if (bc) {goto block_5;} // branch non-likely + + //beq r0, r0, L69 // beq r0, r0, L69 + // nop // sll r0, r0, 0 + goto block_9; // branch always + + +block_7: + // nop // sll r0, r0, 0 + c->lw(t3, 52, at); // lw t3, 52(at) + // nop // sll r0, r0, 0 + c->lq(t4, 0, t3); // lq t4, 0(t3) + // nop // sll r0, r0, 0 + c->lq(t5, 16, t3); // lq t5, 16(t3) + // nop // sll r0, r0, 0 + c->lq(t6, 32, t3); // lq t6, 32(t3) + // nop // sll r0, r0, 0 + c->lq(t7, 48, t3); // lq t7, 48(t3) + // nop // sll r0, r0, 0 + c->lq(t8, 64, t3); // lq t8, 64(t3) + +block_8: + c->daddu(a0, a0, t0); // daddu a0, a0, t0 + c->lbu(t3, 0, t1); // lbu t3, 0(t1) + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + c->sq(t4, 0, a0); // sq t4, 0(a0) + c->daddu(t0, t3, t3); // daddu t0, t3, t3 + c->sw(t2, 12, a0); // sw t2, 12(a0) + c->daddu(t0, t0, t3); // daddu t0, t0, t3 + c->sq(t5, 16, a0); // sq t5, 16(a0) + c->daddiu(t0, t0, 9); // daddiu t0, t0, 9 + c->sw(t3, 28, a0); // sw t3, 28(a0) + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + // nop // sll r0, r0, 0 + c->daddu(t2, t2, t0); // daddu t2, t2, t0 + c->sq(t6, 32, a0); // sq t6, 32(a0) + c->addiu(t0, r0, 80); // addiu t0, r0, 80 + c->sq(t7, 48, a0); // sq t7, 48(a0) + bc = ((s64)c->sgpr64(a3)) > 0; // bgtz a3, L68 + c->sq(t8, 64, a0); // sq t8, 64(a0) + if (bc) {goto block_8;} // branch non-likely + + +block_9: + c->ori(a3, t3, 32768); // ori a3, t3, 32768 + c->sw(a1, 36, at); // sw a1, 36(at) + // nop // sll r0, r0, 0 + c->sw(a3, 28, a0); // sw a3, 28(a0) + // nop // sll r0, r0, 0 + c->sw(a2, 92, a0); // sw a2, 92(a0) + // nop // sll r0, r0, 0 + c->sw(a1, 108, v1); // sw a1, 108(v1) + //beq r0, r0, L71 // beq r0, r0, L71 + c->sw(r0, 124, v1); // sw r0, 124(v1) + goto block_11; // branch always + + +block_10: + c->dsll(a3, a2, 2); // dsll a3, a2, 2 + c->sq(t4, 0, a0); // sq t4, 0(a0) + c->daddu(a3, a3, a2); // daddu a3, a3, a2 + c->sw(a1, 108, v1); // sw a1, 108(v1) + c->dsll(a3, a3, 4); // dsll a3, a3, 4 + // nop // sll r0, r0, 0 + c->daddiu(t0, a3, 128); // daddiu t0, a3, 128 + c->sw(a1, 36, at); // sw a1, 36(at) + +block_11: + c->dsll(t1, a2, 2); // dsll t1, a2, 2 + c->lw(a3, 12, v1); // lw a3, 12(v1) + c->daddu(a2, t1, a2); // daddu a2, t1, a2 + c->lw(t1, 68, at); // lw t1, 68(at) + c->daddiu(a2, a2, 7); // daddiu a2, a2, 7 + // nop // sll r0, r0, 0 + c->or_(t2, a3, t1); // or t2, a3, t1 + // nop // sll r0, r0, 0 + c->sll(t3, a2, 16); // sll t3, a2, 16 + c->xori(a3, t1, 38); // xori a3, t1, 38 + c->or_(t1, t2, t3); // or t1, t2, t3 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + // nop // sll r0, r0, 0 + c->sw(t1, 12, v1); // sw t1, 12(v1) + // nop // sll r0, r0, 0 + c->sw(a3, 68, at); // sw a3, 68(at) + c->daddiu(a1, a1, 3); // daddiu a1, a1, 3 + c->daddu(a0, a0, t0); // daddu a0, a0, t0 + c->dsra(a1, a1, 2); // dsra a1, a1, 2 + c->daddiu(a2, a0, 32); // daddiu a2, a0, 32 + c->dsll(t0, a1, 2); // dsll t0, a1, 2 + // nop // sll r0, r0, 0 + c->daddu(a3, t0, t0); // daddu a3, t0, t0 + c->dsll(a1, t0, 2); // dsll a1, t0, 2 + c->daddu(a3, a3, t0); // daddu a3, a3, t0 + c->daddiu(a1, a1, 15); // daddiu a1, a1, 15 + c->dsll(a3, a3, 2); // dsll a3, a3, 2 + c->dsra(a1, a1, 4); // dsra a1, a1, 4 + c->daddiu(a3, a3, 15); // daddiu a3, a3, 15 + c->dsll(t1, a1, 4); // dsll t1, a1, 4 + c->dsra(a3, a3, 4); // dsra a3, a3, 4 + c->lw(a1, 72, at); // lw a1, 72(at) + c->dsll(a3, a3, 4); // dsll a3, a3, 4 + // nop // sll r0, r0, 0 + c->daddu(a3, a2, a3); // daddu a3, a2, a3 + c->lw(t2, 11968, at); // lw t2, 11968(at) + c->daddu(a2, a3, t1); // daddu a2, a3, t1 + c->sq(r0, 0, a3); // sq r0, 0(a3) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->sq(r0, -16, a3); // sq r0, -16(a3) + c->daddu(t1, a2, t1); // daddu t1, a2, t1 + c->sq(r0, -32, a3); // sq r0, -32(a3) + c->daddiu(t1, t1, 16); // daddiu t1, t1, 16 + c->sq(r0, 0, a2); // sq r0, 0(a2) + c->subu(t3, t1, v1); // subu t3, t1, v1 + c->sq(r0, -16, a2); // sq r0, -16(a2) + c->sra(t3, t3, 4); // sra t3, t3, 4 + c->sq(r0, 0, a0); // sq r0, 0(a0) + // nop // sll r0, r0, 0 + c->sh(t3, 0, v1); // sh t3, 0(v1) + c->daddiu(v1, t3, 1); // daddiu v1, t3, 1 + c->sq(r0, 0, t1); // sq r0, 0(t1) + // nop // sll r0, r0, 0 + c->sq(r0, -16, t1); // sq r0, -16(t1) + // nop // sll r0, r0, 0 + c->daddiu(t5, a1, 1); // daddiu t5, a1, 1 + c->daddiu(t4, a1, 2); // daddiu t4, a1, 2 + c->lw(t3, 11988, at); // lw t3, 11988(at) + // nop // sll r0, r0, 0 + c->lw(t7, 11972, at); // lw t7, 11972(at) + c->dsll(t0, t0, 16); // dsll t0, t0, 16 + c->lw(t6, 11976, at); // lw t6, 11976(at) + c->or_(t4, t7, t4); // or t4, t7, t4 + c->lw(t7, 11980, at); // lw t7, 11980(at) + c->or_(t5, t6, t5); // or t5, t6, t5 + c->lw(t6, 11984, at); // lw t6, 11984(at) + // nop // sll r0, r0, 0 + c->lw(t8, 11992, at); // lw t8, 11992(at) + c->mov64(t9, a1); // or t9, a1, r0 + c->sw(t2, 8, a0); // sw t2, 8(a0) + c->or_(t2, t7, t9); // or t2, t7, t9 + c->sw(t8, 0, t1); // sw t8, 0(t1) + c->daddiu(a0, a0, 16); // daddiu a0, a0, 16 + c->sw(r0, 4, t1); // sw r0, 4(t1) + c->or_(t4, t4, t0); // or t4, t4, t0 + c->sw(t6, 8, t1); // sw t6, 8(t1) + c->daddiu(a3, a3, 16); // daddiu a3, a3, 16 + c->sw(t3, 12, t1); // sw t3, 12(t1) + c->or_(t1, t5, t0); // or t1, t5, t0 + c->sw(t4, -4, a0); // sw t4, -4(a0) + c->or_(t0, t2, t0); // or t0, t2, t0 + c->sw(t1, -4, a3); // sw t1, -4(a3) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->sw(t0, -4, a2); // sw t0, -4(a2) + c->addiu(t0, r0, 567); // addiu t0, r0, 567 + c->sw(v1, 40, at); // sw v1, 40(at) + bc = c->sgpr64(a1) != c->sgpr64(t0); // bne a1, t0, L72 + c->daddiu(v1, a1, 279); // daddiu v1, a1, 279 + if (bc) {goto block_13;} // branch non-likely + + // nop // sll r0, r0, 0 + c->addiu(v1, r0, 9); // addiu v1, r0, 9 + +block_13: + // nop // sll r0, r0, 0 + c->sw(v1, 72, at); // sw v1, 72(at) + // nop // sll r0, r0, 0 + c->sw(a0, 4, at); // sw a0, 4(at) + // nop // sll r0, r0, 0 + c->sw(a3, 8, at); // sw a3, 8(at) + // nop // sll r0, r0, 0 + c->sw(a2, 12, at); // sw a2, 12(at) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->lq(gp, 12448, at); // lq gp, 12448(at) + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("generic-prepare-dma-single", execute, 256); +} + +} // namespace generic_prepare_dma_single +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_envmap_proc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +void vcallms48(ExecutionContext* c) { + // nop | mulx.xyzw vf13, vf09, vf31 + c->vfs[vf13].vf.mul(Mask::xyzw, c->vf_src(vf09).vf, c->vf_src(vf31).vf.x()); + // nop | subw.z vf21, vf21, vf00 + c->vfs[vf21].vf.sub(Mask::z, c->vf_src(vf21).vf, c->vf_src(vf00).vf.w()); + // nop | addy.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.y()); + // nop | mulx.xyz vf08, vf08, vf30 + c->vfs[vf08].vf.mul(Mask::xyz, c->vf_src(vf08).vf, c->vf_src(vf30).vf.x()); + // nop | addw.xy vf05, vf05, vf31 + c->vfs[vf05].vf.add(Mask::xy, c->vf_src(vf05).vf, c->vf_src(vf31).vf.w()); + // nop | mul.xyz vf30, vf21, vf13 + c->vfs[vf30].vf.mul(Mask::xyz, c->vf_src(vf21).vf, c->vf_src(vf13).vf); + // nop | addz.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.z()); + // nop | add.xyz vf08, vf08, vf16 + c->vfs[vf08].vf.add(Mask::xyz, c->vf_src(vf08).vf, c->vf_src(vf16).vf); + // move.xyzw vf28, vf27 | ftoi12.xy vf17, vf05 + c->vfs[vf17].vf.ftoi12(Mask::xy, c->vf_src(vf05).vf); c->vfs[vf28].vf.move(Mask::xyzw, c->vf_src(vf27).vf); + // move.xyzw vf02, vf22 | addy.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.y()); c->vfs[vf02].vf.move(Mask::xyzw, c->vf_src(vf22).vf); + // rsqrt Q, vf31.z, vf29.x | mul.xyz vf06, vf06, Q + c->vfs[vf06].vf.mul(Mask::xyz, c->vf_src(vf06).vf, c->Q); c->Q = c->vf_src(vf31).vf.z() / std::sqrt(c->vf_src(vf29).vf.x()); + // nop | mul.xyz vf29, vf08, vf08 + c->vfs[vf29].vf.mul(Mask::xyz, c->vf_src(vf08).vf, c->vf_src(vf08).vf); + // nop | mulx.xyz vf01, vf21, vf28 + c->vfs[vf01].vf.mul(Mask::xyz, c->vf_src(vf21).vf, c->vf_src(vf28).vf.x()); + // nop | addz.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.z()); + // nop | mulx.xyzw vf14, vf10, vf31 + c->vfs[vf14].vf.mul(Mask::xyzw, c->vf_src(vf10).vf, c->vf_src(vf31).vf.x()); + // nop | subw.z vf02, vf02, vf00 + c->vfs[vf02].vf.sub(Mask::z, c->vf_src(vf02).vf, c->vf_src(vf00).vf.w()); + // nop | addy.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.y()); + // nop | mulx.xyz vf01, vf01, vf30 + c->vfs[vf01].vf.mul(Mask::xyz, c->vf_src(vf01).vf, c->vf_src(vf30).vf.x()); + // nop | addw.xy vf06, vf06, vf31 + c->vfs[vf06].vf.add(Mask::xy, c->vf_src(vf06).vf, c->vf_src(vf31).vf.w()); + // nop | mul.xyz vf30, vf02, vf14 + c->vfs[vf30].vf.mul(Mask::xyz, c->vf_src(vf02).vf, c->vf_src(vf14).vf); + // nop | addz.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.z()); + // nop | add.xyz vf01, vf01, vf13 + c->vfs[vf01].vf.add(Mask::xyz, c->vf_src(vf01).vf, c->vf_src(vf13).vf); + // nop | ftoi12.xy vf18, vf06 + c->vfs[vf18].vf.ftoi12(Mask::xy, c->vf_src(vf06).vf); + // nop | addy.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.y()); + // rsqrt Q, vf31.z, vf29.x | mul.xyz vf07, vf07, Q + c->vfs[vf07].vf.mul(Mask::xyz, c->vf_src(vf07).vf, c->Q); c->Q = c->vf_src(vf31).vf.z() / std::sqrt(c->vf_src(vf29).vf.x()); + // move.xyzw vf03, vf23 | mul.xyz vf29, vf01, vf01 + c->vfs[vf29].vf.mul(Mask::xyz, c->vf_src(vf01).vf, c->vf_src(vf01).vf); c->vfs[vf03].vf.move(Mask::xyzw, c->vf_src(vf23).vf); + // nop | muly.xyz vf02, vf02, vf28 + c->vfs[vf02].vf.mul(Mask::xyz, c->vf_src(vf02).vf, c->vf_src(vf28).vf.y()); + // nop | addz.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.z()); + // nop | mulx.xyzw vf15, vf11, vf31 + c->vfs[vf15].vf.mul(Mask::xyzw, c->vf_src(vf11).vf, c->vf_src(vf31).vf.x()); + // nop | subw.z vf03, vf03, vf00 + c->vfs[vf03].vf.sub(Mask::z, c->vf_src(vf03).vf, c->vf_src(vf00).vf.w()); + // nop | addy.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.y()); + // nop | mulx.xyz vf02, vf02, vf30 + c->vfs[vf02].vf.mul(Mask::xyz, c->vf_src(vf02).vf, c->vf_src(vf30).vf.x()); + // nop | addw.xy vf07, vf07, vf31 + c->vfs[vf07].vf.add(Mask::xy, c->vf_src(vf07).vf, c->vf_src(vf31).vf.w()); + // nop | mul.xyz vf30, vf03, vf15 + c->vfs[vf30].vf.mul(Mask::xyz, c->vf_src(vf03).vf, c->vf_src(vf15).vf); + // nop | addz.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.z()); + // nop | add.xyz vf02, vf02, vf14 + c->vfs[vf02].vf.add(Mask::xyz, c->vf_src(vf02).vf, c->vf_src(vf14).vf); + // nop | ftoi12.xy vf19, vf07 + c->vfs[vf19].vf.ftoi12(Mask::xy, c->vf_src(vf07).vf); + // nop | addy.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.y()); + // rsqrt Q, vf31.z, vf29.x | mul.xyz vf08, vf08, Q + c->vfs[vf08].vf.mul(Mask::xyz, c->vf_src(vf08).vf, c->Q); c->Q = c->vf_src(vf31).vf.z() / std::sqrt(c->vf_src(vf29).vf.x()); + // move.xyzw vf04, vf24 | mul.xyz vf29, vf02, vf02 + c->vfs[vf29].vf.mul(Mask::xyz, c->vf_src(vf02).vf, c->vf_src(vf02).vf); c->vfs[vf04].vf.move(Mask::xyzw, c->vf_src(vf24).vf); + // nop | mulz.xyz vf03, vf03, vf28 + c->vfs[vf03].vf.mul(Mask::xyz, c->vf_src(vf03).vf, c->vf_src(vf28).vf.z()); + // nop | addz.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.z()); + // nop | mulx.xyzw vf16, vf12, vf31 + c->vfs[vf16].vf.mul(Mask::xyzw, c->vf_src(vf12).vf, c->vf_src(vf31).vf.x()); + // nop | subw.z vf04, vf04, vf00 + c->vfs[vf04].vf.sub(Mask::z, c->vf_src(vf04).vf, c->vf_src(vf00).vf.w()); + // nop | addy.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.y()); + // nop | mulx.xyz vf03, vf03, vf30 + c->vfs[vf03].vf.mul(Mask::xyz, c->vf_src(vf03).vf, c->vf_src(vf30).vf.x()); + // nop | addw.xy vf08, vf08, vf31 + c->vfs[vf08].vf.add(Mask::xy, c->vf_src(vf08).vf, c->vf_src(vf31).vf.w()); + // nop | mul.xyz vf30, vf04, vf16 + c->vfs[vf30].vf.mul(Mask::xyz, c->vf_src(vf04).vf, c->vf_src(vf16).vf); + // nop | addz.x vf29, vf29, vf29 + c->vfs[vf29].vf.add(Mask::x, c->vf_src(vf29).vf, c->vf_src(vf29).vf.z()); + // nop | add.xyz vf03, vf03, vf15 + c->vfs[vf03].vf.add(Mask::xyz, c->vf_src(vf03).vf, c->vf_src(vf15).vf); + // nop | ftoi12.xy vf20, vf08 + c->vfs[vf20].vf.ftoi12(Mask::xy, c->vf_src(vf08).vf); + // nop | addy.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.y()); + // rsqrt Q, vf31.z, vf29.x | mul.xyz vf05, vf01, Q + c->vfs[vf05].vf.mul(Mask::xyz, c->vf_src(vf01).vf, c->Q); c->Q = c->vf_src(vf31).vf.z() / std::sqrt(c->vf_src(vf29).vf.x()); + // move.xyzw vf06, vf02 | mul.xyz vf29, vf03, vf03 + c->vfs[vf29].vf.mul(Mask::xyz, c->vf_src(vf03).vf, c->vf_src(vf03).vf); c->vfs[vf06].vf.move(Mask::xyzw, c->vf_src(vf02).vf); + // move.xyzw vf07, vf03 | mulw.xyz vf08, vf04, vf28 :e + c->vfs[vf08].vf.mul(Mask::xyz, c->vf_src(vf04).vf, c->vf_src(vf28).vf.w()); c->vfs[vf07].vf.move(Mask::xyzw, c->vf_src(vf03).vf); + // nop | addz.x vf30, vf30, vf30 + c->vfs[vf30].vf.add(Mask::x, c->vf_src(vf30).vf, c->vf_src(vf30).vf.z()); + +} + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 12432, at); // sd ra, 12432(at) + c->sq(s0, 12448, at); // sq s0, 12448(at) + c->sq(s1, 12464, at); // sq s1, 12464(at) + c->sq(s2, 12480, at); // sq s2, 12480(at) + c->sq(s3, 12496, at); // sq s3, 12496(at) + c->sq(s4, 12512, at); // sq s4, 12512(at) + c->sq(s5, 12528, at); // sq s5, 12528(at) + c->sq(gp, 12544, at); // sq gp, 12544(at) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + // nop // sll r0, r0, 0 + c->lw(v1, 44, at); // lw v1, 44(at) + // nop // sll r0, r0, 0 + c->lw(a0, 36, at); // lw a0, 36(at) + // nop // sll r0, r0, 0 + c->lw(t0, 0, v1); // lw t0, 0(v1) + // nop // sll r0, r0, 0 + c->lw(a2, 4, v1); // lw a2, 4(v1) + // nop // sll r0, r0, 0 + c->lw(t3, 16, at); // lw t3, 16(at) + // nop // sll r0, r0, 0 + c->lw(v1, 20, at); // lw v1, 20(at) + // nop // sll r0, r0, 0 + c->addiu(t1, r0, 255); // addiu t1, r0, 255 + c->addiu(a3, r0, 256); // addiu a3, r0, 256 + c->lui(a1, -2); // lui a1, -2 + c->lui(t2, 16256); // lui t2, 16256 + c->ori(a1, a1, 65534); // ori a1, a1, 65534 + c->mtc1(f0, t2); // mtc1 f0, t2 + c->daddiu(t2, a0, 3); // daddiu t2, a0, 3 + c->sra(t5, t2, 2); // sra t5, t2, 2 + c->lq(t2, 12048, at); // lq t2, 12048(at) + c->sra(t4, t5, 2); // sra t4, t5, 2 + c->andi(t5, t5, 3); // andi t5, t5, 3 + bc = c->sgpr64(t4) == 0; // beq t4, r0, L85 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + +block_1: + c->daddiu(t3, t3, 64); // daddiu t3, t3, 64 + c->sq(t2, -64, t3); // sq t2, -64(t3) + // nop // sll r0, r0, 0 + c->sq(t2, -48, t3); // sq t2, -48(t3) + c->daddiu(t4, t4, -1); // daddiu t4, t4, -1 + c->sq(t2, -32, t3); // sq t2, -32(t3) + bc = ((s64)c->sgpr64(t4)) > 0; // bgtz t4, L84 + c->sq(t2, -16, t3); // sq t2, -16(t3) + if (bc) {goto block_1;} // branch non-likely + + +block_2: + bc = c->sgpr64(t5) == 0; // beq t5, r0, L86 + c->daddiu(t4, t5, -1); // daddiu t4, t5, -1 + if (bc) {goto block_6;} // branch non-likely + + bc = c->sgpr64(t4) == 0; // beq t4, r0, L86 + c->sq(t2, 0, t3); // sq t2, 0(t3) + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(t3, t3, 16); // daddiu t3, t3, 16 + c->daddiu(t4, t4, -1); // daddiu t4, t4, -1 + bc = c->sgpr64(t4) == 0; // beq t4, r0, L86 + c->sq(t2, 0, t3); // sq t2, 0(t3) + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(t3, t3, 16); // daddiu t3, t3, 16 + c->daddiu(t4, t4, -1); // daddiu t4, t4, -1 + // nop // sll r0, r0, 0 + c->sq(t2, 0, t3); // sq t2, 0(t3) + +block_6: + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lqc2(vf31, 12016, at); // lqc2 vf31, 12016(at) + c->pextlw(a1, a1, a1); // pextlw a1, a1, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlw(a1, a1, a1); // pextlw a1, a1, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlw(a2, a2, a2); // pextlw a2, a2, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlw(a2, a2, a2); // pextlw a2, a2, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyh(t2, t1); // pcpyh t2, t1 + c->ld(t1, 0, t0); // ld t1, 0(t0) + c->pcpyld(t2, t2, t2); // pcpyld t2, t2, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyh(a3, a3); // pcpyh a3, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(a3, a3, a3); // pcpyld a3, a3, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->daddiu(t0, t0, 8); // daddiu t0, t0, 8 + c->sq(t2, 96, at); // sq t2, 96(at) + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t2, t1, t2); // pand t2, t1, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllw(t2, t2, 5); // psllw t2, t2, 5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t5, t2, a2); // paddw t5, t2, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsrl32(t6, t5, 0); // dsrl32 t6, t5, 0 + c->lwc1(f4, 24, t5); // lwc1 f4, 24(t5) + c->pcpyud(t7, t5, r0); // pcpyud t7, t5, r0 + c->lwc1(f3, 24, t6); // lwc1 f3, 24(t6) + c->dsrl32(t8, t7, 0); // dsrl32 t8, t7, 0 + c->lwc1(f2, 24, t7); // lwc1 f2, 24(t7) + c->pand(t1, t1, a3); // pand t1, t1, a3 + c->lwc1(f1, 24, t8); // lwc1 f1, 24(t8) + c->psraw(t2, t1, 8); // psraw t2, t1, 8 + c->lq(t1, 16, t5); // lq t1, 16(t5) + c->mov128_gpr_gpr(s0, t2); // por s0, t2, r0 + c->subs(f4, f4, f0); // sub.s f4, f4, f0 + c->divs(f4, f0, f4); // div.s f4, f0, f4 + c->lq(t2, 16, t6); // lq t2, 16(t6) + // nop // sll r0, r0, 0 + c->lq(t3, 16, t7); // lq t3, 16(t7) + // nop // sll r0, r0, 0 + c->lq(t4, 16, t8); // lq t4, 16(t8) + // nop // sll r0, r0, 0 + c->lq(t5, 0, t5); // lq t5, 0(t5) + // nop // sll r0, r0, 0 + c->lq(t6, 0, t6); // lq t6, 0(t6) + // nop // sll r0, r0, 0 + c->lq(t7, 0, t7); // lq t7, 0(t7) + // nop // sll r0, r0, 0 + c->lq(t8, 0, t8); // lq t8, 0(t8) + c->muls(f4, f4, f0); // mul.s f4, f4, f0 + // nop // sll r0, r0, 0 + c->subs(f3, f3, f0); // sub.s f3, f3, f0 + // nop // sll r0, r0, 0 + c->divs(f3, f0, f3); // div.s f3, f0, f3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(t9, f4); // mfc1 t9, f4 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->muls(f3, f3, f0); // mul.s f3, f3, f0 + // nop // sll r0, r0, 0 + c->subs(f2, f2, f0); // sub.s f2, f2, f0 + // nop // sll r0, r0, 0 + c->divs(f2, f0, f2); // div.s f2, f0, f2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(ra, f3); // mfc1 ra, f3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->muls(f2, f2, f0); // mul.s f2, f2, f0 + // nop // sll r0, r0, 0 + c->subs(f1, f1, f0); // sub.s f1, f1, f0 + // nop // sll r0, r0, 0 + c->divs(f1, f0, f1); // div.s f1, f0, f1 + // nop // sll r0, r0, 0 + c->pextlw(t9, ra, t9); // pextlw t9, ra, t9 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(ra, f2); // mfc1 ra, f2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(gp, f1); // mfc1 gp, f1 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->pextlw(ra, gp, ra); // pextlw ra, gp, ra + // nop // sll r0, r0, 0 + c->pcpyld(t9, ra, t9); // pcpyld t9, ra, t9 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf21, t1); // qmtc2.ni vf21, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf22, t2); // qmtc2.ni vf22, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf23, t3); // qmtc2.ni vf23, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf24, t4); // qmtc2.ni vf24, t4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t5); // qmtc2.ni vf9, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf10, t6); // qmtc2.ni vf10, t6 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf11, t7); // qmtc2.ni vf11, t7 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t8); // qmtc2.ni vf12, t8 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf27, t9); // qmtc2.ni vf27, t9 + c->lq(t2, 96, at); // lq t2, 96(at) + // Unknown instr: vcallms 48 + vcallms48(c); + // nop // sll r0, r0, 0 + c->ld(t1, 0, t0); // ld t1, 0(t0) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->daddiu(t0, t0, 8); // daddiu t0, t0, 8 + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t2, t1, t2); // pand t2, t1, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllw(t2, t2, 5); // psllw t2, t2, 5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t5, t2, a2); // paddw t5, t2, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsrl32(t6, t5, 0); // dsrl32 t6, t5, 0 + c->lwc1(f3, 24, t5); // lwc1 f3, 24(t5) + c->pcpyud(t7, t5, r0); // pcpyud t7, t5, r0 + c->lwc1(f2, 24, t6); // lwc1 f2, 24(t6) + c->dsrl32(t8, t7, 0); // dsrl32 t8, t7, 0 + c->lwc1(f1, 24, t7); // lwc1 f1, 24(t7) + c->pand(t1, t1, a3); // pand t1, t1, a3 + c->lwc1(f4, 24, t8); // lwc1 f4, 24(t8) + c->psraw(t2, t1, 8); // psraw t2, t1, 8 + c->lq(t1, 16, t5); // lq t1, 16(t5) + c->mov128_gpr_gpr(s1, t2); // por s1, t2, r0 + c->subs(f5, f3, f0); // sub.s f5, f3, f0 + c->subs(f3, f2, f0); // sub.s f3, f2, f0 + // nop // sll r0, r0, 0 + c->subs(f2, f1, f0); // sub.s f2, f1, f0 + // nop // sll r0, r0, 0 + c->subs(f1, f4, f0); // sub.s f1, f4, f0 + // nop // sll r0, r0, 0 + c->divs(f4, f0, f5); // div.s f4, f0, f5 + c->lq(t2, 16, t6); // lq t2, 16(t6) + // nop // sll r0, r0, 0 + c->lq(t3, 16, t7); // lq t3, 16(t7) + // nop // sll r0, r0, 0 + c->lq(t4, 16, t8); // lq t4, 16(t8) + // nop // sll r0, r0, 0 + c->lq(t5, 0, t5); // lq t5, 0(t5) + // nop // sll r0, r0, 0 + c->lq(t6, 0, t6); // lq t6, 0(t6) + // nop // sll r0, r0, 0 + c->lq(t7, 0, t7); // lq t7, 0(t7) + // nop // sll r0, r0, 0 + c->lq(t8, 0, t8); // lq t8, 0(t8) + c->muls(f4, f4, f0); // mul.s f4, f4, f0 + // nop // sll r0, r0, 0 + c->divs(f3, f0, f3); // div.s f3, f0, f3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(t9, f4); // mfc1 t9, f4 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->muls(f3, f3, f0); // mul.s f3, f3, f0 + // nop // sll r0, r0, 0 + c->divs(f2, f0, f2); // div.s f2, f0, f2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(ra, f3); // mfc1 ra, f3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->muls(f2, f2, f0); // mul.s f2, f2, f0 + // nop // sll r0, r0, 0 + c->divs(f1, f0, f1); // div.s f1, f0, f1 + // nop // sll r0, r0, 0 + c->pextlw(t9, ra, t9); // pextlw t9, ra, t9 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(ra, f2); // mfc1 ra, f2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(gp, f1); // mfc1 gp, f1 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf21, t1); // qmtc2.ni vf21, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t5); // qmtc2.ni vf9, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf10, t6); // qmtc2.ni vf10, t6 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf11, t7); // qmtc2.ni vf11, t7 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t8); // qmtc2.ni vf12, t8 + c->pextlw(t1, gp, ra); // pextlw t1, gp, ra + // nop // sll r0, r0, 0 + c->pcpyld(t1, t1, t9); // pcpyld t1, t1, t9 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf22, t2); // qmtc2.ni vf22, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf23, t3); // qmtc2.ni vf23, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf24, t4); // qmtc2.ni vf24, t4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf27, t1); // qmtc2.ni vf27, t1 + c->lq(t2, 96, at); // lq t2, 96(at) + // Unknown instr: vcallms 48 + vcallms48(c); + // nop // sll r0, r0, 0 + c->ld(t1, 0, t0); // ld t1, 0(t0) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->daddiu(t0, t0, 8); // daddiu t0, t0, 8 + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t2, t1, t2); // pand t2, t1, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllw(t2, t2, 5); // psllw t2, t2, 5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t2, t2, a2); // paddw t2, t2, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsrl32(t3, t2, 0); // dsrl32 t3, t2, 0 + c->lwc1(f3, 24, t2); // lwc1 f3, 24(t2) + c->pcpyud(t7, t2, r0); // pcpyud t7, t2, r0 + c->lwc1(f2, 24, t3); // lwc1 f2, 24(t3) + c->dsrl32(t8, t7, 0); // dsrl32 t8, t7, 0 + c->lwc1(f1, 24, t7); // lwc1 f1, 24(t7) + c->pand(t1, t1, a3); // pand t1, t1, a3 + c->lwc1(f4, 24, t8); // lwc1 f4, 24(t8) + c->psraw(t4, t1, 8); // psraw t4, t1, 8 + c->lq(t1, 16, t2); // lq t1, 16(t2) + c->mov128_gpr_gpr(s2, t4); // por s2, t4, r0 + c->subs(f5, f3, f0); // sub.s f5, f3, f0 + c->subs(f3, f2, f0); // sub.s f3, f2, f0 + // nop // sll r0, r0, 0 + c->subs(f2, f1, f0); // sub.s f2, f1, f0 + // nop // sll r0, r0, 0 + c->subs(f1, f4, f0); // sub.s f1, f4, f0 + // nop // sll r0, r0, 0 + c->divs(f4, f0, f5); // div.s f4, f0, f5 + c->lq(t4, 16, t3); // lq t4, 16(t3) + // nop // sll r0, r0, 0 + c->lq(t5, 16, t7); // lq t5, 16(t7) + // nop // sll r0, r0, 0 + c->lq(t6, 16, t8); // lq t6, 16(t8) + // nop // sll r0, r0, 0 + c->lq(t2, 0, t2); // lq t2, 0(t2) + // nop // sll r0, r0, 0 + c->lq(t3, 0, t3); // lq t3, 0(t3) + // nop // sll r0, r0, 0 + c->lq(t7, 0, t7); // lq t7, 0(t7) + // nop // sll r0, r0, 0 + c->lq(t8, 0, t8); // lq t8, 0(t8) + c->muls(f4, f4, f0); // mul.s f4, f4, f0 + // nop // sll r0, r0, 0 + c->divs(f3, f0, f3); // div.s f3, f0, f3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(t9, f4); // mfc1 t9, f4 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->muls(f3, f3, f0); // mul.s f3, f3, f0 + // nop // sll r0, r0, 0 + c->divs(f2, f0, f2); // div.s f2, f0, f2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(ra, f3); // mfc1 ra, f3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->muls(f2, f2, f0); // mul.s f2, f2, f0 + // nop // sll r0, r0, 0 + c->divs(f1, f0, f1); // div.s f1, f0, f1 + // nop // sll r0, r0, 0 + c->pextlw(t9, ra, t9); // pextlw t9, ra, t9 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(ra, f2); // mfc1 ra, f2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf21, t1); // qmtc2.ni vf21, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf22, t4); // qmtc2.ni vf22, t4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf23, t5); // qmtc2.ni vf23, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf24, t6); // qmtc2.ni vf24, t6 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(t1, f1); // mfc1 t1, f1 + c->pextlw(t1, t1, ra); // pextlw t1, t1, ra + // nop // sll r0, r0, 0 + c->pcpyld(t1, t1, t9); // pcpyld t1, t1, t9 + c->mov128_vf_gpr(vf9, t2); // qmtc2.ni vf9, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf10, t3); // qmtc2.ni vf10, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf11, t7); // qmtc2.ni vf11, t7 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t8); // qmtc2.ni vf12, t8 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf27, t1); // qmtc2.ni vf27, t1 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t4, vf17); // qmfc2.ni t4, vf17 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t5, vf18); // qmfc2.ni t5, vf18 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t6, vf19); // qmfc2.ni t6, vf19 + bc = ((s64)c->sgpr64(a0)) <= 0; // blez a0, L88 + c->mov128_gpr_vf(t7, vf20); // qmfc2.ni t7, vf20 + if (bc) {goto block_8;} // branch non-likely + + +block_7: + c->lq(t2, 96, at); // lq t2, 96(at) + // Unknown instr: vcallms 48 + vcallms48(c); + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->ld(t1, 0, t0); // ld t1, 0(t0) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->daddiu(v1, v1, 16); // daddiu v1, v1, 16 + c->daddiu(t0, t0, 8); // daddiu t0, t0, 8 + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t2, t1, t2); // pand t2, t1, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllw(t2, t2, 5); // psllw t2, t2, 5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t9, t2, a2); // paddw t9, t2, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsrl32(ra, t9, 0); // dsrl32 ra, t9, 0 + c->lwc1(f1, 24, t9); // lwc1 f1, 24(t9) + c->pcpyud(s4, t9, r0); // pcpyud s4, t9, r0 + c->lwc1(f4, 24, ra); // lwc1 f4, 24(ra) + c->subs(f3, f1, f0); // sub.s f3, f1, f0 + // nop // sll r0, r0, 0 + c->dsrl32(s3, s4, 0); // dsrl32 s3, s4, 0 + c->lwc1(f1, 24, s4); // lwc1 f1, 24(s4) + c->pand(t1, t1, a3); // pand t1, t1, a3 + c->lwc1(f2, 24, s3); // lwc1 f2, 24(s3) + c->psraw(s5, t1, 8); // psraw s5, t1, 8 + c->lq(t1, 16, t9); // lq t1, 16(t9) + c->divs(f3, f0, f3); // div.s f3, f0, f3 + c->lq(t2, 16, ra); // lq t2, 16(ra) + c->mov128_gpr_gpr(gp, s0); // por gp, s0, r0 + c->subs(f4, f4, f0); // sub.s f4, f4, f0 + c->ppach(t4, r0, t4); // ppach t4, r0, t4 + c->lq(t3, 16, s4); // lq t3, 16(s4) + c->ppach(t5, r0, t5); // ppach t5, r0, t5 + c->lq(t8, 16, s3); // lq t8, 16(s3) + c->ppach(t6, r0, t6); // ppach t6, r0, t6 + c->lq(t9, 0, t9); // lq t9, 0(t9) + c->ppach(t7, r0, t7); // ppach t7, r0, t7 + c->lq(ra, 0, ra); // lq ra, 0(ra) + c->pextlw(t4, t5, t4); // pextlw t4, t5, t4 + c->lq(t5, 0, s4); // lq t5, 0(s4) + c->pextlw(t6, t7, t6); // pextlw t6, t7, t6 + c->lq(t7, 0, s3); // lq t7, 0(s3) + c->mov128_gpr_gpr(s0, s1); // por s0, s1, r0 + c->muls(f5, f3, f0); // mul.s f5, f3, f0 + c->mov128_gpr_gpr(s1, s2); // por s1, s2, r0 + c->divs(f3, f0, f4); // div.s f3, f0, f4 + c->pcpyld(t4, t6, t4); // pcpyld t4, t6, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t4, t4, a1); // pand t4, t4, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->mov128_gpr_gpr(s2, s5); // por s2, s5, r0 + c->mfc1(t6, f5); // mfc1 t6, f5 + c->subs(f4, f1, f0); // sub.s f4, f1, f0 + // nop // sll r0, r0, 0 + c->por(t4, t4, gp); // por t4, t4, gp + // nop // sll r0, r0, 0 + c->subs(f1, f2, f0); // sub.s f1, f2, f0 + // nop // sll r0, r0, 0 + c->muls(f2, f3, f0); // mul.s f2, f3, f0 + c->sq(t4, -16, v1); // sq t4, -16(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->divs(f3, f0, f4); // div.s f3, f0, f4 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(t4, f2); // mfc1 t4, f2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->muls(f2, f3, f0); // mul.s f2, f3, f0 + // nop // sll r0, r0, 0 + c->pextlw(t4, t4, t6); // pextlw t4, t4, t6 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->divs(f1, f0, f1); // div.s f1, f0, f1 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(t6, f2); // mfc1 t6, f2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf21, t1); // qmtc2.ni vf21, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf22, t2); // qmtc2.ni vf22, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf23, t3); // qmtc2.ni vf23, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf24, t8); // qmtc2.ni vf24, t8 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(t1, f1); // mfc1 t1, f1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t9); // qmtc2.ni vf9, t9 + c->pextlw(t1, t1, t6); // pextlw t1, t1, t6 + c->mov128_vf_gpr(vf10, ra); // qmtc2.ni vf10, ra + c->pcpyld(t1, t1, t4); // pcpyld t1, t1, t4 + c->mov128_vf_gpr(vf11, t5); // qmtc2.ni vf11, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t7); // qmtc2.ni vf12, t7 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf27, t1); // qmtc2.ni vf27, t1 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t4, vf17); // qmfc2.ni t4, vf17 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t5, vf18); // qmfc2.ni t5, vf18 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t6, vf19); // qmfc2.ni t6, vf19 + bc = ((s64)c->sgpr64(a0)) > 0; // bgtz a0, L87 + c->mov128_gpr_vf(t7, vf20); // qmfc2.ni t7, vf20 + if (bc) {goto block_7;} // branch non-likely + + +block_8: + c->daddiu(v1, v1, 16); // daddiu v1, v1, 16 + // nop // sll r0, r0, 0 + c->ppach(t4, r0, t4); // ppach t4, r0, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(t5, r0, t5); // ppach t5, r0, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(t6, r0, t6); // ppach t6, r0, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(t7, r0, t7); // ppach t7, r0, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlw(t4, t5, t4); // pextlw t4, t5, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlw(t6, t7, t6); // pextlw t6, t7, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t4, t6, t4); // pcpyld t4, t6, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t4, t4, a1); // pand t4, t4, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->por(t4, t4, s0); // por t4, t4, s0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->sq(t4, -16, v1); // sq t4, -16(v1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 12432, at); // ld ra, 12432(at) + c->lq(gp, 12544, at); // lq gp, 12544(at) + c->lq(s5, 12528, at); // lq s5, 12528(at) + c->lq(s4, 12512, at); // lq s4, 12512(at) + c->lq(s3, 12496, at); // lq s3, 12496(at) + c->lq(s2, 12480, at); // lq s2, 12480(at) + c->lq(s1, 12464, at); // lq s1, 12464(at) + c->lq(s0, 12448, at); // lq s0, 12448(at) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("generic-envmap-proc", execute, 512); +} + +} // namespace generic_envmap_proc +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_light_proc { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +void vcallms0(ExecutionContext* c) { + // move.xyzw vf21, vf17 | mulax.xyzw ACC, vf10, vf01 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf10).vf, c->vf_src(vf01).vf.x()); c->vfs[vf21].vf.move(Mask::xyzw, c->vf_src(vf17).vf); + // move.xyzw vf22, vf18 | madday.xyzw ACC, vf11, vf01 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf11].vf, c->vfs[vf01].vf.y()); c->vfs[vf22].vf.move(Mask::xyzw, c->vf_src(vf18).vf); + // move.xyzw vf23, vf19 | maddz.xyzw vf01, vf12, vf01 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf01].vf, c->vf_src(vf12).vf, c->vf_src(vf01).vf.z()); c->vfs[vf23].vf.move(Mask::xyzw, c->vf_src(vf19).vf); + // move.xyzw vf24, vf20 | mulax.xyzw ACC, vf10, vf02 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf10).vf, c->vf_src(vf02).vf.x()); c->vfs[vf24].vf.move(Mask::xyzw, c->vf_src(vf20).vf); + // nop | itof0.xyzw vf17, vf05 + c->vfs[vf17].vf.itof0(Mask::xyzw, c->vf_src(vf05).vf); + // nop | itof0.xyzw vf18, vf06 + c->vfs[vf18].vf.itof0(Mask::xyzw, c->vf_src(vf06).vf); + // nop | itof0.xyzw vf19, vf07 + c->vfs[vf19].vf.itof0(Mask::xyzw, c->vf_src(vf07).vf); + // nop | itof0.xyzw vf20, vf08 + c->vfs[vf20].vf.itof0(Mask::xyzw, c->vf_src(vf08).vf); + + // nop | madday.xyzw ACC, vf11, vf02 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf11].vf, c->vfs[vf02].vf.y()); + // nop | maddz.xyzw vf02, vf12, vf02 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf02].vf, c->vf_src(vf12).vf, c->vf_src(vf02).vf.z()); + // nop | mulax.xyzw ACC, vf10, vf03 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf10).vf, c->vf_src(vf03).vf.x()); + // nop | madday.xyzw ACC, vf11, vf03 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf11].vf, c->vfs[vf03].vf.y()); + // nop | maddz.xyzw vf03, vf12, vf03 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf03].vf, c->vf_src(vf12).vf, c->vf_src(vf03).vf.z()); + // nop | mulax.xyzw ACC, vf10, vf04 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf10).vf, c->vf_src(vf04).vf.x()); + // nop | madday.xyzw ACC, vf11, vf04 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf11].vf, c->vfs[vf04].vf.y()); + // nop | maddz.xyzw vf04, vf12, vf04 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf04].vf, c->vf_src(vf12).vf, c->vf_src(vf04).vf.z()); + // nop | maxx.xyzw vf01, vf01, vf00 + c->vfs[vf01].vf.max(Mask::xyzw, c->vf_src(vf01).vf, c->vf_src(vf00).vf.x()); + // nop | maxx.xyzw vf02, vf02, vf00 + c->vfs[vf02].vf.max(Mask::xyzw, c->vf_src(vf02).vf, c->vf_src(vf00).vf.x()); + // nop | maxx.xyzw vf03, vf03, vf00 + c->vfs[vf03].vf.max(Mask::xyzw, c->vf_src(vf03).vf, c->vf_src(vf00).vf.x()); + // nop | maxx.xyzw vf04, vf04, vf00 + c->vfs[vf04].vf.max(Mask::xyzw, c->vf_src(vf04).vf, c->vf_src(vf00).vf.x()); + // nop | mulaw.xyzw ACC, vf13, vf00 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf13).vf, c->vf_src(vf00).vf.w()); + // nop | maddax.xyzw ACC, vf14, vf01 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf14].vf, c->vfs[vf01].vf.x()); + // nop | madday.xyzw ACC, vf15, vf01 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf15].vf, c->vfs[vf01].vf.y()); + // nop | maddz.xyzw vf01, vf16, vf01 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf01].vf, c->vf_src(vf16).vf, c->vf_src(vf01).vf.z()); + // nop | mulaw.xyzw ACC, vf13, vf00 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf13).vf, c->vf_src(vf00).vf.w()); + // nop | maddax.xyzw ACC, vf14, vf02 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf14].vf, c->vfs[vf02].vf.x()); + // nop | madday.xyzw ACC, vf15, vf02 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf15].vf, c->vfs[vf02].vf.y()); + // nop | maddz.xyzw vf02, vf16, vf02 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf02].vf, c->vf_src(vf16).vf, c->vf_src(vf02).vf.z()); + // nop | mulaw.xyzw ACC, vf13, vf00 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf13).vf, c->vf_src(vf00).vf.w()); + // nop | maddax.xyzw ACC, vf14, vf03 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf14].vf, c->vfs[vf03].vf.x()); + // nop | madday.xyzw ACC, vf15, vf03 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf15].vf, c->vfs[vf03].vf.y()); + // nop | maddz.xyzw vf03, vf16, vf03 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf03].vf, c->vf_src(vf16).vf, c->vf_src(vf03).vf.z()); + // nop | mulaw.xyzw ACC, vf13, vf00 + c->acc.vf.mula(Mask::xyzw, c->vf_src(vf13).vf, c->vf_src(vf00).vf.w()); + // nop | maddax.xyzw ACC, vf14, vf04 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf14].vf, c->vfs[vf04].vf.x()); + // nop | madday.xyzw ACC, vf15, vf04 + c->acc.vf.madda(Mask::xyzw, c->vfs[vf15].vf, c->vfs[vf04].vf.y()); + // nop | maddz.xyzw vf04, vf16, vf04 + c->acc.vf.madd(Mask::xyzw, c->vfs[vf04].vf, c->vf_src(vf16).vf, c->vf_src(vf04).vf.z()); + // nop | mul.xyzw vf17, vf17, vf01 + c->vfs[vf17].vf.mul(Mask::xyzw, c->vf_src(vf17).vf, c->vf_src(vf01).vf); + // nop | mul.xyzw vf18, vf18, vf02 + c->vfs[vf18].vf.mul(Mask::xyzw, c->vf_src(vf18).vf, c->vf_src(vf02).vf); + // nop | mul.xyzw vf19, vf19, vf03 + c->vfs[vf19].vf.mul(Mask::xyzw, c->vf_src(vf19).vf, c->vf_src(vf03).vf); + // nop | mul.xyzw vf20, vf20, vf04 + c->vfs[vf20].vf.mul(Mask::xyzw, c->vf_src(vf20).vf, c->vf_src(vf04).vf); + // nop | minix.xyzw vf17, vf17, vf09 + c->vfs[vf17].vf.mini(Mask::xyzw, c->vf_src(vf17).vf, c->vf_src(vf09).vf.x()); + // nop | minix.xyzw vf18, vf18, vf09 + c->vfs[vf18].vf.mini(Mask::xyzw, c->vf_src(vf18).vf, c->vf_src(vf09).vf.x()); + // nop | minix.xyzw vf19, vf19, vf09 + c->vfs[vf19].vf.mini(Mask::xyzw, c->vf_src(vf19).vf, c->vf_src(vf09).vf.x()); + // nop | minix.xyzw vf20, vf20, vf09 + c->vfs[vf20].vf.mini(Mask::xyzw, c->vf_src(vf20).vf, c->vf_src(vf09).vf.x()); + //fmt::print("light:\n {}\n {}\n {}\n {}\n\n", c->vf_src(vf17).vf.print(), c->vf_src(vf18).vf.print(), c->vf_src(vf19).vf.print(), c->vf_src(vf20).vf.print()); + + + + // nop | ftoi0.xyzw vf17, vf17 + c->vfs[vf17].vf.ftoi0(Mask::xyzw, c->vf_src(vf17).vf); + // nop | ftoi0.xyzw vf18, vf18 + c->vfs[vf18].vf.ftoi0(Mask::xyzw, c->vf_src(vf18).vf); + // nop | ftoi0.xyzw vf19, vf19 :e + c->vfs[vf19].vf.ftoi0(Mask::xyzw, c->vf_src(vf19).vf); + // nop | ftoi0.xyzw vf20, vf20 + c->vfs[vf20].vf.ftoi0(Mask::xyzw, c->vf_src(vf20).vf); +} + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 12432, at); // sd ra, 12432(at) + c->sq(s2, 12448, at); // sq s2, 12448(at) + c->sq(s3, 12464, at); // sq s3, 12464(at) + c->sq(s4, 12480, at); // sq s4, 12480(at) + c->sq(s5, 12496, at); // sq s5, 12496(at) + c->sq(gp, 12512, at); // sq gp, 12512(at) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lw(v1, 44, at); // lw v1, 44(at) + // nop // sll r0, r0, 0 + c->lw(a1, 36, at); // lw a1, 36(at) + // nop // sll r0, r0, 0 + c->lw(a0, 4, v1); // lw a0, 4(v1) + // nop // sll r0, r0, 0 + c->lw(t0, 0, v1); // lw t0, 0(v1) + // nop // sll r0, r0, 0 + c->lw(t3, 4, at); // lw t3, 4(at) + // nop // sll r0, r0, 0 + c->lw(v1, 8, at); // lw v1, 8(at) + c->addiu(a3, r0, 255); // addiu a3, r0, 255 + c->lw(t2, 12, at); // lw t2, 12(at) + c->addiu(a2, r0, 256); // addiu a2, r0, 256 + c->lui(t1, -2); // lui t1, -2 + c->mov64(t4, a1); // or t4, a1, r0 + c->lqc2(vf10, 12688, at); // lqc2 vf10, 12688(at) + c->ori(a1, t1, 65534); // ori a1, t1, 65534 + c->lqc2(vf11, 12704, at); // lqc2 vf11, 12704(at) + c->pextlw(a1, a1, a1); // pextlw a1, a1, a1 + c->lqc2(vf12, 12720, at); // lqc2 vf12, 12720(at) + c->pextlw(t1, a0, a0); // pextlw t1, a0, a0 + c->lqc2(vf15, 12752, at); // lqc2 vf15, 12752(at) + c->pextlw(a0, a1, a1); // pextlw a0, a1, a1 + c->lqc2(vf14, 12736, at); // lqc2 vf14, 12736(at) + c->pextlw(a1, t1, t1); // pextlw a1, t1, t1 + c->lqc2(vf16, 12768, at); // lqc2 vf16, 12768(at) + c->pcpyh(a3, a3); // pcpyh a3, a3 + c->lqc2(vf13, 12784, at); // lqc2 vf13, 12784(at) + c->pcpyh(t1, a2); // pcpyh t1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(a2, a3, a3); // pcpyld a2, a3, a3 + c->lqc2(vf9, 12144, at); // lqc2 vf9, 12144(at) + c->pcpyld(a3, t1, t1); // pcpyld a3, t1, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->ldr(t1, 0, t0); // ldr t1, 0(t0) + // nop // sll r0, r0, 0 + c->ldl(t1, 7, t0); // ldl t1, 7(t0) + // nop // sll r0, r0, 0 + c->daddiu(t0, t0, 8); // daddiu t0, t0, 8 + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t5, t1, a2); // pand t5, t1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllw(t5, t5, 5); // psllw t5, t5, 5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(s5, t5, a1); // paddw s5, t5, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsrl32(t9, s5, 0); // dsrl32 t9, s5, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyud(s4, s5, r0); // pcpyud s4, s5, r0 + c->lq(t6, 0, s5); // lq t6, 0(s5) + c->dsrl32(ra, s4, 0); // dsrl32 ra, s4, 0 + c->lq(t7, 0, t9); // lq t7, 0(t9) + c->pand(t8, t1, a3); // pand t8, t1, a3 + c->lq(t5, 0, s4); // lq t5, 0(s4) + c->psraw(gp, t8, 8); // psraw gp, t8, 8 + c->lq(t8, 0, ra); // lq t8, 0(ra) + c->pextuw(s3, t7, t6); // pextuw s3, t7, t6 + c->lq(s5, 16, s5); // lq s5, 16(s5) + c->pextuw(s2, t8, t5); // pextuw s2, t8, t5 + c->lq(t9, 16, t9); // lq t9, 16(t9) + c->pcpyud(s3, s3, s2); // pcpyud s3, s3, s2 + c->lq(s4, 16, s4); // lq s4, 16(s4) + c->pand(s3, s3, a0); // pand s3, s3, a0 + c->lq(ra, 16, ra); // lq ra, 16(ra) + c->por(s3, s3, gp); // por s3, s3, gp + c->mov128_vf_gpr(vf1, s5); // qmtc2.ni vf1, s5 + c->pextub(gp, r0, s5); // pextub gp, r0, s5 + c->sq(s3, 0, t2); // sq s3, 0(t2) + c->pextub(s5, r0, t9); // pextub s5, r0, t9 + c->mov128_vf_gpr(vf2, t9); // qmtc2.ni vf2, t9 + c->pextub(t9, r0, s4); // pextub t9, r0, s4 + c->mov128_vf_gpr(vf3, s4); // qmtc2.ni vf3, s4 + c->pextub(s4, r0, ra); // pextub s4, r0, ra + c->mov128_vf_gpr(vf4, ra); // qmtc2.ni vf4, ra + c->pextuh(ra, r0, gp); // pextuh ra, r0, gp + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(gp, r0, s5); // pextuh gp, r0, s5 + c->mov128_vf_gpr(vf5, ra); // qmtc2.ni vf5, ra + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + c->mov128_vf_gpr(vf6, gp); // qmtc2.ni vf6, gp + c->pextuh(ra, r0, s4); // pextuh ra, r0, s4 + c->mov128_vf_gpr(vf7, t9); // qmtc2.ni vf7, t9 + c->prot3w(t8, t8); // prot3w t8, t8 + c->mov128_vf_gpr(vf8, ra); // qmtc2.ni vf8, ra + c->prot3w(t7, t7); // prot3w t7, t7 + // Unknown instr: vcallms 0 + vcallms0(c); + c->pextuw(t9, t7, t6); // pextuw t9, t7, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t7, t5, t7); // pcpyld t7, t5, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t6, t9, t6); // pcpyld t6, t9, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuw(t5, t8, t5); // pextuw t5, t8, t5 + c->sq(t7, 16, t3); // sq t7, 16(t3) + c->pcpyld(t5, t8, t5); // pcpyld t5, t8, t5 + c->sq(t6, 0, t3); // sq t6, 0(t3) + // nop // sll r0, r0, 0 + c->sq(t5, 32, t3); // sq t5, 32(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->daddiu(t4, t4, -4); // daddiu t4, t4, -4 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + bc = ((s64)c->sgpr64(t4)) <= 0; // blez t4, L91 + c->mfc1(r0, f31); // mfc1 r0, f31 + if (bc) {goto block_2;} // branch non-likely + + +block_1: + // nop // sll r0, r0, 0 + c->ldr(t1, 0, t0); // ldr t1, 0(t0) + // nop // sll r0, r0, 0 + c->ldl(t1, 7, t0); // ldl t1, 7(t0) + // nop // sll r0, r0, 0 + c->daddiu(t0, t0, 8); // daddiu t0, t0, 8 + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t5, t1, a2); // pand t5, t1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllw(t5, t5, 5); // psllw t5, t5, 5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(s5, t5, a1); // paddw s5, t5, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->dsrl32(t9, s5, 0); // dsrl32 t9, s5, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyud(s4, s5, r0); // pcpyud s4, s5, r0 + c->lq(t6, 0, s5); // lq t6, 0(s5) + c->dsrl32(ra, s4, 0); // dsrl32 ra, s4, 0 + c->lq(t7, 0, t9); // lq t7, 0(t9) + c->pand(t8, t1, a3); // pand t8, t1, a3 + c->lq(t5, 0, s4); // lq t5, 0(s4) + c->psraw(gp, t8, 8); // psraw gp, t8, 8 + c->lq(t8, 0, ra); // lq t8, 0(ra) + c->pextuw(s3, t7, t6); // pextuw s3, t7, t6 + c->lq(s5, 16, s5); // lq s5, 16(s5) + c->pextuw(s2, t8, t5); // pextuw s2, t8, t5 + c->lq(t9, 16, t9); // lq t9, 16(t9) + c->pcpyud(s3, s3, s2); // pcpyud s3, s3, s2 + c->lq(s4, 16, s4); // lq s4, 16(s4) + c->pand(s3, s3, a0); // pand s3, s3, a0 + c->lq(ra, 16, ra); // lq ra, 16(ra) + c->por(s3, s3, gp); // por s3, s3, gp + c->mov128_vf_gpr(vf1, s5); // qmtc2.ni vf1, s5 + c->pextub(gp, r0, s5); // pextub gp, r0, s5 + c->sq(s3, 0, t2); // sq s3, 0(t2) + c->pextub(s5, r0, t9); // pextub s5, r0, t9 + c->mov128_vf_gpr(vf2, t9); // qmtc2.ni vf2, t9 + c->pextub(t9, r0, s4); // pextub t9, r0, s4 + c->mov128_vf_gpr(vf3, s4); // qmtc2.ni vf3, s4 + c->pextub(s4, r0, ra); // pextub s4, r0, ra + c->mov128_vf_gpr(vf4, ra); // qmtc2.ni vf4, ra + c->pextuh(ra, r0, gp); // pextuh ra, r0, gp + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(gp, r0, s5); // pextuh gp, r0, s5 + c->mov128_vf_gpr(vf5, ra); // qmtc2.ni vf5, ra + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + c->mov128_vf_gpr(vf6, gp); // qmtc2.ni vf6, gp + c->pextuh(ra, r0, s4); // pextuh ra, r0, s4 + c->mov128_vf_gpr(vf7, t9); // qmtc2.ni vf7, t9 + c->prot3w(t8, t8); // prot3w t8, t8 + c->mov128_vf_gpr(vf8, ra); // qmtc2.ni vf8, ra + c->prot3w(t7, t7); // prot3w t7, t7 + // Unknown instr: vcallms 0 + vcallms0(c); + c->pextuw(t9, t7, t6); // pextuw t9, t7, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t7, t5, t7); // pcpyld t7, t5, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t6, t9, t6); // pcpyld t6, t9, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuw(t5, t8, t5); // pextuw t5, t8, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t5, t8, t5); // pcpyld t5, t8, t5 + c->sq(t6, 0, t3); // sq t6, 0(t3) + // nop // sll r0, r0, 0 + c->sq(t7, 16, t3); // sq t7, 16(t3) + // nop // sll r0, r0, 0 + c->sq(t5, 32, t3); // sq t5, 32(t3) + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->mov128_gpr_vf(t7, vf21); // qmfc2.ni t7, vf21 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t8, vf22); // qmfc2.ni t8, vf22 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t5, vf23); // qmfc2.ni t5, vf23 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t6, vf24); // qmfc2.ni t6, vf24 + c->ppach(t7, t8, t7); // ppach t7, t8, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(t5, t6, t5); // ppach t5, t6, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppacb(t5, t5, t7); // ppacb t5, t5, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->sq(t5, 0, v1); // sq t5, 0(v1) + c->daddiu(t4, t4, -4); // daddiu t4, t4, -4 + c->daddiu(v1, v1, 16); // daddiu v1, v1, 16 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + bc = ((s64)c->sgpr64(t4)) > 0; // bgtz t4, L90 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + +block_2: + // nop // sll r0, r0, 0 + // nop // vnop + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a2, vf17); // qmfc2.ni a2, vf17 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf18); // qmfc2.ni a3, vf18 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a0, vf19); // qmfc2.ni a0, vf19 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf20); // qmfc2.ni a1, vf20 + c->ppach(a2, a3, a2); // ppach a2, a3, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(a0, a1, a0); // ppach a0, a1, a0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppacb(a0, a0, a2); // ppacb a0, a0, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->sq(a0, 0, v1); // sq a0, 0(v1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 12432, at); // ld ra, 12432(at) + c->lq(gp, 12512, at); // lq gp, 12512(at) + c->lq(s5, 12496, at); // lq s5, 12496(at) + c->lq(s4, 12480, at); // lq s4, 12480(at) + c->lq(s3, 12464, at); // lq s3, 12464(at) + c->lq(s2, 12448, at); // lq s2, 12448(at) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("generic-light-proc", execute, 256); +} + +} // namespace generic_light_proc +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/generic_merc.cpp b/game/mips2c/jakx_functions/generic_merc.cpp new file mode 100644 index 0000000000..72aab4e668 --- /dev/null +++ b/game/mips2c/jakx_functions/generic_merc.cpp @@ -0,0 +1,3023 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_merc_do_chain { +struct Cache { + void* display; // *display* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* viewport_array; // *viewport-array* + void* dma_bucket_insert_tag; // dma-bucket-insert-tag + void* generic_merc_execute_asm; // generic-merc-execute-asm + void* generic_work_init; // generic-work-init +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s3, 16, sp); // sq s3, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s5, 48, sp); // sq s5, 48(sp) + c->sq(gp, 64, sp); // sq gp, 64(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a1); // or s5, a1, r0 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->sw(gp, 7456, v1); // sw gp, 7456(v1) + c->daddiu(a0, gp, 8); // daddiu a0, gp, 8 + c->load_symbol2(v1, cache.viewport_array); // lw v1, *viewport-array*(s7) + c->addiu(a1, r0, 688); // addiu a1, r0, 688 + c->lwu(a2, 8, v1); // lwu a2, 8(v1) + c->multu3(a1, a1, a2); // multu3 a1, a1, a2 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddu(v1, a1, v1); // daddu v1, a1, v1 + c->lwu(v1, 0, gp); // lwu v1, 0(gp) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L17 + c->mov64(v0, s7); // or v0, s7, r0 + if (bc) {goto block_7;} // branch non-likely + + c->load_symbol2(v1, cache.display); // lw v1, *display*(s7) + c->lw(v1, 0, v1); // lw v1, 0(v1) + c->dsll(v1, v1, 2); // dsll v1, v1, 2 + c->load_symbol2(a1, cache.display); // lw a1, *display*(s7) + c->daddu(v1, v1, a1); // daddu v1, v1, a1 + c->lwu(v1, 8, v1); // lwu v1, 8(v1) + c->lwu(s3, 36, v1); // lwu s3, 36(v1) + c->lwu(s4, 4, s3); // lwu s4, 4(s3) + c->load_symbol2(t9, cache.generic_work_init); // lw t9, generic-work-init(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lwu(v1, 4, s3); // lwu v1, 4(s3) + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->sw(v1, 60, a0); // sw v1, 60(a0) + c->load_symbol2(t9, cache.generic_merc_execute_asm);// lw t9, generic-merc-execute-asm(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(v1, 60, v1); // lwu v1, 60(v1) + c->sw(v1, 4, s3); // sw v1, 4(s3) + c->lui(v1, 4096); // lui v1, 4096 + c->ori(v1, v1, 53248); // ori v1, v1, 53248 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->ori(a0, a0, 92); // ori a0, a0, 92 + c->lw(a1, 0, v1); // lw a1, 0(v1) + c->andi(a1, a1, 256); // andi a1, a1, 256 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L15 + // TODO - fix DANGER jump to delay slot, this MUST be fixed manually! + c->lw(a1, 0, a0); // lw a1, 0(a0) + // TODO - fix if (bc) {goto block_-1;} // branch non-likely + + +block_2: + c->lw(a1, 0, a0); // lw a1, 0(a0) + // nop // sll r0, r0, 0 + c->lw(a2, 0, v1); // lw a2, 0(v1) + // nop // sll r0, r0, 0 + c->andi(a2, a2, 256); // andi a2, a2, 256 + c->daddiu(a1, a1, 1); // daddiu a1, a1, 1 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L14 + c->sw(a1, 0, a0); // sw a1, 0(a0) + if (bc) {goto block_2;} // branch non-likely + + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->lwu(a3, 4, s3); // lwu a3, 4(s3) + bc = c->sgpr64(s4) == c->sgpr64(a3); // beq s4, a3, L16 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_6;} // branch non-likely + + c->lwu(v1, 4, s3); // lwu v1, 4(s3) + c->lui(a0, 8192); // lui a0, 8192 + c->sd(a0, 0, v1); // sd a0, 0(v1) + c->sw(r0, 8, v1); // sw r0, 8(v1) + c->sw(r0, 12, v1); // sw r0, 12(v1) + c->daddiu(v1, v1, 16); // daddiu v1, v1, 16 + c->sw(v1, 4, s3); // sw v1, 4(s3) + c->load_symbol2(t9, cache.dma_bucket_insert_tag); // lw t9, dma-bucket-insert-tag(s7) + c->load_symbol2(v1, cache.display); // lw v1, *display*(s7) + c->lw(v1, 0, v1); // lw v1, 0(v1) + c->dsll(v1, v1, 2); // dsll v1, v1, 2 + c->load_symbol2(a0, cache.display); // lw a0, *display*(s7) + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->lwu(v1, 8, v1); // lwu v1, 8(v1) + c->lwu(a0, 40, v1); // lwu a0, 40(v1) + c->lw(a1, 16, gp); // lw a1, 16(gp) + c->mov64(a2, s4); // or a2, s4, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_6: + c->lwu(v1, 4, s5); // lwu v1, 4(s5) + // Unknown instr: sync.l + // Unknown instr: cache dxwbin v1, 0 + // Unknown instr: sync.l + // Unknown instr: cache dxwbin v1, 1 + // Unknown instr: sync.l + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + +block_7: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 64, sp); // lq gp, 64(sp) + c->lq(s5, 48, sp); // lq s5, 48(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s3, 16, sp); // lq s3, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.display = intern_from_c(-1, 0, "*display*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.viewport_array = intern_from_c(-1, 0, "*viewport-array*").c(); + cache.dma_bucket_insert_tag = intern_from_c(-1, 0, "dma-bucket-insert-tag").c(); + cache.generic_merc_execute_asm = intern_from_c(-1, 0, "generic-merc-execute-asm").c(); + cache.generic_work_init = intern_from_c(-1, 0, "generic-work-init").c(); + gLinkedFunctionTable.reg("generic-merc-do-chain", execute, 256); +} + +} // namespace generic_merc_do_chain +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_merc_execute_asm { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* gsf_buffer; // *gsf-buffer* + void* generic_merc_death; // generic-merc-death + void* generic_merc_query; // generic-merc-query + void* generic_translucent; // generic-translucent + void* generic_warp_dest; // generic-warp-dest + void* generic_warp_envmap_dest; // generic-warp-envmap-dest + void* generic_warp_source; // generic-warp-source +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -112); // daddiu sp, sp, -112 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s1, 16, sp); // sq s1, 16(sp) + c->sq(s2, 32, sp); // sq s2, 32(sp) + c->sq(s3, 48, sp); // sq s3, 48(sp) + c->sq(s4, 64, sp); // sq s4, 64(sp) + c->sq(s5, 80, sp); // sq s5, 80(sp) + c->sq(gp, 96, sp); // sq gp, 96(sp) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(v1, 7456, v1); // lwu v1, 7456(v1) + c->lwu(s2, 0, v1); // lwu s2, 0(v1) + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + c->addiu(gp, r0, 0); // addiu gp, r0, 0 + c->addiu(s5, r0, 0); // addiu s5, r0, 0 + c->load_symbol2(s4, cache.gsf_buffer); // lw s4, *gsf-buffer*(s7) + c->lui(v1, 4096); // lui v1, 4096 + c->ori(s3, v1, 54272); // ori s3, v1, 54272 + c->addiu(v1, r0, 624); // addiu v1, r0, 624 + c->lui(a0, 4096); // lui a0, 4096 + c->ori(a0, a0, 54272); // ori a0, a0, 54272 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->ori(a1, a1, 88); // ori a1, a1, 88 + c->lw(a2, 0, a0); // lw a2, 0(a0) + c->andi(a2, a2, 256); // andi a2, a2, 256 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L20 + // TODO - fix DANGER jump to delay slot, this MUST be fixed manually! + c->lw(a2, 0, a1); // lw a2, 0(a1) + // TODO - fix if (bc) {goto block_-1;} // branch non-likely + + +block_1: + c->lw(a2, 0, a1); // lw a2, 0(a1) + // nop // sll r0, r0, 0 + c->lw(a3, 0, a0); // lw a3, 0(a0) + // nop // sll r0, r0, 0 + c->andi(a3, a3, 256); // andi a3, a3, 256 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L19 + c->sw(a2, 0, a1); // sw a2, 0(a1) + if (bc) {goto block_1;} // branch non-likely + + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->sw(v1, 128, s3); // sw v1, 128(s3) + c->sw(s2, 48, s3); // sw s2, 48(s3) + c->sw(r0, 32, s3); // sw r0, 32(s3) + // Unknown instr: sync.l + c->addiu(v1, r0, 324); // addiu v1, r0, 324 + c->sw(v1, 0, s3); // sw v1, 0(s3) + // Unknown instr: sync.l + //beq r0, r0, L66 // beq r0, r0, L66 + // nop // sll r0, r0, 0 + goto block_88; // branch always + + +block_4: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L22 + // nop // sll r0, r0, 0 + if (bc) {goto block_6;} // branch non-likely + + c->addiu(v1, r0, 624); // addiu v1, r0, 624 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + //beq r0, r0, L23 // beq r0, r0, L23 + // nop // sll r0, r0, 0 + goto block_7; // branch always + + +block_6: + c->addiu(v1, r0, 3648); // addiu v1, r0, 3648 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + +block_7: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L24 + // nop // sll r0, r0, 0 + if (bc) {goto block_9;} // branch non-likely + + c->addiu(a0, r0, 3648); // addiu a0, r0, 3648 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + //beq r0, r0, L25 // beq r0, r0, L25 + // nop // sll r0, r0, 0 + goto block_10; // branch always + + +block_9: + c->addiu(a0, r0, 624); // addiu a0, r0, 624 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + +block_10: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L26 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + c->addiu(a1, r0, 3568); // addiu a1, r0, 3568 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->daddu(a1, a1, a2); // daddu a1, a1, a2 + //beq r0, r0, L27 // beq r0, r0, L27 + // nop // sll r0, r0, 0 + goto block_13; // branch always + + +block_12: + c->addiu(a1, r0, 6592); // addiu a1, r0, 6592 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->daddu(a1, a1, a2); // daddu a1, a1, a2 + +block_13: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L28 + // nop // sll r0, r0, 0 + if (bc) {goto block_15;} // branch non-likely + + c->addiu(a1, r0, 6592); // addiu a1, r0, 6592 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->daddu(a1, a1, a2); // daddu a1, a1, a2 + //beq r0, r0, L29 // beq r0, r0, L29 + // nop // sll r0, r0, 0 + goto block_16; // branch always + + +block_15: + c->addiu(a1, r0, 3568); // addiu a1, r0, 3568 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->daddu(a1, a1, a2); // daddu a1, a1, a2 + +block_16: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L30 + // nop // sll r0, r0, 0 + if (bc) {goto block_18;} // branch non-likely + + c->daddu(s1, r0, s4); // daddu s1, r0, s4 + //beq r0, r0, L31 // beq r0, r0, L31 + // nop // sll r0, r0, 0 + goto block_19; // branch always + + +block_18: + c->daddiu(s1, s4, 2752); // daddiu s1, s4, 2752 + +block_19: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L32 + // nop // sll r0, r0, 0 + if (bc) {goto block_21;} // branch non-likely + + c->daddiu(a1, s4, 2752); // daddiu a1, s4, 2752 + //beq r0, r0, L33 // beq r0, r0, L33 + // nop // sll r0, r0, 0 + goto block_22; // branch always + + +block_21: + c->daddu(a1, r0, s4); // daddu a1, r0, s4 + +block_22: + c->addiu(a2, r0, 7136); // addiu a2, r0, 7136 + get_fake_spad_addr2(a3, cache.fake_scratchpad_data, 0, c);// lui a3, 28672 + c->daddu(a2, a2, a3); // daddu a2, a2, a3 + c->sw(gp, 280, a2); // sw gp, 280(a2) + c->sw(s5, 284, a2); // sw s5, 284(a2) + c->sw(v1, 292, a2); // sw v1, 292(a2) + c->sw(a0, 296, a2); // sw a0, 296(a2) + c->sw(s1, 300, a2); // sw s1, 300(a2) + c->sw(a1, 304, a2); // sw a1, 304(a2) + c->sw(s4, 312, a2); // sw s4, 312(a2) + c->mov64(a1, s4); // or a1, s4, r0 + c->lui(a1, 4096); // lui a1, 4096 + c->ori(a1, a1, 54272); // ori a1, a1, 54272 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->ori(a2, a2, 88); // ori a2, a2, 88 + c->lw(a3, 0, a1); // lw a3, 0(a1) + c->andi(a3, a3, 256); // andi a3, a3, 256 + bc = c->sgpr64(a3) == 0; // beq a3, r0, L35 + // TODO - fix DANGER jump to delay slot, this MUST be fixed manually! + c->lw(a3, 0, a2); // lw a3, 0(a2) + // TODO - fix if (bc) {goto block_-1;} // branch non-likely + + +block_23: + c->lw(a3, 0, a2); // lw a3, 0(a2) + // nop // sll r0, r0, 0 + c->lw(t0, 0, a1); // lw t0, 0(a1) + // nop // sll r0, r0, 0 + c->andi(t0, t0, 256); // andi t0, t0, 256 + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + bc = c->sgpr64(t0) != 0; // bne t0, r0, L34 + c->sw(a3, 0, a2); // sw a3, 0(a2) + if (bc) {goto block_23;} // branch non-likely + + c->gprs[a1].du64[0] = 0; // or a1, r0, r0 + c->lwu(s2, 12, v1); // lwu s2, 12(v1) + bc = c->sgpr64(s2) == 0; // beq s2, r0, L36 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_27;} // branch non-likely + + c->daddu(a0, r0, a0); // daddu a0, r0, a0 + c->andi(a0, a0, 65535); // andi a0, a0, 65535 + c->sw(a0, 128, s3); // sw a0, 128(s3) + c->sw(s2, 48, s3); // sw s2, 48(s3) + c->sw(r0, 32, s3); // sw r0, 32(s3) + // Unknown instr: sync.l + c->addiu(a0, r0, 324); // addiu a0, r0, 324 + c->sw(a0, 0, s3); // sw a0, 0(s3) + // Unknown instr: sync.l + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + +block_27: + bc = c->sgpr64(s5) != 0; // bne s5, r0, L45 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_44;} // branch non-likely + + c->addiu(a0, r0, 6672); // addiu a0, r0, 6672 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a1, a0, a1); // daddu a1, a0, a1 + c->mov64(a2, v1); // or a2, v1, r0 + c->lwu(a0, 8, v1); // lwu a0, 8(v1) + // nop // sll r0, r0, 0 + c->daddiu(a3, a0, -4); // daddiu a3, a0, -4 + c->mov64(a1, a1); // or a1, a1, r0 + bc = ((s64)c->sgpr64(a3)) < 0; // bltz a3, L38 + c->mov64(a2, a2); // or a2, a2, r0 + if (bc) {goto block_30;} // branch non-likely + + +block_29: + // nop // sll r0, r0, 0 + c->lq(t2, 0, a2); // lq t2, 0(a2) + // nop // sll r0, r0, 0 + c->lq(a3, 16, a2); // lq a3, 16(a2) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lq(t0, 32, a2); // lq t0, 32(a2) + c->daddiu(a1, a1, 64); // daddiu a1, a1, 64 + c->lq(t1, 48, a2); // lq t1, 48(a2) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->sq(t2, -64, a1); // sq t2, -64(a1) + c->daddiu(t2, a0, -4); // daddiu t2, a0, -4 + c->sq(a3, -48, a1); // sq a3, -48(a1) + // nop // sll r0, r0, 0 + c->sq(t0, -32, a1); // sq t0, -32(a1) + bc = ((s64)c->sgpr64(t2)) >= 0; // bgez t2, L37 + c->sq(t1, -16, a1); // sq t1, -16(a1) + if (bc) {goto block_29;} // branch non-likely + + +block_30: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L39 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_35;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L39 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_35;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L39 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_35;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L39 + c->lq(a3, 0, a2); // lq a3, 0(a2) + if (bc) {goto block_35;} // branch non-likely + + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, -16, a1); // sq a3, -16(a1) + +block_35: + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6840, a0); // lbu a0, 6840(a0) + bc = c->sgpr64(a0) != 0; // bne a0, r0, L40 + // nop // sll r0, r0, 0 + if (bc) {goto block_37;} // branch non-likely + + c->addiu(a0, r0, 8); // addiu a0, r0, 8 + //beq r0, r0, L41 // beq r0, r0, L41 + // nop // sll r0, r0, 0 + goto block_38; // branch always + + +block_37: + c->addiu(a0, r0, 6); // addiu a0, r0, 6 + +block_38: + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->ori(a1, a1, 11984); // ori a1, a1, 11984 + c->sh(a0, 0, a1); // sh a0, 0(a1) + c->addiu(a0, r0, 12048); // addiu a0, r0, 12048 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->lwu(a1, 6832, a1); // lwu a1, 6832(a1) + c->sw(a1, 0, a0); // sw a1, 0(a0) + c->sw(a1, 4, a0); // sw a1, 4(a0) + c->sw(a1, 8, a0); // sw a1, 8(a0) + c->sw(a1, 12, a0); // sw a1, 12(a0) + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->addiu(a0, a1, 7136); // addiu a0, a1, 7136 + c->lbu(a2, 6841, a1); // lbu a2, 6841(a1) + c->addiu(a3, a1, 7200); // addiu a3, a1, 7200 + c->addiu(a1, a1, 11808); // addiu a1, a1, 11808 + c->movn(a0, a3, a2); // movn a0, a3, a2 + c->lq(a2, 0, a0); // lq a2, 0(a0) + c->lq(a3, 16, a0); // lq a3, 16(a0) + c->lq(t0, 32, a0); // lq t0, 32(a0) + c->lq(a0, 48, a0); // lq a0, 48(a0) + c->sq(a2, 0, a1); // sq a2, 0(a1) + c->sq(a3, 16, a1); // sq a3, 16(a1) + c->sq(t0, 32, a1); // sq t0, 32(a1) + c->sq(a0, 48, a1); // sq a0, 48(a1) + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6843, a0); // lbu a0, 6843(a0) + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->sb(a0, 6853, a1); // sb a0, 6853(a1) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lqc2(vf1, 6688, at); // lqc2 vf1, 6688(at) + c->lqc2(vf2, 6704, at); // lqc2 vf2, 6704(at) + c->lqc2(vf3, 6720, at); // lqc2 vf3, 6720(at) + c->lqc2(vf4, 6736, at); // lqc2 vf4, 6736(at) + c->lqc2(vf5, 6752, at); // lqc2 vf5, 6752(at) + c->lqc2(vf6, 6768, at); // lqc2 vf6, 6768(at) + c->lqc2(vf7, 6784, at); // lqc2 vf7, 6784(at) + c->sqc2(vf1, 12688, at); // sqc2 vf1, 12688(at) + c->sqc2(vf2, 12704, at); // sqc2 vf2, 12704(at) + c->sqc2(vf3, 12720, at); // sqc2 vf3, 12720(at) + c->sqc2(vf4, 12736, at); // sqc2 vf4, 12736(at) + c->sqc2(vf5, 12752, at); // sqc2 vf5, 12752(at) + c->sqc2(vf6, 12768, at); // sqc2 vf6, 12768(at) + c->sqc2(vf7, 12784, at); // sqc2 vf7, 12784(at) + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6852, a0); // lbu a0, 6852(a0) + c->andi(a0, a0, 2); // andi a0, a0, 2 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L42 + // nop // sll r0, r0, 0 + if (bc) {goto block_40;} // branch non-likely + + c->lui(a0, 12342); // lui a0, 12342 + c->ori(a0, a0, 16384); // ori a0, a0, 16384 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->sw(a0, 11876, a1); // sw a0, 11876(a1) + c->lui(a0, 12342); // lui a0, 12342 + c->ori(a1, a0, 49152); // ori a1, a0, 49152 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->sw(a1, 11872, a0); // sw a1, 11872(a0) + //beq r0, r0, L43 // beq r0, r0, L43 + // nop // sll r0, r0, 0 + goto block_41; // branch always + + +block_40: + c->lui(a0, 12350); // lui a0, 12350 + c->ori(a0, a0, 16384); // ori a0, a0, 16384 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->sw(a0, 11876, a1); // sw a0, 11876(a1) + c->lui(a0, 12350); // lui a0, 12350 + c->ori(a1, a0, 49152); // ori a1, a0, 49152 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->sw(a1, 11872, a0); // sw a1, 11872(a0) + +block_41: + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6856, a0); // lbu a0, 6856(a0) + c->addiu(a1, r0, 128); // addiu a1, r0, 128 + c->sltu(a1, a1, a0); // sltu a1, a1, a0 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L44 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_43;} // branch non-likely + + c->lui(a1, 15360); // lui a1, 15360 + c->mtc1(f0, a1); // mtc1 f0, a1 + c->mtc1(f1, a0); // mtc1 f1, a0 + c->cvtsw(f1, f1); // cvt.s.w f1, f1 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lwc1(f1, 12796, a0); // lwc1 f1, 12796(a0) + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->swc1(f0, 12796, a0); // swc1 f0, 12796(a0) + c->mfc1(a1, f0); // mfc1 a1, f0 + +block_43: + c->lwu(a0, 8, v1); // lwu a0, 8(v1) + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->mov64(a0, v1); // or a0, v1, r0 + +block_44: + c->addiu(a0, r0, 7136); // addiu a0, r0, 7136 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->daddiu(v1, v1, 16); // daddiu v1, v1, 16 + c->sw(v1, 308, a0); // sw v1, 308(a0) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7460, v1); // lwu t9, 7460(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->addiu(a0, r0, 1); // addiu a0, r0, 1 + c->lbu(a1, 6840, v1); // lbu a1, 6840(v1) + c->daddiu(a2, s1, 448); // daddiu a2, s1, 448 + c->lbu(a3, 6843, v1); // lbu a3, 6843(v1) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L47 + c->lqc2(vf1, 0, a2); // lqc2 vf1, 0(a2) + if (bc) {goto block_50;} // branch non-likely + + bc = c->sgpr64(a3) == 0; // beq a3, r0, L47 + c->vmax_bc(DEST::xyzw, BC::w, vf9, vf0, vf0); // vmaxw.xyzw vf9, vf0, vf0 + if (bc) {goto block_50;} // branch non-likely + + c->sb(a0, 6853, v1); // sb a0, 6853(v1) + c->lqc2(vf10, 7488, v1); // lqc2 vf10, 7488(v1) + c->lqc2(vf11, 7504, v1); // lqc2 vf11, 7504(v1) + c->vmula_bc(DEST::xyzw, BC::z, vf9, vf1); // vmulaz.xyzw acc, vf9, vf1 + c->lw(a0, 8, a2); // lw a0, 8(a2) + c->vmadda_bc(DEST::xyzw, BC::x, vf10, vf1); // vmaddax.xyzw acc, vf10, vf1 + bc = ((s64)c->sgpr64(a0)) < 0; // bltz a0, L46 + c->lw(v1, 7480, v1); // lw v1, 7480(v1) + // TODO - fix if (bc) {goto block_48;} // branch non-likely + + c->vmadd_bc(DEST::xyzw, BC::y, vf1, vf11, vf1); // vmaddy.xyzw vf1, vf11, vf1 + c->mov128_gpr_vf(a0, vf1); // qmfc2.i a0, vf1 + c->pcgtw(a0, r0, a0); // pcgtw a0, r0, a0 + c->ppach(a0, r0, a0); // ppach a0, r0, a0 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L47 + // TODO - fix DANGER jump to delay slot, this MUST be fixed manually! + // nop // sll r0, r0, 0 + // TODO - fix if (bc) {goto block_-1;} // branch non-likely + + +block_48: + // nop // sll r0, r0, 0 + call_addr = c->gprs[v1].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, v1 + +block_50: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(v1, 6836, v1); // lwu v1, 6836(v1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L48 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_52;} // branch non-likely + + c->load_symbol2(t9, cache.generic_merc_query); // lw t9, generic-merc-query(s7) + c->mov64(a0, s1); // or a0, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_52: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lhu(v1, 6844, v1); // lhu v1, 6844(v1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L49 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_54;} // branch non-likely + + c->load_symbol2(t9, cache.generic_merc_death); // lw t9, generic-merc-death(s7) + c->mov64(a0, s1); // or a0, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_54: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lw(v1, 7424, v1); // lw v1, 7424(v1) + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lwu(a0, 60, a0); // lwu a0, 60(a0) + c->dsubu(v1, v1, a0); // dsubu v1, v1, a0 + c->slt(v1, r0, v1); // slt v1, r0, v1 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L50 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_56;} // branch non-likely + + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->sb(r0, 6853, v1); // sb r0, 6853(v1) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->sb(r0, 6843, v1); // sb r0, 6843(v1) + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + +block_56: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lbu(v1, 6853, v1); // lbu v1, 6853(v1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L64 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_85;} // branch non-likely + + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6854, a0); // lbu a0, 6854(a0) + bc = c->sgpr64(a0) != c->sgpr64(v1); // bne a0, v1, L51 + // nop // sll r0, r0, 0 + if (bc) {goto block_59;} // branch non-likely + + c->load_symbol2(t9, cache.generic_warp_source); // lw t9, generic-warp-source(s7) + c->mov64(a0, s1); // or a0, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + //beq r0, r0, L64 // beq r0, r0, L64 + // nop // sll r0, r0, 0 + goto block_85; // branch always + + +block_59: + c->addiu(v1, r0, 2); // addiu v1, r0, 2 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6854, a0); // lbu a0, 6854(a0) + bc = c->sgpr64(a0) != c->sgpr64(v1); // bne a0, v1, L54 + // nop // sll r0, r0, 0 + if (bc) {goto block_64;} // branch non-likely + + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lbu(v1, 6955, v1); // lbu v1, 6955(v1) + c->andi(v1, v1, 1); // andi v1, v1, 1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L52 + // nop // sll r0, r0, 0 + if (bc) {goto block_62;} // branch non-likely + + c->load_symbol2(t9, cache.generic_warp_envmap_dest);// lw t9, generic-warp-envmap-dest(s7) + c->mov64(a0, s1); // or a0, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + //beq r0, r0, L53 // beq r0, r0, L53 + // nop // sll r0, r0, 0 + goto block_63; // branch always + + +block_62: + c->load_symbol2(t9, cache.generic_warp_dest); // lw t9, generic-warp-dest(s7) + c->mov64(a0, s1); // or a0, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_63: + //beq r0, r0, L64 // beq r0, r0, L64 + // nop // sll r0, r0, 0 + goto block_85; // branch always + + +block_64: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lbu(v1, 6955, v1); // lbu v1, 6955(v1) + c->andi(v1, v1, 1); // andi v1, v1, 1 + if (((s64)c->sgpr64(v1)) == ((s64)0)) { // beql v1, r0, L55 + c->mov64(v1, s7); // or v1, s7, r0 + goto block_67; + } + +block_66: + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->lbu(a0, 6852, a0); // lbu a0, 6852(a0) + c->andi(a0, a0, 1); // andi a0, a0, 1 + c->movz(v1, s7, a0); // movz v1, s7, a0 + +block_67: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L56 + // nop // sll r0, r0, 0 + if (bc) {goto block_69;} // branch non-likely + + c->load_symbol2(t9, cache.generic_translucent); // lw t9, generic-translucent(s7) + c->mov64(a0, s1); // or a0, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + //beq r0, r0, L64 // beq r0, r0, L64 + // nop // sll r0, r0, 0 + goto block_85; // branch always + + +block_69: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lbu(v1, 6955, v1); // lbu v1, 6955(v1) + c->andi(v1, v1, 1); // andi v1, v1, 1 + if (((s64)c->sgpr64(v1)) == ((s64)0)) { // beql v1, r0, L57 + c->mov64(v1, s7); // or v1, s7, r0 + goto block_72; + } + +block_71: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lbu(v1, 6858, v1); // lbu v1, 6858(v1) + c->daddiu(a0, v1, -1); // daddiu a0, v1, -1 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + c->movz(v1, s7, a0); // movz v1, s7, a0 + +block_72: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L61 + // nop // sll r0, r0, 0 + if (bc) {goto block_80;} // branch non-likely + + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->mov64(v1, s1); // or v1, s1, r0 + c->daddiu(a0, at, 12064); // daddiu a0, at, 12064 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->lbu(a1, 6842, a1); // lbu a1, 6842(a1) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L58 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_75;} // branch non-likely + + c->addiu(a0, r0, 6960); // addiu a0, r0, 6960 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->mov64(a0, a0); // or a0, a0, r0 + c->mov64(a1, a0); // or a1, a0, r0 + +block_75: + c->sw(r0, 48, at); // sw r0, 48(at) + c->sw(a0, 52, at); // sw a0, 52(at) + c->sw(v1, 44, at); // sw v1, 44(at) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7468, v1); // lwu t9, 7468(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7472, v1); // lwu t9, 7472(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7476, v1); // lwu t9, 7476(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(v1, 24, at); // lw v1, 24(at) + c->lw(a0, 40, at); // lw a0, 40(at) + c->mov64(a3, v1); // or a3, v1, r0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lui(a2, 4096); // lui a2, 4096 + c->lwu(a1, 60, at); // lwu a1, 60(at) + c->ori(a2, a2, 53248); // ori a2, a2, 53248 + c->lw(t1, 0, a2); // lw t1, 0(a2) + // nop // sll r0, r0, 0 + c->daddiu(t0, at, 92); // daddiu t0, at, 92 + c->andi(a3, a3, 16383); // andi a3, a3, 16383 + c->andi(t1, t1, 256); // andi t1, t1, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L60 + // nop // sll r0, r0, 0 + if (bc) {goto block_79;} // branch non-likely + + c->mov64(t1, a2); // or t1, a2, r0 + // nop // sll r0, r0, 0 + +block_77: + c->lw(t2, 0, t0); // lw t2, 0(t0) + // nop // sll r0, r0, 0 + c->lw(t3, 0, t1); // lw t3, 0(t1) + // nop // sll r0, r0, 0 + c->andi(t3, t3, 256); // andi t3, t3, 256 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L59 + c->sw(t2, 0, t0); // sw t2, 0(t0) + if (bc) {goto block_77;} // branch non-likely + + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + +block_79: + c->dsll(t0, a0, 4); // dsll t0, a0, 4 + c->sw(a3, 128, a2); // sw a3, 128(a2) + // nop // sll r0, r0, 0 + c->sw(a1, 16, a2); // sw a1, 16(a2) + c->addiu(a3, r0, 256); // addiu a3, r0, 256 + c->sw(a0, 32, a2); // sw a0, 32(a2) + c->daddu(a0, a1, t0); // daddu a0, a1, t0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + // nop // sll r0, r0, 0 + c->sw(a0, 60, at); // sw a0, 60(at) + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->xori(v1, v1, 4608); // xori v1, v1, 4608 + c->sw(v1, 24, at); // sw v1, 24(at) + //beq r0, r0, L64 // beq r0, r0, L64 + // nop // sll r0, r0, 0 + goto block_85; // branch always + + +block_80: + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->mov64(v1, s1); // or v1, s1, r0 + c->sw(r0, 48, at); // sw r0, 48(at) + c->sw(v1, 44, at); // sw v1, 44(at) + c->sh(r0, 56, at); // sh r0, 56(at) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7464, v1); // lwu t9, 7464(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(t9, 7472, v1); // lwu t9, 7472(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(v1, 24, at); // lw v1, 24(at) + c->lw(a0, 40, at); // lw a0, 40(at) + c->mov64(a3, v1); // or a3, v1, r0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lui(a2, 4096); // lui a2, 4096 + c->lwu(a1, 60, at); // lwu a1, 60(at) + c->ori(a2, a2, 53248); // ori a2, a2, 53248 + c->lw(t1, 0, a2); // lw t1, 0(a2) + // nop // sll r0, r0, 0 + c->daddiu(t0, at, 92); // daddiu t0, at, 92 + c->andi(a3, a3, 16383); // andi a3, a3, 16383 + c->andi(t1, t1, 256); // andi t1, t1, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L63 + // nop // sll r0, r0, 0 + if (bc) {goto block_84;} // branch non-likely + + c->mov64(t1, a2); // or t1, a2, r0 + // nop // sll r0, r0, 0 + +block_82: + c->lw(t2, 0, t0); // lw t2, 0(t0) + // nop // sll r0, r0, 0 + c->lw(t3, 0, t1); // lw t3, 0(t1) + // nop // sll r0, r0, 0 + c->andi(t3, t3, 256); // andi t3, t3, 256 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L62 + c->sw(t2, 0, t0); // sw t2, 0(t0) + if (bc) {goto block_82;} // branch non-likely + + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + +block_84: + c->dsll(t0, a0, 4); // dsll t0, a0, 4 + c->sw(a3, 128, a2); // sw a3, 128(a2) + // nop // sll r0, r0, 0 + c->sw(a1, 16, a2); // sw a1, 16(a2) + c->addiu(a3, r0, 256); // addiu a3, r0, 256 + c->sw(a0, 32, a2); // sw a0, 32(a2) + c->daddu(a0, a1, t0); // daddu a0, a1, t0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + // nop // sll r0, r0, 0 + c->sw(a0, 60, at); // sw a0, 60(at) + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->xori(v1, v1, 4608); // xori v1, v1, 4608 + c->sw(v1, 24, at); // sw v1, 24(at) + +block_85: + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->dsubu(gp, v1, gp); // dsubu gp, v1, gp + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lhu(v1, 6946, v1); // lhu v1, 6946(v1) + bc = c->sgpr64(s5) != c->sgpr64(v1); // bne s5, v1, L65 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_87;} // branch non-likely + + c->addiu(s5, r0, 0); // addiu s5, r0, 0 + c->mov64(v1, s5); // or v1, s5, r0 + +block_87: + c->mov64(v1, s2); // or v1, s2, r0 + +block_88: + bc = c->sgpr64(s2) != 0; // bne s2, r0, L21 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(v1, 7456, v1); // lwu v1, 7456(v1) + c->sw(r0, 0, v1); // sw r0, 0(v1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 96, sp); // lq gp, 96(sp) + c->lq(s5, 80, sp); // lq s5, 80(sp) + c->lq(s4, 64, sp); // lq s4, 64(sp) + c->lq(s3, 48, sp); // lq s3, 48(sp) + c->lq(s2, 32, sp); // lq s2, 32(sp) + c->lq(s1, 16, sp); // lq s1, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 112); // daddiu sp, sp, 112 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.gsf_buffer = intern_from_c(-1, 0, "*gsf-buffer*").c(); + cache.generic_merc_death = intern_from_c(-1, 0, "generic-merc-death").c(); + cache.generic_merc_query = intern_from_c(-1, 0, "generic-merc-query").c(); + cache.generic_translucent = intern_from_c(-1, 0, "generic-translucent").c(); + cache.generic_warp_dest = intern_from_c(-1, 0, "generic-warp-dest").c(); + cache.generic_warp_envmap_dest = intern_from_c(-1, 0, "generic-warp-envmap-dest").c(); + cache.generic_warp_source = intern_from_c(-1, 0, "generic-warp-source").c(); + gLinkedFunctionTable.reg("generic-merc-execute-asm", execute, 512); +} + +} // namespace generic_merc_execute_asm +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_merc_death { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* merc_death_spawn; // merc-death-spawn + void* vector_matrix; // vector-matrix*! +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -144); // daddiu sp, sp, -144 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s1, 48, sp); // sq s1, 48(sp) + c->sq(s2, 64, sp); // sq s2, 64(sp) + c->sq(s3, 80, sp); // sq s3, 80(sp) + c->sq(s4, 96, sp); // sq s4, 96(sp) + c->sq(s5, 112, sp); // sq s5, 112(sp) + c->sq(gp, 128, sp); // sq gp, 128(sp) + c->mov64(gp, a0); // or gp, a0, r0 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lhu(s5, 6846, v1); // lhu s5, 6846(v1) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lhu(s3, 6844, v1); // lhu s3, 6844(v1) + c->lhu(s4, 20, gp); // lhu s4, 20(gp) + c->daddiu(s2, sp, 16); // daddiu s2, sp, 16 + c->sq(r0, 0, s2); // sq r0, 0(s2) + c->daddiu(s1, sp, 32); // daddiu s1, sp, 32 + c->sq(r0, 0, s1); // sq r0, 0(s1) + //beq r0, r0, L69 // beq r0, r0, L69 + // nop // sll r0, r0, 0 + goto block_2; // branch always + + +block_1: + c->dsll(v1, s5, 5); // dsll v1, s5, 5 + c->daddu(v1, v1, gp); // daddu v1, v1, gp + c->lwc1(f0, 448, v1); // lwc1 f0, 448(v1) + c->swc1(f0, 0, s2); // swc1 f0, 0(s2) + c->dsll(v1, s5, 5); // dsll v1, s5, 5 + c->daddu(v1, v1, gp); // daddu v1, v1, gp + c->lwc1(f0, 452, v1); // lwc1 f0, 452(v1) + c->swc1(f0, 4, s2); // swc1 f0, 4(s2) + c->dsll(v1, s5, 5); // dsll v1, s5, 5 + c->daddu(v1, v1, gp); // daddu v1, v1, gp + c->lwc1(f0, 456, v1); // lwc1 f0, 456(v1) + c->swc1(f0, 8, s2); // swc1 f0, 8(s2) + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->swc1(f0, 12, s2); // swc1 f0, 12(s2) + c->dsll(v1, s5, 5); // dsll v1, s5, 5 + c->daddu(v1, v1, gp); // daddu v1, v1, gp + c->lwc1(f0, 464, v1); // lwc1 f0, 464(v1) + c->swc1(f0, 0, s1); // swc1 f0, 0(s1) + c->dsll(v1, s5, 5); // dsll v1, s5, 5 + c->daddu(v1, v1, gp); // daddu v1, v1, gp + c->lwc1(f0, 468, v1); // lwc1 f0, 468(v1) + c->swc1(f0, 4, s1); // swc1 f0, 4(s1) + c->dsll(v1, s5, 5); // dsll v1, s5, 5 + c->daddu(v1, v1, gp); // daddu v1, v1, gp + c->lwc1(f0, 472, v1); // lwc1 f0, 472(v1) + c->swc1(f0, 8, s1); // swc1 f0, 8(s1) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 12, s1); // swc1 f0, 12(s1) + c->load_symbol2(t9, cache.vector_matrix); // lw t9, vector-matrix*!(s7) + c->mov64(a0, s2); // or a0, s2, r0 + c->mov64(a1, s2); // or a1, s2, r0 + c->addiu(v1, r0, 7264); // addiu v1, r0, 7264 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->daddu(a2, v1, a2); // daddu a2, v1, a2 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.vector_matrix); // lw t9, vector-matrix*!(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s1); // or a1, s1, r0 + c->addiu(v1, r0, 7264); // addiu v1, r0, 7264 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->daddu(a2, v1, a2); // daddu a2, v1, a2 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.merc_death_spawn); // lw t9, merc-death-spawn(s7) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(a0, 6848, v1); // lwu a0, 6848(v1) + c->mov64(a1, s2); // or a1, s2, r0 + c->mov64(a2, s1); // or a2, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddu(s5, s5, s3); // daddu s5, s5, s3 + +block_2: + c->sltu(v1, s5, s4); // sltu v1, s5, s4 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L68 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->dsubu(a0, s5, s4); // dsubu a0, s5, s4 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->sh(a0, 6846, v1); // sh a0, 6846(v1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 128, sp); // lq gp, 128(sp) + c->lq(s5, 112, sp); // lq s5, 112(sp) + c->lq(s4, 96, sp); // lq s4, 96(sp) + c->lq(s3, 80, sp); // lq s3, 80(sp) + c->lq(s2, 64, sp); // lq s2, 64(sp) + c->lq(s1, 48, sp); // lq s1, 48(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 144); // daddiu sp, sp, 144 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.merc_death_spawn = intern_from_c(-1, 0, "merc-death-spawn").c(); + cache.vector_matrix = intern_from_c(-1, 0, "vector-matrix*!").c(); + gLinkedFunctionTable.reg("generic-merc-death", execute, 512); +} + +} // namespace generic_merc_death +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_merc_query { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* vector_matrix; // vector-matrix*! +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s2, 16, sp); // sq s2, 16(sp) + c->sq(s3, 32, sp); // sq s3, 32(sp) + c->sq(s4, 48, sp); // sq s4, 48(sp) + c->sq(s5, 64, sp); // sq s5, 64(sp) + c->sq(gp, 80, sp); // sq gp, 80(sp) + c->mov64(s4, a0); // or s4, a0, r0 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lwu(gp, 6836, v1); // lwu gp, 6836(v1) + c->lhu(s3, 20, s4); // lhu s3, 20(s4) + c->lw(s2, 24, gp); // lw s2, 24(gp) + c->lw(s5, 20, gp); // lw s5, 20(gp) + c->addiu(v1, r0, 7136); // addiu v1, r0, 7136 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->lwu(v1, 284, v1); // lwu v1, 284(v1) + bc = c->sgpr64(v1) != 0; // bne v1, r0, L71 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_2;} // branch non-likely + + c->addiu(s5, r0, 0); // addiu s5, r0, 0 + c->lw(s2, 12, gp); // lw s2, 12(gp) + c->mov64(v1, s2); // or v1, s2, r0 + +block_2: + //beq r0, r0, L74 // beq r0, r0, L74 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_3: + c->lw(v1, 0, gp); // lw v1, 0(gp) + c->slt(v1, s5, v1); // slt v1, s5, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L73 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_5;} // branch non-likely + + c->dsll(v1, s5, 4); // dsll v1, s5, 4 + c->daddiu(v1, v1, 28); // daddiu v1, v1, 28 + c->daddu(a1, v1, gp); // daddu a1, v1, gp + c->dsll(v1, s2, 5); // dsll v1, s2, 5 + c->daddu(v1, v1, s4); // daddu v1, v1, s4 + c->lwc1(f0, 448, v1); // lwc1 f0, 448(v1) + c->swc1(f0, 0, a1); // swc1 f0, 0(a1) + c->dsll(v1, s2, 5); // dsll v1, s2, 5 + c->daddu(v1, v1, s4); // daddu v1, v1, s4 + c->lwc1(f0, 452, v1); // lwc1 f0, 452(v1) + c->swc1(f0, 4, a1); // swc1 f0, 4(a1) + c->dsll(v1, s2, 5); // dsll v1, s2, 5 + c->daddu(v1, v1, s4); // daddu v1, v1, s4 + c->lwc1(f0, 456, v1); // lwc1 f0, 456(v1) + c->swc1(f0, 8, a1); // swc1 f0, 8(a1) + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->swc1(f0, 12, a1); // swc1 f0, 12(a1) + c->load_symbol2(t9, cache.vector_matrix); // lw t9, vector-matrix*!(s7) + c->mov64(a0, a1); // or a0, a1, r0 + c->addiu(v1, r0, 7264); // addiu v1, r0, 7264 + get_fake_spad_addr2(a2, cache.fake_scratchpad_data, 0, c);// lui a2, 28672 + c->daddu(a2, v1, a2); // daddu a2, v1, a2 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + c->mov64(v1, s5); // or v1, s5, r0 + +block_5: + c->lw(v1, 16, gp); // lw v1, 16(gp) + c->daddu(s2, s2, v1); // daddu s2, s2, v1 + +block_6: + c->slt(v1, s2, s3); // slt v1, s2, s3 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L72 + // nop // sll r0, r0, 0 + if (bc) {goto block_3;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->dsubu(v1, s2, s3); // dsubu v1, s2, s3 + c->sw(v1, 24, gp); // sw v1, 24(gp) + c->sw(s5, 20, gp); // sw s5, 20(gp) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 80, sp); // lq gp, 80(sp) + c->lq(s5, 64, sp); // lq s5, 64(sp) + c->lq(s4, 48, sp); // lq s4, 48(sp) + c->lq(s3, 32, sp); // lq s3, 32(sp) + c->lq(s2, 16, sp); // lq s2, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.vector_matrix = intern_from_c(-1, 0, "vector-matrix*!").c(); + gLinkedFunctionTable.reg("generic-merc-query", execute, 256); +} + +} // namespace generic_merc_query +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_translucent { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->mov64(v1, a0); // or v1, a0, r0 + c->daddiu(a0, at, 12064); // daddiu a0, at, 12064 + c->lbu(a1, 6842, at); // lbu a1, 6842(at) + c->daddiu(a2, at, 6960); // daddiu a2, at, 6960 + c->mov64(a2, a2); // or a2, a2, r0 + c->movn(a0, a2, a1); // movn a0, a2, a1 + c->lbu(a1, 6856, at); // lbu a1, 6856(at) + c->addiu(a2, r0, 128); // addiu a2, r0, 128 + c->sltu(a2, a2, a1); // sltu a2, a2, a1 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L76 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->addiu(a3, r0, 100); // addiu a3, r0, 100 + c->lw(a2, 24, at); // lw a2, 24(at) + c->sw(a3, 112, a2); // sw a3, 112(a2) + c->addiu(a3, r0, 66); // addiu a3, r0, 66 + c->sw(a3, 120, a2); // sw a3, 120(a2) + c->sw(a1, 116, a2); // sw a1, 116(a2) + //beq r0, r0, L77 // beq r0, r0, L77 + // nop // sll r0, r0, 0 + goto block_3; // branch always + + +block_2: + c->gprs[a1].du64[0] = 0; // or a1, r0, r0 + +block_3: + c->sw(r0, 48, at); // sw r0, 48(at) + c->sw(a0, 52, at); // sw a0, 52(at) + c->sw(v1, 44, at); // sw v1, 44(at) + c->lwu(t9, 7468, at); // lwu t9, 7468(at) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lwu(t9, 7472, at); // lwu t9, 7472(at) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lwu(t9, 7476, at); // lwu t9, 7476(at) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(v1, 24, at); // lw v1, 24(at) + c->lw(a0, 40, at); // lw a0, 40(at) + c->mov64(a3, v1); // or a3, v1, r0 + // nop // sll r0, r0, 0 + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lui(a2, 4096); // lui a2, 4096 + c->lwu(a1, 60, at); // lwu a1, 60(at) + c->ori(a2, a2, 53248); // ori a2, a2, 53248 + c->lw(t1, 0, a2); // lw t1, 0(a2) + // nop // sll r0, r0, 0 + c->daddiu(t0, at, 92); // daddiu t0, at, 92 + c->andi(a3, a3, 16383); // andi a3, a3, 16383 + c->andi(t1, t1, 256); // andi t1, t1, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L79 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->mov64(t1, a2); // or t1, a2, r0 + // nop // sll r0, r0, 0 + +block_5: + c->lw(t2, 0, t0); // lw t2, 0(t0) + // nop // sll r0, r0, 0 + c->lw(t3, 0, t1); // lw t3, 0(t1) + // nop // sll r0, r0, 0 + c->andi(t3, t3, 256); // andi t3, t3, 256 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L78 + c->sw(t2, 0, t0); // sw t2, 0(t0) + if (bc) {goto block_5;} // branch non-likely + + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + +block_7: + c->dsll(t0, a0, 4); // dsll t0, a0, 4 + c->sw(a3, 128, a2); // sw a3, 128(a2) + // nop // sll r0, r0, 0 + c->sw(a1, 16, a2); // sw a1, 16(a2) + c->addiu(a3, r0, 256); // addiu a3, r0, 256 + c->sw(a0, 32, a2); // sw a0, 32(a2) + c->daddu(a0, a1, t0); // daddu a0, a1, t0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + // nop // sll r0, r0, 0 + c->sw(a0, 60, at); // sw a0, 60(at) + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->xori(v1, v1, 4608); // xori v1, v1, 4608 + c->sw(v1, 24, at); // sw v1, 24(at) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("generic-translucent", execute, 256); +} + +} // namespace generic_translucent +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace high_speed_reject { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lw(a0, 7436, v1); // lw a0, 7436(v1) + c->daddiu(a1, a0, 448); // daddiu a1, a0, 448 + c->lhu(a3, 20, a0); // lhu a3, 20(a0) + c->vmax_bc(DEST::xyzw, BC::w, vf9, vf0, vf0); // vmaxw.xyzw vf9, vf0, vf0 + c->lqc2(vf10, 7488, v1); // lqc2 vf10, 7488(v1) + c->lqc2(vf11, 7504, v1); // lqc2 vf11, 7504(v1) + c->lqc2(vf1, 0, a1); // lqc2 vf1, 0(a1) + c->addiu(a0, r0, 240); // addiu a0, r0, 240 + c->lqc2(vf2, 32, a1); // lqc2 vf2, 32(a1) +// TODO FIX - vi9 = c->gpr_src(a0).du16[0]; // ctc2.i vi9, a0 + c->lqc2(vf3, 64, a1); // lqc2 vf3, 64(a1) + c->lqc2(vf4, 96, a1); // lqc2 vf4, 96(a1) + c->daddiu(a0, r0, -1); // daddiu a0, r0, -1 + // nop // sll r0, r0, 0 + // Unknown instr: vcallms 438 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lqc2(vf5, 128, a1); // lqc2 vf5, 128(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lqc2(vf6, 160, a1); // lqc2 vf6, 160(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lwu(t0, 8, a1); // lwu t0, 8(a1) + c->lqc2(vf7, 192, a1); // lqc2 vf7, 192(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +// TODO - fix c->gprs[a2].du64[0] = vi1; // cfc2.ni a2, vi1 + c->lqc2(vf8, 224, a1); // lqc2 vf8, 224(a1) + c->srl(t0, t0, 31); // srl t0, t0, 31 + c->or_(t0, a2, t0); // or t0, a2, t0 + c->lwu(a2, 40, a1); // lwu a2, 40(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L83 + c->and_(a0, a0, t0); // and a0, a0, t0 + if (bc) {goto block_20;} // branch non-likely + + c->daddiu(a1, a1, 128); // daddiu a1, a1, 128 + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + bc = c->sgpr64(a3) == 0; // beq a3, r0, L82 +// TODO - fix c->gprs[t0].du64[0] = vi2; // cfc2.ni t0, vi2 + if (bc) {goto block_18;} // branch non-likely + + +block_2: + // Unknown instr: vcallms 454 + c->srl(a2, a2, 31); // srl a2, a2, 31 + c->or_(a2, t0, a2); // or a2, t0, a2 + c->lwu(t0, -56, a1); // lwu t0, -56(a1) + bc = c->sgpr64(a2) == 0; // beq a2, r0, L83 + c->and_(a0, a0, a2); // and a0, a0, a2 + if (bc) {goto block_20;} // branch non-likely + + c->lqc2(vf1, 128, a1); // lqc2 vf1, 128(a1) + c->daddiu(a2, a3, -1); // daddiu a2, a3, -1 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L82 +// TODO FIX - c->gprs[a3].du64[0] = vi3; // cfc2.ni a3, vi3 + if (bc) {goto block_18;} // branch non-likely + + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + c->srl(t0, t0, 31); // srl t0, t0, 31 + c->or_(t0, a3, t0); // or t0, a3, t0 + c->lwu(a3, -24, a1); // lwu a3, -24(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L83 + c->and_(a0, a0, t0); // and a0, a0, t0 + if (bc) {goto block_20;} // branch non-likely + + bc = c->sgpr64(a2) == 0; // beq a2, r0, L82 +// TODO - fix c->gprs[t0].du64[0] = vi4; // cfc2.ni t0, vi4 + if (bc) {goto block_18;} // branch non-likely + + c->lqc2(vf2, 160, a1); // lqc2 vf2, 160(a1) + c->srl(a3, a3, 31); // srl a3, a3, 31 + c->or_(t0, t0, a3); // or t0, t0, a3 + c->lwu(a3, 8, a1); // lwu a3, 8(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L83 + c->and_(a0, a0, t0); // and a0, a0, t0 + if (bc) {goto block_20;} // branch non-likely + + c->lqc2(vf3, 192, a1); // lqc2 vf3, 192(a1) + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L82 +// TODO - fix c->gprs[t0].du64[0] = vi5; // cfc2.ni t0, vi5 + if (bc) {goto block_18;} // branch non-likely + + c->lqc2(vf4, 224, a1); // lqc2 vf4, 224(a1) + c->srl(a3, a3, 31); // srl a3, a3, 31 + c->or_(t0, t0, a3); // or t0, t0, a3 + c->lwu(a3, 40, a1); // lwu a3, 40(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L83 + c->and_(a0, a0, t0); // and a0, a0, t0 + if (bc) {goto block_20;} // branch non-likely + + c->daddiu(a1, a1, 128); // daddiu a1, a1, 128 + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L82 +// TODO FIX - c->gprs[t0].du64[0] = vi6; // cfc2.ni t0, vi6 + if (bc) {goto block_18;} // branch non-likely + + // Unknown instr: vcallms 438 + c->srl(a3, a3, 31); // srl a3, a3, 31 + c->or_(t0, t0, a3); // or t0, t0, a3 + c->lwu(a3, -56, a1); // lwu a3, -56(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L83 + c->and_(a0, a0, t0); // and a0, a0, t0 + if (bc) {goto block_20;} // branch non-likely + + c->lqc2(vf5, 128, a1); // lqc2 vf5, 128(a1) + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L82 +// TODO - fix c->gprs[t0].du64[0] = vi7; // cfc2.ni t0, vi7 + if (bc) {goto block_18;} // branch non-likely + + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + c->srl(a3, a3, 31); // srl a3, a3, 31 + c->or_(t0, t0, a3); // or t0, t0, a3 + c->lwu(a3, -24, a1); // lwu a3, -24(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L83 + c->and_(a0, a0, t0); // and a0, a0, t0 + if (bc) {goto block_20;} // branch non-likely + + bc = c->sgpr64(a2) == 0; // beq a2, r0, L82 +// TODO FIX - c->gprs[t0].du64[0] = vi8; // cfc2.ni t0, vi8 + if (bc) {goto block_18;} // branch non-likely + + c->lqc2(vf6, 160, a1); // lqc2 vf6, 160(a1) + c->srl(a3, a3, 31); // srl a3, a3, 31 + c->or_(a3, t0, a3); // or a3, t0, a3 + c->lwu(t0, 8, a1); // lwu t0, 8(a1) + bc = c->sgpr64(a3) == 0; // beq a3, r0, L83 + c->and_(a0, a0, a3); // and a0, a0, a3 + if (bc) {goto block_20;} // branch non-likely + + c->lqc2(vf7, 192, a1); // lqc2 vf7, 192(a1) + c->daddiu(a3, a2, -1); // daddiu a3, a2, -1 + bc = c->sgpr64(a3) == 0; // beq a3, r0, L82 +// TODO FIX - c->gprs[a2].du64[0] = vi1; // cfc2.ni a2, vi1 + if (bc) {goto block_18;} // branch non-likely + + c->lqc2(vf8, 224, a1); // lqc2 vf8, 224(a1) + c->srl(t0, t0, 31); // srl t0, t0, 31 + c->or_(t0, a2, t0); // or t0, a2, t0 + c->lwu(a2, 40, a1); // lwu a2, 40(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L83 + c->and_(a0, a0, t0); // and a0, a0, t0 + if (bc) {goto block_20;} // branch non-likely + + c->daddiu(a1, a1, 128); // daddiu a1, a1, 128 + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L81 +// TODO - fix c->gprs[t0].du64[0] = vi2; // cfc2.ni t0, vi2 + if (bc) {goto block_2;} // branch non-likely + + +block_18: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L83 + // nop // sll r0, r0, 0 + if (bc) {goto block_20;} // branch non-likely + + c->sb(r0, 6853, v1); // sb r0, 6853(v1) + +block_20: + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("high-speed-reject", execute, 512); +} + +} // namespace high_speed_reject +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace mercneric_convert { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->sq(s0, 7552, at); // sq s0, 7552(at) + c->sq(s1, 7568, at); // sq s1, 7568(at) + c->sq(s2, 7584, at); // sq s2, 7584(at) + c->sq(s3, 7600, at); // sq s3, 7600(at) + c->sq(s4, 7616, at); // sq s4, 7616(at) + c->sq(s5, 7632, at); // sq s5, 7632(at) + c->sq(s6, 7648, at); // sq s6, 7648(at) + c->sq(t8, 7664, at); // sq t8, 7664(at) + c->sq(t9, 7680, at); // sq t9, 7680(at) + c->sq(gp, 7696, at); // sq gp, 7696(at) + c->sq(sp, 7712, at); // sq sp, 7712(at) + c->sq(fp, 7728, at); // sq fp, 7728(at) + c->sq(ra, 7744, at); // sq ra, 7744(at) + // nop // sll r0, r0, 0 + get_fake_spad_addr2(t2, cache.fake_scratchpad_data, 0, c);// lui t2, 28672 + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + c->lbu(a1, 6955, t2); // lbu a1, 6955(t2) + c->addiu(a2, r0, 4); // addiu a2, r0, 4 + c->lw(t0, 7444, t2); // lw t0, 7444(t2) + c->addiu(a3, r0, 1); // addiu a3, r0, 1 + c->lw(v1, 7448, t2); // lw v1, 7448(t2) + c->and_(a3, a1, a3); // and a3, a1, a3 + c->lw(a1, 24, t2); // lw a1, 24(t2) + c->movn(a0, a2, a3); // movn a0, a2, a3 + c->lbu(a3, 6855, t2); // lbu a3, 6855(t2) + c->daddu(t1, a0, t2); // daddu t1, a0, t2 + c->lbu(t3, 6852, t2); // lbu t3, 6852(t2) + c->daddiu(a2, a1, 128); // daddiu a2, a1, 128 + c->lw(a0, 7428, t2); // lw a0, 7428(t2) + c->dsll(t4, a3, 3); // dsll t4, a3, 3 + // nop // sll r0, r0, 0 + c->andi(t3, t3, 1); // andi t3, t3, 1 + c->lbu(a3, 10, t0); // lbu a3, 10(t0) + c->dsll(t5, t3, 1); // dsll t5, t3, 1 + c->lbu(t3, 9, t0); // lbu t3, 9(t0) + c->daddu(t1, t1, t5); // daddu t1, t1, t5 + // nop // sll r0, r0, 0 + c->daddu(t4, t1, t4); // daddu t4, t1, t4 + c->lbu(t1, 11953, t4); // lbu t1, 11953(t4) + // nop // sll r0, r0, 0 + c->lbu(t5, 11952, t4); // lbu t5, 11952(t4) + // nop // sll r0, r0, 0 + c->lw(t4, 7432, t2); // lw t4, 7432(t2) + c->sll(t6, a3, 4); // sll t6, a3, 4 + c->daddu(t5, t5, t2); // daddu t5, t5, t2 + c->daddu(t7, t1, t2); // daddu t7, t1, t2 + c->lw(a3, 7436, t2); // lw a3, 7436(t2) + c->daddu(t1, t6, t0); // daddu t1, t6, t0 + c->sw(t1, 7452, t2); // sw t1, 7452(t2) + // nop // sll r0, r0, 0 + c->lbu(t0, 12, t1); // lbu t0, 12(t1) + // nop // sll r0, r0, 0 + c->lq(t7, 11888, t7); // lq t7, 11888(t7) + // nop // sll r0, r0, 0 + c->lq(s0, 11888, t5); // lq s0, 11888(t5) + // nop // sll r0, r0, 0 + c->sq(t7, 96, a1); // sq t7, 96(a1) + c->daddiu(t5, v1, 5504); // daddiu t5, v1, 5504 + c->sq(s0, 112, a1); // sq s0, 112(a1) + c->daddiu(v1, v1, 6048); // daddiu v1, v1, 6048 + c->lbu(ra, 6857, t2); // lbu ra, 6857(t2) + c->movn(v1, t5, t3); // movn v1, t5, t3 + c->sw(r0, 124, a1); // sw r0, 124(a1) + // nop // sll r0, r0, 0 + c->lq(t7, 11744, t2); // lq t7, 11744(t2) + c->daddiu(t6, t1, 16); // daddiu t6, t1, 16 + c->lq(s0, 11808, t2); // lq s0, 11808(t2) + c->addiu(t9, r0, 0); // addiu t9, r0, 0 + c->lq(s4, 11824, t2); // lq s4, 11824(t2) + c->addiu(t5, r0, 0); // addiu t5, r0, 0 + c->lq(gp, 11840, t2); // lq gp, 11840(t2) + c->addiu(t1, r0, -3); // addiu t1, r0, -3 + c->lq(s5, 11856, t2); // lq s5, 11856(t2) + c->addiu(t8, r0, 6); // addiu t8, r0, 6 + c->lq(t2, 11872, t2); // lq t2, 11872(t2) + c->andi(s3, ra, 4); // andi s3, ra, 4 + c->sq(t7, 0, a1); // sq t7, 0(a1) + c->movz(t8, r0, t3); // movz t8, r0, t3 + c->sq(s0, 16, a1); // sq s0, 16(a1) + c->addiu(ra, r0, 0); // addiu ra, r0, 0 + c->sq(s4, 32, a1); // sq s4, 32(a1) + c->addiu(t7, r0, -32768); // addiu t7, r0, -32768 + c->sq(gp, 48, a1); // sq gp, 48(a1) + c->movz(ra, t7, t0); // movz ra, t7, t0 + c->sq(s5, 64, a1); // sq s5, 64(a1) + c->dsll(t7, s3, 18); // dsll t7, s3, 18 + c->pextlw(t7, t7, t7); // pextlw t7, t7, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + // Unknown instr: pnor t7, r0, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t2, t2, t7); // pand t2, t2, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + bc = c->sgpr64(t3) == 0; // beq t3, r0, L85 + c->sq(t2, 80, a1); // sq t2, 80(a1) + if (bc) {goto block_4;} // branch non-likely + + c->lq(t7, 2944, t4); // lq t7, 2944(t4) + c->daddu(ra, t3, ra); // daddu ra, t3, ra + c->lq(s0, 2960, t4); // lq s0, 2960(t4) + c->addiu(gp, r0, -6); // addiu gp, r0, -6 + c->lq(t3, 2976, t4); // lq t3, 2976(t4) + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + c->lq(t2, 2992, t4); // lq t2, 2992(t4) + c->daddiu(s5, t0, -3); // daddiu s5, t0, -3 + bc = ((s64)c->sgpr64(s5)) <= 0; // blez s5, L87 + c->lq(t4, 3008, t4); // lq t4, 3008(t4) + if (bc) {goto block_8;} // branch non-likely + + c->daddiu(t9, t0, -5); // daddiu t9, t0, -5 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t9)) <= 0; // blez t9, L87 + c->lh(t9, 172, t6); // lh t9, 172(t6) + if (bc) {goto block_8;} // branch non-likely + + //beq r0, r0, L87 // beq r0, r0, L87 + c->lh(t5, 332, t6); // lh t5, 332(t6) + goto block_8; // branch always + + +block_4: + c->daddiu(t2, t0, -3); // daddiu t2, t0, -3 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t2)) <= 0; // blez t2, L86 + c->daddiu(t2, t0, -5); // daddiu t2, t0, -5 + if (bc) {goto block_7;} // branch non-likely + + bc = ((s64)c->sgpr64(t2)) <= 0; // blez t2, L86 + c->lh(t9, 252, t6); // lh t9, 252(t6) + if (bc) {goto block_7;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lh(t5, 412, t6); // lh t5, 412(t6) + +block_7: + c->lh(gp, 12, t6); // lh gp, 12(t6) + // nop // sll r0, r0, 0 + c->lh(ra, 28, t6); // lh ra, 28(t6) + // nop // sll r0, r0, 0 + c->lq(t7, 0, t6); // lq t7, 0(t6) + // nop // sll r0, r0, 0 + c->lq(s0, 16, t6); // lq s0, 16(t6) + // nop // sll r0, r0, 0 + c->lq(t3, 32, t6); // lq t3, 32(t6) + // nop // sll r0, r0, 0 + c->lq(t2, 48, t6); // lq t2, 48(t6) + // nop // sll r0, r0, 0 + c->lq(t4, 64, t6); // lq t4, 64(t6) + c->daddiu(t6, t6, 80); // daddiu t6, t6, 80 + +block_8: + c->sq(t7, 0, a2); // sq t7, 0(a2) + c->daddu(gp, gp, t8); // daddu gp, gp, t8 + c->sq(s0, 16, a2); // sq s0, 16(a2) + c->daddiu(t8, t8, 2); // daddiu t8, t8, 2 + c->sq(t3, 32, a2); // sq t3, 32(a2) + c->daddu(t1, t1, ra); // daddu t1, t1, ra + c->sq(t2, 48, a2); // sq t2, 48(a2) + c->daddiu(t1, t1, 3); // daddiu t1, t1, 3 + c->sq(t4, 64, a2); // sq t4, 64(a2) + c->andi(t1, t1, 255); // andi t1, t1, 255 + c->sw(gp, 12, a2); // sw gp, 12(a2) + c->daddiu(a2, a2, 80); // daddiu a2, a2, 80 + bc = ((s64)c->sgpr64(ra)) > 0; // bgtz ra, L86 + c->sw(ra, -52, a2); // sw ra, -52(a2) + if (bc) {goto block_7;} // branch non-likely + + c->sw(t1, 108, a1); // sw t1, 108(a1) + c->daddiu(a1, t9, 7); // daddiu a1, t9, 7 + c->sq(t7, 2944, a0); // sq t7, 2944(a0) + c->daddiu(t5, t5, 7); // daddiu t5, t5, 7 + c->sq(s0, 2960, a0); // sq s0, 2960(a0) + c->sra(a2, a1, 4); // sra a2, a1, 4 + c->sq(t3, 2976, a0); // sq t3, 2976(a0) + c->sra(t3, t5, 4); // sra t3, t5, 4 + c->sq(t2, 2992, a0); // sq t2, 2992(a0) + c->daddiu(a1, a3, 192); // daddiu a1, a3, 192 + c->sq(t4, 3008, a0); // sq t4, 3008(a0) + c->dsll(a0, t0, 2); // dsll a0, t0, 2 + c->sh(t1, 18, a3); // sh t1, 18(a3) + c->daddu(a0, a0, t0); // daddu a0, a0, t0 + c->sb(t0, 16, a3); // sb t0, 16(a3) + c->daddiu(a0, a0, 7); // daddiu a0, a0, 7 + c->dsubu(a0, t3, a2); // dsubu a0, t3, a2 + c->lq(t0, 0, v1); // lq t0, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->daddiu(t1, a2, -3); // daddiu t1, a2, -3 + c->lq(a3, 16, v1); // lq a3, 16(v1) + // nop // sll r0, r0, 0 + c->sq(t0, 0, a1); // sq t0, 0(a1) + bc = c->sgpr64(t1) == 0; // beq t1, r0, L88 + c->lq(a2, 32, v1); // lq a2, 32(v1) + if (bc) {goto block_21;} // branch non-likely + + c->daddiu(t0, t1, -1); // daddiu t0, t1, -1 + c->sq(a3, 16, a1); // sq a3, 16(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L89 + c->lq(a3, 48, v1); // lq a3, 48(v1) + if (bc) {goto block_22;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a2, 32, a1); // sq a2, 32(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L90 + c->lq(a2, 64, v1); // lq a2, 64(v1) + if (bc) {goto block_23;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a3, 48, a1); // sq a3, 48(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L91 + c->lq(a3, 80, v1); // lq a3, 80(v1) + if (bc) {goto block_24;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a2, 64, a1); // sq a2, 64(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L92 + c->lq(a2, 96, v1); // lq a2, 96(v1) + if (bc) {goto block_25;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a3, 80, a1); // sq a3, 80(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L93 + c->lq(a3, 112, v1); // lq a3, 112(v1) + if (bc) {goto block_26;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a2, 96, a1); // sq a2, 96(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L94 + c->lq(a2, 128, v1); // lq a2, 128(v1) + if (bc) {goto block_27;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a3, 112, a1); // sq a3, 112(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L95 + c->lq(a3, 144, v1); // lq a3, 144(v1) + if (bc) {goto block_28;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a2, 128, a1); // sq a2, 128(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L96 + c->lq(a2, 160, v1); // lq a2, 160(v1) + if (bc) {goto block_29;} // branch non-likely + + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + c->sq(a3, 144, a1); // sq a3, 144(a1) + bc = c->sgpr64(t0) == 0; // beq t0, r0, L97 + c->lq(a3, 176, v1); // lq a3, 176(v1) + if (bc) {goto block_30;} // branch non-likely + + c->daddiu(a0, t0, -1); // daddiu a0, t0, -1 + c->sq(a2, 160, a1); // sq a2, 160(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L98 + c->lq(a0, 192, v1); // lq a0, 192(v1) + if (bc) {goto block_31;} // branch non-likely + + // nop // sll r0, r0, 0 + c->sq(a3, 176, a1); // sq a3, 176(a1) + // nop // sll r0, r0, 0 + c->lq(v1, 208, v1); // lq v1, 208(v1) + // nop // sll r0, r0, 0 + c->sq(a0, 192, a1); // sq a0, 192(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(v1, 208, a1); // sq v1, 208(a1) + //beq r0, r0, L108 // beq r0, r0, L108 + // nop // sll r0, r0, 0 + goto block_41; // branch always + + +block_21: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, 16, a1); // sq a3, 16(a1) + // nop // sll r0, r0, 0 + c->lq(a3, 224, v1); // lq a3, 224(v1) + +block_22: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a2, 32, a1); // sq a2, 32(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L99 + c->lq(a2, 240, v1); // lq a2, 240(v1) + if (bc) {goto block_32;} // branch non-likely + + +block_23: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, 48, a1); // sq a3, 48(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L100 + c->lq(a3, 256, v1); // lq a3, 256(v1) + if (bc) {goto block_33;} // branch non-likely + + +block_24: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a2, 64, a1); // sq a2, 64(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L101 + c->lq(a2, 272, v1); // lq a2, 272(v1) + if (bc) {goto block_34;} // branch non-likely + + +block_25: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, 80, a1); // sq a3, 80(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L102 + c->lq(a3, 288, v1); // lq a3, 288(v1) + if (bc) {goto block_35;} // branch non-likely + + +block_26: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a2, 96, a1); // sq a2, 96(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L103 + c->lq(a2, 304, v1); // lq a2, 304(v1) + if (bc) {goto block_36;} // branch non-likely + + +block_27: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, 112, a1); // sq a3, 112(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L104 + c->lq(a3, 320, v1); // lq a3, 320(v1) + if (bc) {goto block_37;} // branch non-likely + + +block_28: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a2, 128, a1); // sq a2, 128(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L105 + c->lq(a2, 336, v1); // lq a2, 336(v1) + if (bc) {goto block_38;} // branch non-likely + + +block_29: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a3, 144, a1); // sq a3, 144(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L106 + c->lq(a3, 352, v1); // lq a3, 352(v1) + if (bc) {goto block_39;} // branch non-likely + + +block_30: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(a2, 160, a1); // sq a2, 160(a1) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L107 + c->lq(a0, 368, v1); // lq a0, 368(v1) + if (bc) {goto block_40;} // branch non-likely + + +block_31: + // nop // sll r0, r0, 0 + c->sq(a3, 176, a1); // sq a3, 176(a1) + // nop // sll r0, r0, 0 + c->lq(v1, 384, v1); // lq v1, 384(v1) + // nop // sll r0, r0, 0 + c->sq(a0, 192, a1); // sq a0, 192(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(v1, 208, a1); // sq v1, 208(a1) + //beq r0, r0, L108 // beq r0, r0, L108 + // nop // sll r0, r0, 0 + goto block_41; // branch always + + +block_32: + // nop // sll r0, r0, 0 + c->sq(a3, 48, a1); // sq a3, 48(a1) + // nop // sll r0, r0, 0 + c->lq(a3, 400, v1); // lq a3, 400(v1) + +block_33: + // nop // sll r0, r0, 0 + c->sq(a2, 64, a1); // sq a2, 64(a1) + // nop // sll r0, r0, 0 + c->lq(a2, 416, v1); // lq a2, 416(v1) + +block_34: + // nop // sll r0, r0, 0 + c->sq(a3, 80, a1); // sq a3, 80(a1) + // nop // sll r0, r0, 0 + c->lq(a3, 432, v1); // lq a3, 432(v1) + +block_35: + // nop // sll r0, r0, 0 + c->sq(a2, 96, a1); // sq a2, 96(a1) + // nop // sll r0, r0, 0 + c->lq(a2, 448, v1); // lq a2, 448(v1) + +block_36: + // nop // sll r0, r0, 0 + c->sq(a3, 112, a1); // sq a3, 112(a1) + // nop // sll r0, r0, 0 + c->lq(a3, 464, v1); // lq a3, 464(v1) + +block_37: + // nop // sll r0, r0, 0 + c->sq(a2, 128, a1); // sq a2, 128(a1) + // nop // sll r0, r0, 0 + c->lq(a2, 480, v1); // lq a2, 480(v1) + +block_38: + // nop // sll r0, r0, 0 + c->sq(a3, 144, a1); // sq a3, 144(a1) + // nop // sll r0, r0, 0 + c->lq(a3, 496, v1); // lq a3, 496(v1) + +block_39: + // nop // sll r0, r0, 0 + c->sq(a2, 160, a1); // sq a2, 160(a1) + // nop // sll r0, r0, 0 + c->lq(a0, 512, v1); // lq a0, 512(v1) + +block_40: + // nop // sll r0, r0, 0 + c->sq(a3, 176, a1); // sq a3, 176(a1) + // nop // sll r0, r0, 0 + c->lq(v1, 528, v1); // lq v1, 528(v1) + // nop // sll r0, r0, 0 + c->sq(a0, 192, a1); // sq a0, 192(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(v1, 208, a1); // sq v1, 208(a1) + +block_41: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + // nop // sll r0, r0, 0 + c->lw(a1, 7452, v1); // lw a1, 7452(v1) + // nop // sll r0, r0, 0 + c->lw(a0, 7436, v1); // lw a0, 7436(v1) + // nop // sll r0, r0, 0 + c->lbu(a2, 13, a1); // lbu a2, 13(a1) + // nop // sll r0, r0, 0 + c->lbu(v1, 14, a1); // lbu v1, 14(a1) + c->daddiu(a0, a0, 32); // daddiu a0, a0, 32 + c->lbu(a3, 15, a1); // lbu a3, 15(a1) + c->daddu(a1, a1, a2); // daddu a1, a1, a2 + c->mult3(a3, v1, a3); // mult3 a3, v1, a3 + c->mov64(a1, a1); // or a1, a1, r0 + c->mov64(v1, v1); // or v1, v1, r0 + c->mov64(a0, a0); // or a0, a0, r0 + c->addiu(a2, r0, 513); // addiu a2, r0, 513 + c->addiu(t0, r0, 257); // addiu t0, r0, 257 + c->dsll(t2, a2, 18); // dsll t2, a2, 18 + c->dsll(t1, t0, 16); // dsll t1, t0, 16 + c->or_(a2, a2, t2); // or a2, a2, t2 + c->or_(t0, t0, t1); // or t0, t0, t1 + c->dsll32(t2, a2, 4); // dsll32 t2, a2, 4 + c->dsll32(t1, t0, 0); // dsll32 t1, t0, 0 + c->or_(a2, a2, t2); // or a2, a2, t2 + c->or_(t0, t0, t1); // or t0, t0, t1 + c->pcpyld(a2, a2, a2); // pcpyld a2, a2, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t0, t0, t0); // pcpyld t0, t0, t0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->daddu(a3, a3, a1); // daddu a3, a3, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->lhu(t1, 0, a1); // lhu t1, 0(a1) + c->daddu(a1, a1, v1); // daddu a1, a1, v1 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->pextlb(t1, t1, t1); // pextlb t1, t1, t1 + //beq r0, r0, L110 // beq r0, r0, L110 + c->pextlb(t2, t1, t1); // pextlb t2, t1, t1 + goto block_43; // branch always + + +block_42: + c->daddu(a1, a1, v1); // daddu a1, a1, v1 + c->daddiu(a0, a0, 32); // daddiu a0, a0, 32 + c->pextlb(t2, t2, t2); // pextlb t2, t2, t2 + c->sq(t1, -16, a0); // sq t1, -16(a0) + +block_43: + c->pextlb(t1, t2, t2); // pextlb t1, t2, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t1, t1, a2); // pand t1, t1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pceqb(t1, t1, a2); // pceqb t1, t1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pand(t1, t1, t0); // pand t1, t1, t0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t2, t1, r0); // pextlb t2, t1, r0 + c->lhu(t3, 0, a1); // lhu t3, 0(a1) + c->pextub(t1, t1, r0); // pextub t1, t1, r0 + c->sq(t2, 0, a0); // sq t2, 0(a0) + bc = c->sgpr64(a1) != c->sgpr64(a3); // bne a1, a3, L109 + c->pextlb(t2, t3, t3); // pextlb t2, t3, t3 + if (bc) {goto block_42;} // branch non-likely + + // nop // sll r0, r0, 0 + c->sq(t1, 16, a0); // sq t1, 16(a0) + get_fake_spad_addr2(s4, cache.fake_scratchpad_data, 0, c);// lui s4, 28672 + // nop // sll r0, r0, 0 + c->lw(a0, 7444, s4); // lw a0, 7444(s4) + // nop // sll r0, r0, 0 + c->lw(a1, 7436, s4); // lw a1, 7436(s4) + // nop // sll r0, r0, 0 + c->lq(t8, 16, a0); // lq t8, 16(a0) + c->daddiu(s6, a0, 48); // daddiu s6, a0, 48 + c->lbu(a3, 12, a0); // lbu a3, 12(a0) + // nop // sll r0, r0, 0 + c->lbu(t2, 10, a0); // lbu t2, 10(a0) + c->pextlb(t9, r0, t8); // pextlb t9, r0, t8 +// TODO - fix vi10 = c->gpr_src(a3).du16[0]; // ctc2.ni vi10, a3 + c->pextlh(gp, r0, t9); // pextlh gp, r0, t9 + c->mov128_vf_gpr(vf1, gp); // qmtc2.ni vf1, gp + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + c->mov128_vf_gpr(vf2, t9); // qmtc2.ni vf2, t9 + c->pextub(t9, r0, t8); // pextub t9, r0, t8 + c->lbu(a3, 4, a0); // lbu a3, 4(a0) + c->pextlh(gp, r0, t9); // pextlh gp, r0, t9 + c->mov128_vf_gpr(vf3, gp); // qmtc2.ni vf3, gp + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + c->mov128_vf_gpr(vf4, t9); // qmtc2.ni vf4, t9 + c->sll(t2, t2, 4); // sll t2, t2, 4 + c->lbu(t0, 5, a0); // lbu t0, 5(a0) + c->daddu(t2, t2, a0); // daddu t2, t2, a0 + c->lbu(t1, 6, a0); // lbu t1, 6(a0) + c->daddiu(s5, a3, -1); // daddiu s5, a3, -1 + // TODO - fix vi11 = c->gpr_src(a3).du16[0]; // ctc2.ni vi11, a3 + c->daddu(s5, s5, t0); // daddu s5, s5, t0 + // TODO - fix vi12 = c->gpr_src(t0).du16[0]; // ctc2.ni vi12, t0 + c->daddu(s5, s5, t1); // daddu s5, s5, t1 +// TODO - fix vi13 = c->gpr_src(t1).du16[0]; // ctc2.ni vi13, t1 + c->daddiu(t4, a1, 32); // daddiu t4, a1, 32 + c->lqc2(vf27, 0, t2); // lqc2 vf27, 0(t2) + c->daddiu(t3, a1, 192); // daddiu t3, a1, 192 + // Unknown instr: vcallms 280 + c->daddiu(v1, a1, 448); // daddiu v1, a1, 448 + c->lhu(s1, 6820, s4); // lhu s1, 6820(s4) + c->pextlw(t3, t3, t3); // pextlw t3, t3, t3 + c->lhu(s2, 6822, s4); // lhu s2, 6822(s4) + c->pcpyld(t3, t3, t3); // pcpyld t3, t3, t3 + c->lqc2(vf19, 6800, s4); // lqc2 vf19, 6800(s4) + c->pcpyh(s1, s1); // pcpyh s1, s1 + c->lbu(v0, 2, a0); // lbu v0, 2(a0) + c->addiu(t5, r0, 0); // addiu t5, r0, 0 + c->lbu(at, 1, a0); // lbu at, 1(a0) + c->addiu(s4, r0, -1); // addiu s4, r0, -1 + c->lui(a1, 19201); // lui a1, 19201 + c->daddiu(v0, v0, 3); // daddiu v0, v0, 3 + c->daddiu(a1, a1, 18304); // daddiu a1, a1, 18304 + c->andi(v0, v0, 252); // andi v0, v0, 252 + c->sll(at, at, 2); // sll at, at, 2 + c->sll(v0, v0, 2); // sll v0, v0, 2 + c->lq(t8, 32, a0); // lq t8, 32(a0) + c->daddu(v0, v0, a0); // daddu v0, v0, a0 + c->lbu(t0, 13, a0); // lbu t0, 13(a0) + c->daddu(at, at, a0); // daddu at, at, a0 + c->lbu(t2, 11, a0); // lbu t2, 11(a0) + c->pextlw(a1, a1, r0); // pextlw a1, a1, r0 + bc = c->sgpr64(t0) == 0; // beq t0, r0, L113 + c->pcpyld(a1, a1, a1); // pcpyld a1, a1, a1 + if (bc) {goto block_49;} // branch non-likely + + c->sll(t2, t2, 4); // sll t2, t2, 4 + c->daddiu(a3, a0, 14); // daddiu a3, a0, 14 + //beq r0, r0, L112 // beq r0, r0, L112 + c->daddu(t2, t2, a0); // daddu t2, t2, a0 + goto block_47; // branch always + + +block_46: + // Unknown instr: vcallms 303 + c->mov64(t0, t1); // or t0, t1, r0 + +block_47: + c->lbu(t1, 0, a3); // lbu t1, 0(a3) + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + c->lqc2(vf23, 64, t2); // lqc2 vf23, 64(t2) + // nop // sll r0, r0, 0 + c->lqc2(vf24, 80, t2); // lqc2 vf24, 80(t2) + // nop // sll r0, r0, 0 + c->lqc2(vf25, 96, t2); // lqc2 vf25, 96(t2) + // nop // sll r0, r0, 0 + c->lqc2(vf26, 112, t2); // lqc2 vf26, 112(t2) + // nop // sll r0, r0, 0 + c->lqc2(vf20, 16, t2); // lqc2 vf20, 16(t2) + // nop // sll r0, r0, 0 + c->lqc2(vf21, 32, t2); // lqc2 vf21, 32(t2) + // nop // sll r0, r0, 0 + c->lqc2(vf22, 48, t2); // lqc2 vf22, 48(t2) + c->daddiu(t2, t2, 128); // daddiu t2, t2, 128 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L111 + // TODO - fix vi14 = c->gpr_src(t0).du16[0]; // ctc2.ni vi14, t0 + if (bc) {goto block_46;} // branch non-likely + + // Unknown instr: vcallms 303 + // nop // sll r0, r0, 0 + +block_49: + c->lq(a2, 0, v0); // lq a2, 0(v0) + c->pextlb(t9, r0, t8); // pextlb t9, r0, t8 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(gp, r0, t9); // pextlh gp, r0, t9 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(a3, r0, a2); // pextlb a3, r0, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextub(a2, r0, a2); // pextub a2, r0, a2 + c->mov128_vf_gpr(vf4, gp); // qmtc2.ni vf4, gp + c->pextlh(t0, a1, a3); // pextlh t0, a1, a3 + c->mov128_vf_gpr(vf1, t0); // qmtc2.ni vf1, t0 + c->pextuh(a3, a1, a3); // pextuh a3, a1, a3 + c->mov128_vf_gpr(vf2, a3); // qmtc2.ni vf2, a3 + c->pextlh(t1, a1, a2); // pextlh t1, a1, a2 + c->mov128_vf_gpr(vf3, t1); // qmtc2.ni vf3, t1 + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + // Unknown instr: vcallms 311 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lq(t2, 16, v0); // lq t2, 16(v0) + // nop // sll r0, r0, 0 + c->daddiu(at, at, -16); // daddiu at, at, -16 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(a2, a1, a2); // pextuh a2, a1, a2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t0, r0, t2); // pextlb t0, r0, t2 + c->mov128_vf_gpr(vf4, t9); // qmtc2.ni vf4, t9 + c->pextlh(t1, a1, t0); // pextlh t1, a1, t0 + c->mov128_vf_gpr(vf1, a2); // qmtc2.ni vf1, a2 + c->pextuh(t0, a1, t0); // pextuh t0, a1, t0 + c->mov128_vf_gpr(vf2, t1); // qmtc2.ni vf2, t1 + c->pextub(t9, r0, t8); // pextub t9, r0, t8 + c->mov128_vf_gpr(vf3, t0); // qmtc2.ni vf3, t0 + c->pextlh(gp, r0, t9); // pextlh gp, r0, t9 + // nop // sll r0, r0, 0 + c->daddiu(v0, v0, -48); // daddiu v0, v0, -48 + // Unknown instr: vcallms 311 + // nop // sll r0, r0, 0 + c->addiu(t6, r0, 0); // addiu t6, r0, 0 + // nop // sll r0, r0, 0 + c->lwl(t6, 53, v0); // lwl t6, 53(v0) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t6, r0, t6); // pextlb t6, r0, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t6, r0, t6); // pextlb t6, r0, t6 + c->lq(a3, 80, v0); // lq a3, 80(v0) + c->paddw(t6, t6, t3); // paddw t6, t6, t3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextub(t2, r0, t2); // pextub t2, r0, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t0, a1, t2); // pextlh t0, a1, t2 + c->mov128_vf_gpr(vf4, gp); // qmtc2.ni vf4, gp + c->pextuh(t2, a1, t2); // pextuh t2, a1, t2 + c->mov128_vf_gpr(vf1, t0); // qmtc2.ni vf1, t0 + c->pextlb(t1, r0, a3); // pextlb t1, r0, a3 + c->mov128_vf_gpr(vf2, t2); // qmtc2.ni vf2, t2 + c->pextlh(a2, a1, t1); // pextlh a2, a1, t1 + c->mov128_vf_gpr(vf3, a2); // qmtc2.ni vf3, a2 + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + // nop // sll r0, r0, 0 + c->daddiu(v1, v1, -64); // daddiu v1, v1, -64 + // nop // sll r0, r0, 0 + c->sqc2(vf15, 64, v1); // sqc2 vf15, 64(v1) + // Unknown instr: vcallms 311 + // nop // sll r0, r0, 0 + c->lwr(s3, 56, v0); // lwr s3, 56(v0) + // nop // sll r0, r0, 0 + c->lwl(s3, 69, v0); // lwl s3, 69(v0) + // nop // sll r0, r0, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyud(t6, t6, r0); // pcpyud t6, t6, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(s3, r0, s3); // pextlb s3, r0, s3 + // nop // sll r0, r0, 0 + c->dsllv(s3, s3, s2); // dsllv s3, s3, s2 + c->lq(t8, 0, s6); // lq t8, 0(s6) + c->paddh(s3, s3, s1); // paddh s3, s3, s1 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + c->dsrl32(t6, t6, 0); // dsrl32 t6, t6, 0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t0, a1, t1); // pextuh t0, a1, t1 + c->lbu(s0, 0, t6); // lbu s0, 0(t6) + c->pextub(a3, r0, a3); // pextub a3, r0, a3 + c->mov128_vf_gpr(vf4, t9); // qmtc2.ni vf4, t9 + c->pextlh(t2, a1, a3); // pextlh t2, a1, a3 + c->mov128_vf_gpr(vf1, t0); // qmtc2.ni vf1, t0 + c->pextuh(a3, a1, a3); // pextuh a3, a1, a3 + c->mov128_vf_gpr(vf2, t2); // qmtc2.ni vf2, t2 + c->pextlb(t9, r0, t8); // pextlb t9, r0, t8 + c->mov128_vf_gpr(vf3, a3); // qmtc2.ni vf3, a3 + c->pextlh(gp, r0, t9); // pextlh gp, r0, t9 + // nop // sll r0, r0, 0 + c->daddiu(s6, s6, 16); // daddiu s6, s6, 16 + // nop // sll r0, r0, 0 + c->sqc2(vf15, 96, v1); // sqc2 vf15, 96(v1) + // Unknown instr: vcallms 311 + c->sw(s3, 76, v1); // sw s3, 76(v1) + c->lwr(t6, 64, v0); // lwr t6, 64(v0) + c->daddu(t7, t7, t4); // daddu t7, t7, t4 + c->lwl(t6, 77, v0); // lwl t6, 77(v0) + c->daddu(s0, s0, t4); // daddu s0, s0, t4 + //beq r0, r0, L115 // beq r0, r0, L115 + c->dsrl32(s3, s3, 0); // dsrl32 s3, s3, 0 + goto block_51; // branch always + + +block_50: + // Unknown instr: vcallms 311 + c->sw(s3, 76, v1); // sw s3, 76(v1) + c->lwr(t6, 64, v0); // lwr t6, 64(v0) + c->daddu(t7, t7, t4); // daddu t7, t7, t4 + c->lwl(t6, 77, v0); // lwl t6, 77(v0) + c->daddu(s0, s0, t4); // daddu s0, s0, t4 + c->sw(a0, 60, v1); // sw a0, 60(v1) + c->dsrl32(s3, s3, 0); // dsrl32 s3, s3, 0 + +block_51: + c->sb(t5, 0, t7); // sb t5, 0(t7) + c->pextlb(t6, r0, t6); // pextlb t6, r0, t6 + c->sb(t5, 0, s0); // sb t5, 0(s0) + c->pextlb(t6, r0, t6); // pextlb t6, r0, t6 + c->lq(a2, 96, v0); // lq a2, 96(v0) + c->paddw(t6, t6, t3); // paddw t6, t6, t3 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + c->dsrl32(t6, t6, 0); // dsrl32 t6, t6, 0 + c->lw(a0, 16, at); // lw a0, 16(at) + c->pextlb(a3, r0, a2); // pextlb a3, r0, a2 + c->lbu(s0, 0, t6); // lbu s0, 0(t6) + c->pextub(a2, r0, a2); // pextub a2, r0, a2 + c->mov128_vf_gpr(vf4, gp); // qmtc2.ni vf4, gp + c->pextlh(t0, a1, a3); // pextlh t0, a1, a3 + c->mov128_vf_gpr(vf1, t0); // qmtc2.ni vf1, t0 + c->pextuh(a3, a1, a3); // pextuh a3, a1, a3 + c->mov128_vf_gpr(vf2, a3); // qmtc2.ni vf2, a3 + c->pextlh(t1, a1, a2); // pextlh t1, a1, a2 + c->mov128_vf_gpr(vf3, t1); // qmtc2.ni vf3, t1 + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + c->sqc2(vf14, 80, v1); // sqc2 vf14, 80(v1) + c->daddiu(at, at, 16); // daddiu at, at, 16 + c->addiu(s4, s4, 2); // addiu s4, s4, 2 + c->sqc2(vf15, 128, v1); // sqc2 vf15, 128(v1) + bc = c->sgpr64(t5) == c->sgpr64(s5); // beq t5, s5, L116 + c->daddiu(t5, t5, 2); // daddiu t5, t5, 2 + if (bc) {goto block_56;} // branch non-likely + + // Unknown instr: vcallms 311 + c->sw(s3, 108, v1); // sw s3, 108(v1) + c->lwr(s3, 80, v0); // lwr s3, 80(v0) + c->daddu(t7, t7, t4); // daddu t7, t7, t4 + c->lwl(s3, 93, v0); // lwl s3, 93(v0) + c->daddu(s0, s0, t4); // daddu s0, s0, t4 + c->sw(a0, 92, v1); // sw a0, 92(v1) + c->pcpyud(t6, t6, r0); // pcpyud t6, t6, r0 + c->sb(s4, 0, t7); // sb s4, 0(t7) + c->pextlb(s3, r0, s3); // pextlb s3, r0, s3 + c->sb(s4, 0, s0); // sb s4, 0(s0) + c->dsllv(s3, s3, s2); // dsllv s3, s3, s2 + c->lq(t2, 112, v0); // lq t2, 112(v0) + c->paddh(s3, s3, s1); // paddh s3, s3, s1 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + c->dsrl32(t6, t6, 0); // dsrl32 t6, t6, 0 + c->lw(a0, 4, at); // lw a0, 4(at) + c->pextuh(a2, a1, a2); // pextuh a2, a1, a2 + c->lbu(s0, 0, t6); // lbu s0, 0(t6) + c->pextlb(t0, r0, t2); // pextlb t0, r0, t2 + c->mov128_vf_gpr(vf4, t9); // qmtc2.ni vf4, t9 + c->pextlh(t1, a1, t0); // pextlh t1, a1, t0 + c->mov128_vf_gpr(vf1, a2); // qmtc2.ni vf1, a2 + c->pextuh(t0, a1, t0); // pextuh t0, a1, t0 + c->mov128_vf_gpr(vf2, t1); // qmtc2.ni vf2, t1 + c->pextub(t9, r0, t8); // pextub t9, r0, t8 + c->mov128_vf_gpr(vf3, t0); // qmtc2.ni vf3, t0 + c->pextlh(gp, r0, t9); // pextlh gp, r0, t9 + c->sqc2(vf14, 112, v1); // sqc2 vf14, 112(v1) + c->daddiu(v0, v0, 48); // daddiu v0, v0, 48 + bc = c->sgpr64(s4) == c->sgpr64(s5); // beq s4, s5, L117 + c->sqc2(vf15, 160, v1); // sqc2 vf15, 160(v1) + if (bc) {goto block_57;} // branch non-likely + + // Unknown instr: vcallms 311 + c->sw(s3, 140, v1); // sw s3, 140(v1) + c->lwr(t6, 40, v0); // lwr t6, 40(v0) + c->daddu(t7, t7, t4); // daddu t7, t7, t4 + c->lwl(t6, 53, v0); // lwl t6, 53(v0) + c->daddu(s0, s0, t4); // daddu s0, s0, t4 + c->sw(a0, 124, v1); // sw a0, 124(v1) + c->dsrl32(s3, s3, 0); // dsrl32 s3, s3, 0 + c->sb(t5, 0, t7); // sb t5, 0(t7) + c->pextlb(t6, r0, t6); // pextlb t6, r0, t6 + c->sb(t5, 0, s0); // sb t5, 0(s0) + c->pextlb(t6, r0, t6); // pextlb t6, r0, t6 + c->lq(a3, 80, v0); // lq a3, 80(v0) + c->paddw(t6, t6, t3); // paddw t6, t6, t3 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + c->dsrl32(t6, t6, 0); // dsrl32 t6, t6, 0 + c->lw(a0, 8, at); // lw a0, 8(at) + c->pextub(t2, r0, t2); // pextub t2, r0, t2 + c->lbu(s0, 0, t6); // lbu s0, 0(t6) + c->pextlh(t0, a1, t2); // pextlh t0, a1, t2 + c->mov128_vf_gpr(vf4, gp); // qmtc2.ni vf4, gp + c->pextuh(t2, a1, t2); // pextuh t2, a1, t2 + c->mov128_vf_gpr(vf1, t0); // qmtc2.ni vf1, t0 + c->pextlb(t1, r0, a3); // pextlb t1, r0, a3 + c->mov128_vf_gpr(vf2, t2); // qmtc2.ni vf2, t2 + c->pextlh(a2, a1, t1); // pextlh a2, a1, t1 + c->mov128_vf_gpr(vf3, a2); // qmtc2.ni vf3, a2 + c->pextuh(t9, r0, t9); // pextuh t9, r0, t9 + c->sqc2(vf14, 144, v1); // sqc2 vf14, 144(v1) + c->daddiu(v1, v1, 128); // daddiu v1, v1, 128 + c->addiu(s4, s4, 2); // addiu s4, s4, 2 + c->sqc2(vf15, 64, v1); // sqc2 vf15, 64(v1) + bc = c->sgpr64(t5) == c->sgpr64(s5); // beq t5, s5, L118 + c->daddiu(t5, t5, 2); // daddiu t5, t5, 2 + if (bc) {goto block_58;} // branch non-likely + + // Unknown instr: vcallms 311 + c->sw(s3, 44, v1); // sw s3, 44(v1) + c->lwr(s3, 56, v0); // lwr s3, 56(v0) + c->daddu(t7, t7, t4); // daddu t7, t7, t4 + c->lwl(s3, 69, v0); // lwl s3, 69(v0) + c->daddu(s0, s0, t4); // daddu s0, s0, t4 + c->sw(a0, 28, v1); // sw a0, 28(v1) + c->pcpyud(t6, t6, r0); // pcpyud t6, t6, r0 + c->sb(s4, 0, t7); // sb s4, 0(t7) + c->pextlb(s3, r0, s3); // pextlb s3, r0, s3 + c->sb(s4, 0, s0); // sb s4, 0(s0) + c->dsllv(s3, s3, s2); // dsllv s3, s3, s2 + c->lq(t8, 0, s6); // lq t8, 0(s6) + c->paddh(s3, s3, s1); // paddh s3, s3, s1 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + c->dsrl32(t6, t6, 0); // dsrl32 t6, t6, 0 + c->lw(a0, 12, at); // lw a0, 12(at) + c->pextuh(t0, a1, t1); // pextuh t0, a1, t1 + c->lbu(s0, 0, t6); // lbu s0, 0(t6) + c->pextub(a3, r0, a3); // pextub a3, r0, a3 + c->mov128_vf_gpr(vf4, t9); // qmtc2.ni vf4, t9 + c->pextlh(t2, a1, a3); // pextlh t2, a1, a3 + c->mov128_vf_gpr(vf1, t0); // qmtc2.ni vf1, t0 + c->pextuh(a3, a1, a3); // pextuh a3, a1, a3 + c->mov128_vf_gpr(vf2, t2); // qmtc2.ni vf2, t2 + c->pextlb(t9, r0, t8); // pextlb t9, r0, t8 + c->mov128_vf_gpr(vf3, a3); // qmtc2.ni vf3, a3 + c->pextlh(gp, r0, t9); // pextlh gp, r0, t9 + c->sqc2(vf14, 48, v1); // sqc2 vf14, 48(v1) + c->daddiu(s6, s6, 16); // daddiu s6, s6, 16 + bc = c->sgpr64(s4) != c->sgpr64(s5); // bne s4, s5, L114 + c->sqc2(vf15, 96, v1); // sqc2 vf15, 96(v1) + if (bc) {goto block_50;} // branch non-likely + + //beq r0, r0, L118 // beq r0, r0, L118 + c->daddiu(v1, v1, 32); // daddiu v1, v1, 32 + goto block_58; // branch always + + +block_56: + //beq r0, r0, L118 // beq r0, r0, L118 + c->daddiu(v1, v1, 64); // daddiu v1, v1, 64 + goto block_58; // branch always + + +block_57: + //beq r0, r0, L118 // beq r0, r0, L118 + c->daddiu(v1, v1, 96); // daddiu v1, v1, 96 + goto block_58; // branch always + + +block_58: + c->sw(a0, 28, v1); // sw a0, 28(v1) + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + c->daddiu(v1, v1, 32); // daddiu v1, v1, 32 + // nop // sll r0, r0, 0 + get_fake_spad_addr2(a3, cache.fake_scratchpad_data, 0, c);// lui a3, 28672 + // nop // sll r0, r0, 0 + c->lw(a0, 7444, a3); // lw a0, 7444(a3) + // nop // sll r0, r0, 0 + c->lw(a1, 7436, a3); // lw a1, 7436(a3) + // nop // sll r0, r0, 0 + c->lw(a3, 7440, a3); // lw a3, 7440(a3) + // nop // sll r0, r0, 0 + c->sb(s5, 17, a1); // sb s5, 17(a1) + // nop // sll r0, r0, 0 + c->lbu(s0, 0, a0); // lbu s0, 0(a0) + c->addiu(s4, r0, 0); // addiu s4, r0, 0 + c->lbu(s1, 7, a0); // lbu s1, 7(a0) + c->addiu(t8, r0, 0); // addiu t8, r0, 0 + c->lbu(s2, 8, a0); // lbu s2, 8(a0) + c->sll(s0, s0, 2); // sll s0, s0, 2 + c->daddu(s0, s0, a0); // daddu s0, s0, a0 + c->sll(s1, s1, 2); // sll s1, s1, 2 + bc = c->sgpr64(s1) == 0; // beq s1, r0, L120 + c->daddu(s1, s1, s0); // daddu s1, s1, s0 + if (bc) {goto block_61;} // branch non-likely + + +block_59: + c->lbu(s3, 0, s0); // lbu s3, 0(s0) + c->daddu(s4, s4, t4); // daddu s4, s4, t4 + c->lbu(s6, 1, s0); // lbu s6, 1(s0) + c->daddu(t8, t8, t4); // daddu t8, t8, t4 + c->lbu(t9, 0, s4); // lbu t9, 0(s4) + c->daddu(s3, s3, t3); // daddu s3, s3, t3 + c->lbu(s4, 0, s3); // lbu s4, 0(s3) + c->daddu(s6, s6, t3); // daddu s6, s6, t3 + c->sb(t9, 0, t8); // sb t9, 0(t8) + c->daddiu(s0, s0, 4); // daddiu s0, s0, 4 + bc = c->sgpr64(s0) != c->sgpr64(s1); // bne s0, s1, L119 + c->lbu(t8, 0, s6); // lbu t8, 0(s6) + if (bc) {goto block_59;} // branch non-likely + + // nop // sll r0, r0, 0 + c->daddu(s4, s4, t4); // daddu s4, s4, t4 + c->lbu(t9, 0, s4); // lbu t9, 0(s4) + c->daddu(t8, t8, t4); // daddu t8, t8, t4 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sb(t9, 0, t8); // sb t9, 0(t8) + // nop // sll r0, r0, 0 + +block_61: + c->sll(s2, s2, 2); // sll s2, s2, 2 + c->daddiu(t5, a3, 32); // daddiu t5, a3, 32 + bc = c->sgpr64(s2) == 0; // beq s2, r0, L123 + c->daddu(s2, s2, s1); // daddu s2, s2, s1 + if (bc) {goto block_65;} // branch non-likely + + c->lbu(s3, 0, s0); // lbu s3, 0(s0) + c->daddiu(t6, a3, 192); // daddiu t6, a3, 192 + c->lbu(s6, 1, s0); // lbu s6, 1(s0) + c->daddiu(t7, a3, 448); // daddiu t7, a3, 448 + // nop // sll r0, r0, 0 + c->daddu(s3, s3, t6); // daddu s3, s3, t6 + c->lbu(s3, 0, s3); // lbu s3, 0(s3) + c->daddu(s6, s6, t3); // daddu s6, s6, t3 + c->lbu(s6, 0, s6); // lbu s6, 0(s6) + c->daddiu(v1, v1, -32); // daddiu v1, v1, -32 + // nop // sll r0, r0, 0 + c->daddu(s3, s3, t5); // daddu s3, s3, t5 + c->lbu(s4, 0, s3); // lbu s4, 0(s3) + c->daddu(s6, s6, t4); // daddu s6, s6, t4 + // nop // sll r0, r0, 0 + c->daddiu(s0, s0, 4); // daddiu s0, s0, 4 + c->sb(s5, 0, s6); // sb s5, 0(s6) + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + bc = c->sgpr64(s0) == c->sgpr64(s2); // beq s0, s2, L122 + // nop // sll r0, r0, 0 + if (bc) {goto block_64;} // branch non-likely + + +block_63: + c->lbu(s3, 0, s0); // lbu s3, 0(s0) + c->sll(s4, s4, 5); // sll s4, s4, 5 + c->lbu(s6, 1, s0); // lbu s6, 1(s0) + c->daddu(s4, s4, t7); // daddu s4, s4, t7 + c->lq(t9, 0, s4); // lq t9, 0(s4) + c->daddu(s3, s3, t6); // daddu s3, s3, t6 + c->lbu(s3, 0, s3); // lbu s3, 0(s3) + c->daddu(s6, s6, t3); // daddu s6, s6, t3 + c->lbu(s6, 0, s6); // lbu s6, 0(s6) + c->daddiu(v1, v1, 32); // daddiu v1, v1, 32 + c->lq(gp, 16, s4); // lq gp, 16(s4) + c->daddu(s3, s3, t5); // daddu s3, s3, t5 + c->lbu(s4, 0, s3); // lbu s4, 0(s3) + c->daddu(s6, s6, t4); // daddu s6, s6, t4 + c->sq(t9, 0, v1); // sq t9, 0(v1) + c->daddiu(s0, s0, 4); // daddiu s0, s0, 4 + c->sb(s5, 0, s6); // sb s5, 0(s6) + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + bc = c->sgpr64(s0) != c->sgpr64(s2); // bne s0, s2, L121 + c->sq(gp, 16, v1); // sq gp, 16(v1) + if (bc) {goto block_63;} // branch non-likely + + +block_64: + // nop // sll r0, r0, 0 + c->sll(s4, s4, 5); // sll s4, s4, 5 + // nop // sll r0, r0, 0 + c->daddu(s4, s4, t7); // daddu s4, s4, t7 + c->lq(t9, 0, s4); // lq t9, 0(s4) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->daddiu(v1, v1, 32); // daddiu v1, v1, 32 + c->lq(gp, 16, s4); // lq gp, 16(s4) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(t9, 0, v1); // sq t9, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(gp, 16, v1); // sq gp, 16(v1) + +block_65: + c->sh(s5, 20, a1); // sh s5, 20(a1) + get_fake_spad_addr2(at, cache.fake_scratchpad_data, 0, c);// lui at, 28672 + c->lq(s0, 7552, at); // lq s0, 7552(at) + c->lq(s1, 7568, at); // lq s1, 7568(at) + c->lq(s2, 7584, at); // lq s2, 7584(at) + c->lq(s3, 7600, at); // lq s3, 7600(at) + c->lq(s4, 7616, at); // lq s4, 7616(at) + c->lq(s5, 7632, at); // lq s5, 7632(at) + c->lq(s6, 7648, at); // lq s6, 7648(at) + c->lq(t8, 7664, at); // lq t8, 7664(at) + c->lq(t9, 7680, at); // lq t9, 7680(at) + c->lq(gp, 7696, at); // lq gp, 7696(at) + c->lq(ra, 7744, at); // lq ra, 7744(at) + c->lq(sp, 7712, at); // lq sp, 7712(at) + //jr ra // jr ra + c->lq(fp, 7728, at); // lq fp, 7728(at) + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("mercneric-convert", execute, 512); +} + +} // namespace mercneric_convert +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace generic_merc_init_asm { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* gsf_buffer; // *gsf-buffer* + void* inv_init_table; // *inv-init-table* + void* screen_shot_work; // *screen-shot-work* + void* viewport_array; // *viewport-array* + void* generic_envmap_proc; // generic-envmap-proc + void* generic_light_proc; // generic-light-proc + void* generic_prepare_dma_double; // generic-prepare-dma-double + void* generic_prepare_dma_single; // generic-prepare-dma-single + void* high_speed_reject; // high-speed-reject + void* mercneric_convert; // mercneric-convert + void* mercneric_vu0_block; // mercneric-vu0-block + void* upload_vu0_program; // upload-vu0-program + void* view_get_active_math_camera; // view-get-active-math-camera +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->load_symbol2(t9, cache.upload_vu0_program); // lw t9, upload-vu0-program(s7) + c->load_symbol2(a0, cache.mercneric_vu0_block); // lw a0, mercneric-vu0-block(s7) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->ori(a1, v1, 84); // ori a1, v1, 84 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.view_get_active_math_camera);// lw t9, view-get-active-math-camera(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a0, v0); // or a0, v0, r0 + c->addiu(v1, r0, 7136); // addiu v1, r0, 7136 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(v1, v1, a1); // daddu v1, v1, a1 + c->load_symbol2(a1, cache.mercneric_convert); // lw a1, mercneric-convert(s7) + c->sw(a1, 324, v1); // sw a1, 324(v1) + c->load_symbol2(a1, cache.generic_prepare_dma_single);// lw a1, generic-prepare-dma-single(s7) + c->sw(a1, 328, v1); // sw a1, 328(v1) + c->load_symbol2(a1, cache.generic_prepare_dma_double);// lw a1, generic-prepare-dma-double(s7) + c->sw(a1, 332, v1); // sw a1, 332(v1) + c->load_symbol2(a1, cache.generic_light_proc); // lw a1, generic-light-proc(s7) + c->sw(a1, 336, v1); // sw a1, 336(v1) + c->load_symbol2(a1, cache.generic_envmap_proc); // lw a1, generic-envmap-proc(s7) + c->sw(a1, 340, v1); // sw a1, 340(v1) + c->load_symbol2(a1, cache.high_speed_reject); // lw a1, high-speed-reject(s7) + c->sw(a1, 344, v1); // sw a1, 344(v1) + c->sw(r0, 320, v1); // sw r0, 320(v1) + c->daddu(t0, r0, v1); // daddu t0, r0, v1 + c->daddiu(t1, a0, 156); // daddiu t1, a0, 156 + c->lq(a1, 0, t1); // lq a1, 0(t1) + c->lq(a2, 16, t1); // lq a2, 16(t1) + c->lq(a3, 32, t1); // lq a3, 32(t1) + c->lq(t1, 48, t1); // lq t1, 48(t1) + c->sq(a1, 0, t0); // sq a1, 0(t0) + c->sq(a2, 16, t0); // sq a2, 16(t0) + c->sq(a3, 32, t0); // sq a3, 32(t0) + c->sq(t1, 48, t0); // sq t1, 48(t0) + c->daddiu(t0, v1, 64); // daddiu t0, v1, 64 + c->daddiu(t1, a0, 220); // daddiu t1, a0, 220 + c->lq(a1, 0, t1); // lq a1, 0(t1) + c->lq(a2, 16, t1); // lq a2, 16(t1) + c->lq(a3, 32, t1); // lq a3, 32(t1) + c->lq(t1, 48, t1); // lq t1, 48(t1) + c->sq(a1, 0, t0); // sq a1, 0(t0) + c->sq(a2, 16, t0); // sq a2, 16(t0) + c->sq(a3, 32, t0); // sq a3, 32(t0) + c->sq(t1, 48, t0); // sq t1, 48(t0) + c->daddiu(t0, v1, 128); // daddiu t0, v1, 128 + c->daddiu(t1, a0, 428); // daddiu t1, a0, 428 + c->lq(a1, 0, t1); // lq a1, 0(t1) + c->lq(a2, 16, t1); // lq a2, 16(t1) + c->lq(a3, 32, t1); // lq a3, 32(t1) + c->lq(t1, 48, t1); // lq t1, 48(t1) + c->sq(a1, 0, t0); // sq a1, 0(t0) + c->sq(a2, 16, t0); // sq a2, 16(t0) + c->sq(a3, 32, t0); // sq a3, 32(t0) + c->sq(t1, 48, t0); // sq t1, 48(t0) + c->lui(a1, 16256); // lui a1, 16256 + c->mtc1(f0, a1); // mtc1 f0, a1 + c->lwc1(f1, 12, a0); // lwc1 f1, 12(a0) + c->divs(f1, f0, f1); // div.s f1, f0, f1 + c->lui(a1, 16256); // lui a1, 16256 + c->mtc1(f0, a1); // mtc1 f0, a1 + c->lwc1(f2, 16, a0); // lwc1 f2, 16(a0) + c->divs(f0, f0, f2); // div.s f0, f0, f2 + c->daddiu(a3, v1, 352); // daddiu a3, v1, 352 + c->daddiu(a2, v1, 368); // daddiu a2, v1, 368 + c->daddiu(a1, v1, 384); // daddiu a1, v1, 384 + c->daddiu(v1, v1, 400); // daddiu v1, v1, 400 + c->swc1(f1, 0, a3); // swc1 f1, 0(a3) + c->negs(f1, f1); // neg.s f1, f1 + c->swc1(f1, 4, a3); // swc1 f1, 4(a3) + c->mtc1(f1, r0); // mtc1 f1, r0 + c->swc1(f1, 8, a3); // swc1 f1, 8(a3) + c->mtc1(f1, r0); // mtc1 f1, r0 + c->swc1(f1, 12, a3); // swc1 f1, 12(a3) + c->mtc1(f1, r0); // mtc1 f1, r0 + c->swc1(f1, 0, a2); // swc1 f1, 0(a2) + c->mtc1(f1, r0); // mtc1 f1, r0 + c->swc1(f1, 4, a2); // swc1 f1, 4(a2) + c->swc1(f0, 8, a2); // swc1 f0, 8(a2) + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 12, a2); // swc1 f0, 12(a2) + c->lui(a2, 15104); // lui a2, 15104 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->swc1(f0, 0, a1); // swc1 f0, 0(a1) + c->lui(a2, 15104); // lui a2, 15104 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->swc1(f0, 4, a1); // swc1 f0, 4(a1) + c->lui(a2, 16128); // lui a2, 16128 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->swc1(f0, 8, a1); // swc1 f0, 8(a1) + c->lwc1(f0, 908, a0); // lwc1 f0, 908(a0) + c->swc1(f0, 12, a1); // swc1 f0, 12(a1) + c->load_symbol2(a1, cache.viewport_array); // lw a1, *viewport-array*(s7) + c->lwu(a1, 0, a1); // lwu a1, 0(a1) + bc = c->sgpr64(a1) != 0; // bne a1, r0, L167 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(a1, v1); // or a1, v1, r0 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 0, a1); // swc1 f0, 0(a1) + c->lui(a2, -16972); // lui a2, -16972 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->swc1(f0, 4, a1); // swc1 f0, 4(a1) + c->lwc1(f0, 0, a0); // lwc1 f0, 0(a0) + c->swc1(f0, 8, a1); // swc1 f0, 8(a1) + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->swc1(f0, 12, a1); // swc1 f0, 12(a1) + //beq r0, r0, L169 // beq r0, r0, L169 + // nop // sll r0, r0, 0 + goto block_5; // branch always + + +block_2: + c->addiu(a2, r0, 1); // addiu a2, r0, 1 + bc = c->sgpr64(a1) != c->sgpr64(a2); // bne a1, a2, L168 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + c->mov64(a1, v1); // or a1, v1, r0 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 0, a1); // swc1 f0, 0(a1) + c->lui(a2, -16736); // lui a2, -16736 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->swc1(f0, 4, a1); // swc1 f0, 4(a1) + c->lwc1(f0, 0, a0); // lwc1 f0, 0(a0) + c->swc1(f0, 8, a1); // swc1 f0, 8(a1) + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->swc1(f0, 12, a1); // swc1 f0, 12(a1) + //beq r0, r0, L169 // beq r0, r0, L169 + // nop // sll r0, r0, 0 + goto block_5; // branch always + + +block_4: + c->mov64(a1, v1); // or a1, v1, r0 + c->lui(a2, -16768); // lui a2, -16768 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->swc1(f0, 0, a1); // swc1 f0, 0(a1) + c->lui(a2, -16972); // lui a2, -16972 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->swc1(f0, 4, a1); // swc1 f0, 4(a1) + c->lwc1(f0, 0, a0); // lwc1 f0, 0(a0) + c->swc1(f0, 8, a1); // swc1 f0, 8(a1) + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->swc1(f0, 12, a1); // swc1 f0, 12(a1) + +block_5: + c->load_symbol2(a0, cache.screen_shot_work); // lw a0, *screen-shot-work*(s7) + if (((s64)c->sgpr64(a0)) == ((s64)0)) { // beql a0, r0, L170 + c->mov64(a0, s7); // or a0, s7, r0 + goto block_8; + } + +block_7: + c->load_symbol2(a0, cache.screen_shot_work); // lw a0, *screen-shot-work*(s7) + c->lh(a0, 0, a0); // lh a0, 0(a0) + c->daddiu(a1, a0, 1); // daddiu a1, a0, 1 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movz(a0, s7, a1); // movz a0, s7, a1 + +block_8: + bc = c->sgpr64(s7) == c->sgpr64(a0); // beq s7, a0, L171 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_10;} // branch non-likely + + c->load_symbol2(a0, cache.screen_shot_work); // lw a0, *screen-shot-work*(s7) + c->lh(a0, 0, a0); // lh a0, 0(a0) + c->load_symbol2(a1, cache.screen_shot_work); // lw a1, *screen-shot-work*(s7) + c->lh(a1, 2, a1); // lh a1, 2(a1) + c->mtc1(f0, a1); // mtc1 f0, a1 + c->cvtsw(f1, f0); // cvt.s.w f1, f0 + c->div(a0, a1); // div a0, a1 + c->mfhi(a2); // mfhi a2 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->cvtsw(f0, f0); // cvt.s.w f0, f0 + c->divs(f0, f0, f1); // div.s f0, f0, f1 + c->div(a0, a1); // div a0, a1 + c->mflo(a0); // mflo a0 + c->mtc1(f2, a0); // mtc1 f2, a0 + c->cvtsw(f2, f2); // cvt.s.w f2, f2 + c->divs(f1, f2, f1); // div.s f1, f2, f1 + c->lwc1(f2, 0, v1); // lwc1 f2, 0(v1) + c->lui(a0, 15104); // lui a0, 15104 + c->mtc1(f3, a0); // mtc1 f3, a0 + c->muls(f0, f3, f0); // mul.s f0, f3, f0 + c->subs(f0, f2, f0); // sub.s f0, f2, f0 + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->lwc1(f0, 4, v1); // lwc1 f0, 4(v1) + c->lui(a0, 15104); // lui a0, 15104 + c->mtc1(f2, a0); // mtc1 f2, a0 + c->muls(f1, f2, f1); // mul.s f1, f2, f1 + c->subs(f0, f0, f1); // sub.s f0, f0, f1 + c->swc1(f0, 4, v1); // swc1 f0, 4(v1) + c->mfc1(a0, f0); // mfc1 a0, f0 + +block_10: + c->load_symbol2(v1, cache.gsf_buffer); // lw v1, *gsf-buffer*(s7) + c->daddiu(a0, v1, 32); // daddiu a0, v1, 32 + c->sw(a0, 0, v1); // sw a0, 0(v1) + c->daddiu(a0, v1, 448); // daddiu a0, v1, 448 + c->sw(a0, 4, v1); // sw a0, 4(v1) + c->daddiu(a0, v1, 6608); // daddiu a0, v1, 6608 + c->sw(a0, 8, v1); // sw a0, 8(v1) + c->daddiu(a0, v1, 2784); // daddiu a0, v1, 2784 + c->sw(a0, 2752, v1); // sw a0, 2752(v1) + c->daddiu(a0, v1, 3200); // daddiu a0, v1, 3200 + c->sw(a0, 2756, v1); // sw a0, 2756(v1) + c->daddiu(a0, v1, 6608); // daddiu a0, v1, 6608 + c->sw(a0, 2760, v1); // sw a0, 2760(v1) + c->load_symbol2(v1, cache.gsf_buffer); // lw v1, *gsf-buffer*(s7) + c->daddiu(a0, v1, 5504); // daddiu a0, v1, 5504 + c->mov64(a0, a0); // or a0, a0, r0 + c->load_symbol2(a1, cache.inv_init_table); // lw a1, *inv-init-table*(s7) + c->mov64(a1, a1); // or a1, a1, r0 + c->sq(r0, 0, a0); // sq r0, 0(a0) + c->sq(r0, 544, a0); // sq r0, 544(a0) + c->sq(r0, 16, a0); // sq r0, 16(a0) + c->sq(r0, 560, a0); // sq r0, 560(a0) + c->sq(r0, 208, a0); // sq r0, 208(a0) + c->sq(r0, 752, a0); // sq r0, 752(a0) + c->sq(r0, 224, a0); // sq r0, 224(a0) + c->sq(r0, 768, a0); // sq r0, 768(a0) + c->sq(r0, 240, a0); // sq r0, 240(a0) + c->sq(r0, 784, a0); // sq r0, 784(a0) + c->sq(r0, 384, a0); // sq r0, 384(a0) + c->sq(r0, 800, a0); // sq r0, 800(a0) + c->sq(r0, 400, a0); // sq r0, 400(a0) + c->sq(r0, 944, a0); // sq r0, 944(a0) + c->sq(r0, 416, a0); // sq r0, 416(a0) + c->sq(r0, 960, a0); // sq r0, 960(a0) + c->sq(r0, 432, a0); // sq r0, 432(a0) + c->sq(r0, 976, a0); // sq r0, 976(a0) + c->sq(r0, 448, a0); // sq r0, 448(a0) + c->sq(r0, 992, a0); // sq r0, 992(a0) + c->sq(r0, 464, a0); // sq r0, 464(a0) + c->sq(r0, 1008, a0); // sq r0, 1008(a0) + c->sq(r0, 480, a0); // sq r0, 480(a0) + c->sq(r0, 1024, a0); // sq r0, 1024(a0) + c->sq(r0, 496, a0); // sq r0, 496(a0) + c->sq(r0, 1040, a0); // sq r0, 1040(a0) + c->sq(r0, 512, a0); // sq r0, 512(a0) + c->sq(r0, 1056, a0); // sq r0, 1056(a0) + c->sq(r0, 528, a0); // sq r0, 528(a0) + c->sq(r0, 1072, a0); // sq r0, 1072(a0) + c->addiu(a2, r0, 8); // addiu a2, r0, 8 + // nop // sll r0, r0, 0 + +block_11: + c->lhu(t1, 2, a1); // lhu t1, 2(a1) + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + c->lbu(a3, 0, a1); // lbu a3, 0(a1) + // nop // sll r0, r0, 0 + c->lbu(t0, 1, a1); // lbu t0, 1(a1) + // nop // sll r0, r0, 0 + c->daddu(t1, t1, a0); // daddu t1, t1, a0 + c->daddiu(a1, a1, 4); // daddiu a1, a1, 4 + +block_12: + c->sb(t0, 0, t1); // sb t0, 0(t1) + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + c->sb(t0, 550, t1); // sb t0, 550(t1) + c->daddiu(t0, t0, 2); // daddiu t0, t0, 2 + c->daddiu(t1, t1, 3); // daddiu t1, t1, 3 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L173 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + bc = c->sgpr64(a2) != 0; // bne a2, r0, L172 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + c->daddu(a0, r0, v1); // daddu a0, r0, v1 + c->mov64(a0, a0); // or a0, a0, r0 + c->sq(r0, 416, a0); // sq r0, 416(a0) + c->sq(r0, 432, a0); // sq r0, 432(a0) + c->daddiu(v1, v1, 2752); // daddiu v1, v1, 2752 + c->mov64(v1, v1); // or v1, v1, r0 + c->sq(r0, 416, v1); // sq r0, 416(v1) + c->sq(r0, 432, v1); // sq r0, 432(v1) + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->lui(v1, 4096); // lui v1, 4096 + c->ori(v1, v1, 32768); // ori v1, v1, 32768 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->ori(a0, a0, 84); // ori a0, a0, 84 + c->lw(a1, 0, v1); // lw a1, 0(v1) + c->andi(a1, a1, 256); // andi a1, a1, 256 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L175 + // TODO - fix DANGER jump to delay slot, this MUST be fixed manually! + c->lw(a1, 0, a0); // lw a1, 0(a0) + // TODO - fix if (bc) {goto block_-1;} // branch non-likely + + +block_15: + c->lw(a1, 0, a0); // lw a1, 0(a0) + // nop // sll r0, r0, 0 + c->lw(a2, 0, v1); // lw a2, 0(v1) + // nop // sll r0, r0, 0 + c->andi(a2, a2, 256); // andi a2, a2, 256 + c->daddiu(a1, a1, 1); // daddiu a1, a1, 1 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L174 + c->sw(a1, 0, a0); // sw a1, 0(a0) + if (bc) {goto block_15;} // branch non-likely + + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.gsf_buffer = intern_from_c(-1, 0, "*gsf-buffer*").c(); + cache.inv_init_table = intern_from_c(-1, 0, "*inv-init-table*").c(); + cache.screen_shot_work = intern_from_c(-1, 0, "*screen-shot-work*").c(); + cache.viewport_array = intern_from_c(-1, 0, "*viewport-array*").c(); + cache.generic_envmap_proc = intern_from_c(-1, 0, "generic-envmap-proc").c(); + cache.generic_light_proc = intern_from_c(-1, 0, "generic-light-proc").c(); + cache.generic_prepare_dma_double = intern_from_c(-1, 0, "generic-prepare-dma-double").c(); + cache.generic_prepare_dma_single = intern_from_c(-1, 0, "generic-prepare-dma-single").c(); + cache.high_speed_reject = intern_from_c(-1, 0, "high-speed-reject").c(); + cache.mercneric_convert = intern_from_c(-1, 0, "mercneric-convert").c(); + cache.mercneric_vu0_block = intern_from_c(-1, 0, "mercneric-vu0-block").c(); + cache.upload_vu0_program = intern_from_c(-1, 0, "upload-vu0-program").c(); + cache.view_get_active_math_camera = intern_from_c(-1, 0, "view-get-active-math-camera").c(); + gLinkedFunctionTable.reg("generic-merc-init-asm", execute, 256); +} + +} // namespace generic_merc_init_asm +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/joint.cpp b/game/mips2c/jakx_functions/joint.cpp new file mode 100644 index 0000000000..60b3a46577 --- /dev/null +++ b/game/mips2c/jakx_functions/joint.cpp @@ -0,0 +1,231 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace calc_animation_from_spr { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* clear_frame_accumulator; // clear-frame-accumulator + void* decompress_fixed_data_to_accumulator; // decompress-fixed-data-to-accumulator + void* decompress_frame_data_pair_to_accumulator; // decompress-frame-data-pair-to-accumulator + void* decompress_frame_data_to_accumulator; // decompress-frame-data-to-accumulator + void* normalize_frame_quaternions; // normalize-frame-quaternions +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->mov64(v1, a1); // or v1, a1, r0 + c->daddiu(sp, sp, -192); // daddiu sp, sp, -192 + c->sq(s0, 0, sp); // sq s0, 0(sp) + c->sq(s1, 16, sp); // sq s1, 16(sp) + c->sq(s2, 32, sp); // sq s2, 32(sp) + c->sq(s3, 48, sp); // sq s3, 48(sp) + c->sq(s4, 64, sp); // sq s4, 64(sp) + c->sq(s5, 80, sp); // sq s5, 80(sp) + c->sq(s6, 96, sp); // sq s6, 96(sp) + c->sq(t8, 112, sp); // sq t8, 112(sp) + c->sq(t9, 128, sp); // sq t9, 128(sp) + c->sq(gp, 144, sp); // sq gp, 144(sp) + c->sq(fp, 160, sp); // sq fp, 160(sp) + c->sq(ra, 176, sp); // sq ra, 176(sp) + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->mov128_vf_gpr(vf15, r0); // qmtc2.i vf15, r0 + c->sw(a1, 0, sp); // sw a1, 0(sp) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lw(s1, 2384, v1); // lw s1, 2384(v1) + c->daddiu(t7, v1, 1808); // daddiu t7, v1, 1808 + c->lui(s0, 4096); // lui s0, 4096 + c->daddiu(t1, v1, 7328); // daddiu t1, v1, 7328 + bc = c->sgpr64(s1) == 0; // beq s1, r0, L20 + c->ori(s0, s0, 54272); // ori s0, s0, 54272 + if (bc) {goto block_12;} // branch non-likely + + c->lw(t2, 0, t7); // lw t2, 0(t7) + c->addiu(t3, r0, 7392); // addiu t3, r0, 7392 + c->lw(t4, 4, t7); // lw t4, 4(t7) + c->addiu(v1, r0, 256); // addiu v1, r0, 256 + c->sw(t2, 16, s0); // sw t2, 16(s0) + c->vadd_bc(DEST::xyzw, BC::w, vf14, vf15, vf0); // vaddw.xyzw vf14, vf15, vf0 + c->sw(t3, 128, s0); // sw t3, 128(s0) + // nop // sll r0, r0, 0 + c->sw(t4, 32, s0); // sw t4, 32(s0) + // Unknown instr: sync.l + c->sw(v1, 0, s0); // sw v1, 0(s0) + // Unknown instr: sync.l + c->load_symbol2(t9, cache.clear_frame_accumulator);// lw t9, clear-frame-accumulator(s7) + c->vadd(DEST::yz, vf14, vf14, vf14); // vadd.yz vf14, vf14, vf14 + c->lw(s2, 0, sp); // lw s2, 0(sp) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->vadd(DEST::yz, vf14, vf14, vf14); // vadd.yz vf14, vf14, vf14 + c->jalr(call_addr); // jalr ra, t9 + +block_2: + c->lw(v1, 0, s0); // lw v1, 0(s0) + // nop // sll r0, r0, 0 + c->andi(v1, v1, 256); // andi v1, v1, 256 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L16 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->lw(t2, 8, t7); // lw t2, 8(t7) + c->addiu(t3, r0, 9600); // addiu t3, r0, 9600 + c->lw(t4, 12, t7); // lw t4, 12(t7) + c->addiu(v1, r0, 256); // addiu v1, r0, 256 + c->sw(t2, 16, s0); // sw t2, 16(s0) + // nop // sll r0, r0, 0 + c->sw(t3, 128, s0); // sw t3, 128(s0) + // nop // sll r0, r0, 0 + c->sw(t4, 32, s0); // sw t4, 32(s0) + // Unknown instr: sync.l + c->sw(v1, 0, s0); // sw v1, 0(s0) + // Unknown instr: sync.l + c->lw(a2, 16, t7); // lw a2, 16(t7) + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->load_symbol2(t9, cache.decompress_fixed_data_to_accumulator);// lw t9, decompress-fixed-data-to-accumulator(s7) + c->daddiu(a1, a1, 7392); // daddiu a1, a1, 7392 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(s1, s1, -1); // daddiu s1, s1, -1 + c->jalr(call_addr); // jalr ra, t9 + +block_4: + c->lw(v1, 0, s0); // lw v1, 0(s0) + // nop // sll r0, r0, 0 + c->andi(v1, v1, 256); // andi v1, v1, 256 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L17 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + bc = c->sgpr64(s1) == 0; // beq s1, r0, L18 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->lw(t2, 24, t7); // lw t2, 24(t7) + c->addiu(t3, r0, 7392); // addiu t3, r0, 7392 + c->lw(t4, 28, t7); // lw t4, 28(t7) + c->addiu(v1, r0, 256); // addiu v1, r0, 256 + c->sw(t2, 16, s0); // sw t2, 16(s0) + // nop // sll r0, r0, 0 + c->sw(t3, 128, s0); // sw t3, 128(s0) + // nop // sll r0, r0, 0 + c->sw(t4, 32, s0); // sw t4, 32(s0) + // Unknown instr: sync.l + c->sw(v1, 0, s0); // sw v1, 0(s0) + // Unknown instr: sync.l + +block_7: + c->lw(t0, 20, t7); // lw t0, 20(t7) + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->lw(a2, 16, t7); // lw a2, 16(t7) + c->daddiu(a1, a1, 9600); // daddiu a1, a1, 9600 + bc = c->sgpr64(t0) == 0; // beq t0, r0, L19 + // nop // sll r0, r0, 0 + if (bc) {goto block_10;} // branch non-likely + + c->lw(a3, 12, t7); // lw a3, 12(t7) + // nop // sll r0, r0, 0 + c->load_symbol2(t9, cache.decompress_frame_data_pair_to_accumulator);// lw t9, decompress-frame-data-pair-to-accumulator(s7) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(a3, a3, 3); // sll a3, a3, 3 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(s1) != 0; // bne s1, r0, L16 + c->daddiu(t7, t7, 24); // daddiu t7, t7, 24 + if (bc) {goto block_2;} // branch non-likely + + c->load_symbol2(t9, cache.normalize_frame_quaternions);// lw t9, normalize-frame-quaternions(s7) + // nop // sll r0, r0, 0 + c->lw(s2, 0, sp); // lw s2, 0(sp) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + // nop // sll r0, r0, 0 + c->lq(s0, 0, sp); // lq s0, 0(sp) + c->lq(s1, 16, sp); // lq s1, 16(sp) + c->lq(s2, 32, sp); // lq s2, 32(sp) + c->lq(s3, 48, sp); // lq s3, 48(sp) + c->lq(s4, 64, sp); // lq s4, 64(sp) + c->lq(s5, 80, sp); // lq s5, 80(sp) + c->lq(s6, 96, sp); // lq s6, 96(sp) + c->lq(t8, 112, sp); // lq t8, 112(sp) + c->lq(t9, 128, sp); // lq t9, 128(sp) + c->lq(gp, 144, sp); // lq gp, 144(sp) + c->lq(ra, 176, sp); // lq ra, 176(sp) + c->lq(fp, 160, sp); // lq fp, 160(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 192); // daddiu sp, sp, 192 + goto end_of_function; // return + + +block_10: + c->load_symbol2(t9, cache.decompress_frame_data_to_accumulator);// lw t9, decompress-frame-data-to-accumulator(s7) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(s1) != 0; // bne s1, r0, L16 + c->daddiu(t7, t7, 24); // daddiu t7, t7, 24 + if (bc) {goto block_2;} // branch non-likely + + c->load_symbol2(t9, cache.normalize_frame_quaternions);// lw t9, normalize-frame-quaternions(s7) + // nop // sll r0, r0, 0 + c->lw(s2, 0, sp); // lw s2, 0(sp) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + +block_12: + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + // nop // sll r0, r0, 0 + c->lq(s0, 0, sp); // lq s0, 0(sp) + c->lq(s1, 16, sp); // lq s1, 16(sp) + c->lq(s2, 32, sp); // lq s2, 32(sp) + c->lq(s3, 48, sp); // lq s3, 48(sp) + c->lq(s4, 64, sp); // lq s4, 64(sp) + c->lq(s5, 80, sp); // lq s5, 80(sp) + c->lq(s6, 96, sp); // lq s6, 96(sp) + c->lq(t8, 112, sp); // lq t8, 112(sp) + c->lq(t9, 128, sp); // lq t9, 128(sp) + c->lq(gp, 144, sp); // lq gp, 144(sp) + c->lq(ra, 176, sp); // lq ra, 176(sp) + c->lq(fp, 160, sp); // lq fp, 160(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 192); // daddiu sp, sp, 192 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.clear_frame_accumulator = intern_from_c(-1, 0, "clear-frame-accumulator").c(); + cache.decompress_fixed_data_to_accumulator = intern_from_c(-1, 0, "decompress-fixed-data-to-accumulator").c(); + cache.decompress_frame_data_pair_to_accumulator = intern_from_c(-1, 0, "decompress-frame-data-pair-to-accumulator").c(); + cache.decompress_frame_data_to_accumulator = intern_from_c(-1, 0, "decompress-frame-data-to-accumulator").c(); + cache.normalize_frame_quaternions = intern_from_c(-1, 0, "normalize-frame-quaternions").c(); + gLinkedFunctionTable.reg("calc-animation-from-spr", execute, 512); +} + +} // namespace calc_animation_from_spr +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/lights.cpp b/game/mips2c/jakx_functions/lights.cpp new file mode 100644 index 0000000000..887c059eab --- /dev/null +++ b/game/mips2c/jakx_functions/lights.cpp @@ -0,0 +1,777 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace add_light_sphere_to_light_group { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lqc2(vf2, 0, a2); // lqc2 vf2, 0(a2) + c->vmax_bc(DEST::xyzw, BC::w, vf1, vf0, vf0); // vmaxw.xyzw vf1, vf0, vf0 + c->lqc2(vf3, 16, a1); // lqc2 vf3, 16(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf19, 0, a1); // lqc2 vf19, 0(a1) + c->vsub(DEST::xyzw, vf4, vf3, vf2); // vsub.xyzw vf4, vf3, vf2 + c->lqc2(vf8, 16, a0); // lqc2 vf8, 16(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf9, 64, a0); // lqc2 vf9, 64(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf10, 112, a0); // lqc2 vf10, 112(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf11, 160, a0); // lqc2 vf11, 160(a0) + c->vmul(DEST::xyzw, vf6, vf4, vf4); // vmul.xyzw vf6, vf4, vf4 + c->lqc2(vf5, 32, a1); // lqc2 vf5, 32(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf25, 0, a0); // lqc2 vf25, 0(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf26, 48, a0); // lqc2 vf26, 48(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf27, 96, a0); // lqc2 vf27, 96(a0) + c->vmula_bc(DEST::w, BC::x, vf0, vf6); // vmulax.w acc, vf0, vf6 + c->lqc2(vf15, 32, a0); // lqc2 vf15, 32(a0) + c->vmadda_bc(DEST::w, BC::y, vf0, vf6); // vmadday.w acc, vf0, vf6 + c->lqc2(vf16, 80, a0); // lqc2 vf16, 80(a0) + c->vmadd_bc(DEST::w, BC::z, vf6, vf0, vf6); // vmaddz.w vf6, vf0, vf6 + c->lqc2(vf17, 128, a0); // lqc2 vf17, 128(a0) + c->vsqrt(vf6, BC::w); // vsqrt Q, vf6.w + c->lqc2(vf18, 176, a0); // lqc2 vf18, 176(a0) + c->vmul_bc(DEST::xyzw, BC::x, vf8, vf8, vf15); // vmulx.xyzw vf8, vf8, vf15 + c->lwc1(f2, 28, a1); // lwc1 f2, 28(a1) + c->vmul_bc(DEST::xyzw, BC::x, vf9, vf9, vf16); // vmulx.xyzw vf9, vf9, vf16 + c->lwc1(f3, 4, a1); // lwc1 f3, 4(a1) + c->vmul_bc(DEST::xyzw, BC::x, vf10, vf10, vf17); // vmulx.xyzw vf10, vf10, vf17 + c->lwc1(f4, 44, a1); // lwc1 f4, 44(a1) + c->vmul_bc(DEST::xyzw, BC::x, vf11, vf11, vf18); // vmulx.xyzw vf11, vf11, vf18 + c->mov128_gpr_vf(v1, vf1); // qmfc2.i v1, vf1 + c->vsub_bc(DEST::w, BC::z, vf19, vf0, vf19); // vsubz.w vf19, vf0, vf19 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->vmul_bc(DEST::xyzw, BC::x, vf25, vf25, vf15); // vmulx.xyzw vf25, vf25, vf15 + c->lwc1(f6, 12, a1); // lwc1 f6, 12(a1) + c->vmul_bc(DEST::xyzw, BC::x, vf26, vf26, vf16); // vmulx.xyzw vf26, vf26, vf16 + c->lb(v1, 63, a1); // lb v1, 63(a1) + c->subs(f7, f1, f3); // sub.s f7, f1, f3 + c->lqc2(vf21, 48, a1); // lqc2 vf21, 48(a1) + c->vmul_bc(DEST::xyzw, BC::z, vf20, vf21, vf19); // vmulz.xyzw vf20, vf21, vf19 + c->dsll(a1, v1, 4); // dsll a1, v1, 4 + c->vmul_bc(DEST::xyzw, BC::w, vf21, vf21, vf19); // vmulw.xyzw vf21, vf21, vf19 + c->daddu(a1, a1, a3); // daddu a1, a1, a3 + c->vmul_bc(DEST::xyzw, BC::x, vf27, vf27, vf17); // vmulx.xyzw vf27, vf27, vf17 + c->lwc1(f9, 1660, a1); // lwc1 f9, 1660(a1) + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf7, vf1); // vmulq.xyzw vf7, vf1, Q + c->mtc1(f0, r0); // mtc1 f0, r0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf15); // qmfc2.i a3, vf15 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a2, vf16); // qmfc2.i a2, vf16 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf17); // qmfc2.i a1, vf17 + c->vdiv(vf0, BC::w, vf7, BC::w); // vdiv Q, vf0.w, vf7.w + c->mov128_gpr_vf(t0, vf7); // qmfc2.i t0, vf7 + // nop // sll r0, r0, 0 + c->mtc1(f5, t0); // mtc1 f5, t0 + cop1_bc = c->fprs[f2] < c->fprs[f5]; // c.lt.s f2, f5 + c->divs(f5, f5, f2); // div.s f5, f5, f2 + bc = cop1_bc; // bc1t L33 + cop1_bc = c->fprs[f4] == c->fprs[f0]; // c.eq.s f4, f0 + if (bc) {goto block_21;} // branch non-likely + + bc = cop1_bc; // bc1t L24 + cop1_bc = c->fprs[f3] == c->fprs[f1]; // c.eq.s f3, f1 + if (bc) {goto block_3;} // branch non-likely + + //beq r0, r0, L25 // beq r0, r0, L25 + c->vmove(DEST::xyzw, vf6, vf5); // vmove.xyzw vf6, vf5 + goto block_4; // branch always + + +block_3: + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf6, vf4); // vmulq.xyzw vf6, vf4, Q + // nop // sll r0, r0, 0 + +block_4: + bc = cop1_bc; // bc1t L26 + c->subs(f8, f5, f3); // sub.s f8, f5, f3 + if (bc) {goto block_6;} // branch non-likely + + c->maxs(f8, f8, f0); // max.s f8, f8, f0 + // nop // sll r0, r0, 0 + c->divs(f8, f8, f7); // div.s f8, f8, f7 + // nop // sll r0, r0, 0 + c->subs(f8, f1, f8); // sub.s f8, f1, f8 + // nop // sll r0, r0, 0 + c->muls(f6, f6, f8); // mul.s f6, f6, f8 + // nop // sll r0, r0, 0 + +block_6: + bc = ((s64)c->sgpr64(v1)) < 0; // bltz v1, L27 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + c->muls(f6, f6, f9); // mul.s f6, f6, f9 + // nop // sll r0, r0, 0 + +block_8: + // nop // sll r0, r0, 0 + c->dsll32(v1, a3, 0); // dsll32 v1, a3, 0 + // nop // sll r0, r0, 0 + c->dsll32(a2, a2, 0); // dsll32 a2, a2, 0 + // nop // sll r0, r0, 0 + c->dsll32(a1, a1, 0); // dsll32 a1, a1, 0 + // nop // sll r0, r0, 0 + c->mfc1(a3, f6); // mfc1 a3, f6 + bc = c->sgpr64(a3) == 0; // beq a3, r0, L33 + c->mov128_vf_gpr(vf23, a3); // qmtc2.i vf23, a3 + if (bc) {goto block_21;} // branch non-likely + + bc = c->sgpr64(v1) == 0; // beq v1, r0, L30 + c->vmul_bc(DEST::xyzw, BC::x, vf21, vf21, vf23); // vmulx.xyzw vf21, vf21, vf23 + if (bc) {goto block_18;} // branch non-likely + + bc = c->sgpr64(a2) == 0; // beq a2, r0, L31 + // nop // sll r0, r0, 0 + if (bc) {goto block_19;} // branch non-likely + + bc = c->sgpr64(a1) == 0; // beq a1, r0, L32 + // nop // sll r0, r0, 0 + if (bc) {goto block_20;} // branch non-likely + + c->vmula_bc(DEST::xyzw, BC::x, vf15, vf15); // vmulax.xyzw acc, vf15, vf15 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf16, vf16); // vmaddax.xyzw acc, vf16, vf16 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf22, vf17, vf17); // vmaddx.xyzw vf22, vf17, vf17 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf11, vf11, vf21); // vadd.xyzw vf11, vf11, vf21 + c->swc1(f1, 176, a0); // swc1 f1, 176(a0) + c->vmul_bc(DEST::xyzw, BC::x, vf20, vf20, vf23); // vmulx.xyzw vf20, vf20, vf23 + // nop // sll r0, r0, 0 + c->vmul_bc(DEST::xyzw, BC::x, vf6, vf6, vf23); // vmulx.xyzw vf6, vf6, vf23 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->vrsqrt(vf0, BC::w, vf22, BC::x); // vrsqrt Q, vf0.w, vf22.x + // nop // sll r0, r0, 0 + c->sqc2(vf11, 160, a0); // sqc2 vf11, 160(a0) + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf15, vf15); // vmulq.xyzw vf15, vf15, Q + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyzw, vf16, vf16); // vmulq.xyzw vf16, vf16, Q + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyzw, vf17, vf17); // vmulq.xyzw vf17, vf17, Q + // nop // sll r0, r0, 0 + c->vsub_bc(DEST::xyzw, BC::x, vf15, vf1, vf15); // vsubx.xyzw vf15, vf1, vf15 + // nop // sll r0, r0, 0 + c->vsub_bc(DEST::xyzw, BC::x, vf16, vf1, vf16); // vsubx.xyzw vf16, vf1, vf16 + // nop // sll r0, r0, 0 + c->vsub_bc(DEST::xyzw, BC::x, vf17, vf1, vf17); // vsubx.xyzw vf17, vf1, vf17 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf1, vf15); // vmulax.xyzw acc, vf1, vf15 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf16); // vmaddax.xyzw acc, vf1, vf16 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf22, vf1, vf17); // vmaddx.xyzw vf22, vf1, vf17 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->vdiv(vf0, BC::w, vf22, BC::x); // vdiv Q, vf0.w, vf22.x + // nop // sll r0, r0, 0 + c->lqc2(vf12, 32, a0); // lqc2 vf12, 32(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf13, 80, a0); // lqc2 vf13, 80(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf14, 128, a0); // lqc2 vf14, 128(a0) + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf15, vf15); // vmulq.xyzw vf15, vf15, Q + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyzw, vf16, vf16); // vmulq.xyzw vf16, vf16, Q + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyzw, vf17, vf17); // vmulq.xyzw vf17, vf17, Q + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf1, vf25); // vmula.xyzw acc, vf1, vf25 + c->mov128_gpr_vf(a2, vf15); // qmfc2.i a2, vf15 + c->vmadd_bc(DEST::xyzw, BC::x, vf25, vf6, vf15); // vmaddx.xyzw vf25, vf6, vf15 + c->mov128_gpr_vf(a1, vf16); // qmfc2.i a1, vf16 + c->vmula(DEST::xyzw, vf1, vf26); // vmula.xyzw acc, vf1, vf26 + c->mov128_gpr_vf(v1, vf17); // qmfc2.i v1, vf17 + c->vmadd_bc(DEST::xyzw, BC::x, vf26, vf6, vf16); // vmaddx.xyzw vf26, vf6, vf16 + c->dsll32(a2, a2, 0); // dsll32 a2, a2, 0 + c->vmula(DEST::xyzw, vf1, vf27); // vmula.xyzw acc, vf1, vf27 + c->dsll32(a1, a1, 0); // dsll32 a1, a1, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf27, vf6, vf17); // vmaddx.xyzw vf27, vf6, vf17 + c->dsll32(v1, v1, 0); // dsll32 v1, v1, 0 + c->vmula(DEST::xyzw, vf1, vf8); // vmula.xyzw acc, vf1, vf8 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf20, vf15); // vmaddx.xyzw vf8, vf20, vf15 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf1, vf9); // vmula.xyzw acc, vf1, vf9 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf20, vf16); // vmaddx.xyzw vf9, vf20, vf16 + // nop // sll r0, r0, 0 + c->vmula(DEST::xyzw, vf1, vf10); // vmula.xyzw acc, vf1, vf10 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf10, vf20, vf17); // vmaddx.xyzw vf10, vf20, vf17 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L28 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + c->vmul(DEST::xyzw, vf24, vf25, vf25); // vmul.xyzw vf24, vf25, vf25 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf15, vf15, vf23); // vmul.xyzw vf15, vf15, vf23 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf1, vf24); // vmulax.xyzw acc, vf1, vf24 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf1, vf24); // vmadday.xyzw acc, vf1, vf24 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf24, vf1, vf24); // vmaddz.xyzw vf24, vf1, vf24 + // nop // sll r0, r0, 0 + c->vrsqrt(vf0, BC::w, vf24, BC::x); // vrsqrt Q, vf0.w, vf24.x + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf15, vf15, vf12); // vadd.xyzw vf15, vf15, vf12 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a2, vf15); // qmfc2.i a2, vf15 + // nop // sll r0, r0, 0 + c->mtc1(f10, a2); // mtc1 f10, a2 + c->divs(f10, f1, f10); // div.s f10, f1, f10 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sw(a2, 32, a0); // sw a2, 32(a0) + // nop // sll r0, r0, 0 + c->mfc1(a2, f10); // mfc1 a2, f10 + // nop // sll r0, r0, 0 + c->mfc1(a2, f10); // mfc1 a2, f10 + c->mov128_vf_gpr(vf15, a2); // qmtc2.i vf15, a2 + c->vmul_bc(DEST::xyzw, BC::x, vf8, vf8, vf15); // vmulx.xyzw vf8, vf8, vf15 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf25, vf25); // vmulq.xyzw vf25, vf25, Q + c->sqc2(vf8, 16, a0); // sqc2 vf8, 16(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf25, 0, a0); // sqc2 vf25, 0(a0) + +block_14: + bc = c->sgpr64(a1) == 0; // beq a1, r0, L29 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + c->vmul(DEST::xyzw, vf24, vf26, vf26); // vmul.xyzw vf24, vf26, vf26 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf16, vf16, vf23); // vmul.xyzw vf16, vf16, vf23 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf1, vf24); // vmulax.xyzw acc, vf1, vf24 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf1, vf24); // vmadday.xyzw acc, vf1, vf24 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf24, vf1, vf24); // vmaddz.xyzw vf24, vf1, vf24 + // nop // sll r0, r0, 0 + c->vrsqrt(vf0, BC::w, vf24, BC::x); // vrsqrt Q, vf0.w, vf24.x + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf16, vf16, vf13); // vadd.xyzw vf16, vf16, vf13 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf16); // qmfc2.i a1, vf16 + // nop // sll r0, r0, 0 + c->mtc1(f11, a1); // mtc1 f11, a1 + c->divs(f11, f1, f11); // div.s f11, f1, f11 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sw(a1, 80, a0); // sw a1, 80(a0) + // nop // sll r0, r0, 0 + c->mfc1(a1, f11); // mfc1 a1, f11 + // nop // sll r0, r0, 0 + c->mfc1(a1, f11); // mfc1 a1, f11 + c->mov128_vf_gpr(vf16, a1); // qmtc2.i vf16, a1 + c->vmul_bc(DEST::xyzw, BC::x, vf9, vf9, vf16); // vmulx.xyzw vf9, vf9, vf16 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf26, vf26); // vmulq.xyzw vf26, vf26, Q + c->sqc2(vf9, 64, a0); // sqc2 vf9, 64(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf26, 48, a0); // sqc2 vf26, 48(a0) + +block_16: + bc = c->sgpr64(v1) == 0; // beq v1, r0, L33 + // nop // sll r0, r0, 0 + if (bc) {goto block_21;} // branch non-likely + + c->vmul(DEST::xyzw, vf24, vf27, vf27); // vmul.xyzw vf24, vf27, vf27 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf17, vf17, vf23); // vmul.xyzw vf17, vf17, vf23 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf1, vf24); // vmulax.xyzw acc, vf1, vf24 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf1, vf24); // vmadday.xyzw acc, vf1, vf24 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf24, vf1, vf24); // vmaddz.xyzw vf24, vf1, vf24 + // nop // sll r0, r0, 0 + c->vrsqrt(vf0, BC::w, vf24, BC::x); // vrsqrt Q, vf0.w, vf24.x + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf17, vf17, vf14); // vadd.xyzw vf17, vf17, vf14 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(v1, vf17); // qmfc2.i v1, vf17 + // nop // sll r0, r0, 0 + c->mtc1(f12, v1); // mtc1 f12, v1 + c->divs(f12, f1, f12); // div.s f12, f1, f12 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sw(v1, 128, a0); // sw v1, 128(a0) + // nop // sll r0, r0, 0 + c->mfc1(v1, f12); // mfc1 v1, f12 + // nop // sll r0, r0, 0 + c->mfc1(v1, f12); // mfc1 v1, f12 + c->mov128_vf_gpr(vf17, v1); // qmtc2.i vf17, v1 + c->vmul_bc(DEST::xyzw, BC::x, vf10, vf10, vf17); // vmulx.xyzw vf10, vf10, vf17 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf27, vf27); // vmulq.xyzw vf27, vf27, Q + c->sqc2(vf10, 112, a0); // sqc2 vf10, 112(a0) + //beq r0, r0, L33 // beq r0, r0, L33 + c->sqc2(vf27, 96, a0); // sqc2 vf27, 96(a0) + goto block_21; // branch always + + +block_18: + c->vadd(DEST::xyzw, vf11, vf11, vf21); // vadd.xyzw vf11, vf11, vf21 + c->swc1(f1, 176, a0); // swc1 f1, 176(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 0, a0); // sqc2 vf6, 0(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf20, 16, a0); // sqc2 vf20, 16(a0) + // nop // sll r0, r0, 0 + c->swc1(f6, 32, a0); // swc1 f6, 32(a0) + //beq r0, r0, L33 // beq r0, r0, L33 + c->sqc2(vf11, 160, a0); // sqc2 vf11, 160(a0) + goto block_21; // branch always + + +block_19: + c->vadd(DEST::xyzw, vf11, vf11, vf21); // vadd.xyzw vf11, vf11, vf21 + c->swc1(f1, 176, a0); // swc1 f1, 176(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 48, a0); // sqc2 vf6, 48(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf20, 64, a0); // sqc2 vf20, 64(a0) + // nop // sll r0, r0, 0 + c->swc1(f6, 80, a0); // swc1 f6, 80(a0) + //beq r0, r0, L33 // beq r0, r0, L33 + c->sqc2(vf11, 160, a0); // sqc2 vf11, 160(a0) + goto block_21; // branch always + + +block_20: + c->vadd(DEST::xyzw, vf11, vf11, vf21); // vadd.xyzw vf11, vf11, vf21 + c->swc1(f1, 176, a0); // swc1 f1, 176(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 96, a0); // sqc2 vf6, 96(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf20, 112, a0); // sqc2 vf20, 112(a0) + // nop // sll r0, r0, 0 + c->swc1(f6, 128, a0); // swc1 f6, 128(a0) + // nop // sll r0, r0, 0 + c->sqc2(vf11, 160, a0); // sqc2 vf11, 160(a0) + +block_21: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("add-light-sphere-to-light-group", execute, 256); +} + +} // namespace add_light_sphere_to_light_group +} // namespace Mips2C +// add add_light_sphere_to_light_group::link to the link callback table for the object file. +// FWD DEC: +namespace add_light_sphere_to_light_group { extern void link(); } + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace light_hash_get_bucket_index { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + // nop // sll r0, r0, 0 + c->pceqw(a2, r0, r0); // pceqw a2, r0, r0 + c->lqc2(vf2, 0, a1); // lqc2 vf2, 0(a1) + c->lqc2(vf1, 12, a0); // lqc2 vf1, 12(a0) + c->lqc2(vf3, 28, a0); // lqc2 vf3, 28(a0) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->lq(a3, 44, a0); // lq a3, 44(a0) + c->vmul(DEST::xyzw, vf2, vf2, vf3); // vmul.xyzw vf2, vf2, vf3 + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + c->mov128_gpr_vf(a1, vf2); // qmfc2.i a1, vf2 + c->paddw(a3, a3, a2); // paddw a3, a3, a2 + c->pcgtw(a2, r0, a1); // pcgtw a2, r0, a1 + c->pcgtw(a3, a1, a3); // pcgtw a3, a1, a3 + c->ppach(a2, r0, a2); // ppach a2, r0, a2 + c->ppach(a3, r0, a3); // ppach a3, r0, a3 + c->sq(a1, 0, v1); // sq a1, 0(v1) + c->or_(a1, a2, a3); // or a1, a2, a3 + c->dsll(a1, a1, 16); // dsll a1, a1, 16 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L35 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->lw(a1, 0, v1); // lw a1, 0(v1) + c->lw(a2, 4, v1); // lw a2, 4(v1) + c->lbu(a3, 6, a0); // lbu a3, 6(a0) + c->mult3(a2, a2, a3); // mult3 a2, a2, a3 + c->daddu(a1, a1, a2); // daddu a1, a1, a2 + c->lw(v1, 8, v1); // lw v1, 8(v1) + c->lbu(a0, 7, a0); // lbu a0, 7(a0) + c->mult3(v1, v1, a0); // mult3 v1, v1, a0 + c->daddu(v0, a1, v1); // daddu v0, a1, v1 + //beq r0, r0, L36 // beq r0, r0, L36 + // nop // sll r0, r0, 0 + goto block_3; // branch always + + +block_2: + c->addiu(v0, r0, -1); // addiu v0, r0, -1 + +block_3: + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("light-hash-get-bucket-index", execute, 128); +} + +} // namespace light_hash_get_bucket_index +} // namespace Mips2C +// add light_hash_get_bucket_index::link to the link callback table for the object file. +// FWD DEC: +namespace light_hash_get_bucket_index { extern void link(); } + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace light_hash_add_items { +struct Cache { + void* light_hash_work; // *light-hash-work* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -48); // daddiu sp, sp, -48 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->daddiu(t0, sp, 16); // daddiu t0, sp, 16 + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a1); // lqc2 vf2, 16(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf1, 12, a0); // lqc2 vf1, 12(a0) + c->vadd_bc(DEST::xyzw, BC::w, vf3, vf2, vf2); // vaddw.xyzw vf3, vf2, vf2 + c->lqc2(vf4, 28, a0); // lqc2 vf4, 28(a0) + c->vsub_bc(DEST::xyzw, BC::w, vf2, vf2, vf2); // vsubw.xyzw vf2, vf2, vf2 + c->load_symbol2(a1, cache.light_hash_work); // lw a1, *light-hash-work*(s7) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->lq(v1, 44, a0); // lq v1, 44(a0) + c->vsub(DEST::xyzw, vf3, vf3, vf1); // vsub.xyzw vf3, vf3, vf1 + c->lq(a1, 0, a1); // lq a1, 0(a1) + c->vmul(DEST::xyzw, vf2, vf2, vf4); // vmul.xyzw vf2, vf2, vf4 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf3, vf3, vf4); // vmul.xyzw vf3, vf3, vf4 + c->dsubu(v1, v1, a1); // dsubu v1, v1, a1 + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf2); // qmfc2.i a3, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a1, vf3); // qmfc2.i a1, vf3 + c->pmaxw(a3, a3, r0); // pmaxw a3, a3, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(a1, a1, r0); // pmaxw a1, a1, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(a3, a3, v1); // pminw a3, a3, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(v1, a1, v1); // pminw v1, a1, v1 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->sq(a3, 0, t0); // sq a3, 0(t0) + // nop // sll r0, r0, 0 + c->sq(v1, 16, t0); // sq v1, 16(t0) + c->addiu(v1, r0, 4); // addiu v1, r0, 4 + c->lw(a1, 44, a0); // lw a1, 44(a0) + c->mult3(a1, a1, v1); // mult3 a1, a1, v1 + c->lw(a3, 52, a0); // lw a3, 52(a0) + c->mult3(a3, a3, a1); // mult3 a3, a3, a1 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + c->lw(t2, 0, t0); // lw t2, 0(t0) + c->dsubu(t1, t1, t2); // dsubu t1, t1, t2 + c->lw(t2, 16, t0); // lw t2, 16(t0) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->lw(t3, 4, t0); // lw t3, 4(t0) + c->dsubu(t2, t2, t3); // dsubu t2, t2, t3 + c->lw(t3, 20, t0); // lw t3, 20(t0) + c->daddu(t3, t2, t3); // daddu t3, t2, t3 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->lw(t4, 8, t0); // lw t4, 8(t0) + c->dsubu(t2, t2, t4); // dsubu t2, t2, t4 + c->lw(t4, 24, t0); // lw t4, 24(t0) + c->daddu(t2, t2, t4); // daddu t2, t2, t4 + c->lwu(t4, 60, a0); // lwu t4, 60(a0) + c->lw(t5, 0, t0); // lw t5, 0(t0) + c->mult3(t5, t5, v1); // mult3 t5, t5, v1 + c->lw(t6, 4, t0); // lw t6, 4(t0) + c->mult3(t6, t6, a3); // mult3 t6, t6, a3 + c->daddu(t5, t5, t6); // daddu t5, t5, t6 + c->lw(t0, 8, t0); // lw t0, 8(t0) + c->mult3(t0, t0, a1); // mult3 t0, t0, a1 + c->daddu(t0, t5, t0); // daddu t0, t5, t0 + c->daddu(t0, t4, t0); // daddu t0, t4, t0 + c->mov64(t3, t3); // or t3, t3, r0 + // nop // sll r0, r0, 0 + +block_1: + c->mov64(t4, t2); // or t4, t2, r0 + c->mov64(t5, t0); // or t5, t0, r0 + +block_2: + c->mov64(t6, t1); // or t6, t1, r0 + c->mov64(t7, t5); // or t7, t5, r0 + +block_3: + // nop // sll r0, r0, 0 + c->lhu(ra, 0, t7); // lhu ra, 0(t7) + // nop // sll r0, r0, 0 + c->lhu(t9, 2, t7); // lhu t9, 2(t7) + // nop // sll r0, r0, 0 + c->lw(t8, 64, a0); // lw t8, 64(a0) + c->daddu(ra, ra, t9); // daddu ra, ra, t9 + c->daddiu(t9, t9, 1); // daddiu t9, t9, 1 + c->dsll(ra, ra, 1); // dsll ra, ra, 1 + // nop // sll r0, r0, 0 + c->daddu(t8, t8, ra); // daddu t8, t8, ra + c->sh(t9, 2, t7); // sh t9, 2(t7) + // nop // sll r0, r0, 0 + c->sh(a2, 0, t8); // sh a2, 0(t8) + c->daddiu(t6, t6, -1); // daddiu t6, t6, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t6) != 0; // bne t6, r0, L73 + c->daddu(t7, t7, v1); // daddu t7, t7, v1 + if (bc) {goto block_3;} // branch non-likely + + c->daddiu(t4, t4, -1); // daddiu t4, t4, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t4) != 0; // bne t4, r0, L72 + c->daddu(t5, t5, a1); // daddu t5, t5, a1 + if (bc) {goto block_2;} // branch non-likely + + c->daddiu(t3, t3, -1); // daddiu t3, t3, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L71 + c->daddu(t0, t0, a3); // daddu t0, t0, a3 + if (bc) {goto block_1;} // branch non-likely + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 48); // daddiu sp, sp, 48 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.light_hash_work = intern_from_c(-1, 0, "*light-hash-work*").c(); + gLinkedFunctionTable.reg("light-hash-add-items", execute, 64); +} + +} // namespace light_hash_add_items +} // namespace Mips2C +// add light_hash_add_items::link to the link callback table for the object file. +// FWD DEC: +namespace light_hash_add_items { extern void link(); } + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace light_hash_count_items { +struct Cache { + void* light_hash_work; // *light-hash-work* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -48); // daddiu sp, sp, -48 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a1); // lqc2 vf2, 16(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf1, 12, a0); // lqc2 vf1, 12(a0) + c->vadd_bc(DEST::xyzw, BC::w, vf3, vf2, vf2); // vaddw.xyzw vf3, vf2, vf2 + c->lqc2(vf4, 28, a0); // lqc2 vf4, 28(a0) + c->vsub_bc(DEST::xyzw, BC::w, vf2, vf2, vf2); // vsubw.xyzw vf2, vf2, vf2 + c->load_symbol2(a2, cache.light_hash_work); // lw a2, *light-hash-work*(s7) + c->vsub(DEST::xyzw, vf2, vf2, vf1); // vsub.xyzw vf2, vf2, vf1 + c->lq(a1, 44, a0); // lq a1, 44(a0) + c->vsub(DEST::xyzw, vf3, vf3, vf1); // vsub.xyzw vf3, vf3, vf1 + c->lq(a2, 0, a2); // lq a2, 0(a2) + c->vmul(DEST::xyzw, vf2, vf2, vf4); // vmul.xyzw vf2, vf2, vf4 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf3, vf3, vf4); // vmul.xyzw vf3, vf3, vf4 + c->dsubu(a1, a1, a2); // dsubu a1, a1, a2 + c->vftoi0(DEST::xyzw, vf2, vf2); // vftoi0.xyzw vf2, vf2 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf2); // qmfc2.i a3, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a2, vf3); // qmfc2.i a2, vf3 + c->pmaxw(a3, a3, r0); // pmaxw a3, a3, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxw(a2, a2, r0); // pmaxw a2, a2, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(a3, a3, a1); // pminw a3, a3, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminw(a1, a2, a1); // pminw a1, a2, a1 + c->mfc1(r0, f31); // mfc1 r0, f31 + // nop // sll r0, r0, 0 + c->sq(a3, 0, v1); // sq a3, 0(v1) + // nop // sll r0, r0, 0 + c->sq(a1, 16, v1); // sq a1, 16(v1) + c->addiu(a1, r0, 4); // addiu a1, r0, 4 + c->lw(a2, 44, a0); // lw a2, 44(a0) + c->mult3(a2, a2, a1); // mult3 a2, a2, a1 + c->lw(a3, 52, a0); // lw a3, 52(a0) + c->mult3(a3, a3, a2); // mult3 a3, a3, a2 + c->addiu(t0, r0, 1); // addiu t0, r0, 1 + c->lw(t1, 0, v1); // lw t1, 0(v1) + c->dsubu(t0, t0, t1); // dsubu t0, t0, t1 + c->lw(t1, 16, v1); // lw t1, 16(v1) + c->daddu(t0, t0, t1); // daddu t0, t0, t1 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + c->lw(t2, 4, v1); // lw t2, 4(v1) + c->dsubu(t1, t1, t2); // dsubu t1, t1, t2 + c->lw(t2, 20, v1); // lw t2, 20(v1) + c->daddu(t2, t1, t2); // daddu t2, t1, t2 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + c->lw(t3, 8, v1); // lw t3, 8(v1) + c->dsubu(t1, t1, t3); // dsubu t1, t1, t3 + c->lw(t3, 24, v1); // lw t3, 24(v1) + c->daddu(t1, t1, t3); // daddu t1, t1, t3 + c->lwu(a0, 60, a0); // lwu a0, 60(a0) + c->lw(t3, 0, v1); // lw t3, 0(v1) + c->mult3(t3, t3, a1); // mult3 t3, t3, a1 + c->lw(t4, 4, v1); // lw t4, 4(v1) + c->mult3(t4, t4, a3); // mult3 t4, t4, a3 + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->lw(v1, 8, v1); // lw v1, 8(v1) + c->mult3(v1, v1, a2); // mult3 v1, v1, a2 + c->daddu(v1, t3, v1); // daddu v1, t3, v1 + c->daddu(v1, a0, v1); // daddu v1, a0, v1 + c->mov64(a0, t2); // or a0, t2, r0 + // nop // sll r0, r0, 0 + +block_1: + c->mov64(t2, t1); // or t2, t1, r0 + c->mov64(t3, v1); // or t3, v1, r0 + +block_2: + c->mov64(t4, t0); // or t4, t0, r0 + c->mov64(t5, t3); // or t5, t3, r0 + +block_3: + // nop // sll r0, r0, 0 + c->lhu(t6, 2, t5); // lhu t6, 2(t5) + // nop // sll r0, r0, 0 + c->daddiu(t6, t6, 1); // daddiu t6, t6, 1 + // nop // sll r0, r0, 0 + c->sh(t6, 2, t5); // sh t6, 2(t5) + c->daddiu(t4, t4, -1); // daddiu t4, t4, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t4) != 0; // bne t4, r0, L77 + c->daddu(t5, t5, a1); // daddu t5, t5, a1 + if (bc) {goto block_3;} // branch non-likely + + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L76 + c->daddu(t3, t3, a2); // daddu t3, t3, a2 + if (bc) {goto block_2;} // branch non-likely + + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L75 + c->daddu(v1, v1, a3); // daddu v1, v1, a3 + if (bc) {goto block_1;} // branch non-likely + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 48); // daddiu sp, sp, 48 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.light_hash_work = intern_from_c(-1, 0, "*light-hash-work*").c(); + gLinkedFunctionTable.reg("light-hash-count-items", execute, 128); +} + +} // namespace light_hash_count_items +} // namespace Mips2C +// add light_hash_count_items::link to the link callback table for the object file. +// FWD DEC: +namespace light_hash_count_items { extern void link(); } + diff --git a/game/mips2c/jakx_functions/merc_blend_shape.cpp b/game/mips2c/jakx_functions/merc_blend_shape.cpp new file mode 100644 index 0000000000..08d9ebf55e --- /dev/null +++ b/game/mips2c/jakx_functions/merc_blend_shape.cpp @@ -0,0 +1,576 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace setup_blerc_chains_for_one_fragment { +struct Cache { + void* blerc_globals; // *blerc-globals* + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + c->lb(v1, 0, t0); // lb v1, 0(t0) + c->addiu(t2, r0, 0); // addiu t2, r0, 0 + c->mov128_gpr_gpr(t7, r0); // por t7, r0, r0 + c->load_symbol2(t3, cache.blerc_globals); // lw t3, *blerc-globals*(s7) + c->lw(t3, 4, t3); // lw t3, 4(t3) + c->mov64(t4, v1); // or t4, v1, r0 + +block_1: + c->lui(t7, 4096); // lui t7, 4096 + // nop // sll r0, r0, 0 + c->daddiu(t7, t7, 1); // daddiu t7, t7, 1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t3) == 0; // beq t3, r0, L11 + c->sq(t7, 0, a2); // sq t7, 0(a2) + if (bc) {goto block_3;} // branch non-likely + + c->sw(a2, 12, t3); // sw a2, 12(t3) + // nop // sll r0, r0, 0 + +block_3: + c->mov64(t3, a2); // or t3, a2, r0 + c->daddu(t6, t4, t4); // daddu t6, t4, t4 + c->daddu(t5, v1, v1); // daddu t5, v1, v1 + c->daddu(t6, t6, t4); // daddu t6, t6, t4 + c->daddu(t7, t5, v1); // daddu t7, t5, v1 + c->daddu(t5, t6, t6); // daddu t5, t6, t6 + c->daddu(t6, t7, t7); // daddu t6, t7, t7 + c->daddu(t7, t5, t5); // daddu t7, t5, t5 + c->daddiu(t6, t6, 15); // daddiu t6, t6, 15 + c->daddiu(t5, t5, 15); // daddiu t5, t5, 15 + c->andi(t6, t6, 65520); // andi t6, t6, 65520 + c->dsrl(t5, t5, 4); // dsrl t5, t5, 4 + c->daddu(t8, t2, t2); // daddu t8, t2, t2 + c->daddiu(t7, t7, 15); // daddiu t7, t7, 15 + c->daddu(t9, t8, t2); // daddu t9, t8, t2 + c->dsrl(t8, t7, 4); // dsrl t8, t7, 4 + c->daddu(ra, t9, t9); // daddu ra, t9, t9 + c->addiu(t9, r0, 0); // addiu t9, r0, 0 + c->daddu(t7, ra, ra); // daddu t7, ra, ra + c->daddiu(s3, a2, 32); // daddiu s3, a2, 32 + c->daddu(s2, ra, a3); // daddu s2, ra, a3 + c->daddu(ra, t7, t1); // daddu ra, t7, t1 + c->lui(t7, 12288); // lui t7, 12288 + c->daddiu(gp, a0, -1); // daddiu gp, a0, -1 + c->daddu(t7, t7, t5); // daddu t7, t7, t5 + c->mov64(s5, a1); // or s5, a1, r0 + c->sq(t7, 0, s3); // sq t7, 0(s3) + c->daddiu(s4, t0, 2); // daddiu s4, t0, 2 + c->sw(s2, 4, s3); // sw s2, 4(s3) + c->daddu(s2, s2, t6); // daddu s2, s2, t6 + c->daddiu(s3, s3, 16); // daddiu s3, s3, 16 + // nop // sll r0, r0, 0 + +block_4: + c->lb(s1, 0, s4); // lb s1, 0(s4) + c->daddiu(s4, s4, 1); // daddiu s4, s4, 1 + c->lh(s0, 0, s5); // lh s0, 0(s5) + c->daddiu(s5, s5, 2); // daddiu s5, s5, 2 + bc = c->sgpr64(s1) == 0; // beq s1, r0, L13 + c->sq(t7, 0, s3); // sq t7, 0(s3) + if (bc) {goto block_7;} // branch non-likely + + c->sw(s2, 4, s3); // sw s2, 4(s3) + c->daddu(s2, s2, t6); // daddu s2, s2, t6 + bc = c->sgpr64(s0) == 0; // beq s0, r0, L13 + c->sw(s0, 12, s3); // sw s0, 12(s3) + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(s3, s3, 16); // daddiu s3, s3, 16 + c->daddiu(t9, t9, 1); // daddiu t9, t9, 1 + +block_7: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L12 + c->daddiu(gp, gp, -1); // daddiu gp, gp, -1 + if (bc) {goto block_4;} // branch non-likely + + c->sq(t7, 0, s3); // sq t7, 0(s3) + c->mov128_gpr_gpr(t6, r0); // por t6, r0, r0 + c->sw(ra, 4, s3); // sw ra, 4(s3) + get_fake_spad_addr2(t6, cache.fake_scratchpad_data, 0, c);// lui t6, 28672 + c->sb(t8, 0, s3); // sb t8, 0(s3) + // nop // sll r0, r0, 0 + c->sq(t6, 16, s3); // sq t6, 16(s3) + c->daddiu(t6, s3, 32); // daddiu t6, s3, 32 + c->sw(t9, 20, a2); // sw t9, 20(a2) + // nop // sll r0, r0, 0 + c->sw(t4, 16, a2); // sw t4, 16(a2) + // nop // sll r0, r0, 0 + c->sw(ra, 24, a2); // sw ra, 24(a2) + // nop // sll r0, r0, 0 + c->sw(t8, 28, a2); // sw t8, 28(a2) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t4) != c->sgpr64(v1); // bne t4, v1, L14 + c->daddiu(t5, t5, 1); // daddiu t5, t5, 1 + if (bc) {goto block_11;} // branch non-likely + + c->daddiu(t7, t9, 3); // daddiu t7, t9, 3 + c->multu3(t5, t5, t7); // multu3 t5, t5, t7 + c->daddiu(t5, t5, -457); // daddiu t5, t5, -457 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t5)) <= 0; // blez t5, L14 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + //beq r0, r0, L10 // beq r0, r0, L10 + c->addiu(t4, r0, 24); // addiu t4, r0, 24 + goto block_1; // branch always + + +block_11: + c->mov64(a2, t6); // or a2, t6, r0 + c->daddu(t2, t2, t4); // daddu t2, t2, t4 + bc = c->sgpr64(t2) == c->sgpr64(v1); // beq t2, v1, L15 + c->daddu(t5, t2, t4); // daddu t5, t2, t4 + if (bc) {goto block_14;} // branch non-likely + + c->dsubu(t5, t5, v1); // dsubu t5, t5, v1 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t5)) <= 0; // blez t5, L10 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + //beq r0, r0, L10 // beq r0, r0, L10 + c->dsubu(t4, v1, t2); // dsubu t4, v1, t2 + goto block_1; // branch always + + +block_14: + c->load_symbol2(v1, cache.blerc_globals); // lw v1, *blerc-globals*(s7) + c->sw(t3, 4, v1); // sw t3, 4(v1) + c->mov64(v0, a2); // or v0, a2, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.blerc_globals = intern_from_c(-1, 0, "*blerc-globals*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("setup-blerc-chains-for-one-fragment", execute, 512); +} + +} // namespace setup_blerc_chains_for_one_fragment +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace blerc_execute { +struct Cache { + void* blerc_globals; // *blerc-globals* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* gsf_buffer; // *gsf-buffer* + void* stats_blerc; // *stats-blerc* + void* flush_cache; // flush-cache +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + u32 madr, sadr, qwc, tadr; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s2, 16, sp); // sq s2, 16(sp) + c->sq(s3, 32, sp); // sq s3, 32(sp) + c->sq(s4, 48, sp); // sq s4, 48(sp) + c->sq(s5, 64, sp); // sq s5, 64(sp) + c->sq(gp, 80, sp); // sq gp, 80(sp) + c->load_symbol2(v1, cache.blerc_globals); // lw v1, *blerc-globals*(s7) + c->lwu(s5, 0, v1); // lwu s5, 0(v1) + bc = c->sgpr64(s5) == 0; // beq s5, r0, L55 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_33;} // branch non-likely + + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + c->addiu(gp, r0, 0); // addiu gp, r0, 0 + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + c->load_symbol2(v1, cache.gsf_buffer); // lw v1, *gsf-buffer*(s7) + c->load_symbol2(t9, cache.flush_cache); // lw t9, flush-cache(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->addiu(v1, r0, 848); // addiu v1, r0, 848 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->daddu(a1, v1, a0); // daddu a1, v1, a0 + c->load_symbol2(v1, cache.blerc_globals); // lw v1, *blerc-globals*(s7) + c->daddu(v1, r0, v1); // daddu v1, r0, v1 + // nop // sll r0, r0, 0 + c->lui(a0, 4096); // lui a0, 4096 + // nop // sll r0, r0, 0 + c->ori(a0, a0, 54272); // ori a0, a0, 54272 + c->andi(a1, a1, 16383); // andi a1, a1, 16383 + +// block_2: +// c->lw(a2, 0, a0); // lw a2, 0(a0) +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// c->andi(a2, a2, 256); // andi a2, a2, 256 +// // nop // sll r0, r0, 0 +// bc = c->sgpr64(a2) != 0; // bne a2, r0, L37 +// c->lw(a2, 0, v1); // lw a2, 0(v1) +// if (bc) {goto block_2;} // branch non-likely + c->lw(a2, 0, v1); + + bc = c->sgpr64(a2) == 0; // beq a2, r0, L38 + // c->sw(a1, 128, a0); // sw a1, 128(a0) + sadr = c->sgpr64(a1); + if (bc) {goto block_5;} // branch non-likely + + c->addiu(v1, r0, 324); // addiu v1, r0, 324 + // c->sw(a2, 48, a0); // sw a2, 48(a0) + tadr = c->sgpr64(a2); + // c->sw(r0, 32, a0); // sw r0, 32(a0) + // Unknown instr: sync.l + // c->sw(v1, 0, a0); // sw v1, 0(a0) + spad_to_dma_blerc_chain(cache.fake_scratchpad_data, sadr, tadr); + // Unknown instr: sync.l + +block_5: + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + //beq r0, r0, L54 // beq r0, r0, L54 + // nop // sll r0, r0, 0 + goto block_31; // branch always + + +block_6: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L40 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->daddu(a0, r0, v1); // daddu a0, r0, v1 + //beq r0, r0, L41 // beq r0, r0, L41 + // nop // sll r0, r0, 0 + goto block_9; // branch always + + +block_8: + c->addiu(v1, r0, 8192); // addiu v1, r0, 8192 + get_fake_spad_addr2(a0, cache.fake_scratchpad_data, 0, c);// lui a0, 28672 + c->daddu(a0, v1, a0); // daddu a0, v1, a0 + +block_9: + bc = c->sgpr64(gp) != 0; // bne gp, r0, L42 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + c->addiu(v1, r0, 8192); // addiu v1, r0, 8192 + get_fake_spad_addr2(a1, cache.fake_scratchpad_data, 0, c);// lui a1, 28672 + c->daddu(a1, v1, a1); // daddu a1, v1, a1 + //beq r0, r0, L43 // beq r0, r0, L43 + // nop // sll r0, r0, 0 + goto block_12; // branch always + + +block_11: + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->daddu(a1, r0, v1); // daddu a1, r0, v1 + +block_12: + c->daddiu(v1, a0, 848); // daddiu v1, a0, 848 + c->daddu(a2, r0, a0); // daddu a2, r0, a0 + c->daddiu(a3, a1, 848); // daddiu a3, a1, 848 + c->daddiu(a1, v1, 12); // daddiu a1, v1, 12 + // nop // sll r0, r0, 0 + c->lui(a2, 4096); // lui a2, 4096 + // nop // sll r0, r0, 0 + c->ori(a2, a2, 54272); // ori a2, a2, 54272 + c->andi(a3, a3, 16383); // andi a3, a3, 16383 + +// block_13: +// c->lw(t0, 0, a2); // lw t0, 0(a2) +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// c->andi(t0, t0, 256); // andi t0, t0, 256 +// // nop // sll r0, r0, 0 +// bc = c->sgpr64(t0) != 0; // bne t0, r0, L44 +// c->lw(t0, 0, a1); // lw t0, 0(a1) +// if (bc) {goto block_13;} // branch non-likely + + c->lw(t0, 0, a1); + + bc = c->sgpr64(t0) == 0; // beq t0, r0, L45 + // c->sw(a3, 128, a2); // sw a3, 128(a2) + sadr = c->sgpr64(a3); + if (bc) {goto block_16;} // branch non-likely + + c->addiu(a1, r0, 324); // addiu a1, r0, 324 + // c->sw(t0, 48, a2); // sw t0, 48(a2) + tadr = c->sgpr64(t0); + // c->sw(r0, 32, a2); // sw r0, 32(a2) + // Unknown instr: sync.l + // c->sw(a1, 0, a2); // sw a1, 0(a2) + // Unknown instr: sync.l + // tadr here is bogus, it's reading something uploaded by the other transfer. + spad_to_dma_blerc_chain(cache.fake_scratchpad_data, sadr, tadr); + +block_16: + c->gprs[a1].du64[0] = 0; // or a1, r0, r0 + c->mov64(a2, a0); // or a2, a0, r0 + c->load_symbol2(a3, cache.gsf_buffer); // lw a3, *gsf-buffer*(s7) + c->daddiu(t2, a2, 880); // daddiu t2, a2, 880 + c->lb(t1, 0, t2); // lb t1, 0(t2) + // nop // sll r0, r0, 0 + c->mov64(t0, a2); // or t0, a2, r0 + c->lw(a1, 868, a2); // lw a1, 868(a2) + c->daddiu(t3, t1, 1); // daddiu t3, t1, 1 + c->mov64(t1, a3); // or t1, a3, r0 + c->sll(t8, t3, 4); // sll t8, t3, 4 + c->sll(t3, a1, 4); // sll t3, a1, 4 + c->daddu(t9, t3, a3); // daddu t9, t3, a3 + c->daddu(t3, t2, t8); // daddu t3, t2, t8 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L48 + c->daddiu(ra, t2, 16); // daddiu ra, t2, 16 + if (bc) {goto block_21;} // branch non-likely + + c->lh(t5, 12, t3); // lh t5, 12(t3) + c->daddu(t2, t3, t8); // daddu t2, t3, t8 + //beq r0, r0, L47 // beq r0, r0, L47 + // nop // sll r0, r0, 0 + goto block_19; // branch always + + +block_18: + c->lh(t5, 12, t2); // lh t5, 12(t2) + c->daddu(t2, t2, t8); // daddu t2, t2, t8 + c->sq(t6, 0, t1); // sq t6, 0(t1) + c->daddiu(t1, t1, 16); // daddiu t1, t1, 16 + +block_19: + c->pcpyh(t5, t5); // pcpyh t5, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + bc = c->sgpr64(t1) != c->sgpr64(t9); // bne t1, t9, L46 + c->pcpyld(t6, t5, t5); // pcpyld t6, t5, t5 + if (bc) {goto block_18;} // branch non-likely + + c->dsubu(t3, t2, t8); // dsubu t3, t2, t8 + // nop // sll r0, r0, 0 + +block_21: + c->addiu(t1, r0, 255); // addiu t1, r0, 255 + c->addiu(t2, r0, 8192); // addiu t2, r0, 8192 + c->lb(s5, 0, t3); // lb s5, 0(t3) + c->daddiu(s4, t3, 16); // daddiu s4, t3, 16 + c->pcpyh(t1, t1); // pcpyh t1, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t1, t1, t1); // pcpyld t1, t1, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyh(t2, t2); // pcpyh t2, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyld(t2, t2, t2); // pcpyld t2, t2, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->mov128_gpr_gpr(t3, t1); // por t3, t1, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->mov128_gpr_gpr(t4, r0); // por t4, r0, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + +block_22: + c->ld(t6, 0, ra); // ld t6, 0(ra) + c->daddu(s2, ra, t8); // daddu s2, ra, t8 + c->daddiu(ra, ra, 8); // daddiu ra, ra, 8 + c->mov64(s3, a3); // or s3, a3, r0 + c->pextlb(t6, r0, t6); // pextlb t6, r0, t6 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmulth(t7, t6, t2); // pmulth t7, t6, t2 + c->ld(t5, 0, s2); // ld t5, 0(s2) + c->daddiu(s5, s5, -1); // daddiu s5, s5, -1 + // nop // sll r0, r0, 0 + //beq r0, r0, L51 // beq r0, r0, L51 + c->daddu(s2, s2, t8); // daddu s2, s2, t8 + goto block_24; // branch always + + +block_23: + c->pmaddh(t7, t5, t6); // pmaddh t7, t5, t6 + c->ld(t5, 0, s2); // ld t5, 0(s2) + c->daddu(s2, s2, t8); // daddu s2, s2, t8 + c->daddiu(s3, s3, 16); // daddiu s3, s3, 16 + +block_24: + c->lq(t6, 0, s3); // lq t6, 0(s3) + c->pextlb(t5, t5, r0); // pextlb t5, t5, r0 + bc = c->sgpr64(s3) != c->sgpr64(t9); // bne s3, t9, L50 + c->psrah(t5, t5, 8); // psrah t5, t5, 8 + if (bc) {goto block_23;} // branch non-likely + + // Unknown instr: pmfhl.uw t5 + c->gprs[t5].du32[0] = c->lo.du32[1]; + c->gprs[t5].du32[1] = c->hi.du32[1]; + c->gprs[t5].du32[2] = c->lo.du32[3]; + c->gprs[t5].du32[3] = c->hi.du32[3]; + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psraw(t7, t7, 13); // psraw t7, t7, 13 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psraw(t5, t5, 13); // psraw t5, t5, 13 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pinteh(t5, t5, t7); // pinteh t5, t5, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminh(t3, t3, t5); // pminh t3, t3, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxh(t4, t4, t5); // pmaxh t4, t4, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pminh(t5, t5, t1); // pminh t5, t5, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pmaxh(t5, t5, r0); // pmaxh t5, t5, r0 + c->lq(t7, 0, s4); // lq t7, 0(s4) + c->ppacb(t5, r0, t5); // ppacb t5, r0, t5 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->ppach(t7, r0, t7); // ppach t7, r0, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t5, t5, t7); // pextlh t5, t5, t7 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->sq(t5, 0, t0); // sq t5, 0(t0) + c->daddiu(t0, t0, 16); // daddiu t0, t0, 16 + bc = c->sgpr64(s5) != 0; // bne s5, r0, L49 + c->daddiu(s4, s4, 16); // daddiu s4, s4, 16 + if (bc) {goto block_22;} // branch non-likely + + c->load_symbol2(a3, cache.stats_blerc); // lw a3, *stats-blerc*(s7) + bc = c->sgpr64(a3) == c->sgpr64(s7); // beq a3, s7, L52 + c->load_symbol2(a3, cache.blerc_globals); // lw a3, *blerc-globals*(s7) + if (bc) {goto block_28;} // branch non-likely + + c->lw(t2, 12, a3); // lw t2, 12(a3) + c->lw(t1, 16, a3); // lw t1, 16(a3) + c->lw(t0, 20, a3); // lw t0, 20(a3) + c->lw(a2, 864, a2); // lw a2, 864(a2) + c->multu3(a1, a1, a2); // multu3 a1, a1, a2 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + c->daddu(a2, t1, a2); // daddu a2, t1, a2 + c->daddu(a1, t0, a1); // daddu a1, t0, a1 + c->sw(t2, 12, a3); // sw t2, 12(a3) + c->sw(a2, 16, a3); // sw a2, 16(a3) + c->sw(a1, 20, a3); // sw a1, 20(a3) + c->pcpyud(a1, t3, r0); // pcpyud a1, t3, r0 + c->pminh(t3, t3, a1); // pminh t3, t3, a1 + c->dsrl32(a1, t3, 0); // dsrl32 a1, t3, 0 + c->pminh(t3, t3, a1); // pminh t3, t3, a1 + c->dsrl(t3, t3, 16); // dsrl t3, t3, 16 + c->lh(a1, 8, a3); // lh a1, 8(a3) + c->pminh(t3, t3, a1); // pminh t3, t3, a1 + c->sh(t3, 8, a3); // sh t3, 8(a3) + c->pcpyud(a1, t4, r0); // pcpyud a1, t4, r0 + c->pmaxh(t4, t4, a1); // pmaxh t4, t4, a1 + c->dsrl32(a1, t4, 0); // dsrl32 a1, t4, 0 + c->pmaxh(t4, t4, a1); // pmaxh t4, t4, a1 + c->dsrl(t4, t4, 16); // dsrl t4, t4, 16 + c->lh(a1, 10, a3); // lh a1, 10(a3) + c->pmaxh(t4, t4, a1); // pmaxh t4, t4, a1 + c->sh(t4, 10, a3); // sh t4, 10(a3) + +block_28: + c->gprs[a1].du64[0] = 0; // or a1, r0, r0 + c->lwu(a1, 872, a0); // lwu a1, 872(a0) + c->mov64(a3, a0); // or a3, a0, r0 + c->lwu(a0, 876, a0); // lwu a0, 876(a0) + c->lui(a2, 4096); // lui a2, 4096 + // nop // sll r0, r0, 0 + c->ori(a2, a2, 53248); // ori a2, a2, 53248 + c->andi(a3, a3, 16383); // andi a3, a3, 16383 + +// block_29: +// c->lw(t0, 0, a2); // lw t0, 0(a2) +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// c->andi(t0, t0, 256); // andi t0, t0, 256 +// // nop // sll r0, r0, 0 +// bc = c->sgpr64(t0) != 0; // bne t0, r0, L53 +// // nop // sll r0, r0, 0 +// if (bc) {goto block_29;} // branch non-likely + + // c->sw(a3, 128, a2); // sw a3, 128(a2) + sadr = c->sgpr64(a3); + c->addiu(a3, r0, 256); // addiu a3, r0, 256 + // c->sw(a1, 16, a2); // sw a1, 16(a2) + madr = c->sgpr64(a1); + // nop // sll r0, r0, 0 + // c->sw(a0, 32, a2); // sw a0, 32(a2) + qwc = c->sgpr64(a0); + // Unknown instr: sync.l + // c->sw(a3, 0, a2); // sw a3, 0(a2) + // fmt::print("blerc download 0x{:x} <- 0x{:x} ({} qwc)\n", madr, sadr, qwc); + { + spad_from_dma_no_sadr_off(cache.fake_scratchpad_data, madr, sadr, qwc); + } + // Unknown instr: sync.l + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->addiu(a0, r0, 1); // addiu a0, r0, 1 + c->dsubu(gp, a0, gp); // dsubu gp, a0, gp + c->lwu(s5, 12, v1); // lwu s5, 12(v1) + c->mov64(v1, s5); // or v1, s5, r0 + +block_31: + bc = c->sgpr64(s5) != 0; // bne s5, r0, L39 + // nop // sll r0, r0, 0 + if (bc) {goto block_6;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_33: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 80, sp); // lq gp, 80(sp) + c->lq(s5, 64, sp); // lq s5, 64(sp) + c->lq(s4, 48, sp); // lq s4, 48(sp) + c->lq(s3, 32, sp); // lq s3, 32(sp) + c->lq(s2, 16, sp); // lq s2, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.blerc_globals = intern_from_c(-1, 0, "*blerc-globals*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.gsf_buffer = intern_from_c(-1, 0, "*gsf-buffer*").c(); + cache.stats_blerc = intern_from_c(-1, 0, "*stats-blerc*").c(); + cache.flush_cache = intern_from_c(-1, 0, "flush-cache").c(); + gLinkedFunctionTable.reg("blerc-execute", execute, 512); +} + +} // namespace blerc_execute +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/nav_control.cpp b/game/mips2c/jakx_functions/nav_control.cpp new file mode 100644 index 0000000000..ffe933df13 --- /dev/null +++ b/game/mips2c/jakx_functions/nav_control.cpp @@ -0,0 +1,274 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_39_nav_state { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + bool cop1_bc = false; + float acc; + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->swc1(f20, 80, sp); // swc1 f20, 80(sp) + c->swc1(f22, 84, sp); // swc1 f22, 84(sp) + c->lwc1(f0, 32, a0); // lwc1 f0, 32(a0) + c->lwu(v1, 4, a0); // lwu v1, 4(a0) + c->lwc1(f1, 28, v1); // lwc1 f1, 28(v1) + c->muls(f1, f0, f1); // mul.s f1, f0, f1 + c->daddiu(v1, a0, 48); // daddiu v1, a0, 48 + c->lwc1(f0, 0, v1); // lwc1 f0, 0(v1) + c->lwc1(f2, 0, v1); // lwc1 f2, 0(v1) + c->muls(f0, f0, f2); // mul.s f0, f0, f2 + c->lwc1(f2, 8, v1); // lwc1 f2, 8(v1) + c->lwc1(f3, 8, v1); // lwc1 f3, 8(v1) + c->muls(f2, f2, f3); // mul.s f2, f2, f3 + c->adds(f0, f0, f2); // add.s f0, f0, f2 + c->sqrts(f0, f0); // sqrt.s f0, f0 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + c->daddiu(a1, sp, 32); // daddiu a1, sp, 32 + c->lwu(a2, 12, a0); // lwu a2, 12(a0) + c->lwu(a3, 0, a2); // lwu a3, 0(a2) + c->lwu(a2, 12, a0); // lwu a2, 12(a0) + c->lwu(a2, 0, a2); // lwu a2, 0(a2) + c->lwc1(f2, 28, a2); // lwc1 f2, 28(a2) + cop1_bc = c->fprs[f2] < c->fprs[f0]; // c.lt.s f2, f0 + bc = !cop1_bc; // bc1f L192 + c->mov64(v0, s7); // or v0, s7, r0 + if (bc) {goto block_6;} // branch non-likely + + c->mov64(a2, v1); // or a2, v1, r0 + c->daddiu(t0, a0, 48); // daddiu t0, a0, 48 + c->lui(t1, 16256); // lui t1, 16256 + c->mtc1(f2, t1); // mtc1 f2, t1 + c->divs(f2, f2, f0); // div.s f2, f2, f0 + c->lqc2(vf1, 0, t0); // lqc2 vf1, 0(t0) + c->mfc1(t0, f2); // mfc1 t0, f2 + c->mov128_vf_gpr(vf2, t0); // qmtc2.i vf2, t0 + c->vadd_bc(DEST::w, BC::x, vf1, vf0, vf0); // vaddx.w vf1, vf0, vf0 + c->vmul_bc(DEST::xyz, BC::x, vf1, vf1, vf2); // vmulx.xyz vf1, vf1, vf2 + c->sqc2(vf1, 0, a2); // sqc2 vf1, 0(a2) + c->mtc1(f2, r0); // mtc1 f2, r0 + c->swc1(f2, 4, v1); // swc1 f2, 4(v1) + c->mov64(a2, a1); // or a2, a1, r0 + c->lwc1(f2, 16, a3); // lwc1 f2, 16(a3) + c->cvtws(f1, f1); // cvt.w.s f1, f1 + c->mfc1(a3, f1); // mfc1 a3, f1 + c->dsll32(a3, a3, 16); // dsll32 a3, a3, 16 + c->dsra32(a3, a3, 16); // dsra32 a3, a3, 16 + c->mtc1(f1, a3); // mtc1 f1, a3 + c->cvtsw(f1, f1); // cvt.s.w f1, f1 + c->muls(f1, f2, f1); // mul.s f1, f2, f1 + c->lui(a3, 16255); // lui a3, 16255 + c->lui(t0, -16854); // lui t0, -16854 + c->ori(a3, a3, 65502); // ori a3, a3, 65502 + c->ori(t0, t0, 43253); // ori t0, t0, 43253 + c->subs(f22, f22, f22); // sub.s f22, f22, f22 + c->lui(t1, 15368); // lui t1, 15368 + c->mtc1(f10, a3); // mtc1 f10, a3 + c->ori(a3, t1, 27638); // ori a3, t1, 27638 + c->mtc1(f11, t0); // mtc1 f11, t0 + c->lui(t0, -18099); // lui t0, -18099 + c->muls(f2, f1, f1); // mul.s f2, f1, f1 + c->ori(t0, t0, 8306); // ori t0, t0, 8306 + c->mtc1(f12, a3); // mtc1 f12, a3 + c->lui(a3, 13850); // lui a3, 13850 + c->mtc1(f14, t0); // mtc1 f14, t0 + c->ori(t0, a3, 41599); // ori t0, a3, 41599 + // Unknown instr: mula.s f1, f10 + acc = c->fprs[f1] * c->fprs[f10]; + c->lui(a3, 16256); // lui a3, 16256 + c->muls(f3, f2, f1); // mul.s f3, f2, f1 + c->mov64(a3, a3); // or a3, a3, r0 + c->muls(f4, f2, f2); // mul.s f4, f2, f2 + c->lui(t1, -16641); // lui t1, -16641 + c->mtc1(f15, t0); // mtc1 f15, t0 + c->lui(t0, -16641); // lui t0, -16641 + c->or_(t0, t1, t0); // or t0, t1, t0 + c->mtc1(f16, a3); // mtc1 f16, a3 + // nop // sll r0, r0, 0 + c->mtc1(f17, t0); // mtc1 f17, t0 + // nop // sll r0, r0, 0 + c->muls(f5, f3, f2); // mul.s f5, f3, f2 + // nop // sll r0, r0, 0 + c->muls(f6, f3, f3); // mul.s f6, f3, f3 + // nop // sll r0, r0, 0 + c->muls(f7, f4, f3); // mul.s f7, f4, f3 + // nop // sll r0, r0, 0 + c->muls(f8, f4, f4); // mul.s f8, f4, f4 + // nop // sll r0, r0, 0 + c->muls(f9, f5, f4); // mul.s f9, f5, f4 + c->lui(a3, 15658); // lui a3, 15658 + // Unknown instr: madda.s f3, f11 + acc += c->fprs[f3] * c->fprs[f11]; + c->ori(a3, a3, 31272); // ori a3, a3, 31272 + // Unknown instr: madda.s f5, f12 + acc += c->fprs[f5] * c->fprs[f12]; + c->lui(t0, -17742); // lui t0, -17742 + // Unknown instr: madda.s f7, f14 + acc += c->fprs[f7] * c->fprs[f14]; + c->ori(t0, t0, 48177); // ori t0, t0, 48177 + // Unknown instr: madd.s f21, f9, f15 + c->fprs[f21] = acc + (c->fprs[f9] * c->fprs[f15]); + c->lui(t1, 14249); // lui t1, 14249 + c->mtc1(f18, a3); // mtc1 f18, a3 + c->ori(a3, t1, 13291); // ori a3, t1, 13291 + c->mtc1(f19, t0); // mtc1 f19, t0 + // nop // sll r0, r0, 0 + c->mtc1(f20, a3); // mtc1 f20, a3 + // nop // sll r0, r0, 0 + // Unknown instr: mula.s f16, f16 + acc = c->fprs[f16] * c->fprs[f16]; + // nop // sll r0, r0, 0 + // Unknown instr: madda.s f2, f17 + acc += c->fprs[f2] * c->fprs[f17]; + // nop // sll r0, r0, 0 + // Unknown instr: madda.s f4, f18 + acc += c->fprs[f4] * c->fprs[f18]; + // nop // sll r0, r0, 0 + // Unknown instr: madda.s f6, f19 + acc += c->fprs[f6] * c->fprs[f19]; + // nop // sll r0, r0, 0 + // Unknown instr: madd.s f22, f8, f20 + c->fprs[f22] = acc + (c->fprs[f8] * c->fprs[f20]); + // nop // sll r0, r0, 0 + c->swc1(f21, 0, a2); // swc1 f21, 0(a2) + // nop // sll r0, r0, 0 + c->swc1(f22, 4, a2); // swc1 f22, 4(a2) + c->gprs[a2].du64[0] = 0; // or a2, r0, r0 + c->mov64(a3, v1); // or a3, v1, r0 + c->daddiu(a2, a0, 144); // daddiu a2, a0, 144 + c->lwc1(f1, 0, a3); // lwc1 f1, 0(a3) + c->lwc1(f2, 4, a3); // lwc1 f2, 4(a3) + c->lwc1(f3, 8, a3); // lwc1 f3, 8(a3) + c->lwc1(f4, 0, a2); // lwc1 f4, 0(a2) + c->lwc1(f5, 4, a2); // lwc1 f5, 4(a2) + c->lwc1(f6, 8, a2); // lwc1 f6, 8(a2) + // Unknown instr: mula.s f1, f4 + // Unknown instr: madda.s f2, f5 + // Unknown instr: madd.s f1, f3, f6 + c->fprs[f1] = (c->fprs[f3] * c->fprs[f6]) + (c->fprs[f2] * c->fprs[f5]) + (c->fprs[f1] * c->fprs[f4]); + c->mfc1(a2, f1); // mfc1 a2, f1 + c->mtc1(f1, a2); // mtc1 f1, a2 + c->lwc1(f2, 4, a1); // lwc1 f2, 4(a1) + cop1_bc = c->fprs[f1] < c->fprs[f2]; // c.lt.s f1, f2 + bc = !cop1_bc; // bc1f L192 + c->mov64(v0, s7); // or v0, s7, r0 + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(a2, sp, 48); // daddiu a2, sp, 48 + c->daddiu(a3, sp, 64); // daddiu a3, sp, 64 + c->mov64(t0, a2); // or t0, a2, r0 + c->daddiu(t1, a0, 144); // daddiu t1, a0, 144 + c->lwc1(f1, 0, a1); // lwc1 f1, 0(a1) + c->lwc1(f3, 4, a1); // lwc1 f3, 4(a1) + c->lwc1(f2, 0, t1); // lwc1 f2, 0(t1) + c->lwc1(f4, 8, t1); // lwc1 f4, 8(t1) + c->muls(f5, f3, f2); // mul.s f5, f3, f2 + c->muls(f6, f1, f4); // mul.s f6, f1, f4 + c->adds(f5, f5, f6); // add.s f5, f5, f6 + c->swc1(f5, 0, t0); // swc1 f5, 0(t0) + c->lwc1(f5, 4, t1); // lwc1 f5, 4(t1) + c->swc1(f5, 4, t0); // swc1 f5, 4(t0) + c->muls(f3, f3, f4); // mul.s f3, f3, f4 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->subs(f1, f3, f1); // sub.s f1, f3, f1 + c->swc1(f1, 8, t0); // swc1 f1, 8(t0) + c->mfc1(t0, f1); // mfc1 t0, f1 + c->mov64(t0, a3); // or t0, a3, r0 + c->daddiu(t1, a0, 144); // daddiu t1, a0, 144 + c->lwc1(f1, 0, a1); // lwc1 f1, 0(a1) + c->negs(f1, f1); // neg.s f1, f1 + c->lwc1(f3, 4, a1); // lwc1 f3, 4(a1) + c->lwc1(f2, 0, t1); // lwc1 f2, 0(t1) + c->lwc1(f4, 8, t1); // lwc1 f4, 8(t1) + c->muls(f5, f3, f2); // mul.s f5, f3, f2 + c->muls(f6, f1, f4); // mul.s f6, f1, f4 + c->adds(f5, f5, f6); // add.s f5, f5, f6 + c->swc1(f5, 0, t0); // swc1 f5, 0(t0) + c->lwc1(f5, 4, t1); // lwc1 f5, 4(t1) + c->swc1(f5, 4, t0); // swc1 f5, 4(t0) + c->muls(f3, f3, f4); // mul.s f3, f3, f4 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->subs(f1, f3, f1); // sub.s f1, f3, f1 + c->swc1(f1, 8, t0); // swc1 f1, 8(t0) + c->mfc1(a1, f1); // mfc1 a1, f1 + c->mov64(t0, a2); // or t0, a2, r0 + c->mov64(a1, v1); // or a1, v1, r0 + c->lwc1(f1, 0, t0); // lwc1 f1, 0(t0) + c->lwc1(f2, 4, t0); // lwc1 f2, 4(t0) + c->lwc1(f3, 8, t0); // lwc1 f3, 8(t0) + c->lwc1(f4, 0, a1); // lwc1 f4, 0(a1) + c->lwc1(f5, 4, a1); // lwc1 f5, 4(a1) + c->lwc1(f6, 8, a1); // lwc1 f6, 8(a1) + // Unknown instr: mula.s f1, f4 + // Unknown instr: madda.s f2, f5 + // Unknown instr: madd.s f1, f3, f6 + c->fprs[f1] = (c->fprs[f3] * c->fprs[f6]) + (c->fprs[f2] * c->fprs[f5]) + (c->fprs[f1] * c->fprs[f4]); + c->mfc1(a1, f1); // mfc1 a1, f1 + c->mtc1(f1, a1); // mtc1 f1, a1 + c->mov64(t0, a3); // or t0, a3, r0 + c->mov64(a1, v1); // or a1, v1, r0 + c->lwc1(f2, 0, t0); // lwc1 f2, 0(t0) + c->lwc1(f3, 4, t0); // lwc1 f3, 4(t0) + c->lwc1(f4, 8, t0); // lwc1 f4, 8(t0) + c->lwc1(f5, 0, a1); // lwc1 f5, 0(a1) + c->lwc1(f6, 4, a1); // lwc1 f6, 4(a1) + c->lwc1(f7, 8, a1); // lwc1 f7, 8(a1) + // Unknown instr: mula.s f2, f5 + // Unknown instr: madda.s f3, f6 + // Unknown instr: madd.s f2, f4, f7 + c->fprs[f2] = (c->fprs[f4] * c->fprs[f7]) + (c->fprs[f3] * c->fprs[f6]) + (c->fprs[f2] * c->fprs[f5]); + c->mfc1(a1, f2); // mfc1 a1, f2 + c->mtc1(f2, a1); // mtc1 f2, a1 + cop1_bc = c->fprs[f2] < c->fprs[f1]; // c.lt.s f2, f1 + bc = !cop1_bc; // bc1f L190 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + c->mov64(a1, v1); // or a1, v1, r0 + c->lq(a2, 0, a2); // lq a2, 0(a2) + c->sq(a2, 0, a1); // sq a2, 0(a1) + //beq r0, r0, L191 // beq r0, r0, L191 + // nop // sll r0, r0, 0 + goto block_5; // branch always + + +block_4: + c->mov64(a1, v1); // or a1, v1, r0 + c->lq(a2, 0, a3); // lq a2, 0(a3) + c->sq(a2, 0, a1); // sq a2, 0(a1) + +block_5: + c->daddiu(a0, a0, 48); // daddiu a0, a0, 48 + c->lqc2(vf1, 0, v1); // lqc2 vf1, 0(v1) + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mov128_vf_gpr(vf2, v1); // qmtc2.i vf2, v1 + c->vadd_bc(DEST::w, BC::x, vf1, vf0, vf0); // vaddx.w vf1, vf0, vf0 + c->vmul_bc(DEST::xyz, BC::x, vf1, vf1, vf2); // vmulx.xyz vf1, vf1, vf2 + c->sqc2(vf1, 0, a0); // sqc2 vf1, 0(a0) + c->daddiu(v0, s7, 4); // daddiu v0, s7, #t + +block_6: + c->lwc1(f22, 84, sp); // lwc1 f22, 84(sp) + c->lwc1(f20, 80, sp); // lwc1 f20, 80(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 39 nav-state)", execute, 256); +} + +} // namespace method_39_nav_state +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/nav_engine.cpp b/game/mips2c/jakx_functions/nav_engine.cpp new file mode 100644 index 0000000000..8481113d20 --- /dev/null +++ b/game/mips2c/jakx_functions/nav_engine.cpp @@ -0,0 +1,546 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_21_nav_engine { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lwu(v1, 80, a0); // lwu v1, 80(a0) + c->lwu(v1, 4, v1); // lwu v1, 4(v1) + c->lwu(a2, 8, a0); // lwu a2, 8(a0) + c->lwu(a2, 4, a2); // lwu a2, 4(a2) + c->dsubu(v1, v1, a2); // dsubu v1, v1, a2 + c->addiu(a2, r0, 0); // addiu a2, r0, 0 + //beq r0, r0, L31 // beq r0, r0, L31 + // nop // sll r0, r0, 0 + goto block_4; // branch always + + +block_1: + c->lwu(a3, 4, a1); // lwu a3, 4(a1) + c->addiu(t0, r0, 288); // addiu t0, r0, 288 + c->mult3(t0, t0, a2); // mult3 t0, t0, a2 + c->daddu(a3, a3, t0); // daddu a3, a3, t0 + c->daddiu(t0, a3, 112); // daddiu t0, a3, 112 + c->lwu(t1, 8, a3); // lwu t1, 8(a3) + bc = c->sgpr64(s7) == c->sgpr64(t1); // beq s7, t1, L30 + c->mov64(t1, s7); // or t1, s7, r0 + if (bc) {goto block_3;} // branch non-likely + + c->lwu(t1, 76, a0); // lwu t1, 76(a0) + c->daddiu(t1, t1, 32); // daddiu t1, t1, 32 + c->sw(t1, 56, a3); // sw t1, 56(a3) + c->lwu(t1, 80, a0); // lwu t1, 80(a0) + c->sw(t1, 124, a3); // sw t1, 124(a3) + c->lwu(t1, 0, a1); // lwu t1, 0(a1) + c->addiu(t2, r0, 288); // addiu t2, r0, 288 + c->mult3(t2, t2, a2); // mult3 t2, t2, a2 + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->sw(t1, 4, t0); // sw t1, 4(t0) + c->mov64(t1, v1); // or t1, v1, r0 + c->lw(t2, 16, t0); // lw t2, 16(t0) + c->daddu(t3, t2, t1); // daddu t3, t2, t1 + c->xor_(t4, t2, s7); // xor t4, t2, s7 + c->sltiu(t4, t4, 1); // sltiu t4, t4, 1 + c->movz(t2, t3, t4); // movz t2, t3, t4 + c->sw(t2, 16, t0); // sw t2, 16(t0) + c->lw(t2, 28, t0); // lw t2, 28(t0) + c->daddu(t3, t2, t1); // daddu t3, t2, t1 + c->xor_(t4, t2, s7); // xor t4, t2, s7 + c->sltiu(t4, t4, 1); // sltiu t4, t4, 1 + c->movz(t2, t3, t4); // movz t2, t3, t4 + c->sw(t2, 28, t0); // sw t2, 28(t0) + c->lw(t2, 24, t0); // lw t2, 24(t0) + c->daddu(t3, t2, t1); // daddu t3, t2, t1 + c->xor_(t4, t2, s7); // xor t4, t2, s7 + c->sltiu(t4, t4, 1); // sltiu t4, t4, 1 + c->movz(t2, t3, t4); // movz t2, t3, t4 + c->sw(t2, 24, t0); // sw t2, 24(t0) + c->lw(t2, 20, t0); // lw t2, 20(t0) + c->daddu(t1, t2, t1); // daddu t1, t2, t1 + c->xor_(t3, t2, s7); // xor t3, t2, s7 + c->sltiu(t3, t3, 1); // sltiu t3, t3, 1 + c->movz(t2, t1, t3); // movz t2, t1, t3 + c->sw(t2, 20, t0); // sw t2, 20(t0) + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + c->lwu(t0, 0, a1); // lwu t0, 0(a1) + c->addiu(t1, r0, 288); // addiu t1, r0, 288 + c->mult3(t1, t1, a2); // mult3 t1, t1, a2 + c->daddu(t1, t0, t1); // daddu t1, t0, t1 + c->lwu(a3, 8, a3); // lwu a3, 8(a3) + c->sw(t1, 200, a3); // sw t1, 200(a3) + +block_3: + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + +block_4: + c->lb(a3, 14, a1); // lb a3, 14(a1) + c->slt(a3, a2, a3); // slt a3, a2, a3 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L29 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 21 nav-engine)", execute, 256); +} + +} // namespace method_21_nav_engine +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_20_nav_engine { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lwu(v1, 8, a0); // lwu v1, 8(a0) + c->lwu(v1, 4, v1); // lwu v1, 4(v1) + c->lwu(a2, 80, a0); // lwu a2, 80(a0) + c->lwu(a2, 4, a2); // lwu a2, 4(a2) + c->dsubu(v1, v1, a2); // dsubu v1, v1, a2 + c->addiu(a2, r0, 0); // addiu a2, r0, 0 + //beq r0, r0, L36 // beq r0, r0, L36 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_1: + c->lwu(a3, 4, a1); // lwu a3, 4(a1) + c->addiu(t0, r0, 288); // addiu t0, r0, 288 + c->mult3(t0, t0, a2); // mult3 t0, t0, a2 + c->daddu(a3, a3, t0); // daddu a3, a3, t0 + c->daddiu(t0, a3, 112); // daddiu t0, a3, 112 + c->lwu(t1, 8, a3); // lwu t1, 8(a3) + bc = c->sgpr64(s7) == c->sgpr64(t1); // beq s7, t1, L35 + c->mov64(t1, s7); // or t1, s7, r0 + if (bc) {goto block_5;} // branch non-likely + + c->addiu(t1, r0, -257); // addiu t1, r0, -257 + c->lwu(t2, 0, a3); // lwu t2, 0(a3) + c->and_(t1, t1, t2); // and t1, t1, t2 + c->sw(t1, 0, a3); // sw t1, 0(a3) + c->lwu(t1, 8, a3); // lwu t1, 8(a3) + c->lwu(t1, 4, t1); // lwu t1, 4(t1) + c->andi(t1, t1, 2048); // andi t1, t1, 2048 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L34 + c->mov64(t1, s7); // or t1, s7, r0 + if (bc) {goto block_4;} // branch non-likely + + c->lwu(t1, 0, a3); // lwu t1, 0(a3) + c->ori(t1, t1, 256); // ori t1, t1, 256 + c->sw(t1, 0, a3); // sw t1, 0(a3) + +block_4: + c->lwu(t1, 4, a0); // lwu t1, 4(a0) + c->daddiu(t1, t1, 32); // daddiu t1, t1, 32 + c->sw(t1, 56, a3); // sw t1, 56(a3) + c->lwu(t1, 8, a0); // lwu t1, 8(a0) + c->sw(t1, 124, a3); // sw t1, 124(a3) + c->mov64(t1, v1); // or t1, v1, r0 + c->lw(t2, 16, t0); // lw t2, 16(t0) + c->daddu(t3, t2, t1); // daddu t3, t2, t1 + c->xor_(t4, t2, s7); // xor t4, t2, s7 + c->sltiu(t4, t4, 1); // sltiu t4, t4, 1 + c->movz(t2, t3, t4); // movz t2, t3, t4 + c->sw(t2, 16, t0); // sw t2, 16(t0) + c->lw(t2, 28, t0); // lw t2, 28(t0) + c->daddu(t3, t2, t1); // daddu t3, t2, t1 + c->xor_(t4, t2, s7); // xor t4, t2, s7 + c->sltiu(t4, t4, 1); // sltiu t4, t4, 1 + c->movz(t2, t3, t4); // movz t2, t3, t4 + c->sw(t2, 28, t0); // sw t2, 28(t0) + c->lw(t2, 24, t0); // lw t2, 24(t0) + c->daddu(t3, t2, t1); // daddu t3, t2, t1 + c->xor_(t4, t2, s7); // xor t4, t2, s7 + c->sltiu(t4, t4, 1); // sltiu t4, t4, 1 + c->movz(t2, t3, t4); // movz t2, t3, t4 + c->sw(t2, 24, t0); // sw t2, 24(t0) + c->lw(t2, 20, t0); // lw t2, 20(t0) + c->daddu(t1, t2, t1); // daddu t1, t2, t1 + c->xor_(t3, t2, s7); // xor t3, t2, s7 + c->sltiu(t3, t3, 1); // sltiu t3, t3, 1 + c->movz(t2, t1, t3); // movz t2, t1, t3 + c->sw(t2, 20, t0); // sw t2, 20(t0) + c->gprs[t0].du64[0] = 0; // or t0, r0, r0 + c->lwu(a3, 8, a3); // lwu a3, 8(a3) + c->sw(s7, 200, a3); // sw s7, 200(a3) + c->mov64(t1, s7); // or t1, s7, r0 + +block_5: + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + +block_6: + c->lb(a3, 14, a1); // lb a3, 14(a1) + c->slt(a3, a2, a3); // slt a3, a2, a3 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L33 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 20 nav-engine)", execute, 256); +} + +} // namespace method_20_nav_engine +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_18_nav_engine { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lwu(a2, 0, a1); // lwu a2, 0(a1) + c->lwu(v1, 4, a1); // lwu v1, 4(a1) + c->lwu(a0, 8, a1); // lwu a0, 8(a1) + c->lui(a1, 4096); // lui a1, 4096 + c->ori(a1, a1, 53248); // ori a1, a1, 53248 + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + +// block_1: +// c->lw(a3, 0, a1); // lw a3, 0(a1) +// c->andi(a3, a3, 256); // andi a3, a3, 256 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// bc = c->sgpr64(a3) != 0; // bne a3, r0, L43 +// // nop // sll r0, r0, 0 +// if (bc) {goto block_1;} // branch non-likely + + // Unknown instr: sync.l + c->lui(a3, 4095); // lui a3, 4095 + c->ori(a3, a3, 65535); // ori a3, a3, 65535 + c->and_(a2, a3, a2); // and a2, a3, a2 + // c->sw(a2, 16, a1); // sw a2, 16(a1) + u32 madr = c->sgpr64(a2); + c->lui(a2, 4095); // lui a2, 4095 + c->ori(a2, a2, 65535); // ori a2, a2, 65535 + c->and_(v1, a2, v1); // and v1, a2, v1 + // c->sw(v1, 128, a1); // sw v1, 128(a1) + u32 sadr = c->sgpr64(v1); + // c->sw(a0, 32, a1); // sw a0, 32(a1) + u32 qwc = c->sgpr64(a0); + // Unknown instr: sync.l + c->addiu(v1, r0, 256); // addiu v1, r0, 256 + // c->sw(v1, 0, a1); // sw v1, 0(a1) + spad_from_dma(cache.fake_scratchpad_data, madr, sadr, qwc); + // Unknown instr: sync.l + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 18 nav-engine)", execute, 256); +} + +} // namespace method_18_nav_engine +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_17_nav_engine { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lwu(v1, 4, a1); // lwu v1, 4(a1) + c->lwu(a2, 0, a1); // lwu a2, 0(a1) + c->lwu(a0, 8, a1); // lwu a0, 8(a1) + c->lui(a1, 4096); // lui a1, 4096 + c->ori(a1, a1, 54272); // ori a1, a1, 54272 + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + +// block_1: +// c->lw(a3, 0, a1); // lw a3, 0(a1) +// c->andi(a3, a3, 256); // andi a3, a3, 256 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// bc = c->sgpr64(a3) != 0; // bne a3, r0, L45 +// // nop // sll r0, r0, 0 +// if (bc) {goto block_1;} // branch non-likely + + // Unknown instr: sync.l + c->lui(a3, 4095); // lui a3, 4095 + c->ori(a3, a3, 65535); // ori a3, a3, 65535 + c->and_(a2, a3, a2); // and a2, a3, a2 + // c->sw(a2, 16, a1); // sw a2, 16(a1) + u32 madr = c->sgpr64(a2); + c->lui(a2, 4095); // lui a2, 4095 + c->ori(a2, a2, 65535); // ori a2, a2, 65535 + c->and_(v1, a2, v1); // and v1, a2, v1 + // c->sw(v1, 128, a1); // sw v1, 128(a1) + u32 sadr = c->sgpr64(v1); + // c->sw(a0, 32, a1); // sw a0, 32(a1) + u32 qwc = c->sgpr64(a0); + // Unknown instr: sync.l + c->addiu(v1, r0, 256); // addiu v1, r0, 256 + // c->sw(v1, 0, a1); // sw v1, 0(a1) + spad_to_dma(cache.fake_scratchpad_data, madr, sadr, qwc); + // Unknown instr: sync.l + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 17 nav-engine)", execute, 256); +} + +} // namespace method_17_nav_engine +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace nav_state_patch_pointers { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lw(v1, 16, a0); // lw v1, 16(a0) + c->daddu(a2, v1, a1); // daddu a2, v1, a1 + c->xor_(a3, v1, s7); // xor a3, v1, s7 + c->sltiu(a3, a3, 1); // sltiu a3, a3, 1 + c->movz(v1, a2, a3); // movz v1, a2, a3 + c->sw(v1, 16, a0); // sw v1, 16(a0) + c->lw(v1, 28, a0); // lw v1, 28(a0) + c->daddu(a2, v1, a1); // daddu a2, v1, a1 + c->xor_(a3, v1, s7); // xor a3, v1, s7 + c->sltiu(a3, a3, 1); // sltiu a3, a3, 1 + c->movz(v1, a2, a3); // movz v1, a2, a3 + c->sw(v1, 28, a0); // sw v1, 28(a0) + c->lw(v1, 24, a0); // lw v1, 24(a0) + c->daddu(a2, v1, a1); // daddu a2, v1, a1 + c->xor_(a3, v1, s7); // xor a3, v1, s7 + c->sltiu(a3, a3, 1); // sltiu a3, a3, 1 + c->movz(v1, a2, a3); // movz v1, a2, a3 + c->sw(v1, 24, a0); // sw v1, 24(a0) + c->lw(v1, 20, a0); // lw v1, 20(a0) + c->daddu(a1, v1, a1); // daddu a1, v1, a1 + c->xor_(a2, v1, s7); // xor a2, v1, s7 + c->sltiu(a2, a2, 1); // sltiu a2, a2, 1 + c->movz(v1, a1, a2); // movz v1, a1, a2 + c->sw(v1, 20, a0); // sw v1, 20(a0) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("nav-state-patch-pointers", execute, 256); +} + +} // namespace nav_state_patch_pointers +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace nav_dma_send_from_spr_no_flush { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lui(v1, 4096); // lui v1, 4096 + c->ori(v1, v1, 53248); // ori v1, v1, 53248 + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + +// block_1: +// c->lw(a3, 0, v1); // lw a3, 0(v1) +// c->andi(a3, a3, 256); // andi a3, a3, 256 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// bc = c->sgpr64(a3) != 0; // bne a3, r0, L49 +// // nop // sll r0, r0, 0 +// if (bc) {goto block_1;} // branch non-likely + + // Unknown instr: sync.l + c->lui(a3, 4095); // lui a3, 4095 + c->ori(a3, a3, 65535); // ori a3, a3, 65535 + c->and_(a0, a3, a0); // and a0, a3, a0 + // c->sw(a0, 16, v1); // sw a0, 16(v1) + u32 madr = c->sgpr64(a0); + c->lui(a0, 4095); // lui a0, 4095 + c->ori(a0, a0, 65535); // ori a0, a0, 65535 + c->and_(a0, a0, a1); // and a0, a0, a1 + // c->sw(a0, 128, v1); // sw a0, 128(v1) + u32 sadr = c->sgpr64(a0); + // c->sw(a2, 32, v1); // sw a2, 32(v1) + u32 qwc = c->sgpr64(a2); + // Unknown instr: sync.l + c->addiu(a0, r0, 256); // addiu a0, r0, 256 + // c->sw(a0, 0, v1); // sw a0, 0(v1) + spad_from_dma(cache.fake_scratchpad_data, madr, sadr, qwc); + // Unknown instr: sync.l + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("nav-dma-send-from-spr-no-flush", execute, 256); +} + +} // namespace nav_dma_send_from_spr_no_flush +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace nav_dma_send_to_spr_no_flush { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lui(v1, 4096); // lui v1, 4096 + c->ori(v1, v1, 54272); // ori v1, v1, 54272 + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + +// block_1: +// c->lw(a3, 0, v1); // lw a3, 0(v1) +// c->andi(a3, a3, 256); // andi a3, a3, 256 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// // nop // sll r0, r0, 0 +// bc = c->sgpr64(a3) != 0; // bne a3, r0, L51 +// // nop // sll r0, r0, 0 +// if (bc) {goto block_1;} // branch non-likely + + // Unknown instr: sync.l + c->lui(a3, 4095); // lui a3, 4095 + c->ori(a3, a3, 65535); // ori a3, a3, 65535 + c->and_(a1, a3, a1); // and a1, a3, a1 + // c->sw(a1, 16, v1); // sw a1, 16(v1) + u32 madr = c->sgpr64(a1); + c->lui(a1, 4095); // lui a1, 4095 + c->ori(a1, a1, 65535); // ori a1, a1, 65535 + c->and_(a0, a1, a0); // and a0, a1, a0 + // c->sw(a0, 128, v1); // sw a0, 128(v1) + u32 sadr = c->sgpr64(a0); + // c->sw(a2, 32, v1); // sw a2, 32(v1) + u32 qwc = c->sgpr64(a2); + // Unknown instr: sync.l + c->addiu(a0, r0, 256); // addiu a0, r0, 256 + // c->sw(a0, 0, v1); // sw a0, 0(v1) + spad_to_dma(cache.fake_scratchpad_data, madr, sadr, qwc); + // Unknown instr: sync.l + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("nav-dma-send-to-spr-no-flush", execute, 256); +} + +} // namespace nav_dma_send_to_spr_no_flush +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/ocean.cpp b/game/mips2c/jakx_functions/ocean.cpp new file mode 100644 index 0000000000..f5cedd9e49 --- /dev/null +++ b/game/mips2c/jakx_functions/ocean.cpp @@ -0,0 +1,498 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace draw_large_polygon_ocean { +struct Cache { + void* clip_polygon_against_negative_hyperplane; // clip-polygon-against-negative-hyperplane + void* clip_polygon_against_positive_hyperplane; // clip-polygon-against-positive-hyperplane +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->mov64(t7, s7); // or t7, s7, r0 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->load_symbol2(t9, cache.clip_polygon_against_positive_hyperplane);// lw t9, clip-polygon-against-positive-hyperplane(s7) + c->mov64(a3, t5); // or a3, t5, r0 + c->mov64(t0, t6); // or t0, t6, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddu(t3, a3, r0); // daddu t3, a3, r0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L117 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + c->mov64(a3, t6); // or a3, t6, r0 + c->mov64(t0, t5); // or t0, t5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(t3, a3, 4); // daddiu t3, a3, 4 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L117 + c->load_symbol2(t9, cache.clip_polygon_against_negative_hyperplane);// lw t9, clip-polygon-against-negative-hyperplane(s7) + if (bc) {goto block_11;} // branch non-likely + + c->mov64(a3, t5); // or a3, t5, r0 + c->mov64(t0, t6); // or t0, t6, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddu(t3, a3, r0); // daddu t3, a3, r0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L117 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + c->mov64(a3, t6); // or a3, t6, r0 + c->mov64(t0, t5); // or t0, t5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(t3, a3, 4); // daddiu t3, a3, 4 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L117 + c->lw(t0, 4, a1); // lw t0, 4(a1) + if (bc) {goto block_11;} // branch non-likely + + bc = c->sgpr64(t7) == c->sgpr64(s7); // beq t7, s7, L115 + c->mov64(a3, t5); // or a3, t5, r0 + if (bc) {goto block_8;} // branch non-likely + + c->sqc2(vf27, 0, t0); // sqc2 vf27, 0(t0) + c->daddiu(t0, t0, 16); // daddiu t0, t0, 16 + c->sw(t1, -16, t0); // sw t1, -16(t0) + // nop // sll r0, r0, 0 + +block_6: + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a3); // lqc2 vf2, 16(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a3); // lqc2 vf3, 32(a3) + c->vdiv(vf0, BC::w, vf1, BC::w); // vdiv Q, vf0.w, vf1.w + c->vmul(DEST::xyzw, vf1, vf1, vf26); // vmul.xyzw vf1, vf1, vf26 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyz, vf1, vf1); // vmulq.xyz vf1, vf1, Q + c->sqc2(vf3, 16, t0); // sqc2 vf3, 16(t0) + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + c->vadd(DEST::xyzw, vf1, vf1, vf25); // vadd.xyzw vf1, vf1, vf25 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->vmax_bc(DEST::z, BC::z, vf1, vf1, vf0); // vmaxz.z vf1, vf1, vf0 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::w, BC::z, vf1, vf1, vf13); // vminiz.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::w, BC::y, vf1, vf1, vf13); // vmaxy.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->sqc2(vf2, -48, t0); // sqc2 vf2, -48(t0) + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->vftoi4(DEST::xyzw, vf1, vf1); // vftoi4.xyzw vf1, vf1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L114 + c->sqc2(vf1, -16, t0); // sqc2 vf1, -16(t0) + if (bc) {goto block_6;} // branch non-likely + + c->sw(t0, 4, a1); // sw t0, 4(a1) + // nop // sll r0, r0, 0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->daddiu(v0, s7, 4); // daddiu v0, s7, 4 + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + +block_8: + c->sqc2(vf27, 0, t0); // sqc2 vf27, 0(t0) + c->daddiu(t0, t0, 16); // daddiu t0, t0, 16 + c->sw(t1, -16, t0); // sw t1, -16(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf15, 0, a3); // sqc2 vf15, 0(a3) + // nop // sll r0, r0, 0 + c->sqc2(vf15, 192, a3); // sqc2 vf15, 192(a3) + // nop // sll r0, r0, 0 + c->sqc2(vf16, 48, a3); // sqc2 vf16, 48(a3) + // nop // sll r0, r0, 0 + c->sqc2(vf17, 96, a3); // sqc2 vf17, 96(a3) + // nop // sll r0, r0, 0 + c->sqc2(vf18, 144, a3); // sqc2 vf18, 144(a3) + // nop // sll r0, r0, 0 + +block_9: + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a3); // lqc2 vf3, 32(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a3); // lqc2 vf2, 16(a3) + c->vdiv(vf13, BC::x, vf1, BC::w); // vdiv Q, vf13.x, vf1.w + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyz, vf1, vf1); // vmulq.xyz vf1, vf1, Q + c->sqc2(vf3, 16, t0); // sqc2 vf3, 16(t0) + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + c->vadd(DEST::xyzw, vf1, vf1, vf25); // vadd.xyzw vf1, vf1, vf25 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->vmax_bc(DEST::z, BC::z, vf1, vf1, vf0); // vmaxz.z vf1, vf1, vf0 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::w, BC::z, vf1, vf1, vf13); // vminiz.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::w, BC::y, vf1, vf1, vf13); // vmaxy.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->sqc2(vf2, -48, t0); // sqc2 vf2, -48(t0) + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->vftoi4(DEST::xyzw, vf1, vf1); // vftoi4.xyzw vf1, vf1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L116 + c->sqc2(vf1, -16, t0); // sqc2 vf1, -16(t0) + if (bc) {goto block_9;} // branch non-likely + + c->sw(t0, 4, a1); // sw t0, 4(a1) + // nop // sll r0, r0, 0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->daddiu(v0, s7, 4); // daddiu v0, s7, 4 + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + +block_11: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->mov64(v0, s7); // or v0, s7, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.clip_polygon_against_negative_hyperplane = intern_from_c(-1, 0, "clip-polygon-against-negative-hyperplane").c(); + cache.clip_polygon_against_positive_hyperplane = intern_from_c(-1, 0, "clip-polygon-against-positive-hyperplane").c(); + gLinkedFunctionTable.reg("draw-large-polygon-ocean", execute, 256); +} + +} // namespace draw_large_polygon_ocean +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace render_ocean_quad { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* draw_large_polygon_ocean; // draw-large-polygon-ocean +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->mov64(v1, a0); // or v1, a0, r0 + get_fake_spad_addr2(t5, cache.fake_scratchpad_data, 0, c);// lui t5, 28672 + c->ori(t5, t5, 12288); // ori t5, t5, 12288 + get_fake_spad_addr2(t6, cache.fake_scratchpad_data, 0, c);// lui t6, 28672 + c->ori(t6, t6, 14336); // ori t6, t6, 14336 + c->mov64(t0, t5); // or t0, t5, r0 + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, a0); // lqc2 vf1, 0(a0) + c->addiu(t1, r0, 4); // addiu t1, r0, 4 + c->lqc2(vf2, 16, a0); // lqc2 vf2, 16(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a0); // lqc2 vf3, 32(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf1); // vmulax.xyzw acc, vf31, vf1 + c->lqc2(vf4, 48, a0); // lqc2 vf4, 48(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf1); // vmadday.xyzw acc, vf30, vf1 + c->lqc2(vf5, 64, a0); // lqc2 vf5, 64(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf1); // vmaddaz.xyzw acc, vf29, vf1 + c->lqc2(vf6, 80, a0); // lqc2 vf6, 80(a0) + c->vmadd_bc(DEST::xyzw, BC::w, vf15, vf28, vf1); // vmaddw.xyzw vf15, vf28, vf1 + c->lqc2(vf7, 96, a0); // lqc2 vf7, 96(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf8, 112, a0); // lqc2 vf8, 112(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf4); // vmulax.xyzw acc, vf31, vf4 + c->lqc2(vf9, 128, a0); // lqc2 vf9, 128(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf4); // vmadday.xyzw acc, vf30, vf4 + c->lqc2(vf10, 144, a0); // lqc2 vf10, 144(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf4); // vmaddaz.xyzw acc, vf29, vf4 + c->lqc2(vf11, 160, a0); // lqc2 vf11, 160(a0) + c->vmadd_bc(DEST::xyzw, BC::w, vf16, vf28, vf4); // vmaddw.xyzw vf16, vf28, vf4 + c->lqc2(vf12, 176, a0); // lqc2 vf12, 176(a0) + c->vmul(DEST::xyzw, vf1, vf15, vf14); // vmul.xyzw vf1, vf15, vf14 + c->sqc2(vf2, 16, t0); // sqc2 vf2, 16(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf7); // vmulax.xyzw acc, vf31, vf7 + c->sqc2(vf3, 32, t0); // sqc2 vf3, 32(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf7); // vmadday.xyzw acc, vf30, vf7 + c->sqc2(vf5, 64, t0); // sqc2 vf5, 64(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf7); // vmaddaz.xyzw acc, vf29, vf7 + c->sqc2(vf6, 80, t0); // sqc2 vf6, 80(t0) + c->vmadd_bc(DEST::xyzw, BC::w, vf17, vf28, vf7); // vmaddw.xyzw vf17, vf28, vf7 + c->sqc2(vf8, 112, t0); // sqc2 vf8, 112(t0) + c->vmul(DEST::xyzw, vf4, vf16, vf14); // vmul.xyzw vf4, vf16, vf14 + c->sqc2(vf9, 128, t0); // sqc2 vf9, 128(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf10); // vmulax.xyzw acc, vf31, vf10 + c->sqc2(vf11, 160, t0); // sqc2 vf11, 160(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf10); // vmadday.xyzw acc, vf30, vf10 + c->sqc2(vf12, 176, t0); // sqc2 vf12, 176(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf10); // vmaddaz.xyzw acc, vf29, vf10 + c->sqc2(vf2, 208, t0); // sqc2 vf2, 208(t0) + c->vmadd_bc(DEST::xyzw, BC::w, vf18, vf28, vf10); // vmaddw.xyzw vf18, vf28, vf10 + c->sqc2(vf3, 224, t0); // sqc2 vf3, 224(t0) + c->vmul(DEST::xyzw, vf7, vf17, vf14); // vmul.xyzw vf7, vf17, vf14 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + c->vmul(DEST::xyzw, vf10, vf18, vf14); // vmul.xyzw vf10, vf18, vf14 + c->sqc2(vf1, 192, t0); // sqc2 vf1, 192(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf4, 48, t0); // sqc2 vf4, 48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf7, 96, t0); // sqc2 vf7, 96(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf10, 144, t0); // sqc2 vf10, 144(t0) + c->load_symbol2(t9, cache.draw_large_polygon_ocean);// lw t9, draw-large-polygon-ocean(s7) + // Unknown instr: jr t9 + return draw_large_polygon_ocean::execute(c); + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.draw_large_polygon_ocean = intern_from_c(-1, 0, "draw-large-polygon-ocean").c(); + gLinkedFunctionTable.reg("render-ocean-quad", execute, 256); +} + +} // namespace render_ocean_quad +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace init_ocean_far_regs { +struct Cache { + void* ocean_map; // *ocean-map* + void* sky_work; // *sky-work* + void* time_of_day_context; // *time-of-day-context* + void* matrix; // matrix*! + void* vector_matrix; // vector-matrix*! +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -144); // daddiu sp, sp, -144 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s4, 96, sp); // sq s4, 96(sp) + c->sq(s5, 112, sp); // sq s5, 112(sp) + c->sq(gp, 128, sp); // sq gp, 128(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->load_symbol2(v1, cache.sky_work); // lw v1, *sky-work*(s7) + c->daddiu(v1, v1, 1024); // daddiu v1, v1, 1024 + c->lwu(a0, 176, gp); // lwu a0, 176(gp) + c->lwc1(f0, 908, a0); // lwc1 f0, 908(a0) + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->lwu(a0, 176, gp); // lwu a0, 176(gp) + c->lwc1(f0, 128, a0); // lwc1 f0, 128(a0) + c->swc1(f0, 4, v1); // swc1 f0, 4(v1) + c->lwu(a0, 176, gp); // lwu a0, 176(gp) + c->lwc1(f0, 124, a0); // lwc1 f0, 124(a0) + c->swc1(f0, 8, v1); // swc1 f0, 8(v1) + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + c->daddiu(s5, sp, 16); // daddiu s5, sp, 16 + c->sq(r0, 0, s5); // sq r0, 0(s5) + c->sq(r0, 16, s5); // sq r0, 16(s5) + c->sq(r0, 32, s5); // sq r0, 32(s5) + c->sq(r0, 48, s5); // sq r0, 48(s5) + c->daddiu(s4, sp, 80); // daddiu s4, sp, 80 + c->sq(r0, 0, s4); // sq r0, 0(s4) + c->load_symbol2(v1, cache.time_of_day_context); // lw v1, *time-of-day-context*(s7) + c->lwu(v1, 2544, v1); // lwu v1, 2544(v1) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L119 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, s4); // or v1, s4, r0 + c->lwu(a0, 176, gp); // lwu a0, 176(gp) + c->daddiu(a0, a0, 1148); // daddiu a0, a0, 1148 + c->load_symbol2(a1, cache.ocean_map); // lw a1, *ocean-map*(s7) + c->daddu(a1, r0, a1); // daddu a1, r0, a1 + c->lqc2(vf4, 0, a0); // lqc2 vf4, 0(a0) + c->lqc2(vf5, 0, a1); // lqc2 vf5, 0(a1) + c->vmove(DEST::w, vf6, vf0); // vmove.w vf6, vf0 + c->vsub(DEST::xyz, vf6, vf4, vf5); // vsub.xyz vf6, vf4, vf5 + c->sqc2(vf6, 0, v1); // sqc2 vf6, 0(v1) + c->lwc1(f0, 0, s4); // lwc1 f0, 0(s4) + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 0, s4); // swc1 f0, 0(s4) + c->lwc1(f0, 4, s4); // lwc1 f0, 4(s4) + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 4, s4); // swc1 f0, 4(s4) + c->lwc1(f0, 8, s4); // lwc1 f0, 8(s4) + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 8, s4); // swc1 f0, 8(s4) + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->swc1(f0, 12, s4); // swc1 f0, 12(s4) + c->load_symbol2(t9, cache.vector_matrix); // lw t9, vector-matrix*!(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s4); // or a1, s4, r0 + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->daddiu(a2, v1, 1292); // daddiu a2, v1, 1292 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lq(v1, 1292, v1); // lq v1, 1292(v1) + c->sq(v1, 0, s5); // sq v1, 0(s5) + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lq(v1, 1308, v1); // lq v1, 1308(v1) + c->sq(v1, 16, s5); // sq v1, 16(s5) + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lq(v1, 1324, v1); // lq v1, 1324(v1) + c->sq(v1, 32, s5); // sq v1, 32(s5) + c->lq(v1, 0, s4); // lq v1, 0(s4) + c->sq(v1, 48, s5); // sq v1, 48(s5) + c->load_symbol2(t9, cache.matrix); // lw t9, matrix*!(s7) + c->mov64(a0, s5); // or a0, s5, r0 + c->mov64(a1, s5); // or a1, s5, r0 + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->daddiu(a2, v1, 156); // daddiu a2, v1, 156 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lqc2(vf31, 0, s5); // lqc2 vf31, 0(s5) + c->lqc2(vf30, 16, s5); // lqc2 vf30, 16(s5) + c->lqc2(vf29, 32, s5); // lqc2 vf29, 32(s5) + c->lqc2(vf28, 48, s5); // lqc2 vf28, 48(s5) + c->mov128_gpr_vf(v1, vf28); // qmfc2.i v1, vf28 + //beq r0, r0, L120 // beq r0, r0, L120 + // nop // sll r0, r0, 0 + goto block_3; // branch always + + +block_2: + c->mov64(v1, s4); // or v1, s4, r0 + c->lwu(a0, 176, gp); // lwu a0, 176(gp) + c->daddiu(a0, a0, 924); // daddiu a0, a0, 924 + c->load_symbol2(a1, cache.ocean_map); // lw a1, *ocean-map*(s7) + c->daddu(a1, r0, a1); // daddu a1, r0, a1 + c->lqc2(vf4, 0, a0); // lqc2 vf4, 0(a0) + c->lqc2(vf5, 0, a1); // lqc2 vf5, 0(a1) + c->vmove(DEST::w, vf6, vf0); // vmove.w vf6, vf0 + c->vsub(DEST::xyz, vf6, vf4, vf5); // vsub.xyz vf6, vf4, vf5 + c->sqc2(vf6, 0, v1); // sqc2 vf6, 0(v1) + c->lwc1(f0, 0, s4); // lwc1 f0, 0(s4) + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 0, s4); // swc1 f0, 0(s4) + c->lwc1(f0, 4, s4); // lwc1 f0, 4(s4) + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 4, s4); // swc1 f0, 4(s4) + c->lwc1(f0, 8, s4); // lwc1 f0, 8(s4) + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 8, s4); // swc1 f0, 8(s4) + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->swc1(f0, 12, s4); // swc1 f0, 12(s4) + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lq(v1, 364, v1); // lq v1, 364(v1) + c->sq(v1, 0, s5); // sq v1, 0(s5) + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lq(v1, 380, v1); // lq v1, 380(v1) + c->sq(v1, 16, s5); // sq v1, 16(s5) + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lq(v1, 396, v1); // lq v1, 396(v1) + c->sq(v1, 32, s5); // sq v1, 32(s5) + c->sqc2(vf0, 48, s5); // sqc2 vf0, 48(s5) + c->load_symbol2(t9, cache.vector_matrix); // lw t9, vector-matrix*!(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s4); // or a1, s4, r0 + c->mov64(a2, s5); // or a2, s5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lq(v1, 0, s4); // lq v1, 0(s4) + c->sq(v1, 48, s5); // sq v1, 48(s5) + c->load_symbol2(t9, cache.matrix); // lw t9, matrix*!(s7) + c->mov64(a0, s5); // or a0, s5, r0 + c->mov64(a1, s5); // or a1, s5, r0 + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->daddiu(a2, v1, 156); // daddiu a2, v1, 156 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lqc2(vf31, 0, s5); // lqc2 vf31, 0(s5) + c->lqc2(vf30, 16, s5); // lqc2 vf30, 16(s5) + c->lqc2(vf29, 32, s5); // lqc2 vf29, 32(s5) + c->lqc2(vf28, 48, s5); // lqc2 vf28, 48(s5) + c->mov128_gpr_vf(v1, vf28); // qmfc2.i v1, vf28 + +block_3: + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lqc2(vf26, 796, v1); // lqc2 vf26, 796(v1) + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lqc2(vf14, 780, v1); // lqc2 vf14, 780(v1) + c->lwu(v1, 176, gp); // lwu v1, 176(gp) + c->lqc2(vf25, 812, v1); // lqc2 vf25, 812(v1) + c->load_symbol2(v1, cache.sky_work); // lw v1, *sky-work*(s7) + c->lqc2(vf13, 1024, v1); // lqc2 vf13, 1024(v1) + c->load_symbol2(v1, cache.sky_work); // lw v1, *sky-work*(s7) + c->lqc2(vf27, 1008, v1); // lqc2 vf27, 1008(v1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 128, sp); // lq gp, 128(sp) + c->lq(s5, 112, sp); // lq s5, 112(sp) + c->lq(s4, 96, sp); // lq s4, 96(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 144); // daddiu sp, sp, 144 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.ocean_map = intern_from_c(-1, 0, "*ocean-map*").c(); + cache.sky_work = intern_from_c(-1, 0, "*sky-work*").c(); + cache.time_of_day_context = intern_from_c(-1, 0, "*time-of-day-context*").c(); + cache.matrix = intern_from_c(-1, 0, "matrix*!").c(); + cache.vector_matrix = intern_from_c(-1, 0, "vector-matrix*!").c(); + gLinkedFunctionTable.reg("init-ocean-far-regs", execute, 512); +} + +} // namespace init_ocean_far_regs +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/particle_curves.cpp b/game/mips2c/jakx_functions/particle_curves.cpp new file mode 100644 index 0000000000..989a3c597d --- /dev/null +++ b/game/mips2c/jakx_functions/particle_curves.cpp @@ -0,0 +1,966 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace live_func_curve { +struct Cache { + void* random_generator; // *random-generator* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -336); // daddiu sp, sp, -336 + c->mov64(t0, a1); // or t0, a1, r0 + c->lwu(a3, 108, t0); // lwu a3, 108(t0) + c->lw(v1, 12, t0); // lw v1, 12(t0) + c->load_symbol2(a0, cache.random_generator); // lw a0, *random-generator*(s7) + c->lwu(a0, 0, a0); // lwu a0, 0(a0) + c->addiu(a1, r0, 0); // addiu a1, r0, 0 + c->addiu(a1, r0, 0); // addiu a1, r0, 0 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->load_symbol2(a1, cache.random_generator); // lw a1, *random-generator*(s7) + c->sw(v1, 0, a1); // sw v1, 0(a1) + c->ld(t1, 40, a3); // ld t1, 40(a3) + c->ld(v1, 48, a3); // ld v1, 48(a3) + c->slt(v1, r0, v1); // slt v1, r0, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L5 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_2;} // branch non-likely + + c->load_symbol2(t2, cache.random_generator); // lw t2, *random-generator*(s7) + c->lwu(a1, 0, t2); // lwu a1, 0(t2) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, t2); // sw v0, 0(t2) + c->ld(v1, 48, a3); // ld v1, 48(a3) + c->div(v0, v1); // div v0, v1 + c->mfhi(v1); // mfhi v1 + c->daddu(t1, t1, v1); // daddu t1, t1, v1 + c->mov64(v1, t1); // or v1, t1, r0 + +block_2: + c->lw(v1, 100, t0); // lw v1, 100(t0) + c->dsubu(v1, t1, v1); // dsubu v1, t1, v1 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->cvtsw(f0, f0); // cvt.s.w f0, f0 + c->mtc1(f1, t1); // mtc1 f1, t1 + c->cvtsw(f1, f1); // cvt.s.w f1, f1 + c->divs(f0, f0, f1); // div.s f0, f0, f1 + c->lwu(v1, 0, a3); // lwu v1, 0(a3) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L14 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_24;} // branch non-likely + + c->load_symbol2(t0, cache.random_generator); // lw t0, *random-generator*(s7) + c->lwu(a1, 0, t0); // lwu a1, 0(t0) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, t0); // sw v0, 0(t0) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f1, a1); // mtc1 f1, a1 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->mfc1(v1, f1); // mfc1 v1, f1 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + c->ld(a1, 56, a3); // ld a1, 56(a3) + c->andi(a1, a1, 2); // andi a1, a1, 2 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L14 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_24;} // branch non-likely + + c->lwu(a1, 0, a3); // lwu a1, 0(a3) + c->mov64(t0, v1); // or t0, v1, r0 + c->daddiu(t1, sp, 32); // daddiu t1, sp, 32 + c->mfc1(t2, f1); // mfc1 t2, f1 + c->mov128_vf_gpr(vf26, t2); // qmtc2.i vf26, t2 + c->lqc2(vf23, 12, a1); // lqc2 vf23, 12(a1) + c->lqc2(vf25, 92, a1); // lqc2 vf25, 92(a1) + c->vmax_bc(DEST::xyzw, BC::w, vf3, vf0, vf0); // vmaxw.xyzw vf3, vf0, vf0 + c->vmula(DEST::xyzw, vf25, vf23); // vmula.xyzw acc, vf25, vf23 + c->vmadd_bc(DEST::xyzw, BC::x, vf28, vf25, vf26); // vmaddx.xyzw vf28, vf25, vf26 + c->sqc2(vf28, 0, t1); // sqc2 vf28, 0(t1) + c->lw(t2, 8, t1); // lw t2, 8(t1) + c->lw(t1, 4, t1); // lw t1, 4(t1) + bc = ((s64)c->sgpr64(t2)) >= 0; // bgez t2, L7 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L6 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->lqc2(vf1, 28, a1); // lqc2 vf1, 28(a1) + c->lqc2(vf2, 44, a1); // lqc2 vf2, 44(a1) + c->vsub_bc(DEST::xyzw, BC::x, vf4, vf3, vf28); // vsubx.xyzw vf4, vf3, vf28 + c->vmula_bc(DEST::xyzw, BC::x, vf2, vf28); // vmulax.xyzw acc, vf2, vf28 + c->vmadd_bc(DEST::xyzw, BC::x, vf5, vf1, vf4); // vmaddx.xyzw vf5, vf1, vf4 + //beq r0, r0, L8 // beq r0, r0, L8 + c->sqc2(vf5, 0, t0); // sqc2 vf5, 0(t0) + goto block_9; // branch always + + +block_7: + c->lqc2(vf1, 44, a1); // lqc2 vf1, 44(a1) + c->lqc2(vf2, 60, a1); // lqc2 vf2, 60(a1) + c->vsub_bc(DEST::xyzw, BC::y, vf4, vf3, vf28); // vsuby.xyzw vf4, vf3, vf28 + c->vmula_bc(DEST::xyzw, BC::y, vf2, vf28); // vmulay.xyzw acc, vf2, vf28 + c->vmadd_bc(DEST::xyzw, BC::y, vf5, vf1, vf4); // vmaddy.xyzw vf5, vf1, vf4 + //beq r0, r0, L8 // beq r0, r0, L8 + c->sqc2(vf5, 0, t0); // sqc2 vf5, 0(t0) + goto block_9; // branch always + + +block_8: + c->lqc2(vf1, 60, a1); // lqc2 vf1, 60(a1) + c->lqc2(vf2, 76, a1); // lqc2 vf2, 76(a1) + c->vsub_bc(DEST::xyzw, BC::z, vf4, vf3, vf28); // vsubz.xyzw vf4, vf3, vf28 + c->vmula_bc(DEST::xyzw, BC::z, vf2, vf28); // vmulaz.xyzw acc, vf2, vf28 + c->vmadd_bc(DEST::xyzw, BC::z, vf5, vf1, vf4); // vmaddz.xyzw vf5, vf1, vf4 + c->sqc2(vf5, 0, t0); // sqc2 vf5, 0(t0) + +block_9: + c->lwu(a1, 16, a3); // lwu a1, 16(a3) + bc = c->sgpr64(s7) == c->sgpr64(a1); // beq s7, a1, L10 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_14;} // branch non-likely + + c->lwc1(f1, 0, v1); // lwc1 f1, 0(v1) + c->lwu(t1, 16, a3); // lwu t1, 16(a3) + c->movs(f2, f0); // mov.s f2, f0 + c->daddiu(t0, sp, 48); // daddiu t0, sp, 48 + c->daddiu(a1, sp, 64); // daddiu a1, sp, 64 + c->mfc1(t2, f2); // mfc1 t2, f2 + c->mov128_vf_gpr(vf27, t2); // qmtc2.i vf27, t2 + c->lqc2(vf24, 12, t1); // lqc2 vf24, 12(t1) + c->lqc2(vf25, 28, t1); // lqc2 vf25, 28(t1) + c->lqc2(vf26, 44, t1); // lqc2 vf26, 44(t1) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, t0); // sqc2 vf28, 0(t0) + c->sqc2(vf29, 0, a1); // sqc2 vf29, 0(a1) + c->lw(t1, 8, t0); // lw t1, 8(t0) + c->lw(t0, 4, t0); // lw t0, 4(t0) + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L9 + c->lw(v0, 8, a1); // lw v0, 8(a1) + if (bc) {goto block_13;} // branch non-likely + + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L9 + c->lw(v0, 4, a1); // lw v0, 4(a1) + if (bc) {goto block_13;} // branch non-likely + + c->lw(v0, 0, a1); // lw v0, 0(a1) + +block_13: + c->mov64(a1, v0); // or a1, v0, r0 + c->mtc1(f2, a1); // mtc1 f2, a1 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->swc1(f1, 32, a2); // swc1 f1, 32(a2) + c->mfc1(a1, f1); // mfc1 a1, f1 + +block_14: + c->lwu(a1, 20, a3); // lwu a1, 20(a3) + bc = c->sgpr64(s7) == c->sgpr64(a1); // beq s7, a1, L12 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_19;} // branch non-likely + + c->lwc1(f1, 4, v1); // lwc1 f1, 4(v1) + c->lwu(t1, 20, a3); // lwu t1, 20(a3) + c->movs(f2, f0); // mov.s f2, f0 + c->daddiu(t0, sp, 80); // daddiu t0, sp, 80 + c->daddiu(a1, sp, 96); // daddiu a1, sp, 96 + c->mfc1(t2, f2); // mfc1 t2, f2 + c->mov128_vf_gpr(vf27, t2); // qmtc2.i vf27, t2 + c->lqc2(vf24, 12, t1); // lqc2 vf24, 12(t1) + c->lqc2(vf25, 28, t1); // lqc2 vf25, 28(t1) + c->lqc2(vf26, 44, t1); // lqc2 vf26, 44(t1) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, t0); // sqc2 vf28, 0(t0) + c->sqc2(vf29, 0, a1); // sqc2 vf29, 0(a1) + c->lw(t1, 8, t0); // lw t1, 8(t0) + c->lw(t0, 4, t0); // lw t0, 4(t0) + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L11 + c->lw(v0, 8, a1); // lw v0, 8(a1) + if (bc) {goto block_18;} // branch non-likely + + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L11 + c->lw(v0, 4, a1); // lw v0, 4(a1) + if (bc) {goto block_18;} // branch non-likely + + c->lw(v0, 0, a1); // lw v0, 0(a1) + +block_18: + c->mov64(a1, v0); // or a1, v0, r0 + c->mtc1(f2, a1); // mtc1 f2, a1 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->swc1(f1, 36, a2); // swc1 f1, 36(a2) + c->mfc1(a1, f1); // mfc1 a1, f1 + +block_19: + c->lwu(a1, 24, a3); // lwu a1, 24(a3) + bc = c->sgpr64(s7) == c->sgpr64(a1); // beq s7, a1, L14 + c->mov64(a1, s7); // or a1, s7, r0 + if (bc) {goto block_24;} // branch non-likely + + c->lwc1(f1, 8, v1); // lwc1 f1, 8(v1) + c->lwu(t0, 24, a3); // lwu t0, 24(a3) + c->movs(f2, f0); // mov.s f2, f0 + c->daddiu(a1, sp, 112); // daddiu a1, sp, 112 + c->daddiu(v1, sp, 128); // daddiu v1, sp, 128 + c->mfc1(t1, f2); // mfc1 t1, f2 + c->mov128_vf_gpr(vf27, t1); // qmtc2.i vf27, t1 + c->lqc2(vf24, 12, t0); // lqc2 vf24, 12(t0) + c->lqc2(vf25, 28, t0); // lqc2 vf25, 28(t0) + c->lqc2(vf26, 44, t0); // lqc2 vf26, 44(t0) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(t0, 8, a1); // lw t0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L13 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_23;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L13 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_23;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_23: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->swc1(f1, 40, a2); // swc1 f1, 40(a2) + c->mfc1(a1, f1); // mfc1 a1, f1 + +block_24: + c->lwu(v1, 4, a3); // lwu v1, 4(a3) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L17 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_33;} // branch non-likely + + c->load_symbol2(t0, cache.random_generator); // lw t0, *random-generator*(s7) + c->lwu(a1, 0, t0); // lwu a1, 0(t0) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, t0); // sw v0, 0(t0) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f1, a1); // mtc1 f1, a1 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->mfc1(v1, f1); // mfc1 v1, f1 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lwu(v1, 28, a3); // lwu v1, 28(a3) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L17 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_33;} // branch non-likely + + c->lwu(t0, 4, a3); // lwu t0, 4(a3) + c->daddiu(a1, sp, 144); // daddiu a1, sp, 144 + c->daddiu(v1, sp, 160); // daddiu v1, sp, 160 + c->mfc1(t1, f1); // mfc1 t1, f1 + c->mov128_vf_gpr(vf27, t1); // qmtc2.i vf27, t1 + c->lqc2(vf24, 12, t0); // lqc2 vf24, 12(t0) + c->lqc2(vf25, 28, t0); // lqc2 vf25, 28(t0) + c->lqc2(vf26, 44, t0); // lqc2 vf26, 44(t0) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(t0, 8, a1); // lw t0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L15 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_29;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L15 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_29;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_29: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lwu(t0, 28, a3); // lwu t0, 28(a3) + c->movs(f2, f0); // mov.s f2, f0 + c->daddiu(a1, sp, 176); // daddiu a1, sp, 176 + c->daddiu(v1, sp, 192); // daddiu v1, sp, 192 + c->mfc1(t1, f2); // mfc1 t1, f2 + c->mov128_vf_gpr(vf27, t1); // qmtc2.i vf27, t1 + c->lqc2(vf24, 12, t0); // lqc2 vf24, 12(t0) + c->lqc2(vf25, 28, t0); // lqc2 vf25, 28(t0) + c->lqc2(vf26, 44, t0); // lqc2 vf26, 44(t0) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(t0, 8, a1); // lw t0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L16 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_32;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L16 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_32;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_32: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->swc1(f1, 44, a2); // swc1 f1, 44(a2) + c->mfc1(v1, f1); // mfc1 v1, f1 + +block_33: + c->mtc1(f1, r0); // mtc1 f1, r0 + c->lwu(v1, 8, a3); // lwu v1, 8(a3) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L20 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_42;} // branch non-likely + + c->load_symbol2(t0, cache.random_generator); // lw t0, *random-generator*(s7) + c->lwu(a1, 0, t0); // lwu a1, 0(t0) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, t0); // sw v0, 0(t0) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f1, a1); // mtc1 f1, a1 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->mfc1(v1, f1); // mfc1 v1, f1 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->lwu(v1, 32, a3); // lwu v1, 32(a3) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L20 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_42;} // branch non-likely + + c->lui(v1, 17792); // lui v1, 17792 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lwu(t0, 8, a3); // lwu t0, 8(a3) + c->daddiu(a1, sp, 208); // daddiu a1, sp, 208 + c->daddiu(v1, sp, 224); // daddiu v1, sp, 224 + c->mfc1(t1, f2); // mfc1 t1, f2 + c->mov128_vf_gpr(vf27, t1); // qmtc2.i vf27, t1 + c->lqc2(vf24, 12, t0); // lqc2 vf24, 12(t0) + c->lqc2(vf25, 28, t0); // lqc2 vf25, 28(t0) + c->lqc2(vf26, 44, t0); // lqc2 vf26, 44(t0) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(t0, 8, a1); // lw t0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L18 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_38;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L18 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_38;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_38: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->lwu(t0, 32, a3); // lwu t0, 32(a3) + c->movs(f2, f0); // mov.s f2, f0 + c->daddiu(a1, sp, 240); // daddiu a1, sp, 240 + c->daddiu(v1, sp, 256); // daddiu v1, sp, 256 + c->mfc1(t1, f2); // mfc1 t1, f2 + c->mov128_vf_gpr(vf27, t1); // qmtc2.i vf27, t1 + c->lqc2(vf24, 12, t0); // lqc2 vf24, 12(t0) + c->lqc2(vf25, 28, t0); // lqc2 vf25, 28(t0) + c->lqc2(vf26, 44, t0); // lqc2 vf26, 44(t0) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(t0, 8, a1); // lw t0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L19 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_41;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L19 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_41;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_41: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->abss(f1, f1); // abs.s f1, f1 + c->swc1(f1, 12, a2); // swc1 f1, 12(a2) + c->mfc1(v1, f1); // mfc1 v1, f1 + +block_42: + c->ld(v1, 56, a3); // ld v1, 56(a3) + c->andi(v1, v1, 1); // andi v1, v1, 1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L21 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_44;} // branch non-likely + + c->lwc1(f0, 12, a2); // lwc1 f0, 12(a2) + c->swc1(f0, 28, a2); // swc1 f0, 28(a2) + c->mfc1(v1, f0); // mfc1 v1, f0 + //beq r0, r0, L24 // beq r0, r0, L24 + // nop // sll r0, r0, 0 + goto block_53; // branch always + + +block_44: + c->lwu(v1, 12, a3); // lwu v1, 12(a3) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L24 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_53;} // branch non-likely + + c->load_symbol2(t0, cache.random_generator); // lw t0, *random-generator*(s7) + c->lwu(a1, 0, t0); // lwu a1, 0(t0) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, t0); // sw v0, 0(t0) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f1, a1); // mtc1 f1, a1 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->mfc1(v1, f1); // mfc1 v1, f1 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->lwu(v1, 36, a3); // lwu v1, 36(a3) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L24 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_53;} // branch non-likely + + c->lui(v1, 17792); // lui v1, 17792 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lwu(t0, 12, a3); // lwu t0, 12(a3) + c->daddiu(a1, sp, 272); // daddiu a1, sp, 272 + c->daddiu(v1, sp, 288); // daddiu v1, sp, 288 + c->mfc1(t1, f2); // mfc1 t1, f2 + c->mov128_vf_gpr(vf27, t1); // qmtc2.i vf27, t1 + c->lqc2(vf24, 12, t0); // lqc2 vf24, 12(t0) + c->lqc2(vf25, 28, t0); // lqc2 vf25, 28(t0) + c->lqc2(vf26, 44, t0); // lqc2 vf26, 44(t0) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(t0, 8, a1); // lw t0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L22 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_49;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L22 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_49;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_49: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->lwu(a3, 36, a3); // lwu a3, 36(a3) + c->daddiu(a1, sp, 304); // daddiu a1, sp, 304 + c->daddiu(v1, sp, 320); // daddiu v1, sp, 320 + c->mfc1(t0, f0); // mfc1 t0, f0 + c->mov128_vf_gpr(vf27, t0); // qmtc2.i vf27, t0 + c->lqc2(vf24, 12, a3); // lqc2 vf24, 12(a3) + c->lqc2(vf25, 28, a3); // lqc2 vf25, 28(a3) + c->lqc2(vf26, 44, a3); // lqc2 vf26, 44(a3) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(a3, 8, a1); // lw a3, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a3)) >= 0; // bgez a3, L23 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_52;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L23 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_52;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_52: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->muls(f0, f1, f0); // mul.s f0, f1, f0 + c->abss(f0, f0); // abs.s f0, f0 + c->swc1(f0, 28, a2); // swc1 f0, 28(a2) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_53: + c->load_symbol2(v1, cache.random_generator); // lw v1, *random-generator*(s7) + c->sw(a0, 0, v1); // sw a0, 0(v1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 336); // daddiu sp, sp, 336 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.random_generator = intern_from_c(-1, 0, "*random-generator*").c(); + gLinkedFunctionTable.reg("live-func-curve", execute, 512); +} + +} // namespace live_func_curve +} // namespace Mips2C +// add live_func_curve::link to the link callback table for the object file. +// FWD DEC: +namespace live_func_curve { extern void link(); } + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace birth_func_curve { +struct Cache { + void* random_generator; // *random-generator* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -112); // daddiu sp, sp, -112 + c->mov64(t1, a1); // or t1, a1, r0 + c->lwu(a0, 108, t1); // lwu a0, 108(t1) + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + c->load_symbol2(v1, cache.random_generator); // lw v1, *random-generator*(s7) + c->lwu(v1, 0, v1); // lwu v1, 0(v1) + c->sw(v1, 12, t1); // sw v1, 12(t1) + c->ld(a3, 40, a0); // ld a3, 40(a0) + c->ld(v1, 48, a0); // ld v1, 48(a0) + c->slt(v1, r0, v1); // slt v1, r0, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L26 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_2;} // branch non-likely + + c->load_symbol2(t0, cache.random_generator); // lw t0, *random-generator*(s7) + c->lwu(a1, 0, t0); // lwu a1, 0(t0) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, t0); // sw v0, 0(t0) + c->ld(v1, 48, a0); // ld v1, 48(a0) + c->div(v0, v1); // div v0, v1 + c->mfhi(v1); // mfhi v1 + c->daddu(a3, a3, v1); // daddu a3, a3, v1 + c->mov64(v1, a3); // or v1, a3, r0 + +block_2: + c->sw(a3, 100, t1); // sw a3, 100(t1) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 44, a2); // swc1 f0, 44(a2) + c->lwu(v1, 0, a0); // lwu v1, 0(a0) + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L27 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_7; + } + +block_4: + c->ld(v1, 56, a0); // ld v1, 56(a0) + c->andi(v1, v1, 4); // andi v1, v1, 4 + if (((s64)c->sgpr64(v1)) != ((s64)0)) { // bnel v1, r0, L27 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + goto block_7; + } + +block_6: + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + c->ld(a1, 56, a0); // ld a1, 56(a0) + c->andi(a1, a1, 2); // andi a1, a1, 2 + c->movn(v1, s7, a1); // movn v1, s7, a1 + +block_7: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L31 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_14;} // branch non-likely + + c->lwu(a3, 0, a0); // lwu a3, 0(a0) + c->load_symbol2(t0, cache.random_generator); // lw t0, *random-generator*(s7) + c->lwu(a1, 0, t0); // lwu a1, 0(t0) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, t0); // sw v0, 0(t0) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f0, a1); // mtc1 f0, a1 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->adds(f0, f0, f1); // add.s f0, f0, f1 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + c->daddiu(a1, sp, 32); // daddiu a1, sp, 32 + c->mfc1(t0, f0); // mfc1 t0, f0 + c->mov128_vf_gpr(vf26, t0); // qmtc2.i vf26, t0 + c->lqc2(vf23, 12, a3); // lqc2 vf23, 12(a3) + c->lqc2(vf25, 92, a3); // lqc2 vf25, 92(a3) + c->vmax_bc(DEST::xyzw, BC::w, vf3, vf0, vf0); // vmaxw.xyzw vf3, vf0, vf0 + c->vmula(DEST::xyzw, vf25, vf23); // vmula.xyzw acc, vf25, vf23 + c->vmadd_bc(DEST::xyzw, BC::x, vf28, vf25, vf26); // vmaddx.xyzw vf28, vf25, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->lw(t0, 8, a1); // lw t0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L29 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L28 + // nop // sll r0, r0, 0 + if (bc) {goto block_11;} // branch non-likely + + c->lqc2(vf1, 28, a3); // lqc2 vf1, 28(a3) + c->lqc2(vf2, 44, a3); // lqc2 vf2, 44(a3) + c->vsub_bc(DEST::xyzw, BC::x, vf4, vf3, vf28); // vsubx.xyzw vf4, vf3, vf28 + c->vmula_bc(DEST::xyzw, BC::x, vf2, vf28); // vmulax.xyzw acc, vf2, vf28 + c->vmadd_bc(DEST::xyzw, BC::x, vf5, vf1, vf4); // vmaddx.xyzw vf5, vf1, vf4 + //beq r0, r0, L30 // beq r0, r0, L30 + c->sqc2(vf5, 0, v1); // sqc2 vf5, 0(v1) + goto block_13; // branch always + + +block_11: + c->lqc2(vf1, 44, a3); // lqc2 vf1, 44(a3) + c->lqc2(vf2, 60, a3); // lqc2 vf2, 60(a3) + c->vsub_bc(DEST::xyzw, BC::y, vf4, vf3, vf28); // vsuby.xyzw vf4, vf3, vf28 + c->vmula_bc(DEST::xyzw, BC::y, vf2, vf28); // vmulay.xyzw acc, vf2, vf28 + c->vmadd_bc(DEST::xyzw, BC::y, vf5, vf1, vf4); // vmaddy.xyzw vf5, vf1, vf4 + //beq r0, r0, L30 // beq r0, r0, L30 + c->sqc2(vf5, 0, v1); // sqc2 vf5, 0(v1) + goto block_13; // branch always + + +block_12: + c->lqc2(vf1, 60, a3); // lqc2 vf1, 60(a3) + c->lqc2(vf2, 76, a3); // lqc2 vf2, 76(a3) + c->vsub_bc(DEST::xyzw, BC::z, vf4, vf3, vf28); // vsubz.xyzw vf4, vf3, vf28 + c->vmula_bc(DEST::xyzw, BC::z, vf2, vf28); // vmulaz.xyzw acc, vf2, vf28 + c->vmadd_bc(DEST::xyzw, BC::z, vf5, vf1, vf4); // vmaddz.xyzw vf5, vf1, vf4 + c->sqc2(vf5, 0, v1); // sqc2 vf5, 0(v1) + +block_13: + c->lwc1(f0, 0, v1); // lwc1 f0, 0(v1) + c->swc1(f0, 32, a2); // swc1 f0, 32(a2) + c->lwc1(f0, 4, v1); // lwc1 f0, 4(v1) + c->swc1(f0, 36, a2); // swc1 f0, 36(a2) + c->lwc1(f0, 8, v1); // lwc1 f0, 8(v1) + c->swc1(f0, 40, a2); // swc1 f0, 40(a2) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_14: + c->ld(v1, 56, a0); // ld v1, 56(a0) + c->andi(v1, v1, 4); // andi v1, v1, 4 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L36 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_27;} // branch non-likely + + c->mtc1(f0, r0); // mtc1 f0, r0 + c->lwu(v1, 8, a0); // lwu v1, 8(a0) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L33 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_20;} // branch non-likely + + c->load_symbol2(a3, cache.random_generator); // lw a3, *random-generator*(s7) + c->lwu(a1, 0, a3); // lwu a1, 0(a3) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, a3); // sw v0, 0(a3) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f0, a1); // mtc1 f0, a1 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->adds(f0, f0, f1); // add.s f0, f0, f1 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lui(v1, 17792); // lui v1, 17792 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lwu(a3, 8, a0); // lwu a3, 8(a0) + c->daddiu(a1, sp, 48); // daddiu a1, sp, 48 + c->daddiu(v1, sp, 64); // daddiu v1, sp, 64 + c->mfc1(t0, f1); // mfc1 t0, f1 + c->mov128_vf_gpr(vf27, t0); // qmtc2.i vf27, t0 + c->lqc2(vf24, 12, a3); // lqc2 vf24, 12(a3) + c->lqc2(vf25, 28, a3); // lqc2 vf25, 28(a3) + c->lqc2(vf26, 44, a3); // lqc2 vf26, 44(a3) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(a3, 8, a1); // lw a3, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + bc = ((s64)c->sgpr64(a3)) >= 0; // bgez a3, L32 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_19;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L32 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_19;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_19: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 12, a2); // swc1 f0, 12(a2) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_20: + c->ld(v1, 56, a0); // ld v1, 56(a0) + c->andi(v1, v1, 1); // andi v1, v1, 1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L34 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_22;} // branch non-likely + + c->lwc1(f0, 12, a2); // lwc1 f0, 12(a2) + c->swc1(f0, 28, a2); // swc1 f0, 28(a2) + c->mfc1(v1, f0); // mfc1 v1, f0 + //beq r0, r0, L36 // beq r0, r0, L36 + // nop // sll r0, r0, 0 + goto block_27; // branch always + + +block_22: + c->lwu(v1, 12, a0); // lwu v1, 12(a0) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L36 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_27;} // branch non-likely + + c->load_symbol2(a3, cache.random_generator); // lw a3, *random-generator*(s7) + c->lwu(a1, 0, a3); // lwu a1, 0(a3) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, a3); // sw v0, 0(a3) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f0, a1); // mtc1 f0, a1 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->adds(f0, f0, f1); // add.s f0, f0, f1 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lui(v1, 17792); // lui v1, 17792 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lwu(a0, 12, a0); // lwu a0, 12(a0) + c->load_symbol2(a3, cache.random_generator); // lw a3, *random-generator*(s7) + c->lwu(a1, 0, a3); // lwu a1, 0(a3) + c->addiu(v1, r0, 16807); // addiu v1, r0, 16807 + c->mult3(v0, v1, a1); // mult3 v0, v1, a1 + c->mfhi(v1); // mfhi v1 + c->daddu(v1, v1, v1); // daddu v1, v1, v1 + c->srl(a1, v0, 31); // srl a1, v0, 31 + c->or_(v1, v1, a1); // or v1, v1, a1 + c->daddu(v0, v0, v1); // daddu v0, v0, v1 + c->sll(v0, v0, 1); // sll v0, v0, 1 + c->srl(v0, v0, 1); // srl v0, v0, 1 + c->sw(v0, 0, a3); // sw v0, 0(a3) + c->mov64(v1, v0); // or v1, v0, r0 + c->dsra(v1, v1, 8); // dsra v1, v1, 8 + c->lui(a1, 16256); // lui a1, 16256 + c->or_(v1, a1, v1); // or v1, a1, v1 + c->lui(a1, -16512); // lui a1, -16512 + c->mtc1(f1, a1); // mtc1 f1, a1 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->mfc1(v1, f1); // mfc1 v1, f1 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->daddiu(a1, sp, 80); // daddiu a1, sp, 80 + c->daddiu(v1, sp, 96); // daddiu v1, sp, 96 + c->mfc1(a3, f1); // mfc1 a3, f1 + c->mov128_vf_gpr(vf27, a3); // qmtc2.i vf27, a3 + c->lqc2(vf24, 12, a0); // lqc2 vf24, 12(a0) + c->lqc2(vf25, 28, a0); // lqc2 vf25, 28(a0) + c->lqc2(vf26, 44, a0); // lqc2 vf26, 44(a0) + c->vmini_bc(DEST::xyzw, BC::w, vf27, vf27, vf0); // vminiw.xyzw vf27, vf27, vf0 + c->vmax_bc(DEST::xyzw, BC::x, vf27, vf27, vf0); // vmaxx.xyzw vf27, vf27, vf0 + c->vadd_bc(DEST::xyzw, BC::x, vf28, vf24, vf27); // vaddx.xyzw vf28, vf24, vf27 + c->vmula_bc(DEST::xyzw, BC::w, vf25, vf0); // vmulaw.xyzw acc, vf25, vf0 + c->vmadd(DEST::xyzw, vf29, vf28, vf26); // vmadd.xyzw vf29, vf28, vf26 + c->sqc2(vf28, 0, a1); // sqc2 vf28, 0(a1) + c->sqc2(vf29, 0, v1); // sqc2 vf29, 0(v1) + c->lw(a0, 8, a1); // lw a0, 8(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a0)) >= 0; // bgez a0, L35 + c->lw(v0, 8, v1); // lw v0, 8(v1) + if (bc) {goto block_26;} // branch non-likely + + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L35 + c->lw(v0, 4, v1); // lw v0, 4(v1) + if (bc) {goto block_26;} // branch non-likely + + c->lw(v0, 0, v1); // lw v0, 0(v1) + +block_26: + c->mov64(v1, v0); // or v1, v0, r0 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 28, a2); // swc1 f0, 28(a2) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_27: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 112); // daddiu sp, sp, 112 + goto end_of_function; // return + +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.random_generator = intern_from_c(-1, 0, "*random-generator*").c(); + gLinkedFunctionTable.reg("birth-func-curve", execute, 128); +} + +} // namespace birth_func_curve +} // namespace Mips2C +// add birth_func_curve::link to the link callback table for the object file. +// FWD DEC: +namespace birth_func_curve { extern void link(); } \ No newline at end of file diff --git a/game/mips2c/jakx_functions/ripple.cpp b/game/mips2c/jakx_functions/ripple.cpp new file mode 100644 index 0000000000..f92ee72e62 --- /dev/null +++ b/game/mips2c/jakx_functions/ripple.cpp @@ -0,0 +1,610 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { + +struct RippleVu0 { + Vf data_mem[256]; + void sq(const Vf& reg, u16 addr) { + ASSERT(addr < 256); + data_mem[addr] = reg; + } + Vf lq(u16 addr) { + ASSERT(addr < 256); + return data_mem[addr]; + } +} gRippleVu0; + +namespace ripple_matrix_scale { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lhu(v1, 2, a0); // lhu v1, 2(a0) + c->lw(a1, 4, a0); // lw a1, 4(a0) + c->lw(a2, 28, a0); // lw a2, 28(a0) + c->lqc2(vf1, 16, a0); // lqc2 vf1, 16(a0) + +block_1: + c->lqc2(vf5, 16, a1); // lqc2 vf5, 16(a1) + c->lqc2(vf6, 48, a1); // lqc2 vf6, 48(a1) + c->lqc2(vf7, 64, a1); // lqc2 vf7, 64(a1) + c->lqc2(vf8, 96, a1); // lqc2 vf8, 96(a1) + c->vmul_bc(DEST::xyzw, BC::x, vf4, vf5, vf1); // vmulx.xyzw vf4, vf5, vf1 + c->vmul_bc(DEST::xyzw, BC::y, vf5, vf5, vf1); // vmuly.xyzw vf5, vf5, vf1 + c->lq(a3, 0, a1); // lq a3, 0(a1) + c->vmul_bc(DEST::xyzw, BC::z, vf7, vf7, vf1); // vmulz.xyzw vf7, vf7, vf1 + c->lq(a0, 32, a1); // lq a0, 32(a1) + c->vmul_bc(DEST::xyzw, BC::z, vf8, vf8, vf1); // vmulz.xyzw vf8, vf8, vf1 + c->sq(a3, 0, a2); // sq a3, 0(a2) + c->lq(a3, 80, a1); // lq a3, 80(a1) + c->vsub(DEST::xyzw, vf6, vf6, vf4); // vsub.xyzw vf6, vf6, vf4 + c->sq(a0, 32, a2); // sq a0, 32(a2) + c->sqc2(vf5, 16, a2); // sqc2 vf5, 16(a2) + c->sq(a3, 80, a2); // sq a3, 80(a2) + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sqc2(vf7, 64, a2); // sqc2 vf7, 64(a2) + c->addiu(a1, a1, 128); // addiu a1, a1, 128 + c->sqc2(vf6, 48, a2); // sqc2 vf6, 48(a2) + c->addiu(a2, a2, 128); // addiu a2, a2, 128 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L13 + c->sqc2(vf8, -32, a2); // sqc2 vf8, -32(a2) + if (bc) {goto block_1;} // branch non-likely + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("ripple-matrix-scale", execute, 256); +} + +} // namespace ripple_matrix_scale +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace ripple_apply_wave_table { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->daddiu(v1, v1, 1024); // daddiu v1, v1, 1024 + c->lwu(a1, 4, a0); // lwu a1, 4(a0) + c->lwu(t2, 0, a0); // lwu t2, 0(a0) + c->lwu(a2, 8, a0); // lwu a2, 8(a0) + c->lwu(a3, 12, a0); // lwu a3, 12(a0) + c->lhu(a0, 18, a0); // lhu a0, 18(a0) + c->addiu(t0, r0, 0); // addiu t0, r0, 0 + //beq r0, r0, L25 // beq r0, r0, L25 + // nop // sll r0, r0, 0 + goto block_4; // branch always + + +block_1: + c->lbu(t1, 0, a3); // lbu t1, 0(a3) + c->lbu(t3, 0, a1); // lbu t3, 0(a1) + c->daddiu(t3, t3, 3); // daddiu t3, t3, 3 + c->dsrl(t3, t3, 2); // dsrl t3, t3, 2 + c->dsll(t3, t3, 4); // dsll t3, t3, 4 + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->mov64(t4, t2); // or t4, t2, r0 + c->mov64(t3, t1); // or t3, t1, r0 + c->mov64(t5, t4); // or t5, t4, r0 + c->mov64(t4, a2); // or t4, a2, r0 + +block_2: + c->lb(t6, 0, t4); // lb t6, 0(t4) + c->lb(t7, 1, t4); // lb t7, 1(t4) + c->andi(t6, t6, 15); // andi t6, t6, 15 + c->andi(t7, t7, 15); // andi t7, t7, 15 + c->sll(t7, t7, 4); // sll t7, t7, 4 + c->daddu(t6, t6, t7); // daddu t6, t6, t7 + c->sll(t6, t6, 2); // sll t6, t6, 2 + c->daddu(t8, t6, v1); // daddu t8, t6, v1 + c->lb(t6, 0, t8); // lb t6, 0(t8) + c->lb(t7, 1, t8); // lb t7, 1(t8) + c->lb(t8, 2, t8); // lb t8, 2(t8) + c->sb(t6, 7, t5); // sb t6, 7(t5) + c->sb(t7, 2, t5); // sb t7, 2(t5) + c->sb(t8, 10, t5); // sb t8, 10(t5) + c->daddiu(t3, t3, -1); // daddiu t3, t3, -1 + c->daddiu(t4, t4, 2); // daddiu t4, t4, 2 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L24 + c->daddiu(t5, t5, 12); // daddiu t5, t5, 12 + if (bc) {goto block_2;} // branch non-likely + + c->lbu(t3, 2, a1); // lbu t3, 2(a1) + c->lbu(t4, 1, a1); // lbu t4, 1(a1) + c->daddiu(t4, t4, 3); // daddiu t4, t4, 3 + c->dsrl(t4, t4, 2); // dsrl t4, t4, 2 + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->dsll(t3, t3, 4); // dsll t3, t3, 4 + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->lbu(t3, 3, a1); // lbu t3, 3(a1) + c->dsll(t3, t3, 1); // dsll t3, t3, 1 + c->daddiu(t3, t3, 4); // daddiu t3, t3, 4 + c->daddu(a1, a1, t3); // daddu a1, a1, t3 + c->dsll(t1, t1, 1); // dsll t1, t1, 1 + c->daddiu(t1, t1, 15); // daddiu t1, t1, 15 + c->andi(t1, t1, 65520); // andi t1, t1, 65520 + c->daddu(a2, a2, t1); // daddu a2, a2, t1 + c->daddiu(a3, a3, 2); // daddiu a3, a3, 2 + c->mov64(t1, a3); // or t1, a3, r0 + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + +block_4: + c->slt(t1, t0, a0); // slt t1, t0, a0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L23 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v0, s7); // or v0, s7, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("ripple-apply-wave-table", execute, 256); +} + +} // namespace ripple_apply_wave_table +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace ripple_create_wave_table { +struct Cache { + void* display; // *display* + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* setting_control; // *setting-control* + void* atan; // atan + void* cos; // cos + void* ntsc; // ntsc + void* pal; // pal + void* ripple_update_waveform_offs; // ripple-update-waveform-offs + void* sin; // sin +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u16 vi1, vi2; + u32 call_addr = 0; + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s4, 16, sp); // sq s4, 16(sp) + c->sq(s5, 32, sp); // sq s5, 32(sp) + c->sq(gp, 48, sp); // sq gp, 48(sp) + c->swc1(f28, 64, sp); // swc1 f28, 64(sp) + c->swc1(f30, 68, sp); // swc1 f30, 68(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->lwu(v1, 4, gp); // lwu v1, 4(gp) + bc = c->sgpr64(s7) != c->sgpr64(v1); // bne s7, v1, L31 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_9;} // branch non-likely + + c->addiu(s5, r0, 0); // addiu s5, r0, 0 + //beq r0, r0, L30 // beq r0, r0, L30 + // nop // sll r0, r0, 0 + goto block_7; // branch always + + +block_2: + c->addiu(v1, r0, 28); // addiu v1, r0, 28 + c->mult3(v1, v1, s5); // mult3 v1, v1, s5 + c->daddiu(v1, v1, 12); // daddiu v1, v1, 12 + c->daddu(s4, v1, gp); // daddu s4, v1, gp + c->load_symbol2(t9, cache.atan); // lw t9, atan(s7) + c->lh(v1, 10, s4); // lh v1, 10(s4) + c->mtc1(f0, v1); // mtc1 f0, v1 + c->cvtsw(f0, f0); // cvt.s.w f0, f0 + c->mfc1(a0, f0); // mfc1 a0, f0 + c->lh(v1, 8, s4); // lh v1, 8(s4) + c->mtc1(f0, v1); // mtc1 f0, v1 + c->cvtsw(f0, f0); // cvt.s.w f0, f0 + c->mfc1(a1, f0); // mfc1 a1, f0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mtc1(f28, v0); // mtc1 f28, v0 + c->lui(v1, 16768); // lui v1, 16768 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lh(v1, 8, s4); // lh v1, 8(s4) + c->lh(a0, 8, s4); // lh a0, 8(s4) + c->mult3(v1, v1, a0); // mult3 v1, v1, a0 + c->lh(a0, 10, s4); // lh a0, 10(s4) + c->lh(a1, 10, s4); // lh a1, 10(s4) + c->mult3(a0, a0, a1); // mult3 a0, a0, a1 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->cvtsw(f1, f1); // cvt.s.w f1, f1 + c->sqrts(f1, f1); // sqrt.s f1, f1 + c->divs(f30, f0, f1); // div.s f30, f0, f1 + c->load_symbol2(t9, cache.cos); // lw t9, cos(s7) + c->mfc1(a0, f28); // mfc1 a0, f28 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mtc1(f0, v0); // mtc1 f0, v0 + c->lui(v1, 18304); // lui v1, 18304 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->divs(f1, f1, f30); // div.s f1, f1, f30 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 16, s4); // swc1 f0, 16(s4) + c->load_symbol2(t9, cache.sin); // lw t9, sin(s7) + c->mfc1(a0, f28); // mfc1 a0, f28 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mtc1(f0, v0); // mtc1 f0, v0 + c->lui(v1, 18304); // lui v1, 18304 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->divs(f1, f1, f30); // div.s f1, f1, f30 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 20, s4); // swc1 f0, 20(s4) + c->load_symbol2(v1, cache.setting_control); // lw v1, *setting-control*(s7) + c->lwu(v1, 64, v1); // lwu v1, 64(v1) + c->load_symbol_addr(a0, cache.ntsc); // daddiu a0, s7, ntsc + bc = c->sgpr64(v1) != c->sgpr64(a0); // bne v1, a0, L28 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_4;} // branch non-likely + + c->lui(v1, 15496); // lui v1, 15496 + c->ori(v1, v1, 34953); // ori v1, v1, 34953 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lui(v1, -14464); // lui v1, -14464 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->divs(f1, f1, f30); // div.s f1, f1, f30 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->lwc1(f1, 12, s4); // lwc1 f1, 12(s4) + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 24, s4); // swc1 f0, 24(s4) + c->mfc1(v1, f0); // mfc1 v1, f0 + //beq r0, r0, L29 // beq r0, r0, L29 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_4: + c->load_symbol_addr(a0, cache.pal); // daddiu a0, s7, pal + bc = c->sgpr64(v1) != c->sgpr64(a0); // bne v1, a0, L29 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_6;} // branch non-likely + + c->lui(v1, 15523); // lui v1, 15523 + c->ori(v1, v1, 55050); // ori v1, v1, 55050 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lui(v1, -14464); // lui v1, -14464 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->divs(f1, f1, f30); // div.s f1, f1, f30 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->lwc1(f1, 12, s4); // lwc1 f1, 12(s4) + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 24, s4); // swc1 f0, 24(s4) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_6: + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + +block_7: + c->lw(v1, 0, gp); // lw v1, 0(gp) + c->slt(v1, s5, v1); // slt v1, s5, v1 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L27 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->daddiu(v1, s7, 4); // daddiu v1, s7, #t + c->sw(v1, 4, gp); // sw v1, 4(gp) + +block_9: + c->load_symbol2(t9, cache.ripple_update_waveform_offs);// lw t9, ripple-update-waveform-offs(s7) + c->mov64(a0, gp); // or a0, gp, r0 + c->load_symbol2(v1, cache.display); // lw v1, *display*(s7) + c->lwu(a1, 72, v1); // lwu a1, 72(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->addiu(a0, r0, 64); // addiu a0, r0, 64 + c->mov64(a1, v1); // or a1, v1, r0 + +block_10: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(r0, 0, a1); // sq r0, 0(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L32 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + if (bc) {goto block_10;} // branch non-likely + + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + //beq r0, r0, L36 // beq r0, r0, L36 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_12: + c->addiu(a1, r0, 28); // addiu a1, r0, 28 + c->mult3(a1, a1, a0); // mult3 a1, a1, a0 + c->daddiu(a1, a1, 12); // daddiu a1, a1, 12 + c->daddu(a1, a1, gp); // daddu a1, a1, gp + c->lui(a2, 18048); // lui a2, 18048 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->lui(a2, 15232); // lui a2, 15232 + c->mtc1(f1, a2); // mtc1 f1, a2 + c->lwc1(f2, 4, a1); // lwc1 f2, 4(a1) + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->adds(f0, f0, f1); // add.s f0, f0, f1 + c->lui(a2, 15232); // lui a2, 15232 + c->mtc1(f1, a2); // mtc1 f1, a2 + c->lwc1(f2, 16, a1); // lwc1 f2, 16(a1) + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + c->lui(a2, 15232); // lui a2, 15232 + c->mtc1(f2, a2); // mtc1 f2, a2 + c->lwc1(f3, 20, a1); // lwc1 f3, 20(a1) + c->muls(f2, f2, f3); // mul.s f2, f2, f3 + c->lwc1(f3, 0, a1); // lwc1 f3, 0(a1) + c->addiu(a1, r0, 255); // addiu a1, r0, 255 + c->mfc1(a2, f0); // mfc1 a2, f0 + c->mov128_vf_gpr(vf1, a2); // qmtc2.i vf1, a2 + c->mfc1(a2, f1); // mfc1 a2, f1 + c->mov128_vf_gpr(vf2, a2); // qmtc2.i vf2, a2 + c->mfc1(a2, f2); // mfc1 a2, f2 + c->mov128_vf_gpr(vf3, a2); // qmtc2.i vf3, a2 + c->mfc1(a2, f3); // mfc1 a2, f3 + c->mov128_vf_gpr(vf4, a2); // qmtc2.i vf4, a2 + // vi1 = c->gpr_src(a1).du16[0]; // ctc2.i vi1, a1 + vi1 = c->gpr_src(a1).du16[0]; + c->mov64(a1, v1); // or a1, v1, r0 + c->addiu(a2, r0, 16); // addiu a2, r0, 16 + c->vmove(DEST::xyzw, vf6, vf0); // vmove.xyzw vf6, vf0 + +block_13: + c->addiu(a3, r0, 16); // addiu a3, r0, 16 + c->vmove(DEST::xyzw, vf5, vf0); // vmove.xyzw vf5, vf0 + +block_14: + c->lw(at, 0, a1); // lw at, 0(a1) + c->vadda_bc(DEST::xyzw, BC::x, vf1, vf0); // vaddax.xyzw acc, vf1, vf0 + c->vmadda(DEST::xyzw, vf2, vf5); // vmadda.xyzw acc, vf2, vf5 + c->vmadd(DEST::xyzw, vf7, vf3, vf6); // vmadd.xyzw vf7, vf3, vf6 + c->mov128_vf_gpr(vf10, at); // qmtc2.i vf10, at + c->vadd_bc(DEST::xyzw, BC::w, vf5, vf5, vf0); // vaddw.xyzw vf5, vf5, vf0 + c->vftoi0(DEST::xyzw, vf8, vf7); // vftoi0.xyzw vf8, vf7 + // Unknown instr: vmtirx vi2, vf8 + vi2 = c->vfs[vf8].vf.x_as_u16(); // vmtirx vi2, vf8 + c->vitof0(DEST::xyzw, vf8, vf8); // vitof0.xyzw vf8, vf8 + vi2 &= vi1; // viand vi2, vi2, vi1 + c->vfs[vf9].vf = gRippleVu0.lq(vi2++); // vlqi.xyzw vf9, vi2 + c->vsub(DEST::xyzw, vf7, vf7, vf8); // vsub.xyzw vf7, vf7, vf8 + c->vadda_bc(DEST::xyzw, BC::x, vf0, vf9); // vaddax.xyzw acc, vf0, vf9 + c->vmadd_bc(DEST::xyzw, BC::y, vf9, vf7, vf9); // vmaddy.xyzw vf9, vf7, vf9 + c->vadda_bc(DEST::xyzw, BC::x, vf10, vf0); // vaddax.xyzw acc, vf10, vf0 + c->vmadd(DEST::xyzw, vf10, vf9, vf4); // vmadd.xyzw vf10, vf9, vf4 + c->mov128_gpr_vf(at, vf10); // qmfc2.i at, vf10 + c->sw(at, 0, a1); // sw at, 0(a1) + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L35 + c->daddiu(a1, a1, 4); // daddiu a1, a1, 4 + if (bc) {goto block_14;} // branch non-likely + + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L34 + c->vadd_bc(DEST::xyzw, BC::w, vf6, vf6, vf0); // vaddw.xyzw vf6, vf6, vf0 + if (bc) {goto block_13;} // branch non-likely + + c->mov128_gpr_vf(a1, vf6); // qmfc2.i a1, vf6 + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + +block_17: + c->lw(a1, 0, gp); // lw a1, 0(gp) + c->slt(a1, a0, a1); // slt a1, a0, a1 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L33 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + c->mov64(a0, s7); // or a0, s7, r0 + c->mov64(a0, s7); // or a0, s7, r0 + c->lui(a0, 17152); // lui a0, 17152 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->lui(a0, 17279); // lui a0, 17279 + c->mtc1(f1, a0); // mtc1 f1, a0 + c->lwc1(f2, 8, gp); // lwc1 f2, 8(gp) + c->mfc1(a0, f2); // mfc1 a0, f2 + c->mov128_vf_gpr(vf16, a0); // qmtc2.i vf16, a0 + c->mfc1(a0, f0); // mfc1 a0, f0 + c->mov128_vf_gpr(vf14, a0); // qmtc2.i vf14, a0 + c->mfc1(a0, f1); // mfc1 a0, f1 + c->mov128_vf_gpr(vf15, a0); // qmtc2.i vf15, a0 + c->vmax_bc(DEST::xyzw, BC::x, vf16, vf0, vf16); // vmaxx.xyzw vf16, vf0, vf16 + c->vmini_bc(DEST::w, BC::x, vf16, vf0, vf0); // vminix.w vf16, vf0, vf0 + c->mov64(v1, v1); // or v1, v1, r0 + c->addiu(v0, r0, 15); // addiu v0, r0, 15 + +block_19: + c->addiu(a0, r0, 15); // addiu a0, r0, 15 + +block_20: + c->addiu(a2, r0, 4); // addiu a2, r0, 4 + c->addiu(at, r0, -60); // addiu at, r0, -60 + c->movz(a2, at, a0); // movz a2, at, a0 + c->addiu(a1, r0, 64); // addiu a1, r0, 64 + c->addiu(at, r0, -960); // addiu at, r0, -960 + c->daddu(a2, a2, v1); // daddu a2, a2, v1 + c->movz(a1, at, v0); // movz a1, at, v0 + c->lw(at, 0, v1); // lw at, 0(v1) + c->lw(a2, 0, a2); // lw a2, 0(a2) + c->daddu(a1, a1, v1); // daddu a1, a1, v1 + c->lw(a1, 0, a1); // lw a1, 0(a1) + c->mov128_vf_gpr(vf11, at); // qmtc2.i vf11, at + c->mov128_vf_gpr(vf12, a2); // qmtc2.i vf12, a2 + c->mov128_vf_gpr(vf13, a1); // qmtc2.i vf13, a1 + c->vadd_bc(DEST::xyzw, BC::x, vf11, vf0, vf11); // vaddx.xyzw vf11, vf0, vf11 + c->vsub_bc(DEST::y, BC::x, vf11, vf11, vf12); // vsubx.y vf11, vf11, vf12 + c->vsub_bc(DEST::z, BC::x, vf11, vf11, vf13); // vsubx.z vf11, vf11, vf13 + c->vmul(DEST::yzw, vf11, vf11, vf16); // vmul.yzw vf11, vf11, vf16 + c->vadd_bc(DEST::xyzw, BC::x, vf11, vf11, vf14); // vaddx.xyzw vf11, vf11, vf14 + c->vmax_bc(DEST::xyzw, BC::x, vf11, vf11, vf0); // vmaxx.xyzw vf11, vf11, vf0 + c->vmini_bc(DEST::xyzw, BC::x, vf11, vf11, vf15); // vminix.xyzw vf11, vf11, vf15 + c->vftoi0(DEST::xyzw, vf11, vf11); // vftoi0.xyzw vf11, vf11 + c->mov128_gpr_vf(at, vf11); // qmfc2.i at, vf11 + c->ppach(at, at, at); // ppach at, at, at + c->ppacb(at, at, at); // ppacb at, at, at + c->sw(at, 1024, v1); // sw at, 1024(v1) + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L38 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + if (bc) {goto block_20;} // branch non-likely + + bc = c->sgpr64(v0) != 0; // bne v0, r0, L37 + c->daddiu(v0, v0, -1); // daddiu v0, v0, -1 + if (bc) {goto block_19;} // branch non-likely + + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lwc1(f30, 68, sp); // lwc1 f30, 68(sp) + c->lwc1(f28, 64, sp); // lwc1 f28, 64(sp) + c->lq(gp, 48, sp); // lq gp, 48(sp) + c->lq(s5, 32, sp); // lq s5, 32(sp) + c->lq(s4, 16, sp); // lq s4, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.display = intern_from_c(-1, 0, "*display*").c(); + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.setting_control = intern_from_c(-1, 0, "*setting-control*").c(); + cache.atan = intern_from_c(-1, 0, "atan").c(); + cache.cos = intern_from_c(-1, 0, "cos").c(); + cache.ntsc = intern_from_c(-1, 0, "ntsc").c(); + cache.pal = intern_from_c(-1, 0, "pal").c(); + cache.ripple_update_waveform_offs = intern_from_c(-1, 0, "ripple-update-waveform-offs").c(); + cache.sin = intern_from_c(-1, 0, "sin").c(); + gLinkedFunctionTable.reg("ripple-create-wave-table", execute, 256); +} + +} // namespace ripple_create_wave_table +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace ripple_execute_init { +struct Cache { + void* cos_poly_vec; // *cos-poly-vec* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->load_symbol2(v1, cache.cos_poly_vec); // lw v1, *cos-poly-vec*(s7) + c->lqc2(vf7, 0, v1); // lqc2 vf7, 0(v1) + c->lui(v1, 15561); // lui v1, 15561 + c->ori(v1, v1, 4058); // ori v1, v1, 4058 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mov128_vf_gpr(vf6, v1); // qmtc2.i vf6, v1 + c->mov128_gpr_vf(v1, vf6); // qmfc2.i v1, vf6 + c->addiu(v1, r0, 128); // addiu v1, r0, 128 + // vi2 = c->gpr_src(v1).du16[0]; // ctc2.i vi2, v1 + // c->gprs[v1].du64[0] = vi2; // cfc2.i v1, vi2 + u16 vi2 = c->gpr_src(v1).du16[0]; // ctc2.i vi2, v1 + c->gprs[v1].du64[0] = vi2; // cfc2.i v1, vi2 + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mov128_vf_gpr(vf9, v1); // qmtc2.i vf9, v1 + c->mov128_gpr_vf(v1, vf9); // qmfc2.i v1, vf9 + // Unknown instr: viaddi vi1, vi0, 0 + u16 vi1 = 0; + c->addiu(v1, r0, 128); // addiu v1, r0, 128 + c->vmove(DEST::xyzw, vf5, vf6); // vmove.xyzw vf5, vf6 + +block_1: + c->vmul(DEST::xyzw, vf1, vf5, vf5); // vmul.xyzw vf1, vf5, vf5 + c->vadda_bc(DEST::xyzw, BC::w, vf0, vf0); // vaddaw.xyzw acc, vf0, vf0 + c->vadd(DEST::x, vf5, vf5, vf6); // vadd.x vf5, vf5, vf6 + c->vsub_bc(DEST::y, BC::x, vf9, vf0, vf9); // vsubx.y vf9, vf0, vf9 + c->vmul(DEST::xyzw, vf2, vf1, vf1); // vmul.xyzw vf2, vf1, vf1 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf7); // vmaddax.xyzw acc, vf1, vf7 + c->vmul(DEST::xyzw, vf3, vf2, vf1); // vmul.xyzw vf3, vf2, vf1 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf7); // vmadday.xyzw acc, vf2, vf7 + c->vmul(DEST::xyzw, vf4, vf2, vf2); // vmul.xyzw vf4, vf2, vf2 + c->vmadda_bc(DEST::xyzw, BC::z, vf3, vf7); // vmaddaz.xyzw acc, vf3, vf7 + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->vmadd_bc(DEST::xyzw, BC::w, vf8, vf4, vf7); // vmaddw.xyzw vf8, vf4, vf7 + c->vadd_bc(DEST::y, BC::x, vf9, vf9, vf8); // vaddx.y vf9, vf9, vf8 + c->vsub(DEST::xyzw, vf10, vf0, vf9); // vsub.xyzw vf10, vf0, vf9 + // Unknown instr: vsqi.xyzw vf9, vi1 + gRippleVu0.sq(c->vfs[vf9].vf, vi1++); // vsqi.xyzw vf9, vi1 + c->vmove(DEST::xyzw, vf9, vf8); // vmove.xyzw vf9, vf8 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L40 + gRippleVu0.sq(c->vfs[vf10].vf, vi2++); // vsqi.xyzw vf10, vi2 + if (bc) {goto block_1;} // branch non-likely + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.cos_poly_vec = intern_from_c(-1, 0, "*cos-poly-vec*").c(); + gLinkedFunctionTable.reg("ripple-execute-init", execute, 256); +} + +} // namespace ripple_execute_init +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/shadow.cpp b/game/mips2c/jakx_functions/shadow.cpp new file mode 100644 index 0000000000..a598b31c23 --- /dev/null +++ b/game/mips2c/jakx_functions/shadow.cpp @@ -0,0 +1,2803 @@ +//--------------------------MIPS2C--------------------- +#include "game/kernel/jak3/kscheme.h" +#include "game/mips2c/mips2c_private.h" +namespace Mips2C::jakx { +// clang-format off +namespace { +void exec_0(ExecutionContext* c) { + // nop | sub.xyzw vf05, vf03, vf02 0 + c->vfs[vf05].vf.sub(Mask::xyzw, c->vf_src(vf03).vf, c->vf_src(vf02).vf); + // nop | sub.xyzw vf06, vf04, vf02 1 + c->vfs[vf06].vf.sub(Mask::xyzw, c->vf_src(vf04).vf, c->vf_src(vf02).vf); + // nop | sub.xyzw vf10, vf08, vf07 2 + c->vfs[vf10].vf.sub(Mask::xyzw, c->vf_src(vf08).vf, c->vf_src(vf07).vf); + // nop | sub.xyzw vf11, vf09, vf07 3 + c->vfs[vf11].vf.sub(Mask::xyzw, c->vf_src(vf09).vf, c->vf_src(vf07).vf); + // nop | sub.xyzw vf15, vf13, vf12 4 + c->vfs[vf15].vf.sub(Mask::xyzw, c->vf_src(vf13).vf, c->vf_src(vf12).vf); + // nop | sub.xyzw vf16, vf14, vf12 5 + c->vfs[vf16].vf.sub(Mask::xyzw, c->vf_src(vf14).vf, c->vf_src(vf12).vf); + // nop | sub.xyzw vf20, vf18, vf17 6 + c->vfs[vf20].vf.sub(Mask::xyzw, c->vf_src(vf18).vf, c->vf_src(vf17).vf); + // nop | sub.xyzw vf21, vf19, vf17 7 + c->vfs[vf21].vf.sub(Mask::xyzw, c->vf_src(vf19).vf, c->vf_src(vf17).vf); + // nop | opmula.xyz ACC, vf05, vf06 8 + c->vopmula(vf05, vf06); // ASSERT(false); + // nop | opmsub.xyz vf05, vf06, vf05 9 + c->vopmsub(vf05, vf06, vf05); //ASSERT(false); + // nop | opmula.xyz ACC, vf10, vf11 10 + c->vopmula(vf10, vf11); // ASSERT(false); + // nop | opmsub.xyz vf10, vf11, vf10 11 + c->vopmsub(vf10, vf11, vf10); // ASSERT(false); + // nop | opmula.xyz ACC, vf15, vf16 12 + c->vopmula(vf15, vf16); // ASSERT(false); + // nop | opmsub.xyz vf15, vf16, vf15 13 + c->vopmsub(vf15, vf16, vf15); // ASSERT(false); + // nop | opmula.xyz ACC, vf20, vf21 14 + c->vopmula(vf20, vf21); // ASSERT(false); + // nop | opmsub.xyz vf20, vf21, vf20 15 + c->vopmsub(vf20, vf21, vf20); // ASSERT(false); + // nop | mul.xyz vf05, vf05, vf01 16 + c->vfs[vf05].vf.mul(Mask::xyz, c->vf_src(vf05).vf, c->vf_src(vf01).vf); + // nop | mul.xyz vf10, vf10, vf01 17 + c->vfs[vf10].vf.mul(Mask::xyz, c->vf_src(vf10).vf, c->vf_src(vf01).vf); + // nop | mul.xyz vf15, vf15, vf01 18 + c->vfs[vf15].vf.mul(Mask::xyz, c->vf_src(vf15).vf, c->vf_src(vf01).vf); + // nop | mul.xyz vf20, vf20, vf01 19 + c->vfs[vf20].vf.mul(Mask::xyz, c->vf_src(vf20).vf, c->vf_src(vf01).vf); + // nop | addx.y vf05, vf05, vf05 20 + c->vfs[vf05].vf.add(Mask::y, c->vf_src(vf05).vf, c->vf_src(vf05).vf.x()); + // nop | addx.y vf10, vf10, vf10 21 + c->vfs[vf10].vf.add(Mask::y, c->vf_src(vf10).vf, c->vf_src(vf10).vf.x()); + // nop | addx.y vf15, vf15, vf15 22 + c->vfs[vf15].vf.add(Mask::y, c->vf_src(vf15).vf, c->vf_src(vf15).vf.x()); + // nop | addx.y vf20, vf20, vf20 23 + c->vfs[vf20].vf.add(Mask::y, c->vf_src(vf20).vf, c->vf_src(vf20).vf.x()); + // nop | addz.y vf22, vf05, vf05 24 + c->vfs[vf22].vf.add(Mask::y, c->vf_src(vf05).vf, c->vf_src(vf05).vf.z()); + // nop | addz.y vf23, vf10, vf10 25 + c->vfs[vf23].vf.add(Mask::y, c->vf_src(vf10).vf, c->vf_src(vf10).vf.z()); + // nop | addz.y vf24, vf15, vf15 :e 26 + c->vfs[vf24].vf.add(Mask::y, c->vf_src(vf15).vf, c->vf_src(vf15).vf.z()); + // nop | addz.y vf25, vf20, vf20 27 + c->vfs[vf25].vf.add(Mask::y, c->vf_src(vf20).vf, c->vf_src(vf20).vf.z()); +} + +void exec_28(ExecutionContext* c) { +// nop | mul.xyzw vf27, vf20, Q 28 + c->vfs[vf27].vf.mul(Mask::xyzw, c->vf_src(vf20).vf, c->Q); + // div Q, vf13.x, vf17.x | sub.xyzw vf19, vf01, vf03 29 + c->vfs[vf19].vf.sub(Mask::xyzw, c->vf_src(vf01).vf, c->vf_src(vf03).vf); c->Q = c->vfs[vf13].vf.x() / c->vfs[vf17].vf.x(); + // move.xyzw vf23, vf07 | sub.xyzw vf20, vf01, vf04 30 + c->vfs[vf20].vf.sub(Mask::xyzw, c->vf_src(vf01).vf, c->vf_src(vf04).vf); c->vfs[vf23].vf.move(Mask::xyzw, c->vf_src(vf07).vf); + // nop | sub.xyzw vf21, vf01, vf05 31 + c->vfs[vf21].vf.sub(Mask::xyzw, c->vf_src(vf01).vf, c->vf_src(vf05).vf); + // move.xyzw vf25, vf09 | sub.xyzw vf22, vf01, vf06 32 + c->vfs[vf22].vf.sub(Mask::xyzw, c->vf_src(vf01).vf, c->vf_src(vf06).vf); c->vfs[vf25].vf.move(Mask::xyzw, c->vf_src(vf09).vf); + // move.xyzw vf26, vf10 | sub.xyzw vf24, vf08, vf27 33 + c->vfs[vf24].vf.sub(Mask::xyzw, c->vf_src(vf08).vf, c->vf_src(vf27).vf); c->vfs[vf26].vf.move(Mask::xyzw, c->vf_src(vf10).vf); + // nop | mul.xyzw vf11, vf03, vf02 34 + c->vfs[vf11].vf.mul(Mask::xyzw, c->vf_src(vf03).vf, c->vf_src(vf02).vf); + // nop | mul.xyz vf15, vf19, vf02 35 + c->vfs[vf15].vf.mul(Mask::xyz, c->vf_src(vf19).vf, c->vf_src(vf02).vf); + // div Q, vf14.x, vf18.x | mul.xyzw vf12, vf04, vf02 36 + float oldQ = c->Q; + c->vfs[vf12].vf.mul(Mask::xyzw, c->vf_src(vf04).vf, c->vf_src(vf02).vf); c->Q = c->vfs[vf14].vf.x() / c->vfs[vf18].vf.x(); + // move.xyzw vf07, vf03 | mul.xyzw vf28, vf28, Q 37 + c->vfs[vf28].vf.mul(Mask::xyzw, c->vf_src(vf28).vf, oldQ); c->vfs[vf07].vf.move(Mask::xyzw, c->vf_src(vf03).vf); + // move.xyzw vf08, vf04 | mul.xyz vf16, vf20, vf02 38 + c->vfs[vf16].vf.mul(Mask::xyz, c->vf_src(vf20).vf, c->vf_src(vf02).vf); c->vfs[vf08].vf.move(Mask::xyzw, c->vf_src(vf04).vf); + // move.xyzw vf09, vf05 | addy.x vf11, vf11, vf11 39 + c->vfs[vf11].vf.add(Mask::x, c->vf_src(vf11).vf, c->vf_src(vf11).vf.y()); c->vfs[vf09].vf.move(Mask::xyzw, c->vf_src(vf05).vf); + // move.xyzw vf10, vf06 | addy.x vf15, vf15, vf15 40 + c->vfs[vf15].vf.add(Mask::x, c->vf_src(vf15).vf, c->vf_src(vf15).vf.y()); c->vfs[vf10].vf.move(Mask::xyzw, c->vf_src(vf06).vf); + // nop | sub.xyzw vf25, vf25, vf28 41 + c->vfs[vf25].vf.sub(Mask::xyzw, c->vf_src(vf25).vf, c->vf_src(vf28).vf); + // nop | addy.x vf12, vf12, vf12 42 + c->vfs[vf12].vf.add(Mask::x, c->vf_src(vf12).vf, c->vf_src(vf12).vf.y()); + // nop | mul.xyzw vf29, vf29, Q 43 + c->vfs[vf29].vf.mul(Mask::xyzw, c->vf_src(vf29).vf, c->Q); + // nop | addy.x vf16, vf16, vf16 44 + c->vfs[vf16].vf.add(Mask::x, c->vf_src(vf16).vf, c->vf_src(vf16).vf.y()); + // nop | addz.x vf11, vf11, vf11 45 + c->vfs[vf11].vf.add(Mask::x, c->vf_src(vf11).vf, c->vf_src(vf11).vf.z()); + // nop | addz.x vf15, vf15, vf15 46 + c->vfs[vf15].vf.add(Mask::x, c->vf_src(vf15).vf, c->vf_src(vf15).vf.z()); + // nop | sub.xyzw vf26, vf26, vf29 47 + c->vfs[vf26].vf.sub(Mask::xyzw, c->vf_src(vf26).vf, c->vf_src(vf29).vf); + // nop | addz.x vf12, vf12, vf12 48 + c->vfs[vf12].vf.add(Mask::x, c->vf_src(vf12).vf, c->vf_src(vf12).vf.z()); + // nop | addz.x vf16, vf16, vf16 49 + c->vfs[vf16].vf.add(Mask::x, c->vf_src(vf16).vf, c->vf_src(vf16).vf.z()); + // nop | addw.x vf11, vf11, vf11 50 + c->vfs[vf11].vf.add(Mask::x, c->vf_src(vf11).vf, c->vf_src(vf11).vf.w()); + // nop | mul.xyzw vf13, vf09, vf02 51 + + c->vfs[vf13].vf.mul(Mask::xyzw, c->vf_src(vf09).vf, c->vf_src(vf02).vf); + c->vfs[vf13].vf.saturate_infs(); + + // nop | addw.x vf12, vf12, vf12 52 + c->vfs[vf12].vf.add(Mask::x, c->vf_src(vf12).vf, c->vf_src(vf12).vf.w()); + // nop | mul.xyz vf17, vf21, vf02 53 + c->vfs[vf17].vf.mul(Mask::xyz, c->vf_src(vf21).vf, c->vf_src(vf02).vf); + // nop | mul.xyzw vf14, vf10, vf02 54 + c->vfs[vf14].vf.mul(Mask::xyzw, c->vf_src(vf10).vf, c->vf_src(vf02).vf); + c->vfs[vf14].vf.saturate_infs(); + + // div Q, vf11.x, vf15.x | mul.xyz vf18, vf22, vf02 55 + c->vfs[vf18].vf.mul(Mask::xyz, c->vf_src(vf22).vf, c->vf_src(vf02).vf); c->Q = c->vfs[vf11].vf.x() / c->vfs[vf15].vf.x(); + // nop | addy.x vf13, vf13, vf13 56 + c->vfs[vf13].vf.add(Mask::x, c->vf_src(vf13).vf, c->vf_src(vf13).vf.y()); + + // nop | addy.x vf17, vf17, vf17 57 + c->vfs[vf17].vf.add(Mask::x, c->vf_src(vf17).vf, c->vf_src(vf17).vf.y()); + // nop | addy.x vf14, vf14, vf14 58 + c->vfs[vf14].vf.add(Mask::x, c->vf_src(vf14).vf, c->vf_src(vf14).vf.y()); + + // nop | addy.x vf18, vf18, vf18 59 + c->vfs[vf18].vf.add(Mask::x, c->vf_src(vf18).vf, c->vf_src(vf18).vf.y()); + // nop | addz.x vf13, vf13, vf13 60 + c->vfs[vf13].vf.add(Mask::x, c->vf_src(vf13).vf, c->vf_src(vf13).vf.z()); + + // nop | addz.x vf17, vf17, vf17 61 + c->vfs[vf17].vf.add(Mask::x, c->vf_src(vf17).vf, c->vf_src(vf17).vf.z()); + // div Q, vf12.x, vf16.x | addz.x vf14, vf14, vf14 62 + oldQ = c->Q; + c->vfs[vf14].vf.add(Mask::x, c->vf_src(vf14).vf, c->vf_src(vf14).vf.z()); c->Q = c->vfs[vf12].vf.x() / c->vfs[vf16].vf.x(); + + // nop | mul.xyzw vf19, vf19, Q 63 + c->vfs[vf19].vf.mul(Mask::xyzw, c->vf_src(vf19).vf, oldQ); + // move.xyzw vf28, vf21 | addz.x vf18, vf18, vf18 64 + c->vfs[vf18].vf.add(Mask::x, c->vf_src(vf18).vf, c->vf_src(vf18).vf.z()); c->vfs[vf28].vf.move(Mask::xyzw, c->vf_src(vf21).vf); + // move.xyzw vf29, vf22 | addw.x vf13, vf13, vf13 65 + c->vfs[vf13].vf.add(Mask::x, c->vf_src(vf13).vf, c->vf_src(vf13).vf.w()); c->vfs[vf29].vf.move(Mask::xyzw, c->vf_src(vf22).vf); + c->vfs[vf13].vf.saturate_infs(); + + // nop | addw.x vf14, vf14, vf14 :e 66 + c->vfs[vf14].vf.add(Mask::x, c->vf_src(vf14).vf, c->vf_src(vf14).vf.w()); + c->vfs[vf14].vf.saturate_infs(); + + // nop | sub.xyzw vf07, vf07, vf19 67 + c->vfs[vf07].vf.sub(Mask::xyzw, c->vf_src(vf07).vf, c->vf_src(vf19).vf); +} + +void exec_68(ExecutionContext* c) { + // nop | mul.xyzw vf27, vf20, Q 68 + c->vfs[vf27].vf.mul(Mask::xyzw, c->vf_src(vf20).vf, c->Q); + // div Q, vf13.x, vf17.x | nop 69 + c->Q = c->vfs[vf13].vf.x() / c->vfs[vf17].vf.x(); + // move.xyzw vf23, vf07 | nop 70 + c->vfs[vf23].vf.move(Mask::xyzw, c->vf_src(vf07).vf); + // nop | nop 71 + + // move.xyzw vf25, vf09 | nop 72 + c->vfs[vf25].vf.move(Mask::xyzw, c->vf_src(vf09).vf); + // move.xyzw vf26, vf10 | sub.xyzw vf24, vf08, vf27 73 + c->vfs[vf24].vf.sub(Mask::xyzw, c->vf_src(vf08).vf, c->vf_src(vf27).vf); c->vfs[vf26].vf.move(Mask::xyzw, c->vf_src(vf10).vf); + // nop | nop 74 + + // nop | nop 75 + + // div Q, vf14.x, vf18.x | nop 76 + float oldQ = c->Q; + c->Q = c->vfs[vf14].vf.x() / c->vfs[vf18].vf.x(); + // nop | mul.xyzw vf28, vf28, Q 77 + c->vfs[vf28].vf.mul(Mask::xyzw, c->vf_src(vf28).vf, oldQ); + // nop | nop 78 + + // nop | nop 79 + + // nop | nop 80 + + // nop | sub.xyzw vf25, vf25, vf28 81 + c->vfs[vf25].vf.sub(Mask::xyzw, c->vf_src(vf25).vf, c->vf_src(vf28).vf); // was bad + // nop | nop 82 + + // nop | mul.xyzw vf29, vf29, Q 83 + c->vfs[vf29].vf.mul(Mask::xyzw, c->vf_src(vf29).vf, c->Q); + // nop | nop 84 + + // nop | nop 85 + + // nop | nop :e 86 + + // nop | sub.xyzw vf26, vf26, vf29 87 + c->vfs[vf26].vf.sub(Mask::xyzw, c->vf_src(vf26).vf, c->vf_src(vf29).vf); + +} +} // namespace +} // namespace Mips2C::jak3 + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_execute { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* gsf_buffer; // *gsf-buffer* + void* shadow_debug; // *shadow-debug* + void* camera_pos; // camera-pos + void* debug_draw_settings; // debug-draw-settings + void* flush_cache; // flush-cache + void* shadow_add_double_edges; // shadow-add-double-edges + void* shadow_add_double_tris; // shadow-add-double-tris + void* shadow_add_facing_single_tris; // shadow-add-facing-single-tris + void* shadow_add_single_edges; // shadow-add-single-edges + void* shadow_add_single_tris; // shadow-add-single-tris + void* shadow_add_verts; // shadow-add-verts + void* shadow_calc_dual_verts; // shadow-calc-dual-verts + void* shadow_find_double_edges; // shadow-find-double-edges + void* shadow_find_facing_double_tris; // shadow-find-facing-double-tris + void* shadow_find_facing_single_tris; // shadow-find-facing-single-tris + void* shadow_find_single_edges; // shadow-find-single-edges + void* shadow_init_vars; // shadow-init-vars + void* shadow_scissor_edges; // shadow-scissor-edges + void* shadow_scissor_top; // shadow-scissor-top + void* shadow_xform_verts; // shadow-xform-verts +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + c->mov64(gp, a1); // or gp, a1, r0 + c->mov64(s5, a2); // or s5, a2, r0 + c->mov64(s3, a0); // or s3, a0, r0 + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->daddiu(s4, v1, 40); // daddiu s4, v1, 40 + c->load_symbol2(t9, cache.flush_cache); // lw t9, flush-cache(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + //beq r0, r0, L42 // beq r0, r0, L42 + // nop // sll r0, r0, 0 + goto block_37; // branch always + + +block_1: + c->lui(v1, 4096); // lui v1, 4096 + c->ori(v1, v1, 54272); // ori v1, v1, 54272 + c->addiu(a0, r0, 48); // addiu a0, r0, 48 + c->mov64(a1, v1); // or a1, v1, r0 + +block_2: + c->lw(a2, 0, a1); // lw a2, 0(a1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->andi(a2, a2, 256); // andi a2, a2, 256 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L26 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + //beq r0, r0, L25 // beq r0, r0, L25 + // nop // sll r0, r0, 0 + goto block_2; // branch always + + +block_4: + c->gprs[a1].du64[0] = 0; // or a1, r0, r0 + c->mov64(a1, v1); // or a1, v1, r0 + c->mov64(a2, s4); // or a2, s4, r0 + c->lw(a3, 0, a1); // lw a3, 0(a1) + c->andi(a3, a3, 256); // andi a3, a3, 256 + bc = c->sgpr64(a3) == 0; // beq a3, r0, L28 + // TODO Fix - DANGER jump to delay slot, this MUST be fixed manually! + c->lw(a3, 0, a2); // lw a3, 0(a2) + // TODO fix - if (bc) {goto block_-1;} // branch non-likely + + +block_5: + c->lw(a3, 0, a2); // lw a3, 0(a2) + // nop // sll r0, r0, 0 + c->lw(t0, 0, a1); // lw t0, 0(a1) + // nop // sll r0, r0, 0 + c->andi(t0, t0, 256); // andi t0, t0, 256 + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + bc = c->sgpr64(t0) != 0; // bne t0, r0, L27 + c->sw(a3, 0, a2); // sw a3, 0(a2) + if (bc) {goto block_5;} // branch non-likely + + c->gprs[a1].du64[0] = 0; // or a1, r0, r0 + c->sw(a0, 128, v1); // sw a0, 128(v1) + c->sw(s3, 48, v1); // sw s3, 48(v1) + c->sw(r0, 32, v1); // sw r0, 32(v1) + // Unknown instr: sync.l + c->addiu(a0, r0, 324); // addiu a0, r0, 324 + c->sw(a0, 0, v1); // sw a0, 0(v1) + // Unknown instr: sync.l + c->mov64(a0, s4); // or a0, s4, r0 + c->lw(a1, 0, v1); // lw a1, 0(v1) + c->andi(a1, a1, 256); // andi a1, a1, 256 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L30 + // TODO - fix DANGER jump to delay slot, this MUST be fixed manually! + c->lw(a1, 0, a0); // lw a1, 0(a0) + // TODO - fix if (bc) {goto block_-1;} // branch non-likely + + +block_8: + c->lw(a1, 0, a0); // lw a1, 0(a0) + // nop // sll r0, r0, 0 + c->lw(a2, 0, v1); // lw a2, 0(v1) + // nop // sll r0, r0, 0 + c->andi(a2, a2, 256); // andi a2, a2, 256 + c->daddiu(a1, a1, 1); // daddiu a1, a1, 1 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L29 + c->sw(a1, 0, a0); // sw a1, 0(a0) + if (bc) {goto block_8;} // branch non-likely + + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + get_fake_spad_addr2(s3, cache.fake_scratchpad_data, 0, c);// lui s3, 28672 + c->addiu(v1, r0, 160); // addiu v1, r0, 160 + c->daddu(s1, v1, s3); // daddu s1, v1, s3 + c->lw(v1, 56, s3); // lw v1, 56(s3) + c->daddiu(s0, s3, 64); // daddiu s0, s3, 64 + c->load_symbol2(s2, cache.gsf_buffer); // lw s2, *gsf-buffer*(s7) + c->sw(v1, 68, s2); // sw v1, 68(s2) + c->lw(v1, 12, s0); // lw v1, 12(s0) + c->andi(v1, v1, 32); // andi v1, v1, 32 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L41 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_36;} // branch non-likely + + c->load_symbol2(v1, cache.shadow_debug); // lw v1, *shadow-debug*(s7) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L31 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_13;} // branch non-likely + + c->load_symbol2(t9, cache.debug_draw_settings); // lw t9, debug-draw-settings(s7) + c->mov64(a0, s0); // or a0, s0, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_13: + c->daddiu(v1, s2, 80); // daddiu v1, s2, 80 + c->daddu(a0, r0, s0); // daddu a0, r0, s0 + c->daddiu(a1, s0, 16); // daddiu a1, s0, 16 + c->lwc1(f0, 28, s0); // lwc1 f0, 28(s0) + c->lqc2(vf2, 0, a1); // lqc2 vf2, 0(a1) + c->lqc2(vf1, 0, a0); // lqc2 vf1, 0(a0) + c->mfc1(a0, f0); // mfc1 a0, f0 + c->mov128_vf_gpr(vf3, a0); // qmtc2.i vf3, a0 + c->vadd_bc(DEST::w, BC::x, vf4, vf0, vf0); // vaddx.w vf4, vf0, vf0 + c->vmula_bc(DEST::xyzw, BC::x, vf2, vf3); // vmulax.xyzw acc, vf2, vf3 + c->vmadd_bc(DEST::xyz, BC::w, vf4, vf1, vf0); // vmaddw.xyz vf4, vf1, vf0 + c->sqc2(vf4, 0, v1); // sqc2 vf4, 0(v1) + c->lw(v1, 12, s0); // lw v1, 12(s0) + c->andi(v1, v1, 4); // andi v1, v1, 4 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L32 + // nop // sll r0, r0, 0 + if (bc) {goto block_15;} // branch non-likely + + c->lq(v1, 32, s0); // lq v1, 32(s0) + c->sq(v1, 96, s2); // sq v1, 96(s2) + c->lq(v1, 48, s0); // lq v1, 48(s0) + c->sq(v1, 112, s2); // sq v1, 112(s2) + //beq r0, r0, L33 // beq r0, r0, L33 + // nop // sll r0, r0, 0 + goto block_16; // branch always + + +block_15: + c->daddiu(v1, s2, 96); // daddiu v1, s2, 96 + c->lwc1(f0, 32, s0); // lwc1 f0, 32(s0) + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->lwc1(f0, 36, s0); // lwc1 f0, 36(s0) + c->swc1(f0, 4, v1); // swc1 f0, 4(v1) + c->lwc1(f0, 40, s0); // lwc1 f0, 40(s0) + c->swc1(f0, 8, v1); // swc1 f0, 8(v1) + c->lwc1(f0, 44, s0); // lwc1 f0, 44(s0) + c->lwc1(f1, 4, s0); // lwc1 f1, 4(s0) + c->subs(f0, f0, f1); // sub.s f0, f0, f1 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + c->daddiu(v1, s2, 112); // daddiu v1, s2, 112 + c->lwc1(f0, 48, s0); // lwc1 f0, 48(s0) + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->lwc1(f0, 52, s0); // lwc1 f0, 52(s0) + c->swc1(f0, 4, v1); // swc1 f0, 4(v1) + c->lwc1(f0, 56, s0); // lwc1 f0, 56(s0) + c->swc1(f0, 8, v1); // swc1 f0, 8(v1) + c->lwc1(f0, 60, s0); // lwc1 f0, 60(s0) + c->lwc1(f1, 4, s0); // lwc1 f1, 4(s0) + c->subs(f0, f0, f1); // sub.s f0, f0, f1 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + +block_16: + c->lw(v1, 12, s0); // lw v1, 12(s0) + c->andi(v1, v1, 1); // andi v1, v1, 1 + if (((s64)c->sgpr64(v1)) == ((s64)0)) { // beql v1, r0, L34 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + goto block_20; + } + +block_18: + c->load_symbol2(t9, cache.camera_pos); // lw t9, camera-pos(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a0, v0); // or a0, v0, r0 + c->daddiu(v1, s2, 96); // daddiu v1, s2, 96 + c->lwc1(f0, 0, a0); // lwc1 f0, 0(a0) + c->lwc1(f1, 4, a0); // lwc1 f1, 4(a0) + c->lwc1(f2, 8, a0); // lwc1 f2, 8(a0) + c->lwc1(f3, 0, v1); // lwc1 f3, 0(v1) + c->lwc1(f4, 4, v1); // lwc1 f4, 4(v1) + c->lwc1(f5, 8, v1); // lwc1 f5, 8(v1) + // Unknown instr: mula.s f0, f3 + // Unknown instr: madda.s f1, f4 + // Unknown instr: madd.s f0, f2, f5 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lwc1(f1, 108, s2); // lwc1 f1, 108(s2) + c->negs(f1, f1); // neg.s f1, f1 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + bc = !cop1_bc; // bc1f L34 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_20;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_20: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L41 + c->mov64(a0, s7); // or a0, s7, r0 + if (bc) {goto block_36;} // branch non-likely + + c->daddiu(a0, s2, 80); // daddiu a0, s2, 80 + c->daddiu(v1, s2, 96); // daddiu v1, s2, 96 + c->lwc1(f0, 0, a0); // lwc1 f0, 0(a0) + c->lwc1(f1, 4, a0); // lwc1 f1, 4(a0) + c->lwc1(f2, 8, a0); // lwc1 f2, 8(a0) + c->lwc1(f3, 0, v1); // lwc1 f3, 0(v1) + c->lwc1(f4, 4, v1); // lwc1 f4, 4(v1) + c->lwc1(f5, 8, v1); // lwc1 f5, 8(v1) + // Unknown instr: mula.s f0, f3 + // Unknown instr: madda.s f1, f4 + // Unknown instr: madd.s f0, f2, f5 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->daddiu(a0, s2, 80); // daddiu a0, s2, 80 + c->daddiu(v1, s2, 112); // daddiu v1, s2, 112 + c->lwc1(f1, 0, a0); // lwc1 f1, 0(a0) + c->lwc1(f2, 4, a0); // lwc1 f2, 4(a0) + c->lwc1(f3, 8, a0); // lwc1 f3, 8(a0) + c->lwc1(f4, 0, v1); // lwc1 f4, 0(v1) + c->lwc1(f5, 4, v1); // lwc1 f5, 4(v1) + c->lwc1(f6, 8, v1); // lwc1 f6, 8(v1) + // Unknown instr: mula.s f1, f4 + // Unknown instr: madda.s f2, f5 + // Unknown instr: madd.s f1, f3, f6 + c->mfc1(v1, f1); // mfc1 v1, f1 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lwc1(f2, 108, s2); // lwc1 f2, 108(s2) + cop1_bc = c->fprs[f2] < c->fprs[f0]; // c.lt.s f2, f0 + bc = cop1_bc; // bc1t L35 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_23;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_23: + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L36 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_27; + } + +block_25: + c->lwc1(f2, 124, s2); // lwc1 f2, 124(s2) + cop1_bc = c->fprs[f1] < c->fprs[f2]; // c.lt.s f1, f2 + bc = cop1_bc; // bc1t L36 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_27;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_27: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L38 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_31;} // branch non-likely + + c->mtc1(f2, r0); // mtc1 f2, r0 + c->lwc1(f3, 28, s0); // lwc1 f3, 28(s0) + cop1_bc = c->fprs[f2] < c->fprs[f3]; // c.lt.s f2, f3 + bc = !cop1_bc; // bc1f L37 + // nop // sll r0, r0, 0 + if (bc) {goto block_30;} // branch non-likely + + c->negs(f0, f0); // neg.s f0, f0 + c->swc1(f0, 108, s2); // swc1 f0, 108(s2) + c->mfc1(v1, f0); // mfc1 v1, f0 + //beq r0, r0, L38 // beq r0, r0, L38 + // nop // sll r0, r0, 0 + goto block_31; // branch always + + +block_30: + c->negs(f0, f1); // neg.s f0, f1 + c->swc1(f0, 124, s2); // swc1 f0, 124(s2) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_31: + c->lq(v1, 16, s0); // lq v1, 16(s0) + c->sq(v1, 144, s2); // sq v1, 144(s2) + c->daddiu(v1, s2, 128); // daddiu v1, s2, 128 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 4, v1); // swc1 f0, 4(v1) + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->swc1(f0, 8, v1); // swc1 f0, 8(v1) + c->lui(a0, -16384); // lui a0, -16384 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->lwu(a0, 176, s5); // lwu a0, 176(s5) + c->lwc1(f1, 0, a0); // lwc1 f1, 0(a0) + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + c->daddiu(v1, s2, 176); // daddiu v1, s2, 176 + c->sw(v1, 16, s2); // sw v1, 16(s2) + c->daddiu(v1, s2, 48); // daddiu v1, s2, 48 + c->lhu(a0, 18, v1); // lhu a0, 18(v1) + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + c->sh(a0, 18, v1); // sh a0, 18(v1) + c->lw(v1, 12, s0); // lw v1, 12(s0) + c->andi(v1, v1, 64); // andi v1, v1, 64 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L39 + // nop // sll r0, r0, 0 + if (bc) {goto block_33;} // branch non-likely + + c->load_symbol2(t9, cache.shadow_xform_verts); // lw t9, shadow-xform-verts(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_init_vars); // lw t9, shadow-init-vars(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + c->mov64(a2, s5); // or a2, s5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_add_verts); // lw t9, shadow-add-verts(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + c->addiu(a3, r0, 1); // addiu a3, r0, 1 + c->mov64(a2, gp); // or a2, gp, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a2, v0); // or a2, v0, r0 + c->load_symbol2(t9, cache.shadow_add_single_tris);// lw t9, shadow-add-single-tris(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(gp, v0); // or gp, v0, r0 + c->mov64(a0, gp); // or a0, gp, r0 + //beq r0, r0, L41 // beq r0, r0, L41 + // nop // sll r0, r0, 0 + goto block_36; // branch always + + +block_33: + c->load_symbol2(t9, cache.shadow_xform_verts); // lw t9, shadow-xform-verts(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_init_vars); // lw t9, shadow-init-vars(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + c->mov64(a2, s5); // or a2, s5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_calc_dual_verts);// lw t9, shadow-calc-dual-verts(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(v1, 12, s0); // lw v1, 12(s0) + c->andi(v1, v1, 8); // andi v1, v1, 8 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L40 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_35;} // branch non-likely + + c->load_symbol2(t9, cache.shadow_scissor_top); // lw t9, shadow-scissor-top(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_35: + c->load_symbol2(t9, cache.shadow_scissor_edges); // lw t9, shadow-scissor-edges(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_find_facing_single_tris);// lw t9, shadow-find-facing-single-tris(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_find_single_edges);// lw t9, shadow-find-single-edges(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_find_facing_double_tris);// lw t9, shadow-find-facing-double-tris(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_find_double_edges);// lw t9, shadow-find-double-edges(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->load_symbol2(t9, cache.shadow_add_verts); // lw t9, shadow-add-verts(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + c->mov64(a2, gp); // or a2, gp, r0 + c->addiu(a3, r0, 0); // addiu a3, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a2, v0); // or a2, v0, r0 + c->load_symbol2(t9, cache.shadow_add_facing_single_tris);// lw t9, shadow-add-facing-single-tris(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a2, v0); // or a2, v0, r0 + c->load_symbol2(t9, cache.shadow_add_single_edges);// lw t9, shadow-add-single-edges(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a2, v0); // or a2, v0, r0 + c->load_symbol2(t9, cache.shadow_add_double_tris);// lw t9, shadow-add-double-tris(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a2, v0); // or a2, v0, r0 + c->load_symbol2(t9, cache.shadow_add_double_edges);// lw t9, shadow-add-double-edges(s7) + c->mov64(a0, s1); // or a0, s1, r0 + c->mov64(a1, s2); // or a1, s2, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(gp, v0); // or gp, v0, r0 + c->daddiu(v1, s2, 48); // daddiu v1, s2, 48 + c->lwu(a0, 0, v1); // lwu a0, 0(v1) + c->lwu(a1, 20, s2); // lwu a1, 20(s2) + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->sw(a0, 0, v1); // sw a0, 0(v1) + c->lwu(a0, 4, v1); // lwu a0, 4(v1) + c->lhu(a1, 16, s1); // lhu a1, 16(s1) + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->sw(a0, 4, v1); // sw a0, 4(v1) + c->lwu(a0, 8, v1); // lwu a0, 8(v1) + c->lwu(a1, 24, s2); // lwu a1, 24(s2) + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->sw(a0, 8, v1); // sw a0, 8(v1) + c->lwu(a0, 12, v1); // lwu a0, 12(v1) + c->lwu(a1, 28, s2); // lwu a1, 28(s2) + c->daddu(a0, a0, a1); // daddu a0, a0, a1 + c->sw(a0, 12, v1); // sw a0, 12(v1) + +block_36: + c->lw(s3, 60, s3); // lw s3, 60(s3) + +block_37: + bc = c->sgpr64(s3) != 0; // bne s3, r0, L24 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v0, gp); // or v0, gp, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.gsf_buffer = intern_from_c(-1, 0, "*gsf-buffer*").c(); + cache.shadow_debug = intern_from_c(-1, 0, "*shadow-debug*").c(); + cache.camera_pos = intern_from_c(-1, 0, "camera-pos").c(); + cache.debug_draw_settings = intern_from_c(-1, 0, "debug-draw-settings").c(); + cache.flush_cache = intern_from_c(-1, 0, "flush-cache").c(); + cache.shadow_add_double_edges = intern_from_c(-1, 0, "shadow-add-double-edges").c(); + cache.shadow_add_double_tris = intern_from_c(-1, 0, "shadow-add-double-tris").c(); + cache.shadow_add_facing_single_tris = intern_from_c(-1, 0, "shadow-add-facing-single-tris").c(); + cache.shadow_add_single_edges = intern_from_c(-1, 0, "shadow-add-single-edges").c(); + cache.shadow_add_single_tris = intern_from_c(-1, 0, "shadow-add-single-tris").c(); + cache.shadow_add_verts = intern_from_c(-1, 0, "shadow-add-verts").c(); + cache.shadow_calc_dual_verts = intern_from_c(-1, 0, "shadow-calc-dual-verts").c(); + cache.shadow_find_double_edges = intern_from_c(-1, 0, "shadow-find-double-edges").c(); + cache.shadow_find_facing_double_tris = intern_from_c(-1, 0, "shadow-find-facing-double-tris").c(); + cache.shadow_find_facing_single_tris = intern_from_c(-1, 0, "shadow-find-facing-single-tris").c(); + cache.shadow_find_single_edges = intern_from_c(-1, 0, "shadow-find-single-edges").c(); + cache.shadow_init_vars = intern_from_c(-1, 0, "shadow-init-vars").c(); + cache.shadow_scissor_edges = intern_from_c(-1, 0, "shadow-scissor-edges").c(); + cache.shadow_scissor_top = intern_from_c(-1, 0, "shadow-scissor-top").c(); + cache.shadow_xform_verts = intern_from_c(-1, 0, "shadow-xform-verts").c(); + gLinkedFunctionTable.reg("shadow-execute", execute, 512); +} + +} // namespace shadow_execute +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_add_double_edges { +struct Cache { + void* shadow_data; // *shadow-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->load_symbol2(v1, cache.shadow_data); // lw v1, *shadow-data*(s7) + c->mov64(a3, v1); // or a3, v1, r0 + c->lw(v1, 28, a1); // lw v1, 28(a1) + c->lw(a0, 40, a1); // lw a0, 40(a1) + c->lw(a1, 8, a1); // lw a1, 8(a1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L50 + c->daddiu(t0, v1, 1); // daddiu t0, v1, 1 + if (bc) {goto block_4;} // branch non-likely + + c->daddiu(t0, t0, 3); // daddiu t0, t0, 3 + c->dsra(t1, t0, 2); // dsra t1, t0, 2 + c->dsll(t0, t1, 2); // dsll t0, t1, 2 + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->ld(t2, 16, a3); // ld t2, 16(a3) + c->daddu(t1, t2, t1); // daddu t1, t2, t1 + c->lw(a3, 28, a3); // lw a3, 28(a3) + c->sd(t1, 0, a2); // sd t1, 0(a2) + c->addiu(t1, r0, 16984); // addiu t1, r0, 16984 + c->sw(r0, 8, a2); // sw r0, 8(a2) + c->sw(a3, 12, a2); // sw a3, 12(a2) + c->sb(t0, 14, a2); // sb t0, 14(a2) + c->dsll(a3, t0, 2); // dsll a3, t0, 2 + c->sh(t1, 12, a2); // sh t1, 12(a2) + c->daddiu(t0, a2, 16); // daddiu t0, a2, 16 + c->daddu(a2, t0, a3); // daddu a2, t0, a3 + c->sq(r0, -16, a2); // sq r0, -16(a2) + c->sw(v1, 0, t0); // sw v1, 0(t0) + c->daddiu(a3, t0, 4); // daddiu a3, t0, 4 + +block_2: + c->lh(t1, 0, a0); // lh t1, 0(a0) + c->lh(t0, 2, a0); // lh t0, 2(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + c->daddu(t1, t1, a1); // daddu t1, t1, a1 + c->lhu(t1, 0, t1); // lhu t1, 0(t1) + c->sh(t0, 2, a3); // sh t0, 2(a3) + c->sh(t1, 0, a3); // sh t1, 0(a3) + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->daddiu(a3, a3, 4); // daddiu a3, a3, 4 + bc = ((s64)c->sgpr64(v1)) > 0; // bgtz v1, L49 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, a2); // or v1, a2, r0 + c->lui(a0, 5376); // lui a0, 5376 + c->ori(a0, a0, 4); // ori a0, a0, 4 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->sw(a0, 12, v1); // sw a0, 12(v1) + c->daddiu(a2, v1, 16); // daddiu a2, v1, 16 + +block_4: + c->mov64(v0, a2); // or v0, a2, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.shadow_data = intern_from_c(-1, 0, "*shadow-data*").c(); + gLinkedFunctionTable.reg("shadow-add-double-edges", execute, 256); +} + +} // namespace shadow_add_double_edges +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_add_double_tris { +struct Cache { + void* shadow_data; // *shadow-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->load_symbol2(v1, cache.shadow_data); // lw v1, *shadow-data*(s7) + c->mov64(a3, v1); // or a3, v1, r0 + c->lh(v1, 16, a0); // lh v1, 16(a0) + c->lw(a0, 12, a1); // lw a0, 12(a1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L53 + c->daddiu(a1, v1, 1); // daddiu a1, v1, 1 + if (bc) {goto block_4;} // branch non-likely + + c->daddiu(a1, a1, 3); // daddiu a1, a1, 3 + c->dsra(t0, a1, 2); // dsra t0, a1, 2 + c->dsll(a1, t0, 2); // dsll a1, t0, 2 + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + c->ld(t1, 16, a3); // ld t1, 16(a3) + c->daddu(t0, t1, t0); // daddu t0, t1, t0 + c->lw(a3, 28, a3); // lw a3, 28(a3) + c->sd(t0, 0, a2); // sd t0, 0(a2) + c->addiu(t0, r0, 16728); // addiu t0, r0, 16728 + c->sw(r0, 8, a2); // sw r0, 8(a2) + c->sw(a3, 12, a2); // sw a3, 12(a2) + c->sb(a1, 14, a2); // sb a1, 14(a2) + c->dsll(a1, a1, 2); // dsll a1, a1, 2 + c->sh(t0, 12, a2); // sh t0, 12(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddu(a1, a2, a1); // daddu a1, a2, a1 + c->sq(r0, -16, a1); // sq r0, -16(a1) + c->sw(v1, 0, a2); // sw v1, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + +block_2: + c->lw(a3, 0, a0); // lw a3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sw(a3, 0, a2); // sw a3, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + bc = ((s64)c->sgpr64(v1)) > 0; // bgtz v1, L52 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, a1); // or v1, a1, r0 + c->lui(a0, 5376); // lui a0, 5376 + c->ori(a0, a0, 6); // ori a0, a0, 6 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->sw(a0, 12, v1); // sw a0, 12(v1) + c->daddiu(a2, v1, 16); // daddiu a2, v1, 16 + +block_4: + c->mov64(v0, a2); // or v0, a2, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.shadow_data = intern_from_c(-1, 0, "*shadow-data*").c(); + gLinkedFunctionTable.reg("shadow-add-double-tris", execute, 256); +} + +} // namespace shadow_add_double_tris +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_add_single_tris { +struct Cache { + void* shadow_data; // *shadow-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->load_symbol2(v1, cache.shadow_data); // lw v1, *shadow-data*(s7) + c->mov64(a3, v1); // or a3, v1, r0 + c->lh(a1, 12, a0); // lh a1, 12(a0) + c->lw(v1, 28, a0); // lw v1, 28(a0) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L56 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + if (bc) {goto block_4;} // branch non-likely + + c->daddiu(a0, a1, 1); // daddiu a0, a1, 1 + c->daddiu(a0, a0, 3); // daddiu a0, a0, 3 + c->dsra(t0, a0, 2); // dsra t0, a0, 2 + c->dsll(a0, t0, 2); // dsll a0, t0, 2 + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + c->ld(t1, 16, a3); // ld t1, 16(a3) + c->daddu(t0, t1, t0); // daddu t0, t1, t0 + c->lw(a3, 28, a3); // lw a3, 28(a3) + c->sd(t0, 0, a2); // sd t0, 0(a2) + c->addiu(t0, r0, 16728); // addiu t0, r0, 16728 + c->sw(r0, 8, a2); // sw r0, 8(a2) + c->sw(a3, 12, a2); // sw a3, 12(a2) + c->sb(a0, 14, a2); // sb a0, 14(a2) + c->dsll(a0, a0, 2); // dsll a0, a0, 2 + c->sh(t0, 12, a2); // sh t0, 12(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddu(a0, a2, a0); // daddu a0, a2, a0 + c->sq(r0, -16, a0); // sq r0, -16(a0) + c->ori(a1, a1, 256); // ori a1, a1, 256 + c->sw(a1, 0, a2); // sw a1, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + +block_2: + c->lw(a3, 0, v1); // lw a3, 0(v1) + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + c->daddiu(a1, a1, -1); // daddiu a1, a1, -1 + c->sw(a3, 0, a2); // sw a3, 0(a2) + bc = ((s64)c->sgpr64(a1)) > 0; // bgtz a1, L55 + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, a0); // or v1, a0, r0 + c->lui(a0, 5376); // lui a0, 5376 + c->ori(a0, a0, 6); // ori a0, a0, 6 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->sw(a0, 12, v1); // sw a0, 12(v1) + c->daddiu(a2, v1, 16); // daddiu a2, v1, 16 + +block_4: + c->mov64(v0, a2); // or v0, a2, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.shadow_data = intern_from_c(-1, 0, "*shadow-data*").c(); + gLinkedFunctionTable.reg("shadow-add-single-tris", execute, 256); +} + +} // namespace shadow_add_single_tris +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_add_single_edges { +struct Cache { + void* shadow_data; // *shadow-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->load_symbol2(v1, cache.shadow_data); // lw v1, *shadow-data*(s7) + c->mov64(a3, v1); // or a3, v1, r0 + c->lw(v1, 24, a1); // lw v1, 24(a1) + c->lw(a0, 36, a1); // lw a0, 36(a1) + c->lw(a1, 4, a1); // lw a1, 4(a1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L59 + c->daddiu(t0, v1, 1); // daddiu t0, v1, 1 + if (bc) {goto block_4;} // branch non-likely + + c->daddiu(t0, t0, 3); // daddiu t0, t0, 3 + c->dsra(t1, t0, 2); // dsra t1, t0, 2 + c->dsll(t0, t1, 2); // dsll t0, t1, 2 + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->ld(t2, 16, a3); // ld t2, 16(a3) + c->daddu(t1, t2, t1); // daddu t1, t2, t1 + c->lw(a3, 28, a3); // lw a3, 28(a3) + c->sd(t1, 0, a2); // sd t1, 0(a2) + c->addiu(t1, r0, 16984); // addiu t1, r0, 16984 + c->sw(r0, 8, a2); // sw r0, 8(a2) + c->sw(a3, 12, a2); // sw a3, 12(a2) + c->sb(t0, 14, a2); // sb t0, 14(a2) + c->dsll(a3, t0, 2); // dsll a3, t0, 2 + c->sh(t1, 12, a2); // sh t1, 12(a2) + c->daddiu(t0, a2, 16); // daddiu t0, a2, 16 + c->daddu(a2, t0, a3); // daddu a2, t0, a3 + c->sq(r0, -16, a2); // sq r0, -16(a2) + c->sw(v1, 0, t0); // sw v1, 0(t0) + c->daddiu(a3, t0, 4); // daddiu a3, t0, 4 + +block_2: + c->lh(t1, 0, a0); // lh t1, 0(a0) + c->lh(t0, 2, a0); // lh t0, 2(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + c->daddu(t1, t1, a1); // daddu t1, t1, a1 + c->lhu(t1, 0, t1); // lhu t1, 0(t1) + c->sh(t0, 2, a3); // sh t0, 2(a3) + c->sh(t1, 0, a3); // sh t1, 0(a3) + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->daddiu(a3, a3, 4); // daddiu a3, a3, 4 + bc = ((s64)c->sgpr64(v1)) > 0; // bgtz v1, L58 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, a2); // or v1, a2, r0 + c->lui(a0, 5376); // lui a0, 5376 + c->ori(a0, a0, 4); // ori a0, a0, 4 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->sw(a0, 12, v1); // sw a0, 12(v1) + c->daddiu(a2, v1, 16); // daddiu a2, v1, 16 + +block_4: + c->mov64(v0, a2); // or v0, a2, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.shadow_data = intern_from_c(-1, 0, "*shadow-data*").c(); + gLinkedFunctionTable.reg("shadow-add-single-edges", execute, 256); +} + +} // namespace shadow_add_single_edges +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_add_facing_single_tris { +struct Cache { + void* shadow_data; // *shadow-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->load_symbol2(v1, cache.shadow_data); // lw v1, *shadow-data*(s7) + c->mov64(a3, v1); // or a3, v1, r0 + c->lw(v1, 20, a1); // lw v1, 20(a1) + c->lw(a0, 32, a1); // lw a0, 32(a1) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L62 + c->daddiu(a1, v1, 1); // daddiu a1, v1, 1 + if (bc) {goto block_4;} // branch non-likely + + c->daddiu(a1, a1, 3); // daddiu a1, a1, 3 + c->dsra(t0, a1, 2); // dsra t0, a1, 2 + c->dsll(a1, t0, 2); // dsll a1, t0, 2 + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + c->ld(t1, 16, a3); // ld t1, 16(a3) + c->daddu(t0, t1, t0); // daddu t0, t1, t0 + c->lw(a3, 28, a3); // lw a3, 28(a3) + c->sd(t0, 0, a2); // sd t0, 0(a2) + c->addiu(t0, r0, 16728); // addiu t0, r0, 16728 + c->sw(r0, 8, a2); // sw r0, 8(a2) + c->sw(a3, 12, a2); // sw a3, 12(a2) + c->sb(a1, 14, a2); // sb a1, 14(a2) + c->dsll(a1, a1, 2); // dsll a1, a1, 2 + c->sh(t0, 12, a2); // sh t0, 12(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddu(a1, a2, a1); // daddu a1, a2, a1 + c->sq(r0, -16, a1); // sq r0, -16(a1) + c->sw(v1, 0, a2); // sw v1, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + +block_2: + c->lw(a3, 0, a0); // lw a3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + c->lw(a3, 0, a3); // lw a3, 0(a3) + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sw(a3, 0, a2); // sw a3, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + bc = ((s64)c->sgpr64(v1)) > 0; // bgtz v1, L61 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, a1); // or v1, a1, r0 + c->lui(a0, 5376); // lui a0, 5376 + c->ori(a0, a0, 2); // ori a0, a0, 2 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->sw(a0, 12, v1); // sw a0, 12(v1) + c->daddiu(a2, v1, 16); // daddiu a2, v1, 16 + +block_4: + c->mov64(v0, a2); // or v0, a2, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.shadow_data = intern_from_c(-1, 0, "*shadow-data*").c(); + gLinkedFunctionTable.reg("shadow-add-facing-single-tris", execute, 256); +} + +} // namespace shadow_add_facing_single_tris +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_add_verts { +struct Cache { + void* shadow_data; // *shadow-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->load_symbol2(v1, cache.shadow_data); // lw v1, *shadow-data*(s7) + c->mov64(v1, v1); // or v1, v1, r0 + c->lh(a0, 8, a0); // lh a0, 8(a0) + c->addiu(t1, r0, 4); // addiu t1, r0, 4 + c->lq(t0, 0, v1); // lq t0, 0(v1) + // nop // sll r0, r0, 0 + c->sq(t0, 0, a2); // sq t0, 0(a2) + c->sh(a0, 0, a2); // sh a0, 0(a2) + c->sb(a0, 14, a2); // sb a0, 14(a2) + c->sh(t1, 12, a2); // sh t1, 12(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->lw(t3, 0, a1); // lw t3, 0(a1) + c->sll(v1, a0, 4); // sll v1, a0, 4 + c->mov64(t2, a2); // or t2, a2, r0 + c->mov64(t1, a0); // or t1, a0, r0 + c->daddiu(t4, t1, -4); // daddiu t4, t1, -4 + c->mov64(t2, t2); // or t2, t2, r0 + bc = ((s64)c->sgpr64(t4)) < 0; // bltz t4, L65 + c->mov64(t3, t3); // or t3, t3, r0 + if (bc) {goto block_2;} // branch non-likely + + +block_1: + // nop // sll r0, r0, 0 + c->lq(t7, 0, t3); // lq t7, 0(t3) + // nop // sll r0, r0, 0 + c->lq(t4, 16, t3); // lq t4, 16(t3) + c->daddiu(t1, t1, -4); // daddiu t1, t1, -4 + c->lq(t5, 32, t3); // lq t5, 32(t3) + c->daddiu(t2, t2, 64); // daddiu t2, t2, 64 + c->lq(t6, 48, t3); // lq t6, 48(t3) + c->daddiu(t3, t3, 64); // daddiu t3, t3, 64 + c->sq(t7, -64, t2); // sq t7, -64(t2) + c->daddiu(t7, t1, -4); // daddiu t7, t1, -4 + c->sq(t4, -48, t2); // sq t4, -48(t2) + // nop // sll r0, r0, 0 + c->sq(t5, -32, t2); // sq t5, -32(t2) + bc = ((s64)c->sgpr64(t7)) >= 0; // bgez t7, L64 + c->sq(t6, -16, t2); // sq t6, -16(t2) + if (bc) {goto block_1;} // branch non-likely + + +block_2: + bc = c->sgpr64(t1) == 0; // beq t1, r0, L66 + c->lq(t4, 0, t3); // lq t4, 0(t3) + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(t3, t3, 16); // daddiu t3, t3, 16 + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->sq(t4, -16, t2); // sq t4, -16(t2) + bc = c->sgpr64(t1) == 0; // beq t1, r0, L66 + c->lq(t4, 0, t3); // lq t4, 0(t3) + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(t3, t3, 16); // daddiu t3, t3, 16 + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->sq(t4, -16, t2); // sq t4, -16(t2) + bc = c->sgpr64(t1) == 0; // beq t1, r0, L66 + c->lq(t4, 0, t3); // lq t4, 0(t3) + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(t3, t3, 16); // daddiu t3, t3, 16 + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->sq(t4, -16, t2); // sq t4, -16(t2) + bc = c->sgpr64(t1) == 0; // beq t1, r0, L66 + c->lq(t4, 0, t3); // lq t4, 0(t3) + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(t3, t3, 16); // daddiu t3, t3, 16 + c->daddiu(t2, t2, 16); // daddiu t2, t2, 16 + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->sq(t4, -16, t2); // sq t4, -16(t2) + +block_7: + c->gprs[t1].du64[0] = 0; // or t1, r0, r0 + c->daddu(v0, a2, v1); // daddu v0, a2, v1 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L70 + c->addiu(a2, r0, 174); // addiu a2, r0, 174 + if (bc) {goto block_16;} // branch non-likely + + c->sq(t0, 0, v0); // sq t0, 0(v0) + c->sh(a0, 0, v0); // sh a0, 0(v0) + c->sb(a0, 14, v0); // sb a0, 14(v0) + c->sw(r0, 8, v0); // sw r0, 8(v0) + c->sh(a2, 12, v0); // sh a2, 12(v0) + c->lw(a3, 44, a1); // lw a3, 44(a1) + c->daddiu(a1, v0, 16); // daddiu a1, v0, 16 + c->mov64(a2, a1); // or a2, a1, r0 + c->daddiu(t0, a0, -4); // daddiu t0, a0, -4 + c->mov64(a2, a2); // or a2, a2, r0 + bc = ((s64)c->sgpr64(t0)) < 0; // bltz t0, L68 + c->mov64(a3, a3); // or a3, a3, r0 + if (bc) {goto block_10;} // branch non-likely + + +block_9: + // nop // sll r0, r0, 0 + c->lq(t3, 0, a3); // lq t3, 0(a3) + // nop // sll r0, r0, 0 + c->lq(t0, 16, a3); // lq t0, 16(a3) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lq(t1, 32, a3); // lq t1, 32(a3) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->lq(t2, 48, a3); // lq t2, 48(a3) + c->daddiu(a3, a3, 64); // daddiu a3, a3, 64 + c->sq(t3, -64, a2); // sq t3, -64(a2) + c->daddiu(t3, a0, -4); // daddiu t3, a0, -4 + c->sq(t0, -48, a2); // sq t0, -48(a2) + // nop // sll r0, r0, 0 + c->sq(t1, -32, a2); // sq t1, -32(a2) + bc = ((s64)c->sgpr64(t3)) >= 0; // bgez t3, L67 + c->sq(t2, -16, a2); // sq t2, -16(a2) + if (bc) {goto block_9;} // branch non-likely + + +block_10: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L69 + c->lq(t0, 0, a3); // lq t0, 0(a3) + if (bc) {goto block_15;} // branch non-likely + + c->daddiu(a3, a3, 16); // daddiu a3, a3, 16 + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(t0, -16, a2); // sq t0, -16(a2) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L69 + c->lq(t0, 0, a3); // lq t0, 0(a3) + if (bc) {goto block_15;} // branch non-likely + + c->daddiu(a3, a3, 16); // daddiu a3, a3, 16 + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(t0, -16, a2); // sq t0, -16(a2) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L69 + c->lq(t0, 0, a3); // lq t0, 0(a3) + if (bc) {goto block_15;} // branch non-likely + + c->daddiu(a3, a3, 16); // daddiu a3, a3, 16 + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(t0, -16, a2); // sq t0, -16(a2) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L69 + c->lq(t0, 0, a3); // lq t0, 0(a3) + if (bc) {goto block_15;} // branch non-likely + + c->daddiu(a3, a3, 16); // daddiu a3, a3, 16 + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->sq(t0, -16, a2); // sq t0, -16(a2) + +block_15: + c->gprs[a0].du64[0] = 0; // or a0, r0, r0 + c->daddu(v0, a1, v1); // daddu v0, a1, v1 + +block_16: + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.shadow_data = intern_from_c(-1, 0, "*shadow-data*").c(); + gLinkedFunctionTable.reg("shadow-add-verts", execute, 256); +} + +} // namespace shadow_add_verts +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_find_double_edges { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lw(a2, 16, a1); // lw a2, 16(a1) + c->lh(a3, 18, a0); // lh a3, 18(a0) + c->mov64(v1, a2); // or v1, a2, r0 + c->lw(t1, 40, a0); // lw t1, 40(a0) + bc = c->sgpr64(a3) == 0; // beq a3, r0, L75 + c->lw(t0, 12, a1); // lw t0, 12(a1) + if (bc) {goto block_7;} // branch non-likely + + c->daddu(a0, t1, a0); // daddu a0, t1, a0 + c->sw(a2, 40, a1); // sw a2, 40(a1) + c->sw(a0, 8, a1); // sw a0, 8(a1) + c->mov64(t1, a0); // or t1, a0, r0 + c->addiu(t2, r0, 255); // addiu t2, r0, 255 + +block_2: + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + c->lbu(t3, 3, t1); // lbu t3, 3(t1) + // nop // sll r0, r0, 0 + c->lbu(t4, 2, t1); // lbu t4, 2(t1) + bc = c->sgpr64(t3) == c->sgpr64(t2); // beq t3, t2, L73 + c->gprs[t5].du64[0] = 0; // or t5, r0, r0 + if (bc) {goto block_5;} // branch non-likely + + c->dsll(t4, t4, 2); // dsll t4, t4, 2 + c->dsll(t3, t3, 2); // dsll t3, t3, 2 + c->daddu(t4, t4, t0); // daddu t4, t4, t0 + c->daddu(t3, t3, t0); // daddu t3, t3, t0 + // nop // sll r0, r0, 0 + c->lbu(t4, 3, t4); // lbu t4, 3(t4) + // nop // sll r0, r0, 0 + c->lbu(t3, 3, t3); // lbu t3, 3(t3) + bc = c->sgpr64(t4) == c->sgpr64(t3); // beq t4, t3, L74 + // nop // sll r0, r0, 0 + if (bc) {goto block_6;} // branch non-likely + + c->sltiu(t4, t4, 1); // sltiu t4, t4, 1 + // nop // sll r0, r0, 0 + c->sltu(t3, r0, t3); // sltu t3, r0, t3 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sh(t4, 2, v1); // sh t4, 2(v1) + c->dsubu(t4, t1, a0); // dsubu t4, t1, a0 + c->sh(t3, 6, v1); // sh t3, 6(v1) + // nop // sll r0, r0, 0 + c->sh(t4, 0, v1); // sh t4, 0(v1) + // nop // sll r0, r0, 0 + c->sh(t4, 4, v1); // sh t4, 4(v1) + //beq r0, r0, L74 // beq r0, r0, L74 + c->daddiu(v1, v1, 8); // daddiu v1, v1, 8 + goto block_6; // branch always + + +block_5: + c->dsll(t3, t4, 2); // dsll t3, t4, 2 + // nop // sll r0, r0, 0 + c->daddu(t3, t3, t0); // daddu t3, t3, t0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lbu(t3, 3, t3); // lbu t3, 3(t3) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sltiu(t3, t3, 1); // sltiu t3, t3, 1 + c->dsubu(t4, t1, a0); // dsubu t4, t1, a0 + c->sh(t3, 2, v1); // sh t3, 2(v1) + c->sh(t4, 0, v1); // sh t4, 0(v1) + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + +block_6: + bc = c->sgpr64(a3) != 0; // bne a3, r0, L72 + c->daddiu(t1, t1, 4); // daddiu t1, t1, 4 + if (bc) {goto block_2;} // branch non-likely + + +block_7: + c->dsubu(a0, v1, a2); // dsubu a0, v1, a2 + c->dsra(a0, a0, 2); // dsra a0, a0, 2 + c->sw(a0, 28, a1); // sw a0, 28(a1) + c->sw(v1, 16, a1); // sw v1, 16(a1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-find-double-edges", execute, 256); +} + +} // namespace shadow_find_double_edges +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_find_facing_double_tris { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->lh(a2, 16, a0); // lh a2, 16(a0) + c->lw(v1, 36, a0); // lw v1, 36(a0) + c->daddu(a0, v1, a0); // daddu a0, v1, a0 + c->mov64(v1, a0); // or v1, a0, r0 + c->sw(a0, 12, a1); // sw a0, 12(a1) + c->lqc2(vf1, 144, a1); // lqc2 vf1, 144(a1) + c->lqc2(vf2, 80, a1); // lqc2 vf2, 80(a1) + c->lqc2(vf11, 96, a1); // lqc2 vf11, 96(a1) + c->lw(a0, 0, a1); // lw a0, 0(a1) + c->pextlw(a0, a0, a0); // pextlw a0, a0, a0 + c->pextlw(a0, a0, a0); // pextlw a0, a0, a0 + c->daddiu(a1, a2, -4); // daddiu a1, a2, -4 + c->addiu(a2, r0, 1); // addiu a2, r0, 1 + bc = ((s64)c->sgpr64(a1)) < 0; // bltz a1, L82 + c->daddiu(a1, a1, 4); // daddiu a1, a1, 4 + if (bc) {goto block_11;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(t0, 0, v1); // lq t0, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->pextub(a3, r0, t0); // pextub a3, r0, t0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t0, r0, t0); // pextlb t0, r0, t0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(a3, a3, 4); // psllh a3, a3, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(t1, t0, 4); // psllh t1, t0, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t0, r0, t1); // pextuh t0, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t4, r0, a3); // pextuh t4, r0, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t2, r0, a3); // pextlh t2, r0, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t3, t1, a0); // paddw t3, t1, a0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyud(t1, t3, r0); // pcpyud t1, t3, r0 + c->lq(a3, 0, t3); // lq a3, 0(t3) + c->paddw(t5, t0, a0); // paddw t5, t0, a0 + c->lq(t0, 0, t1); // lq t0, 0(t1) + c->pcpyud(t6, t5, r0); // pcpyud t6, t5, r0 + c->lq(t1, 0, t5); // lq t1, 0(t5) + c->dsra32(t3, t3, 0); // dsra32 t3, t3, 0 + c->dsra32(t5, t5, 0); // dsra32 t5, t5, 0 + c->paddw(t9, t2, a0); // paddw t9, t2, a0 + c->lq(t2, 0, t6); // lq t2, 0(t6) + c->pcpyud(t6, t9, r0); // pcpyud t6, t9, r0 + c->lq(t3, 0, t3); // lq t3, 0(t3) + c->paddw(t8, t4, a0); // paddw t8, t4, a0 + c->lq(t4, 0, t5); // lq t4, 0(t5) + c->pcpyud(t7, t8, r0); // pcpyud t7, t8, r0 + c->lq(t5, 0, t9); // lq t5, 0(t9) + c->dsra32(t9, t9, 0); // dsra32 t9, t9, 0 + c->dsra32(ra, t8, 0); // dsra32 ra, t8, 0 + // nop // sll r0, r0, 0 + c->lq(t9, 0, t9); // lq t9, 0(t9) + // nop // sll r0, r0, 0 + c->lq(t6, 0, t6); // lq t6, 0(t6) + // nop // sll r0, r0, 0 + c->lq(t8, 0, t8); // lq t8, 0(t8) + // nop // sll r0, r0, 0 + c->lq(ra, 0, ra); // lq ra, 0(ra) + // nop // sll r0, r0, 0 + c->lq(t7, 0, t7); // lq t7, 0(t7) + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, a3); // qmtc2.ni vf2, a3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf3, t3); // qmtc2.ni vf3, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, t0); // qmtc2.ni vf4, t0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf7, t1); // qmtc2.ni vf7, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf8, t4); // qmtc2.ni vf8, t4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t2); // qmtc2.ni vf9, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t5); // qmtc2.ni vf12, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf13, t9); // qmtc2.ni vf13, t9 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf14, t6); // qmtc2.ni vf14, t6 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf17, t8); // qmtc2.ni vf17, t8 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf18, ra); // qmtc2.ni vf18, ra + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf19, t7); // qmtc2.ni vf19, t7 + +block_2: + // nop // sll r0, r0, 0 + c->lq(t0, 16, v1); // lq t0, 16(v1) + c->daddiu(a1, a1, -4); // daddiu a1, a1, -4 + exec_0(c); + c->pextub(a3, r0, t0); // pextub a3, r0, t0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t0, r0, t0); // pextlb t0, r0, t0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(a3, a3, 4); // psllh a3, a3, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(t1, t0, 4); // psllh t1, t0, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t0, r0, t1); // pextuh t0, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t1, r0, t1); // pextlh t1, r0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t4, r0, a3); // pextuh t4, r0, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t2, r0, a3); // pextlh t2, r0, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t3, t1, a0); // paddw t3, t1, a0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyud(t1, t3, r0); // pcpyud t1, t3, r0 + c->lq(a3, 0, t3); // lq a3, 0(t3) + c->paddw(t5, t0, a0); // paddw t5, t0, a0 + c->lq(t0, 0, t1); // lq t0, 0(t1) + c->pcpyud(t6, t5, r0); // pcpyud t6, t5, r0 + c->lq(t1, 0, t5); // lq t1, 0(t5) + c->dsra32(t3, t3, 0); // dsra32 t3, t3, 0 + c->dsra32(t5, t5, 0); // dsra32 t5, t5, 0 + c->paddw(t9, t2, a0); // paddw t9, t2, a0 + c->lq(t2, 0, t6); // lq t2, 0(t6) + c->pcpyud(t6, t9, r0); // pcpyud t6, t9, r0 + c->lq(t3, 0, t3); // lq t3, 0(t3) + c->paddw(t8, t4, a0); // paddw t8, t4, a0 + c->lq(t4, 0, t5); // lq t4, 0(t5) + c->pcpyud(t7, t8, r0); // pcpyud t7, t8, r0 + c->lq(t5, 0, t9); // lq t5, 0(t9) + c->dsra32(t9, t9, 0); // dsra32 t9, t9, 0 + c->dsra32(ra, t8, 0); // dsra32 ra, t8, 0 + // nop // sll r0, r0, 0 + c->lq(t9, 0, t9); // lq t9, 0(t9) + // nop // sll r0, r0, 0 + c->lq(t6, 0, t6); // lq t6, 0(t6) + // nop // sll r0, r0, 0 + c->lq(t8, 0, t8); // lq t8, 0(t8) + // nop // sll r0, r0, 0 + c->lq(ra, 0, ra); // lq ra, 0(ra) + // nop // sll r0, r0, 0 + c->lq(t7, 0, t7); // lq t7, 0(t7) + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, a3); // qmtc2.ni vf2, a3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf3, t3); // qmtc2.ni vf3, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, t0); // qmtc2.ni vf4, t0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf7, t1); // qmtc2.ni vf7, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf8, t4); // qmtc2.ni vf8, t4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t2); // qmtc2.ni vf9, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t5); // qmtc2.ni vf12, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf13, t9); // qmtc2.ni vf13, t9 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf14, t6); // qmtc2.ni vf14, t6 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf17, t8); // qmtc2.ni vf17, t8 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf18, ra); // qmtc2.ni vf18, ra + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf19, t7); // qmtc2.ni vf19, t7 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t0, vf22); // qmfc2.ni t0, vf22 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t1, vf23); // qmfc2.ni t1, vf23 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf24); // qmfc2.ni a3, vf24 + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L78 + c->mov128_gpr_vf(t0, vf25); // qmfc2.ni t0, vf25 + if (bc) {goto block_4;} // branch non-likely + + c->sb(a2, 3, v1); // sb a2, 3(v1) + // nop // sll r0, r0, 0 + +block_4: + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L79 + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + if (bc) {goto block_6;} // branch non-likely + + c->sb(a2, 3, v1); // sb a2, 3(v1) + // nop // sll r0, r0, 0 + +block_6: + bc = ((s64)c->sgpr64(a3)) >= 0; // bgez a3, L80 + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + if (bc) {goto block_8;} // branch non-likely + + c->sb(a2, 3, v1); // sb a2, 3(v1) + // nop // sll r0, r0, 0 + +block_8: + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L81 + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + if (bc) {goto block_10;} // branch non-likely + + c->sb(a2, 3, v1); // sb a2, 3(v1) + // nop // sll r0, r0, 0 + +block_10: + bc = ((s64)c->sgpr64(a1)) > 0; // bgtz a1, L77 + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + if (bc) {goto block_2;} // branch non-likely + + +block_11: + bc = ((s64)c->sgpr64(a1)) <= 0; // blez a1, L85 + // nop // sll r0, r0, 0 + if (bc) {goto block_15;} // branch non-likely + + +block_12: + c->lbu(a3, 0, v1); // lbu a3, 0(v1) + c->lbu(t0, 1, v1); // lbu t0, 1(v1) + c->lbu(a2, 2, v1); // lbu a2, 2(v1) + c->dsll(a3, a3, 4); // dsll a3, a3, 4 + c->dsll(t0, t0, 4); // dsll t0, t0, 4 + c->dsll(a2, a2, 4); // dsll a2, a2, 4 + c->daddu(a3, a3, a0); // daddu a3, a3, a0 + c->daddu(t0, t0, a0); // daddu t0, t0, a0 + c->daddu(a2, a2, a0); // daddu a2, a2, a0 + c->lqc2(vf2, 0, a3); // lqc2 vf2, 0(a3) + c->lqc2(vf3, 0, t0); // lqc2 vf3, 0(t0) + c->lqc2(vf4, 0, a2); // lqc2 vf4, 0(a2) + c->vsub(DEST::xyzw, vf5, vf3, vf2); // vsub.xyzw vf5, vf3, vf2 + c->vsub(DEST::xyzw, vf6, vf4, vf2); // vsub.xyzw vf6, vf4, vf2 + c->vopmula(vf5, vf6); // vopmula.xyz acc, vf5, vf6 + c->vopmsub(vf5, vf6, vf5); // vopmsub.xyz vf5, vf6, vf5 + c->vmul(DEST::xyz, vf5, vf5, vf1); // vmul.xyz vf5, vf5, vf1 + c->vadd_bc(DEST::y, BC::x, vf5, vf5, vf5); // vaddx.y vf5, vf5, vf5 + c->vadd_bc(DEST::y, BC::z, vf5, vf5, vf5); // vaddz.y vf5, vf5, vf5 + c->mov128_gpr_vf(a2, vf5); // qmfc2.i a2, vf5 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a2)) >= 0; // bgez a2, L84 + c->addiu(a2, r0, 1); // addiu a2, r0, 1 + if (bc) {goto block_14;} // branch non-likely + + c->sb(a2, 3, v1); // sb a2, 3(v1) + +block_14: + c->daddiu(a1, a1, -1); // daddiu a1, a1, -1 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L83 + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + if (bc) {goto block_12;} // branch non-likely + + +block_15: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-find-facing-double-tris", execute, 256); +} + +} // namespace shadow_find_facing_double_tris +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_find_single_edges { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lw(a2, 16, a1); // lw a2, 16(a1) + c->lh(a3, 14, a0); // lh a3, 14(a0) + c->mov64(v1, a2); // or v1, a2, r0 + c->lw(t0, 32, a0); // lw t0, 32(a0) + bc = c->sgpr64(a3) == 0; // beq a3, r0, L91 + c->lw(t1, 28, a0); // lw t1, 28(a0) + if (bc) {goto block_8;} // branch non-likely + + c->daddu(t0, t0, a0); // daddu t0, t0, a0 + c->sw(a2, 36, a1); // sw a2, 36(a1) + c->daddu(a0, t1, a0); // daddu a0, t1, a0 + c->sw(t0, 4, a1); // sw t0, 4(a1) + c->mov64(t1, t0); // or t1, t0, r0 + c->addiu(t2, r0, 255); // addiu t2, r0, 255 + // nop // sll r0, r0, 0 + +block_2: + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + c->lbu(t4, 3, t1); // lbu t4, 3(t1) + // nop // sll r0, r0, 0 + c->lbu(t5, 2, t1); // lbu t5, 2(t1) + bc = c->sgpr64(t4) == c->sgpr64(t2); // beq t4, t2, L88 + c->gprs[t3].du64[0] = 0; // or t3, r0, r0 + if (bc) {goto block_5;} // branch non-likely + + c->dsll(t3, t5, 2); // dsll t3, t5, 2 + c->dsll(t4, t4, 2); // dsll t4, t4, 2 + c->daddu(t3, t3, a0); // daddu t3, t3, a0 + c->daddu(t5, t4, a0); // daddu t5, t4, a0 + // nop // sll r0, r0, 0 + c->lbu(t4, 3, t3); // lbu t4, 3(t3) + // nop // sll r0, r0, 0 + c->lbu(t5, 3, t5); // lbu t5, 3(t5) + c->sltiu(t3, t4, 1); // sltiu t3, t4, 1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t4) == c->sgpr64(t5); // beq t4, t5, L90 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + //beq r0, r0, L89 // beq r0, r0, L89 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_5: + c->dsll(t4, t5, 2); // dsll t4, t5, 2 + // nop // sll r0, r0, 0 + c->daddu(t4, t4, a0); // daddu t4, t4, a0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lbu(t4, 3, t4); // lbu t4, 3(t4) + bc = c->sgpr64(t4) == 0; // beq t4, r0, L90 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + +block_6: + c->dsubu(t4, t1, t0); // dsubu t4, t1, t0 + c->sh(t3, 2, v1); // sh t3, 2(v1) + c->sh(t4, 0, v1); // sh t4, 0(v1) + c->daddiu(v1, v1, 4); // daddiu v1, v1, 4 + +block_7: + bc = c->sgpr64(a3) != 0; // bne a3, r0, L87 + c->daddiu(t1, t1, 4); // daddiu t1, t1, 4 + if (bc) {goto block_2;} // branch non-likely + + +block_8: + c->dsubu(a0, v1, a2); // dsubu a0, v1, a2 + c->dsra(a0, a0, 2); // dsra a0, a0, 2 + c->sw(a0, 24, a1); // sw a0, 24(a1) + c->sw(v1, 16, a1); // sw v1, 16(a1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-find-single-edges", execute, 256); +} + +} // namespace shadow_find_single_edges +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_find_facing_single_tris { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -64); // daddiu sp, sp, -64 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s4, 16, sp); // sq s4, 16(sp) + c->sq(s5, 32, sp); // sq s5, 32(sp) + c->sq(gp, 48, sp); // sq gp, 48(sp) + c->lw(v1, 16, a1); // lw v1, 16(a1) + c->lh(t0, 12, a0); // lh t0, 12(a0) + c->mov64(a2, v1); // or a2, v1, r0 + c->lw(a3, 28, a0); // lw a3, 28(a0) + c->daddu(a0, a3, a0); // daddu a0, a3, a0 + c->mov64(a3, a0); // or a3, a0, r0 + c->lqc2(vf2, 80, a1); // lqc2 vf2, 80(a1) + c->lqc2(vf1, 144, a1); // lqc2 vf1, 144(a1) + c->lqc2(vf11, 96, a1); // lqc2 vf11, 96(a1) + c->lw(a0, 0, a1); // lw a0, 0(a1) + c->pextlw(a0, a0, a0); // pextlw a0, a0, a0 + c->pextlw(a0, a0, a0); // pextlw a0, a0, a0 + c->daddiu(t0, t0, -4); // daddiu t0, t0, -4 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + bc = ((s64)c->sgpr64(t0)) < 0; // bltz t0, L98 + c->daddiu(t0, t0, 4); // daddiu t0, t0, 4 + if (bc) {goto block_11;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(t3, 0, a3); // lq t3, 0(a3) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->pextub(t2, r0, t3); // pextub t2, r0, t3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t3, r0, t3); // pextlb t3, r0, t3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(t2, t2, 4); // psllh t2, t2, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(t4, t3, 4); // psllh t4, t3, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t3, r0, t4); // pextuh t3, r0, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t4, r0, t4); // pextlh t4, r0, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t7, r0, t2); // pextuh t7, r0, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t5, r0, t2); // pextlh t5, r0, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t6, t4, a0); // paddw t6, t4, a0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyud(t4, t6, r0); // pcpyud t4, t6, r0 + c->lq(t2, 0, t6); // lq t2, 0(t6) + c->paddw(t8, t3, a0); // paddw t8, t3, a0 + c->lq(t3, 0, t4); // lq t3, 0(t4) + c->pcpyud(t9, t8, r0); // pcpyud t9, t8, r0 + c->lq(t4, 0, t8); // lq t4, 0(t8) + c->dsra32(t6, t6, 0); // dsra32 t6, t6, 0 + c->dsra32(t8, t8, 0); // dsra32 t8, t8, 0 + c->paddw(s5, t5, a0); // paddw s5, t5, a0 + c->lq(t5, 0, t9); // lq t5, 0(t9) + c->pcpyud(t9, s5, r0); // pcpyud t9, s5, r0 + c->lq(t6, 0, t6); // lq t6, 0(t6) + c->paddw(gp, t7, a0); // paddw gp, t7, a0 + c->lq(t7, 0, t8); // lq t7, 0(t8) + c->pcpyud(ra, gp, r0); // pcpyud ra, gp, r0 + c->lq(t8, 0, s5); // lq t8, 0(s5) + c->dsra32(s5, s5, 0); // dsra32 s5, s5, 0 + c->dsra32(s4, gp, 0); // dsra32 s4, gp, 0 + // nop // sll r0, r0, 0 + c->lq(s5, 0, s5); // lq s5, 0(s5) + // nop // sll r0, r0, 0 + c->lq(t9, 0, t9); // lq t9, 0(t9) + // nop // sll r0, r0, 0 + c->lq(gp, 0, gp); // lq gp, 0(gp) + // nop // sll r0, r0, 0 + c->lq(s4, 0, s4); // lq s4, 0(s4) + // nop // sll r0, r0, 0 + c->lq(ra, 0, ra); // lq ra, 0(ra) + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t2); // qmtc2.ni vf2, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf3, t6); // qmtc2.ni vf3, t6 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, t3); // qmtc2.ni vf4, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf7, t4); // qmtc2.ni vf7, t4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf8, t7); // qmtc2.ni vf8, t7 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t5); // qmtc2.ni vf9, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t8); // qmtc2.ni vf12, t8 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf13, s5); // qmtc2.ni vf13, s5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf14, t9); // qmtc2.ni vf14, t9 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf17, gp); // qmtc2.ni vf17, gp + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf18, s4); // qmtc2.ni vf18, s4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf19, ra); // qmtc2.ni vf19, ra + +block_2: + // nop // sll r0, r0, 0 + c->lq(t3, 16, a3); // lq t3, 16(a3) + c->daddiu(t0, t0, -4); // daddiu t0, t0, -4 + exec_0(c); + c->pextub(t2, r0, t3); // pextub t2, r0, t3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlb(t3, r0, t3); // pextlb t3, r0, t3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(t2, t2, 4); // psllh t2, t2, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->psllh(t4, t3, 4); // psllh t4, t3, 4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t3, r0, t4); // pextuh t3, r0, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t4, r0, t4); // pextlh t4, r0, t4 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(t7, r0, t2); // pextuh t7, r0, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t5, r0, t2); // pextlh t5, r0, t2 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddw(t6, t4, a0); // paddw t6, t4, a0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pcpyud(t4, t6, r0); // pcpyud t4, t6, r0 + c->lq(t2, 0, t6); // lq t2, 0(t6) + c->paddw(t8, t3, a0); // paddw t8, t3, a0 + c->lq(t3, 0, t4); // lq t3, 0(t4) + c->pcpyud(t9, t8, r0); // pcpyud t9, t8, r0 + c->lq(t4, 0, t8); // lq t4, 0(t8) + c->dsra32(t6, t6, 0); // dsra32 t6, t6, 0 + c->dsra32(t8, t8, 0); // dsra32 t8, t8, 0 + c->paddw(s5, t5, a0); // paddw s5, t5, a0 + c->lq(t5, 0, t9); // lq t5, 0(t9) + c->pcpyud(t9, s5, r0); // pcpyud t9, s5, r0 + c->lq(t6, 0, t6); // lq t6, 0(t6) + c->paddw(gp, t7, a0); // paddw gp, t7, a0 + c->lq(t7, 0, t8); // lq t7, 0(t8) + c->pcpyud(ra, gp, r0); // pcpyud ra, gp, r0 + c->lq(t8, 0, s5); // lq t8, 0(s5) + c->dsra32(s5, s5, 0); // dsra32 s5, s5, 0 + c->dsra32(s4, gp, 0); // dsra32 s4, gp, 0 + // nop // sll r0, r0, 0 + c->lq(s5, 0, s5); // lq s5, 0(s5) + // nop // sll r0, r0, 0 + c->lq(t9, 0, t9); // lq t9, 0(t9) + // nop // sll r0, r0, 0 + c->lq(gp, 0, gp); // lq gp, 0(gp) + // nop // sll r0, r0, 0 + c->lq(s4, 0, s4); // lq s4, 0(s4) + // nop // sll r0, r0, 0 + c->lq(ra, 0, ra); // lq ra, 0(ra) + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t2); // qmtc2.ni vf2, t2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf3, t6); // qmtc2.ni vf3, t6 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, t3); // qmtc2.ni vf4, t3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf7, t4); // qmtc2.ni vf7, t4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf8, t7); // qmtc2.ni vf8, t7 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf9, t5); // qmtc2.ni vf9, t5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf12, t8); // qmtc2.ni vf12, t8 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf13, s5); // qmtc2.ni vf13, s5 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf14, t9); // qmtc2.ni vf14, t9 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf17, gp); // qmtc2.ni vf17, gp + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf18, s4); // qmtc2.ni vf18, s4 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf19, ra); // qmtc2.ni vf19, ra + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t3, vf22); // qmfc2.ni t3, vf22 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t4, vf23); // qmfc2.ni t4, vf23 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t2, vf24); // qmfc2.ni t2, vf24 + bc = ((s64)c->sgpr64(t3)) >= 0; // bgez t3, L94 + c->mov128_gpr_vf(t3, vf25); // qmfc2.ni t3, vf25 + if (bc) {goto block_4;} // branch non-likely + + c->sb(t1, 3, a3); // sb t1, 3(a3) + // nop // sll r0, r0, 0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + +block_4: + bc = ((s64)c->sgpr64(t4)) >= 0; // bgez t4, L95 + c->daddiu(a3, a3, 4); // daddiu a3, a3, 4 + if (bc) {goto block_6;} // branch non-likely + + c->sb(t1, 3, a3); // sb t1, 3(a3) + // nop // sll r0, r0, 0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + +block_6: + bc = ((s64)c->sgpr64(t2)) >= 0; // bgez t2, L96 + c->daddiu(a3, a3, 4); // daddiu a3, a3, 4 + if (bc) {goto block_8;} // branch non-likely + + c->sb(t1, 3, a3); // sb t1, 3(a3) + // nop // sll r0, r0, 0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + +block_8: + bc = ((s64)c->sgpr64(t3)) >= 0; // bgez t3, L97 + c->daddiu(a3, a3, 4); // daddiu a3, a3, 4 + if (bc) {goto block_10;} // branch non-likely + + c->sb(t1, 3, a3); // sb t1, 3(a3) + // nop // sll r0, r0, 0 + c->sw(a3, 0, a2); // sw a3, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + +block_10: + bc = ((s64)c->sgpr64(t0)) > 0; // bgtz t0, L93 + c->daddiu(a3, a3, 4); // daddiu a3, a3, 4 + if (bc) {goto block_2;} // branch non-likely + + +block_11: + bc = ((s64)c->sgpr64(t0)) <= 0; // blez t0, L101 + // nop // sll r0, r0, 0 + if (bc) {goto block_15;} // branch non-likely + + +block_12: + c->lbu(t2, 0, a3); // lbu t2, 0(a3) + c->lbu(t3, 1, a3); // lbu t3, 1(a3) + c->lbu(t1, 2, a3); // lbu t1, 2(a3) + c->dsll(t2, t2, 4); // dsll t2, t2, 4 + c->dsll(t3, t3, 4); // dsll t3, t3, 4 + c->dsll(t1, t1, 4); // dsll t1, t1, 4 + c->daddu(t2, t2, a0); // daddu t2, t2, a0 + c->daddu(t3, t3, a0); // daddu t3, t3, a0 + c->daddu(t1, t1, a0); // daddu t1, t1, a0 + c->lqc2(vf2, 0, t2); // lqc2 vf2, 0(t2) + c->lqc2(vf3, 0, t3); // lqc2 vf3, 0(t3) + c->lqc2(vf4, 0, t1); // lqc2 vf4, 0(t1) + c->vsub(DEST::xyzw, vf5, vf3, vf2); // vsub.xyzw vf5, vf3, vf2 + c->vsub(DEST::xyzw, vf6, vf4, vf2); // vsub.xyzw vf6, vf4, vf2 + c->vopmula(vf5, vf6); // vopmula.xyz acc, vf5, vf6 + c->vopmsub(vf5, vf6, vf5); // vopmsub.xyz vf5, vf6, vf5 + c->vmul(DEST::xyz, vf5, vf5, vf1); // vmul.xyz vf5, vf5, vf1 + c->vadd_bc(DEST::y, BC::x, vf5, vf5, vf5); // vaddx.y vf5, vf5, vf5 + c->vadd_bc(DEST::y, BC::z, vf5, vf5, vf5); // vaddz.y vf5, vf5, vf5 + c->mov128_gpr_vf(t1, vf5); // qmfc2.i t1, vf5 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L100 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + if (bc) {goto block_14;} // branch non-likely + + c->sw(a3, 0, a2); // sw a3, 0(a2) + c->daddiu(a2, a2, 4); // daddiu a2, a2, 4 + c->sb(t1, 3, a3); // sb t1, 3(a3) + +block_14: + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + bc = c->sgpr64(t0) != 0; // bne t0, r0, L99 + c->daddiu(a3, a3, 4); // daddiu a3, a3, 4 + if (bc) {goto block_12;} // branch non-likely + + +block_15: + c->dsubu(a0, a2, v1); // dsubu a0, a2, v1 + c->dsra(a0, a0, 2); // dsra a0, a0, 2 + c->sw(a0, 20, a1); // sw a0, 20(a1) + c->sw(v1, 32, a1); // sw v1, 32(a1) + c->sw(a2, 16, a1); // sw a2, 16(a1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 48, sp); // lq gp, 48(sp) + c->lq(s5, 32, sp); // lq s5, 32(sp) + c->lq(s4, 16, sp); // lq s4, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 64); // daddiu sp, sp, 64 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-find-facing-single-tris", execute, 256); +} + +} // namespace shadow_find_facing_single_tris +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_init_vars { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lwu(v1, 176, a2); // lwu v1, 176(a2) + c->lqc2(vf7, 364, v1); // lqc2 vf7, 364(v1) + c->lqc2(vf8, 380, v1); // lqc2 vf8, 380(v1) + c->lqc2(vf9, 396, v1); // lqc2 vf9, 396(v1) + c->lqc2(vf10, 412, v1); // lqc2 vf10, 412(v1) + c->lqc2(vf1, 144, a1); // lqc2 vf1, 144(a1) + c->lqc2(vf11, 96, a1); // lqc2 vf11, 96(a1) + c->lqc2(vf12, 112, a1); // lqc2 vf12, 112(a1) + c->lqc2(vf2, 80, a1); // lqc2 vf2, 80(a1) + c->vmula_bc(DEST::xyzw, BC::x, vf7, vf1); // vmulax.xyzw acc, vf7, vf1 + c->vmadda_bc(DEST::xyzw, BC::y, vf8, vf1); // vmadday.xyzw acc, vf8, vf1 + c->vmadd_bc(DEST::xyzw, BC::z, vf1, vf9, vf1); // vmaddz.xyzw vf1, vf9, vf1 + c->vmula_bc(DEST::xyzw, BC::x, vf7, vf11); // vmulax.xyzw acc, vf7, vf11 + c->vmadda_bc(DEST::xyzw, BC::y, vf8, vf11); // vmadday.xyzw acc, vf8, vf11 + c->vmadd_bc(DEST::xyz, BC::z, vf11, vf9, vf11); // vmaddz.xyz vf11, vf9, vf11 + c->vmula_bc(DEST::xyzw, BC::x, vf7, vf12); // vmulax.xyzw acc, vf7, vf12 + c->vmadda_bc(DEST::xyzw, BC::y, vf8, vf12); // vmadday.xyzw acc, vf8, vf12 + c->vmadd_bc(DEST::xyz, BC::z, vf12, vf9, vf12); // vmaddz.xyz vf12, vf9, vf12 + c->vmul(DEST::xyzw, vf13, vf10, vf11); // vmul.xyzw vf13, vf10, vf11 + c->vmula_bc(DEST::xyzw, BC::w, vf10, vf0); // vmulaw.xyzw acc, vf10, vf0 + c->vmadda_bc(DEST::xyzw, BC::x, vf7, vf2); // vmaddax.xyzw acc, vf7, vf2 + c->vmul(DEST::xyzw, vf14, vf10, vf12); // vmul.xyzw vf14, vf10, vf12 + c->vsub_bc(DEST::w, BC::x, vf13, vf13, vf13); // vsubx.w vf13, vf13, vf13 + c->vsub_bc(DEST::w, BC::x, vf14, vf14, vf14); // vsubx.w vf14, vf14, vf14 + c->vmadda_bc(DEST::xyzw, BC::y, vf8, vf2); // vmadday.xyzw acc, vf8, vf2 + c->vmadd_bc(DEST::xyzw, BC::z, vf2, vf9, vf2); // vmaddz.xyzw vf2, vf9, vf2 + c->vsub_bc(DEST::w, BC::y, vf13, vf13, vf13); // vsuby.w vf13, vf13, vf13 + c->vsub_bc(DEST::w, BC::y, vf14, vf14, vf14); // vsuby.w vf14, vf14, vf14 + c->vsub_bc(DEST::w, BC::z, vf11, vf13, vf13); // vsubz.w vf11, vf13, vf13 + c->vsub_bc(DEST::w, BC::z, vf12, vf14, vf14); // vsubz.w vf12, vf14, vf14 + c->sqc2(vf2, 80, a1); // sqc2 vf2, 80(a1) + c->sqc2(vf1, 144, a1); // sqc2 vf1, 144(a1) + c->sqc2(vf11, 96, a1); // sqc2 vf11, 96(a1) + c->sqc2(vf12, 112, a1); // sqc2 vf12, 112(a1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-init-vars", execute, 256); +} + +} // namespace shadow_init_vars +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_scissor_top { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + c->lw(a2, 44, a1); // lw a2, 44(a1) + // nop // sll r0, r0, 0 + c->lw(v1, 0, a1); // lw v1, 0(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 112, a1); // lqc2 vf3, 112(a1) + // nop // sll r0, r0, 0 + c->lh(a0, 8, a0); // lh a0, 8(a0) + c->mov64(a1, a2); // or a1, a2, r0 + // nop // sll r0, r0, 0 + c->mov64(v1, v1); // or v1, v1, r0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L106 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + +block_1: + c->lqc2(vf1, 0, v1); // lqc2 vf1, 0(v1) + c->lqc2(vf2, 0, a1); // lqc2 vf2, 0(a1) + c->vsub(DEST::xyzw, vf4, vf2, vf1); // vsub.xyzw vf4, vf2, vf1 + c->vmul(DEST::xyzw, vf5, vf1, vf3); // vmul.xyzw vf5, vf1, vf3 + c->vmul(DEST::xyz, vf6, vf4, vf3); // vmul.xyz vf6, vf4, vf3 + c->vadd_bc(DEST::y, BC::x, vf5, vf5, vf5); // vaddx.y vf5, vf5, vf5 + c->vadd_bc(DEST::x, BC::y, vf6, vf6, vf6); // vaddy.x vf6, vf6, vf6 + c->vadd_bc(DEST::y, BC::z, vf5, vf5, vf5); // vaddz.y vf5, vf5, vf5 + c->vadd_bc(DEST::x, BC::z, vf6, vf6, vf6); // vaddz.x vf6, vf6, vf6 + c->vadd_bc(DEST::y, BC::w, vf5, vf5, vf5); // vaddw.y vf5, vf5, vf5 + c->mov128_gpr_vf(a2, vf5); // qmfc2.i a2, vf5 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a2)) < 0; // bltz a2, L105 + // nop // sll r0, r0, 0 + if (bc) {goto block_3;} // branch non-likely + + c->vdiv(vf5, BC::y, vf6, BC::x); // vdiv Q, vf5.y, vf6.x + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyzw, vf4, vf4); // vmulq.xyzw vf4, vf4, Q + c->vsub(DEST::xyzw, vf1, vf1, vf4); // vsub.xyzw vf1, vf1, vf4 + c->sqc2(vf1, 0, v1); // sqc2 vf1, 0(v1) + +block_3: + c->daddiu(v1, v1, 16); // daddiu v1, v1, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L104 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + +block_4: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-scissor-top", execute, 256); +} + +} // namespace shadow_scissor_top +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_scissor_edges { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->lw(a3, 44, a1); // lw a3, 44(a1) + // nop // sll r0, r0, 0 + c->lw(a2, 0, a1); // lw a2, 0(a1) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 128, a1); // lqc2 vf3, 128(a1) + // nop // sll r0, r0, 0 + c->lh(a0, 8, a0); // lh a0, 8(a0) + c->mov64(a1, a3); // or a1, a3, r0 + c->lw(a3, 44, v1); // lw a3, 44(v1) + c->mov64(a2, a2); // or a2, a2, r0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L111 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + +block_1: + c->lqc2(vf1, 0, a2); // lqc2 vf1, 0(a2) + c->lqc2(vf2, 0, a1); // lqc2 vf2, 0(a1) + c->vadd_bc(DEST::z, BC::w, vf7, vf1, vf3); // vaddw.z vf7, vf1, vf3 + c->vadd_bc(DEST::z, BC::w, vf8, vf2, vf3); // vaddw.z vf8, vf2, vf3 + c->vsub_bc(DEST::z, BC::z, vf6, vf1, vf2); // vsubz.z vf6, vf1, vf2 + c->vadd_bc(DEST::z, BC::w, vf5, vf1, vf3); // vaddw.z vf5, vf1, vf3 + c->vadd_bc(DEST::y, BC::z, vf7, vf0, vf7); // vaddz.y vf7, vf0, vf7 + c->vadd_bc(DEST::y, BC::z, vf8, vf0, vf8); // vaddz.y vf8, vf0, vf8 + c->vsub(DEST::xyz, vf4, vf2, vf1); // vsub.xyz vf4, vf2, vf1 + c->mov128_gpr_vf(t0, vf7); // qmfc2.i t0, vf7 + c->mov128_gpr_vf(t1, vf8); // qmfc2.i t1, vf8 + bc = ((s64)c->sgpr64(t0)) < 0; // bltz t0, L109 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + bc = ((s64)c->sgpr64(t1)) > 0; // bgtz t1, L110 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + //beq r0, r0, L110 // beq r0, r0, L110 + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + goto block_5; // branch always + + +block_4: + bc = ((s64)c->sgpr64(t1)) < 0; // bltz t1, L110 + c->daddiu(a3, a3, 1); // daddiu a3, a3, 1 + if (bc) {goto block_5;} // branch non-likely + + +block_5: + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + c->daddiu(a1, a1, 16); // daddiu a1, a1, 16 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L108 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->sw(a3, 44, v1); // sw a3, 44(v1) + +block_7: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + gLinkedFunctionTable.reg("shadow-scissor-edges", execute, 256); +} + +} // namespace shadow_scissor_edges +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_calc_dual_verts { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + c->lw(v1, 16, a1); // lw v1, 16(a1) + // nop // sll r0, r0, 0 + c->lw(a2, 0, a1); // lw a2, 0(a1) + c->daddiu(v1, v1, 15); // daddiu v1, v1, 15 + c->lqc2(vf1, 80, a1); // lqc2 vf1, 80(a1) + c->dsra(v1, v1, 4); // dsra v1, v1, 4 + c->lqc2(vf2, 96, a1); // lqc2 vf2, 96(a1) + c->dsll(a3, v1, 4); // dsll a3, v1, 4 + c->lh(a0, 8, a0); // lh a0, 8(a0) + c->mov64(v1, a3); // or v1, a3, r0 + c->sw(a3, 44, a1); // sw a3, 44(a1) + c->mov64(a2, a2); // or a2, a2, r0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L116 + // nop // sll r0, r0, 0 + if (bc) {goto block_9;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(a3, 0, a2); // lq a3, 0(a2) + // nop // sll r0, r0, 0 + c->lq(t0, 16, a2); // lq t0, 16(a2) + // nop // sll r0, r0, 0 + c->lq(t1, 32, a2); // lq t1, 32(a2) + // nop // sll r0, r0, 0 + c->lq(t2, 48, a2); // lq t2, 48(a2) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->mov128_vf_gpr(vf3, a3); // qmtc2.i vf3, a3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, t0); // qmtc2.ni vf4, t0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf5, t1); // qmtc2.ni vf5, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf6, t2); // qmtc2.ni vf6, t2 + exec_28(c); + // nop // sll r0, r0, 0 + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lq(a3, 0, a2); // lq a3, 0(a2) + bc = ((s64)c->sgpr64(a0)) <= 0; // blez a0, L114 + c->lq(t0, 16, a2); // lq t0, 16(a2) + if (bc) {goto block_4;} // branch non-likely + + // nop // sll r0, r0, 0 + c->lq(t1, 32, a2); // lq t1, 32(a2) + // nop // sll r0, r0, 0 + c->lq(t2, 48, a2); // lq t2, 48(a2) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->mov128_vf_gpr(vf3, a3); // qmtc2.i vf3, a3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, t0); // qmtc2.ni vf4, t0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf5, t1); // qmtc2.ni vf5, t1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf6, t2); // qmtc2.ni vf6, t2 + +block_3: + exec_28(c); + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf23); // qmfc2.i a3, vf23 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(a3, 0, v1); // sq a3, 0(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf24); // qmfc2.ni a3, vf24 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(a3, 16, v1); // sq a3, 16(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf25); // qmfc2.ni a3, vf25 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(a3, 32, v1); // sq a3, 32(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf26); // qmfc2.ni a3, vf26 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sq(a3, 48, v1); // sq a3, 48(v1) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lq(a3, 0, a2); // lq a3, 0(a2) + // nop // sll r0, r0, 0 + c->lq(t0, 16, a2); // lq t0, 16(a2) + // nop // sll r0, r0, 0 + c->lq(t1, 32, a2); // lq t1, 32(a2) + c->daddiu(a0, a0, -4); // daddiu a0, a0, -4 + c->lq(t2, 48, a2); // lq t2, 48(a2) + c->daddiu(a2, a2, 64); // daddiu a2, a2, 64 + c->daddiu(v1, v1, 64); // daddiu v1, v1, 64 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf3, a3); // qmtc2.ni vf3, a3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf4, t0); // qmtc2.ni vf4, t0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf5, t1); // qmtc2.ni vf5, t1 + bc = ((s64)c->sgpr64(a0)) > 0; // bgtz a0, L113 + c->mov128_vf_gpr(vf6, t2); // qmtc2.ni vf6, t2 + if (bc) {goto block_3;} // branch non-likely + + +block_4: + exec_68(c); + // nop // sll r0, r0, 0 + // nop // vnop + // nop // sll r0, r0, 0 + c->daddiu(a2, a0, 3); // daddiu a2, a0, 3 + c->mov128_gpr_vf(a3, vf23); // qmfc2.i a3, vf23 + c->daddiu(t0, a0, 2); // daddiu t0, a0, 2 + c->mov128_gpr_vf(t1, vf24); // qmfc2.i t1, vf24 + c->daddiu(t2, a0, 1); // daddiu t2, a0, 1 + c->mov128_gpr_vf(t3, vf25); // qmfc2.i t3, vf25 + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + c->mov128_gpr_vf(t4, vf26); // qmfc2.i t4, vf26 + bc = c->sgpr64(a2) == 0; // beq a2, r0, L115 + c->sq(a3, 0, v1); // sq a3, 0(v1) + if (bc) {goto block_8;} // branch non-likely + + bc = c->sgpr64(t0) == 0; // beq t0, r0, L115 + c->sq(t1, 16, v1); // sq t1, 16(v1) + if (bc) {goto block_8;} // branch non-likely + + bc = c->sgpr64(t2) == 0; // beq t2, r0, L115 + c->sq(t3, 32, v1); // sq t3, 32(v1) + if (bc) {goto block_8;} // branch non-likely + + // nop // sll r0, r0, 0 + c->sq(t4, 48, v1); // sq t4, 48(v1) + +block_8: + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + // nop // sll r0, r0, 0 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + // nop // sll r0, r0, 0 + +block_9: + c->sw(v1, 16, a1); // sw v1, 16(a1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-calc-dual-verts", execute, 256); +} + +} // namespace shadow_calc_dual_verts +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace shadow_xform_verts { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + c->lw(v1, 68, a1); // lw v1, 68(a1) + // nop // sll r0, r0, 0 + c->lw(a2, 20, a0); // lw a2, 20(a0) + c->dsll(v1, v1, 4); // dsll v1, v1, 4 + c->lw(t0, 24, a0); // lw t0, 24(a0) + c->daddu(a2, a2, a0); // daddu a2, a2, a0 + c->lh(a3, 8, a0); // lh a3, 8(a0) + c->daddu(t0, t0, a0); // daddu t0, t0, a0 + // nop // sll r0, r0, 0 + c->daddu(v1, a0, v1); // daddu v1, a0, v1 + c->sw(a2, 0, a1); // sw a2, 0(a1) + c->daddiu(v1, v1, 144); // daddiu v1, v1, 144 + // nop // sll r0, r0, 0 + c->mov64(a1, t0); // or a1, t0, r0 + c->lh(t0, 10, a0); // lh t0, 10(a0) + c->mov64(a2, a2); // or a2, a2, r0 + // nop // sll r0, r0, 0 + c->dsubu(a3, a3, t0); // dsubu a3, a3, t0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a3) == 0; // beq a3, r0, L119 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + +block_1: + c->daddiu(a3, a3, -1); // daddiu a3, a3, -1 + c->lbu(t0, 0, a1); // lbu t0, 0(a1) + // nop // sll r0, r0, 0 + c->lbu(t1, 1, a1); // lbu t1, 1(a1) + // nop // sll r0, r0, 0 + c->daddiu(a1, a1, 2); // daddiu a1, a1, 2 + c->dsll(t0, t0, 7); // dsll t0, t0, 7 + // nop // sll r0, r0, 0 + c->daddu(t0, t0, v1); // daddu t0, t0, v1 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, t0); // lqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, t0); // lqc2 vf2, 16(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, t0); // lqc2 vf3, 32(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf4, 48, t0); // lqc2 vf4, 48(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf9, 0, a2); // lqc2 vf9, 0(a2) + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf9); // vmaddax.xyzw acc, vf1, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf9); // vmadday.xyzw acc, vf2, vf9 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyz, BC::z, vf9, vf3, vf9); // vmaddz.xyz vf9, vf3, vf9 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf9, 0, a2); // sqc2 vf9, 0(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L118 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + +block_2: + // nop // sll r0, r0, 0 + c->lh(a0, 10, a0); // lh a0, 10(a0) + bc = c->sgpr64(a0) == 0; // beq a0, r0, L121 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + +block_3: + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + c->lbu(t0, 0, a1); // lbu t0, 0(a1) + // nop // sll r0, r0, 0 + c->lbu(a3, 1, a1); // lbu a3, 1(a1) + c->dsll(t0, t0, 7); // dsll t0, t0, 7 + c->daddiu(a1, a1, 2); // daddiu a1, a1, 2 + c->dsll(a3, a3, 7); // dsll a3, a3, 7 + c->daddu(t0, t0, v1); // daddu t0, t0, v1 + c->daddu(a3, a3, v1); // daddu a3, a3, v1 + c->lqc2(vf1, 0, t0); // lqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, t0); // lqc2 vf2, 16(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, t0); // lqc2 vf3, 32(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf4, 48, t0); // lqc2 vf4, 48(t0) + // nop // sll r0, r0, 0 + c->lqc2(vf9, 0, a2); // lqc2 vf9, 0(a2) + // nop // sll r0, r0, 0 + c->lqc2(vf5, 0, a3); // lqc2 vf5, 0(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf6, 16, a3); // lqc2 vf6, 16(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf7, 32, a3); // lqc2 vf7, 32(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf8, 48, a3); // lqc2 vf8, 48(a3) + c->vsub_bc(DEST::w, BC::w, vf10, vf0, vf9); // vsubw.w vf10, vf0, vf9 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf1, vf9); // vmaddax.xyzw acc, vf1, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf2, vf9); // vmadday.xyzw acc, vf2, vf9 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyz, BC::z, vf10, vf3, vf9); // vmaddz.xyz vf10, vf3, vf9 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf8, vf0); // vmulaw.xyzw acc, vf8, vf0 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::x, vf5, vf9); // vmaddax.xyzw acc, vf5, vf9 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf6, vf9); // vmadday.xyzw acc, vf6, vf9 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyz, BC::z, vf9, vf7, vf9); // vmaddz.xyz vf9, vf7, vf9 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyz, BC::w, vf10, vf9); // vmulaw.xyz acc, vf10, vf9 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyz, BC::w, vf9, vf9, vf10); // vmaddw.xyz vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::w, BC::x, vf9, vf0, vf0); // vaddx.w vf9, vf0, vf0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->sqc2(vf9, 0, a2); // sqc2 vf9, 0(a2) + c->daddiu(a2, a2, 16); // daddiu a2, a2, 16 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L120 + // nop // sll r0, r0, 0 + if (bc) {goto block_3;} // branch non-likely + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + +block_5: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("shadow-xform-verts", execute, 256); +} + +} // namespace shadow_xform_verts +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/sky.cpp b/game/mips2c/jakx_functions/sky.cpp new file mode 100644 index 0000000000..41e0917068 --- /dev/null +++ b/game/mips2c/jakx_functions/sky.cpp @@ -0,0 +1,1807 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace draw_large_polygon { +struct Cache { + void* clip_polygon_against_negative_hyperplane; // clip-polygon-against-negative-hyperplane + void* clip_polygon_against_positive_hyperplane; // clip-polygon-against-positive-hyperplane +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + // nop // sll r0, r0, 0 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->load_symbol2(t9, cache.clip_polygon_against_positive_hyperplane);// lw t9, clip-polygon-against-positive-hyperplane(s7) + c->mov64(a3, t5); // or a3, t5, r0 + c->mov64(t0, t6); // or t0, t6, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddu(t3, a3, r0); // daddu t3, a3, r0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L123 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t6); // or a3, t6, r0 + c->mov64(t0, t5); // or t0, t5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(t3, a3, 4); // daddiu t3, a3, 4 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L123 + c->load_symbol2(t9, cache.clip_polygon_against_negative_hyperplane);// lw t9, clip-polygon-against-negative-hyperplane(s7) + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t5); // or a3, t5, r0 + c->mov64(t0, t6); // or t0, t6, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddu(t3, a3, r0); // daddu t3, a3, r0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L123 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t6); // or a3, t6, r0 + c->mov64(t0, t5); // or t0, t5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(t3, a3, 4); // daddiu t3, a3, 4 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(t1) == 0; // beq t1, r0, L123 + c->lw(t0, 4, a1); // lw t0, 4(a1) + if (bc) {goto block_7;} // branch non-likely + + c->mov64(a3, t5); // or a3, t5, r0 + // nop // sll r0, r0, 0 + c->sqc2(vf27, 0, t0); // sqc2 vf27, 0(t0) + c->daddiu(t0, t0, 16); // daddiu t0, t0, 16 + c->sw(t1, -16, t0); // sw t1, -16(t0) + // nop // sll r0, r0, 0 + +block_5: + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a3); // lqc2 vf2, 16(a3) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a3); // lqc2 vf3, 32(a3) + c->vdiv(vf0, BC::w, vf1, BC::w); // vdiv Q, vf0.w, vf1.w + c->vmul(DEST::xyzw, vf1, vf1, vf26); // vmul.xyzw vf1, vf1, vf26 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf3, vf3); // vftoi0.xyzw vf3, vf3 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf2, vf2, vf24); // vadd.xyzw vf2, vf2, vf24 + // nop // sll r0, r0, 0 + c->vwaitq(); // vwaitq + // nop // sll r0, r0, 0 + c->vmulq(DEST::xyz, vf1, vf1); // vmulq.xyz vf1, vf1, Q + c->sqc2(vf3, 16, t0); // sqc2 vf3, 16(t0) + c->vmulq(DEST::xyzw, vf2, vf2); // vmulq.xyzw vf2, vf2, Q + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + c->vadd(DEST::xyzw, vf1, vf1, vf25); // vadd.xyzw vf1, vf1, vf25 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->vmul_bc(DEST::z, BC::z, vf1, vf1, vf0); // vmulz.z vf1, vf1, vf0 + // nop // sll r0, r0, 0 + c->vmini_bc(DEST::w, BC::z, vf1, vf1, vf13); // vminiz.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->vadd_bc(DEST::z, BC::x, vf1, vf1, vf23); // vaddx.z vf1, vf1, vf23 + // nop // sll r0, r0, 0 + c->vmax_bc(DEST::w, BC::y, vf1, vf1, vf13); // vmaxy.w vf1, vf1, vf13 + // nop // sll r0, r0, 0 + c->sqc2(vf2, -48, t0); // sqc2 vf2, -48(t0) + c->daddiu(t1, t1, -1); // daddiu t1, t1, -1 + c->vftoi4(DEST::xyzw, vf1, vf1); // vftoi4.xyzw vf1, vf1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t1) != 0; // bne t1, r0, L122 + c->sqc2(vf1, -16, t0); // sqc2 vf1, -16(t0) + if (bc) {goto block_5;} // branch non-likely + + c->sw(t0, 4, a1); // sw t0, 4(a1) + // nop // sll r0, r0, 0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->daddiu(v0, s7, 4); // daddiu v0, s7, 4 + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + +block_7: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->mov64(v0, s7); // or v0, s7, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.clip_polygon_against_negative_hyperplane = intern_from_c(-1, 0, "clip-polygon-against-negative-hyperplane").c(); + cache.clip_polygon_against_positive_hyperplane = intern_from_c(-1, 0, "clip-polygon-against-positive-hyperplane").c(); + gLinkedFunctionTable.reg("draw-large-polygon", execute, 256); +} + +} // namespace draw_large_polygon +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_32_sky_work { +struct Cache { + void* vector_normalize; // vector-normalize! +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -48); // daddiu sp, sp, -48 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(gp, 32, sp); // sq gp, 32(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->addiu(a1, r0, 0); // addiu a1, r0, 0 + c->mov64(v1, gp); // or v1, gp, r0 + c->lqc2(vf31, 1536, gp); // lqc2 vf31, 1536(gp) + c->lqc2(vf30, 1552, gp); // lqc2 vf30, 1552(gp) + c->lqc2(vf29, 1568, gp); // lqc2 vf29, 1568(gp) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + //beq r0, r0, L38 // beq r0, r0, L38 + // nop // sll r0, r0, 0 + goto block_10; // branch always + + +block_1: + c->daddiu(a2, a1, 3); // daddiu a2, a1, 3 + c->daddiu(t0, a1, 5); // daddiu t0, a1, 5 + c->daddiu(a3, a1, 7); // daddiu a3, a1, 7 + c->andi(a2, a2, 7); // andi a2, a2, 7 + c->andi(t1, t0, 7); // andi t1, t0, 7 + c->andi(t2, a3, 7); // andi t2, a3, 7 + c->dsll(a3, a1, 4); // dsll a3, a1, 4 + c->dsll(t0, a2, 4); // dsll t0, a2, 4 + c->dsll(t1, t1, 4); // dsll t1, t1, 4 + c->dsll(a2, t2, 4); // dsll a2, t2, 4 + c->daddu(t3, a3, gp); // daddu t3, a3, gp + c->daddu(t2, t0, gp); // daddu t2, t0, gp + c->daddu(a3, t1, gp); // daddu a3, t1, gp + c->lq(t0, 816, t3); // lq t0, 816(t3) + c->daddu(a2, a2, gp); // daddu a2, a2, gp + c->lq(t1, 816, t2); // lq t1, 816(t2) + c->daddiu(a1, a1, 1); // daddiu a1, a1, 1 + c->lq(a3, 816, a3); // lq a3, 816(a3) + c->paddb(t0, t0, t1); // paddb t0, t0, t1 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->paddb(a3, t0, a3); // paddb a3, t0, a3 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->andi(a1, a1, 7); // andi a1, a1, 7 + c->sq(a3, 816, a2); // sq a3, 816(a2) + c->pextlb(t0, a3, r0); // pextlb t0, a3, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextub(a2, a3, r0); // pextub a2, a3, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextuh(a3, t0, r0); // pextuh a3, t0, r0 + c->mfc1(r0, f31); // mfc1 r0, f31 + c->pextlh(t0, t0, r0); // pextlh t0, t0, r0 + c->mov128_vf_gpr(vf15, a3); // qmtc2.i vf15, a3 + c->pextuh(a3, a2, r0); // pextuh a3, a2, r0 + c->mov128_vf_gpr(vf16, t0); // qmtc2.i vf16, t0 + c->pextlh(a2, a2, r0); // pextlh a2, a2, r0 + c->mov128_vf_gpr(vf17, a3); // qmtc2.i vf17, a3 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf18, a2); // qmtc2.i vf18, a2 + c->vitof15(DEST::xyzw, vf15, vf15); // vitof15.xyzw vf15, vf15 + // nop // sll r0, r0, 0 + c->vitof15(DEST::xyzw, vf16, vf16); // vitof15.xyzw vf16, vf16 + // nop // sll r0, r0, 0 + c->vitof15(DEST::xyzw, vf17, vf17); // vitof15.xyzw vf17, vf17 + // nop // sll r0, r0, 0 + c->vitof15(DEST::xyzw, vf18, vf18); // vitof15.xyzw vf18, vf18 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf15); // vmulax.xyzw acc, vf31, vf15 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf15); // vmadday.xyzw acc, vf30, vf15 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf15, vf29, vf15); // vmaddz.xyzw vf15, vf29, vf15 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf16); // vmulax.xyzw acc, vf31, vf16 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf16); // vmadday.xyzw acc, vf30, vf16 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf16, vf29, vf16); // vmaddz.xyzw vf16, vf29, vf16 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf17); // vmulax.xyzw acc, vf31, vf17 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf17); // vmadday.xyzw acc, vf30, vf17 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf17, vf29, vf17); // vmaddz.xyzw vf17, vf29, vf17 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf18); // vmulax.xyzw acc, vf31, vf18 + // nop // sll r0, r0, 0 + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf18); // vmadday.xyzw acc, vf30, vf18 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::z, vf18, vf29, vf18); // vmaddz.xyzw vf18, vf29, vf18 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a2, vf15); // qmfc2.i a2, vf15 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(a3, vf16); // qmfc2.i a3, vf16 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t0, vf17); // qmfc2.i t0, vf17 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t1, vf18); // qmfc2.i t1, vf18 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a2)) >= 0; // bgez a2, L34 + // nop // sll r0, r0, 0 + if (bc) {goto block_3;} // branch non-likely + + c->vsub(DEST::xyz, vf15, vf0, vf15); // vsub.xyz vf15, vf0, vf15 + // nop // sll r0, r0, 0 + +block_3: + bc = ((s64)c->sgpr64(a3)) >= 0; // bgez a3, L35 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->vsub(DEST::xyz, vf16, vf0, vf16); // vsub.xyz vf16, vf0, vf16 + // nop // sll r0, r0, 0 + +block_5: + bc = ((s64)c->sgpr64(t0)) >= 0; // bgez t0, L36 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->vsub(DEST::xyz, vf17, vf0, vf17); // vsub.xyz vf17, vf0, vf17 + // nop // sll r0, r0, 0 + +block_7: + bc = ((s64)c->sgpr64(t1)) >= 0; // bgez t1, L37 + // nop // sll r0, r0, 0 + if (bc) {goto block_9;} // branch non-likely + + c->vsub(DEST::xyz, vf18, vf0, vf18); // vsub.xyz vf18, vf0, vf18 + // nop // sll r0, r0, 0 + +block_9: + c->sqc2(vf15, 1920, v1); // sqc2 vf15, 1920(v1) + // nop // sll r0, r0, 0 + c->sqc2(vf16, 1936, v1); // sqc2 vf16, 1936(v1) + // nop // sll r0, r0, 0 + c->sqc2(vf17, 1952, v1); // sqc2 vf17, 1952(v1) + // nop // sll r0, r0, 0 + c->sqc2(vf18, 1968, v1); // sqc2 vf18, 1968(v1) + c->daddiu(v1, v1, 64); // daddiu v1, v1, 64 + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + +block_10: + c->slti(a2, a0, 128); // slti a2, a0, 128 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L33 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->addiu(s5, r0, 0); // addiu s5, r0, 0 + //beq r0, r0, L40 // beq r0, r0, L40 + // nop // sll r0, r0, 0 + goto block_13; // branch always + + +block_12: + c->load_symbol2(t9, cache.vector_normalize); // lw t9, vector-normalize!(s7) + c->dsll(v1, s5, 4); // dsll v1, s5, 4 + c->daddiu(v1, v1, 1920); // daddiu v1, v1, 1920 + c->daddu(a0, v1, gp); // daddu a0, v1, gp + c->lui(v1, 18243); // lui v1, 18243 + c->ori(a1, v1, 20480); // ori a1, v1, 20480 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + +block_13: + c->slti(v1, s5, 512); // slti v1, s5, 512 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L39 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 32, sp); // lq gp, 32(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 48); // daddiu sp, sp, 48 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.vector_normalize = intern_from_c(-1, 0, "vector-normalize!").c(); + gLinkedFunctionTable.reg("(method 32 sky-work)", execute, 256); +} + +} // namespace method_32_sky_work +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_31_sky_work { +struct Cache { + void* z_vector; // *z-vector* + void* vector_normalize; // vector-normalize! +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s5, 48, sp); // sq s5, 48(sp) + c->sq(gp, 64, sp); // sq gp, 64(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s4, a1); // or s4, a1, r0 + c->mov64(s5, a2); // or s5, a2, r0 + c->daddiu(v1, s4, 32); // daddiu v1, s4, 32 + c->mov64(a0, s5); // or a0, s5, r0 + c->lq(a0, 0, a0); // lq a0, 0(a0) + c->sq(a0, 0, v1); // sq a0, 0(v1) + c->load_symbol2(t9, cache.vector_normalize); // lw t9, vector-normalize!(s7) + c->daddiu(a0, s4, 32); // daddiu a0, s4, 32 + c->lui(a1, 16256); // lui a1, 16256 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddu(a1, r0, s4); // daddu a1, r0, s4 + c->load_symbol2(v1, cache.z_vector); // lw v1, *z-vector*(s7) + c->daddiu(a0, s4, 32); // daddiu a0, s4, 32 + c->lqc2(vf1, 0, v1); // lqc2 vf1, 0(v1) + c->lqc2(vf2, 0, a0); // lqc2 vf2, 0(a0) + c->vopmula(vf1, vf2); // vopmula.xyz acc, vf1, vf2 + c->vopmsub(vf3, vf2, vf1); // vopmsub.xyz vf3, vf2, vf1 + c->sqc2(vf3, 0, a1); // sqc2 vf3, 0(a1) + c->load_symbol2(t9, cache.vector_normalize); // lw t9, vector-normalize!(s7) + c->daddu(a0, r0, s4); // daddu a0, r0, s4 + c->lui(a1, 16256); // lui a1, 16256 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddiu(a1, s4, 16); // daddiu a1, s4, 16 + c->daddiu(v1, s4, 32); // daddiu v1, s4, 32 + c->daddu(a0, r0, s4); // daddu a0, r0, s4 + c->lqc2(vf1, 0, v1); // lqc2 vf1, 0(v1) + c->lqc2(vf2, 0, a0); // lqc2 vf2, 0(a0) + c->vopmula(vf1, vf2); // vopmula.xyz acc, vf1, vf2 + c->vopmsub(vf3, vf2, vf1); // vopmsub.xyz vf3, vf2, vf1 + c->sqc2(vf3, 0, a1); // sqc2 vf3, 0(a1) + c->load_symbol2(t9, cache.vector_normalize); // lw t9, vector-normalize!(s7) + c->daddiu(a0, s4, 16); // daddiu a0, s4, 16 + c->lui(a1, 16256); // lui a1, 16256 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddiu(s4, sp, 16); // daddiu s4, sp, 16 + c->mov64(v1, s4); // or v1, s4, r0 + c->lq(a0, 0, s5); // lq a0, 0(s5) + c->sq(a0, 0, v1); // sq a0, 0(v1) + c->load_symbol2(t9, cache.vector_normalize); // lw t9, vector-normalize!(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->lui(a1, -16512); // lui a1, -16512 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mtc1(f0, r0); // mtc1 f0, r0 + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lui(v1, 16800); // lui v1, 16800 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->lui(v1, 15692); // lui v1, 15692 + c->ori(v1, v1, 52429); // ori v1, v1, 52429 + c->mtc1(f3, v1); // mtc1 f3, v1 + c->lwc1(f4, 4, s4); // lwc1 f4, 4(s4) + c->adds(f3, f3, f4); // add.s f3, f3, f4 + c->muls(f2, f2, f3); // mul.s f2, f2, f3 + c->mins(f1, f1, f2); // min.s f1, f1, f2 + c->maxs(f0, f0, f1); // max.s f0, f0, f1 + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + //beq r0, r0, L43 // beq r0, r0, L43 + // nop // sll r0, r0, 0 + goto block_2; // branch always + + +block_1: + c->lui(a0, 17152); // lui a0, 17152 + c->mtc1(f1, a0); // mtc1 f1, a0 + c->lui(a0, 16640); // lui a0, 16640 + c->mtc1(f2, a0); // mtc1 f2, a0 + c->mtc1(f3, v1); // mtc1 f3, v1 + c->cvtsw(f3, f3); // cvt.s.w f3, f3 + c->muls(f2, f2, f3); // mul.s f2, f2, f3 + c->subs(f1, f1, f2); // sub.s f1, f1, f2 + c->muls(f1, f1, f0); // mul.s f1, f1, f0 + c->dsll(a0, v1, 4); // dsll a0, v1, 4 + c->daddiu(a0, a0, 528); // daddiu a0, a0, 528 + c->daddu(a0, a0, gp); // daddu a0, a0, gp + c->cvtws(f2, f1); // cvt.w.s f2, f1 + c->swc1(f2, 0, a0); // swc1 f2, 0(a0) + c->cvtws(f2, f1); // cvt.w.s f2, f1 + c->swc1(f2, 4, a0); // swc1 f2, 4(a0) + c->cvtws(f1, f1); // cvt.w.s f1, f1 + c->swc1(f1, 8, a0); // swc1 f1, 8(a0) + c->addiu(a1, r0, 128); // addiu a1, r0, 128 + c->sw(a1, 12, a0); // sw a1, 12(a0) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + +block_2: + c->slti(a0, v1, 16); // slti a0, v1, 16 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L42 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 64, sp); // lq gp, 64(sp) + c->lq(s5, 48, sp); // lq s5, 48(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.z_vector = intern_from_c(-1, 0, "*z-vector*").c(); + cache.vector_normalize = intern_from_c(-1, 0, "vector-normalize!").c(); + gLinkedFunctionTable.reg("(method 31 sky-work)", execute, 256); +} + +} // namespace method_31_sky_work +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_30_sky_work { +struct Cache { + // TODO FIX - void* adgif_shader<_texture_simple; // adgif-shader<-texture-simple! + void* lookup_texture_by_id_fast; // lookup-texture-by-id-fast +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s5, 48, sp); // sq s5, 48(sp) + c->sq(gp, 64, sp); // sq gp, 64(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a2); // or s5, a2, r0 + c->sw(a1, 1916, gp); // sw a1, 1916(gp) + c->load_symbol2(t9, cache.lookup_texture_by_id_fast);// lw t9, lookup-texture-by-id-fast(s7) + c->lui(v1, 128); // lui v1, 128 + c->ori(a0, v1, 2304); // ori a0, v1, 2304 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->sw(v0, 16, sp); // sw v0, 16(sp) + c->load_symbol2(t9, cache.lookup_texture_by_id_fast);// lw t9, lookup-texture-by-id-fast(s7) + c->lui(v1, 128); // lui v1, 128 + c->ori(a0, v1, 2048); // ori a0, v1, 2048 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->sw(v0, 20, sp); // sw v0, 20(sp) + c->lwu(v1, 16, sp); // lwu v1, 16(sp) + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L45 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_3; + } + +block_2: + c->lwu(v1, 20, sp); // lwu v1, 20(sp) + +block_3: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L48 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_17;} // branch non-likely + + c->lqc2(vf15, 1312, gp); // lqc2 vf15, 1312(gp) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf15); // vmulax.xyzw acc, vf31, vf15 + c->lqc2(vf1, 288, gp); // lqc2 vf1, 288(gp) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf15); // vmadday.xyzw acc, vf30, vf15 + c->lqc2(vf4, 304, gp); // lqc2 vf4, 304(gp) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf15); // vmaddaz.xyzw acc, vf29, vf15 + c->lqc2(vf2, 784, gp); // lqc2 vf2, 784(gp) + c->vmadd_bc(DEST::xyzw, BC::w, vf15, vf28, vf0); // vmaddw.xyzw vf15, vf28, vf0 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf16, vf15, vf14); // vmul.xyzw vf16, vf15, vf14 + c->lqc2(vf5, 800, gp); // lqc2 vf5, 800(gp) + c->vdiv(vf0, BC::w, vf16, BC::w); // vdiv Q, vf0.w, vf16.w + c->lqc2(vf8, 32, gp); // lqc2 vf8, 32(gp) + c->lqc2(vf11, 48, gp); // lqc2 vf11, 48(gp) + c->lqc2(vf7, 320, gp); // lqc2 vf7, 320(gp) + c->lqc2(vf10, 336, gp); // lqc2 vf10, 336(gp) + c->lqc2(vf17, 352, gp); // lqc2 vf17, 352(gp) + c->lqc2(vf18, 368, gp); // lqc2 vf18, 368(gp) + c->lqc2(vf3, 480, gp); // lqc2 vf3, 480(gp) + c->lqc2(vf6, 496, gp); // lqc2 vf6, 496(gp) + c->lqc2(vf9, 512, gp); // lqc2 vf9, 512(gp) + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyz, vf15, vf15); // vmulq.xyz vf15, vf15, Q + c->vmulq(DEST::xyzw, vf16, vf26); // vmulq.xyzw vf16, vf26, Q + c->vmul_bc(DEST::xyzw, BC::w, vf1, vf1, vf16); // vmulw.xyzw vf1, vf1, vf16 + c->vmul_bc(DEST::xyzw, BC::w, vf4, vf4, vf16); // vmulw.xyzw vf4, vf4, vf16 + c->vmul_bc(DEST::xyzw, BC::w, vf7, vf7, vf16); // vmulw.xyzw vf7, vf7, vf16 + c->vmul_bc(DEST::xyzw, BC::w, vf10, vf10, vf16); // vmulw.xyzw vf10, vf10, vf16 + c->vmul_bc(DEST::xyzw, BC::w, vf17, vf17, vf16); // vmulw.xyzw vf17, vf17, vf16 + c->vmul_bc(DEST::xyzw, BC::w, vf18, vf18, vf16); // vmulw.xyzw vf18, vf18, vf16 + c->vadd(DEST::xyzw, vf15, vf15, vf25); // vadd.xyzw vf15, vf15, vf25 + c->vadd(DEST::xyz, vf1, vf1, vf15); // vadd.xyz vf1, vf1, vf15 + c->vadd(DEST::xyz, vf4, vf4, vf15); // vadd.xyz vf4, vf4, vf15 + c->vadd(DEST::xyz, vf7, vf7, vf15); // vadd.xyz vf7, vf7, vf15 + c->vadd(DEST::xyz, vf10, vf10, vf15); // vadd.xyz vf10, vf10, vf15 + c->vadd(DEST::xyz, vf17, vf17, vf15); // vadd.xyz vf17, vf17, vf15 + c->vadd(DEST::xyz, vf18, vf18, vf15); // vadd.xyz vf18, vf18, vf15 + c->vftoi4(DEST::xyzw, vf1, vf1); // vftoi4.xyzw vf1, vf1 + c->vftoi4(DEST::xyzw, vf4, vf4); // vftoi4.xyzw vf4, vf4 + c->vftoi4(DEST::xyz, vf7, vf7); // vftoi4.xyz vf7, vf7 + c->vftoi4(DEST::xyzw, vf10, vf10); // vftoi4.xyzw vf10, vf10 + c->vftoi4(DEST::xyzw, vf17, vf17); // vftoi4.xyzw vf17, vf17 + c->vftoi4(DEST::xyzw, vf18, vf18); // vftoi4.xyzw vf18, vf18 + c->sqc2(vf7, 1600, gp); // sqc2 vf7, 1600(gp) + c->sqc2(vf10, 1616, gp); // sqc2 vf10, 1616(gp) + c->lw(v1, 1612, gp); // lw v1, 1612(gp) + c->mtc1(f0, v1); // mtc1 f0, v1 + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + bc = !cop1_bc; // bc1f L46 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_6;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_6: + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L47 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_15; + } + +block_8: + c->lw(v1, 1600, gp); // lw v1, 1600(gp) + c->lw(a0, 556, s5); // lw a0, 556(s5) + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->slt(v1, v1, a0); // slt v1, v1, a0 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movz(a0, s7, v1); // movz a0, s7, v1 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a0))) {// beql s7, a0, L47 + c->mov64(v1, a0); // or v1, a0, r0 + goto block_15; + } + +block_10: + c->lw(v1, 1604, gp); // lw v1, 1604(gp) + c->lw(a0, 560, s5); // lw a0, 560(s5) + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->slt(v1, v1, a0); // slt v1, v1, a0 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movz(a0, s7, v1); // movz a0, s7, v1 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a0))) {// beql s7, a0, L47 + c->mov64(v1, a0); // or v1, a0, r0 + goto block_15; + } + +block_12: + c->addiu(v1, r0, 28672); // addiu v1, r0, 28672 + c->lw(a0, 1616, gp); // lw a0, 1616(gp) + c->slt(v1, v1, a0); // slt v1, v1, a0 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movz(a0, s7, v1); // movz a0, s7, v1 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a0))) {// beql s7, a0, L47 + c->mov64(v1, a0); // or v1, a0, r0 + goto block_15; + } + +block_14: + c->addiu(v1, r0, 29440); // addiu v1, r0, 29440 + c->lw(a0, 1620, gp); // lw a0, 1620(gp) + c->slt(a0, v1, a0); // slt a0, v1, a0 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + c->movz(v1, s7, a0); // movz v1, s7, a0 + +block_15: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L48 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_17;} // branch non-likely + + c->lwu(v1, 1916, gp); // lwu v1, 1916(gp) + c->lwu(t0, 4, v1); // lwu t0, 4(v1) + c->vsub(DEST::z, vf1, vf0, vf0); // vsub.z vf1, vf0, vf0 + c->vsub(DEST::z, vf4, vf0, vf0); // vsub.z vf4, vf0, vf0 + c->vsub(DEST::z, vf7, vf0, vf0); // vsub.z vf7, vf0, vf0 + c->vsub(DEST::z, vf10, vf0, vf0); // vsub.z vf10, vf0, vf0 + c->vsub(DEST::z, vf17, vf0, vf0); // vsub.z vf17, vf0, vf0 + c->vsub(DEST::z, vf18, vf0, vf0); // vsub.z vf18, vf0, vf0 + c->sqc2(vf8, 112, t0); // sqc2 vf8, 112(t0) + c->sqc2(vf11, 128, t0); // sqc2 vf11, 128(t0) + c->sqc2(vf3, 144, t0); // sqc2 vf3, 144(t0) + c->sqc2(vf2, 160, t0); // sqc2 vf2, 160(t0) + c->sqc2(vf1, 176, t0); // sqc2 vf1, 176(t0) + c->sqc2(vf5, 192, t0); // sqc2 vf5, 192(t0) + c->sqc2(vf4, 208, t0); // sqc2 vf4, 208(t0) + c->sqc2(vf8, 224, t0); // sqc2 vf8, 224(t0) + c->sqc2(vf11, 240, t0); // sqc2 vf11, 240(t0) + c->sqc2(vf6, 256, t0); // sqc2 vf6, 256(t0) + c->sqc2(vf2, 272, t0); // sqc2 vf2, 272(t0) + c->sqc2(vf7, 288, t0); // sqc2 vf7, 288(t0) + c->sqc2(vf5, 304, t0); // sqc2 vf5, 304(t0) + c->sqc2(vf10, 320, t0); // sqc2 vf10, 320(t0) + c->sqc2(vf8, 448, t0); // sqc2 vf8, 448(t0) + c->sqc2(vf11, 464, t0); // sqc2 vf11, 464(t0) + c->sqc2(vf9, 480, t0); // sqc2 vf9, 480(t0) + c->sqc2(vf2, 496, t0); // sqc2 vf2, 496(t0) + c->sqc2(vf17, 512, t0); // sqc2 vf17, 512(t0) + c->sqc2(vf5, 528, t0); // sqc2 vf5, 528(t0) + c->sqc2(vf18, 544, t0); // sqc2 vf18, 544(t0) + c->lwu(v1, 1916, gp); // lwu v1, 1916(gp) + c->lwu(s5, 4, v1); // lwu s5, 4(v1) + c->lq(v1, 0, gp); // lq v1, 0(gp) + c->sq(v1, 0, s5); // sq v1, 0(s5) + c->lq(v1, 16, gp); // lq v1, 16(gp) + c->sq(v1, 16, s5); // sq v1, 16(s5) + c->daddiu(s4, s5, 32); // daddiu s4, s5, 32 + // TODO - fix c->load_symbol2(t9, cache.adgif_shader<_texture_simple);// lw t9, adgif-shader<-texture-simple!(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->lwu(a1, 16, sp); // lwu a1, 16(sp) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->addiu(v1, r0, 72); // addiu v1, r0, 72 + c->sd(v1, 64, s4); // sd v1, 64(s4) + c->lq(v1, 0, gp); // lq v1, 0(gp) + c->sq(v1, 336, s5); // sq v1, 336(s5) + c->lq(v1, 16, gp); // lq v1, 16(gp) + c->sq(v1, 352, s5); // sq v1, 352(s5) + c->daddiu(s5, s5, 368); // daddiu s5, s5, 368 + // TODO FIX - c->load_symbol2(t9, cache.adgif_shader<_texture_simple);// lw t9, adgif-shader<-texture-simple!(s7) + c->mov64(a0, s5); // or a0, s5, r0 + c->lwu(a1, 20, sp); // lwu a1, 20(sp) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->addiu(v1, r0, 68); // addiu v1, r0, 68 + c->sd(v1, 64, s5); // sd v1, 64(s5) + c->lwu(v1, 1916, gp); // lwu v1, 1916(gp) + c->lwu(v1, 4, v1); // lwu v1, 4(v1) + c->daddiu(v1, v1, 560); // daddiu v1, v1, 560 + c->lwu(a0, 1916, gp); // lwu a0, 1916(gp) + c->sw(v1, 4, a0); // sw v1, 4(a0) + +block_17: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 64, sp); // lq gp, 64(sp) + c->lq(s5, 48, sp); // lq s5, 48(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + // TODO FIX - cache.adgif_shader<_texture_simple = intern_from_c(-1, 0, "adgif-shader<-texture-simple!").c(); + cache.lookup_texture_by_id_fast = intern_from_c(-1, 0, "lookup-texture-by-id-fast").c(); + gLinkedFunctionTable.reg("(method 30 sky-work)", execute, 256); +} + +} // namespace method_30_sky_work +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_29_sky_work { +struct Cache { + // TODO - fix void* adgif_shader<_texture_simple; // adgif-shader<-texture-simple! + void* lookup_texture_by_id_fast; // lookup-texture-by-id-fast +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -64); // daddiu sp, sp, -64 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s5, 32, sp); // sq s5, 32(sp) + c->sq(gp, 48, sp); // sq gp, 48(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a2); // or s5, a2, r0 + c->sw(a1, 1916, gp); // sw a1, 1916(gp) + c->load_symbol2(t9, cache.lookup_texture_by_id_fast);// lw t9, lookup-texture-by-id-fast(s7) + c->lui(v1, 128); // lui v1, 128 + c->ori(a0, v1, 2304); // ori a0, v1, 2304 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->sw(v0, 16, sp); // sw v0, 16(sp) + c->lwu(v1, 16, sp); // lwu v1, 16(sp) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L52 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_14;} // branch non-likely + + c->lqc2(vf15, 1248, gp); // lqc2 vf15, 1248(gp) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf15); // vmulax.xyzw acc, vf31, vf15 + c->lqc2(vf1, 256, gp); // lqc2 vf1, 256(gp) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf15); // vmadday.xyzw acc, vf30, vf15 + c->lqc2(vf4, 272, gp); // lqc2 vf4, 272(gp) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf15); // vmaddaz.xyzw acc, vf29, vf15 + c->lqc2(vf2, 784, gp); // lqc2 vf2, 784(gp) + c->vmadd_bc(DEST::xyzw, BC::w, vf15, vf28, vf0); // vmaddw.xyzw vf15, vf28, vf0 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf16, vf15, vf14); // vmul.xyzw vf16, vf15, vf14 + c->lqc2(vf5, 800, gp); // lqc2 vf5, 800(gp) + c->vdiv(vf0, BC::w, vf16, BC::w); // vdiv Q, vf0.w, vf16.w + c->lqc2(vf8, 32, gp); // lqc2 vf8, 32(gp) + c->lqc2(vf11, 48, gp); // lqc2 vf11, 48(gp) + c->lqc2(vf3, 448, gp); // lqc2 vf3, 448(gp) + c->lqc2(vf6, 464, gp); // lqc2 vf6, 464(gp) + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyz, vf15, vf15); // vmulq.xyz vf15, vf15, Q + c->vmulq(DEST::xyzw, vf16, vf26); // vmulq.xyzw vf16, vf26, Q + c->vmul_bc(DEST::xyzw, BC::w, vf1, vf1, vf16); // vmulw.xyzw vf1, vf1, vf16 + c->vmul_bc(DEST::xyzw, BC::w, vf4, vf4, vf16); // vmulw.xyzw vf4, vf4, vf16 + c->vadd(DEST::xyzw, vf15, vf15, vf25); // vadd.xyzw vf15, vf15, vf25 + c->vadd(DEST::xyz, vf1, vf1, vf15); // vadd.xyz vf1, vf1, vf15 + c->vadd(DEST::xyz, vf4, vf4, vf15); // vadd.xyz vf4, vf4, vf15 + c->vftoi4(DEST::xyz, vf1, vf1); // vftoi4.xyz vf1, vf1 + c->vftoi4(DEST::xyzw, vf4, vf4); // vftoi4.xyzw vf4, vf4 + c->sqc2(vf1, 1600, gp); // sqc2 vf1, 1600(gp) + c->sqc2(vf4, 1616, gp); // sqc2 vf4, 1616(gp) + c->lw(v1, 1612, gp); // lw v1, 1612(gp) + c->mtc1(f0, v1); // mtc1 f0, v1 + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + bc = !cop1_bc; // bc1f L50 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_3;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_3: + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L51 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_12; + } + +block_5: + c->lw(v1, 1600, gp); // lw v1, 1600(gp) + c->lw(a0, 556, s5); // lw a0, 556(s5) + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->slt(v1, v1, a0); // slt v1, v1, a0 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movz(a0, s7, v1); // movz a0, s7, v1 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a0))) {// beql s7, a0, L51 + c->mov64(v1, a0); // or v1, a0, r0 + goto block_12; + } + +block_7: + c->lw(v1, 1604, gp); // lw v1, 1604(gp) + c->lw(a0, 560, s5); // lw a0, 560(s5) + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->slt(v1, v1, a0); // slt v1, v1, a0 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movz(a0, s7, v1); // movz a0, s7, v1 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a0))) {// beql s7, a0, L51 + c->mov64(v1, a0); // or v1, a0, r0 + goto block_12; + } + +block_9: + c->addiu(v1, r0, 28672); // addiu v1, r0, 28672 + c->lw(a0, 1616, gp); // lw a0, 1616(gp) + c->slt(v1, v1, a0); // slt v1, v1, a0 + c->daddiu(a0, s7, 4); // daddiu a0, s7, 4 + c->movz(a0, s7, v1); // movz a0, s7, v1 + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(a0))) {// beql s7, a0, L51 + c->mov64(v1, a0); // or v1, a0, r0 + goto block_12; + } + +block_11: + c->addiu(v1, r0, 29440); // addiu v1, r0, 29440 + c->lw(a0, 1620, gp); // lw a0, 1620(gp) + c->slt(a0, v1, a0); // slt a0, v1, a0 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + c->movz(v1, s7, a0); // movz v1, s7, a0 + +block_12: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L52 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_14;} // branch non-likely + + c->lwu(v1, 1916, gp); // lwu v1, 1916(gp) + c->lwu(t0, 4, v1); // lwu t0, 4(v1) + c->vsub(DEST::z, vf1, vf0, vf0); // vsub.z vf1, vf0, vf0 + c->vsub(DEST::z, vf4, vf0, vf0); // vsub.z vf4, vf0, vf0 + c->sqc2(vf8, 112, t0); // sqc2 vf8, 112(t0) + c->sqc2(vf11, 128, t0); // sqc2 vf11, 128(t0) + c->sqc2(vf3, 144, t0); // sqc2 vf3, 144(t0) + c->sqc2(vf2, 160, t0); // sqc2 vf2, 160(t0) + c->sqc2(vf1, 176, t0); // sqc2 vf1, 176(t0) + c->sqc2(vf5, 192, t0); // sqc2 vf5, 192(t0) + c->sqc2(vf4, 208, t0); // sqc2 vf4, 208(t0) + c->sqc2(vf8, 224, t0); // sqc2 vf8, 224(t0) + c->sqc2(vf11, 240, t0); // sqc2 vf11, 240(t0) + c->sqc2(vf6, 256, t0); // sqc2 vf6, 256(t0) + c->sqc2(vf2, 272, t0); // sqc2 vf2, 272(t0) + c->sqc2(vf1, 288, t0); // sqc2 vf1, 288(t0) + c->sqc2(vf5, 304, t0); // sqc2 vf5, 304(t0) + c->sqc2(vf4, 320, t0); // sqc2 vf4, 320(t0) + c->lwu(v1, 1916, gp); // lwu v1, 1916(gp) + c->lwu(v1, 4, v1); // lwu v1, 4(v1) + c->lq(a0, 0, gp); // lq a0, 0(gp) + c->sq(a0, 0, v1); // sq a0, 0(v1) + c->lq(a0, 16, gp); // lq a0, 16(gp) + c->sq(a0, 16, v1); // sq a0, 16(v1) + c->daddiu(s5, v1, 32); // daddiu s5, v1, 32 + // TODO fix - c->load_symbol2(t9, cache.adgif_shader<_texture_simple);// lw t9, adgif-shader<-texture-simple!(s7) + c->mov64(a0, s5); // or a0, s5, r0 + c->lwu(a1, 16, sp); // lwu a1, 16(sp) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->addiu(v1, r0, 72); // addiu v1, r0, 72 + c->sd(v1, 64, s5); // sd v1, 64(s5) + c->lwu(v1, 1916, gp); // lwu v1, 1916(gp) + c->lwu(v1, 4, v1); // lwu v1, 4(v1) + c->daddiu(v1, v1, 336); // daddiu v1, v1, 336 + c->lwu(a0, 1916, gp); // lwu a0, 1916(gp) + c->sw(v1, 4, a0); // sw v1, 4(a0) + +block_14: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 48, sp); // lq gp, 48(sp) + c->lq(s5, 32, sp); // lq s5, 32(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 64); // daddiu sp, sp, 64 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + // TODO - fix cache.adgif_shader<_texture_simple = intern_from_c(-1, 0, "adgif-shader<-texture-simple!").c(); + cache.lookup_texture_by_id_fast = intern_from_c(-1, 0, "lookup-texture-by-id-fast").c(); + gLinkedFunctionTable.reg("(method 29 sky-work)", execute, 256); +} + +} // namespace method_29_sky_work +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_17_sky_work { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->lwu(a2, 176, a1); // lwu a2, 176(a1) + c->daddiu(v1, a0, 1472); // daddiu v1, a0, 1472 + c->lqc2(vf31, 0, v1); // lqc2 vf31, 0(v1) + c->lqc2(vf30, 16, v1); // lqc2 vf30, 16(v1) + c->lqc2(vf29, 32, v1); // lqc2 vf29, 32(v1) + c->lqc2(vf28, 48, v1); // lqc2 vf28, 48(v1) + c->lqc2(vf14, 780, a2); // lqc2 vf14, 780(a2) + c->lqc2(vf25, 812, a2); // lqc2 vf25, 812(a2) + c->lqc2(vf13, 1024, a0); // lqc2 vf13, 1024(a0) + c->vmove(DEST::z, vf25, vf0); // vmove.z vf25, vf0 + c->vmove(DEST::xyzw, vf23, vf0); // vmove.xyzw vf23, vf0 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->lui(a0, 17974); // lui a0, 17974 + c->ori(a0, a0, 2913); // ori a0, a0, 2913 + c->mtc1(f1, a0); // mtc1 f1, a0 + c->lwc1(f2, 8, a2); // lwc1 f2, 8(a2) + c->divs(f1, f1, f2); // div.s f1, f1, f2 + c->mins(f0, f0, f1); // min.s f0, f0, f1 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + c->lqc2(vf26, 0, v1); // lqc2 vf26, 0(v1) + c->mov128_gpr_vf(v1, vf26); // qmfc2.i v1, vf26 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 17 sky-work)", execute, 256); +} + +} // namespace method_17_sky_work +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace render_sky_tri { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* draw_large_polygon; // draw-large-polygon +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->mov64(v1, a0); // or v1, a0, r0 + get_fake_spad_addr2(t5, cache.fake_scratchpad_data, 0, c);// lui t5, 28672 + c->ori(t5, t5, 12288); // ori t5, t5, 12288 + get_fake_spad_addr2(t6, cache.fake_scratchpad_data, 0, c);// lui t6, 28672 + c->ori(t6, t6, 14336); // ori t6, t6, 14336 + c->mov64(t0, t5); // or t0, t5, r0 + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, a0); // lqc2 vf1, 0(a0) + c->addiu(t1, r0, 3); // addiu t1, r0, 3 + c->lqc2(vf2, 16, a0); // lqc2 vf2, 16(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a0); // lqc2 vf3, 32(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf1); // vmulax.xyzw acc, vf31, vf1 + c->lqc2(vf4, 48, a0); // lqc2 vf4, 48(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf1); // vmadday.xyzw acc, vf30, vf1 + c->lqc2(vf5, 64, a0); // lqc2 vf5, 64(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf1); // vmaddaz.xyzw acc, vf29, vf1 + c->lqc2(vf6, 80, a0); // lqc2 vf6, 80(a0) + c->vmadd_bc(DEST::xyw, BC::w, vf1, vf28, vf1); // vmaddw.xyw vf1, vf28, vf1 + c->lqc2(vf7, 96, a0); // lqc2 vf7, 96(a0) + c->vmove(DEST::z, vf1, vf0); // vmove.z vf1, vf0 + c->lqc2(vf8, 112, a0); // lqc2 vf8, 112(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf4); // vmulax.xyzw acc, vf31, vf4 + c->lqc2(vf9, 128, a0); // lqc2 vf9, 128(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf4); // vmadday.xyzw acc, vf30, vf4 + c->sqc2(vf2, 16, t0); // sqc2 vf2, 16(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf4); // vmaddaz.xyzw acc, vf29, vf4 + c->sqc2(vf3, 32, t0); // sqc2 vf3, 32(t0) + c->vmadd_bc(DEST::xyw, BC::w, vf4, vf28, vf4); // vmaddw.xyw vf4, vf28, vf4 + c->sqc2(vf5, 64, t0); // sqc2 vf5, 64(t0) + c->vmove(DEST::z, vf4, vf0); // vmove.z vf4, vf0 + c->sqc2(vf6, 80, t0); // sqc2 vf6, 80(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf7); // vmulax.xyzw acc, vf31, vf7 + c->sqc2(vf8, 112, t0); // sqc2 vf8, 112(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf7); // vmadday.xyzw acc, vf30, vf7 + c->sqc2(vf9, 128, t0); // sqc2 vf9, 128(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf7); // vmaddaz.xyzw acc, vf29, vf7 + c->sqc2(vf2, 160, t0); // sqc2 vf2, 160(t0) + c->vmadd_bc(DEST::xyw, BC::w, vf7, vf28, vf7); // vmaddw.xyw vf7, vf28, vf7 + c->sqc2(vf3, 176, t0); // sqc2 vf3, 176(t0) + c->vmove(DEST::z, vf7, vf0); // vmove.z vf7, vf0 + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 144, t0); // sqc2 vf1, 144(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf4, 48, t0); // sqc2 vf4, 48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf7, 96, t0); // sqc2 vf7, 96(t0) + c->load_symbol2(t9, cache.draw_large_polygon); // lw t9, draw-large-polygon(s7) + // Unknown instr: jr t9 + draw_large_polygon::execute(ctxt); + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.draw_large_polygon = intern_from_c(-1, 0, "draw-large-polygon").c(); + gLinkedFunctionTable.reg("render-sky-tri", execute, 256); +} + +} // namespace render_sky_tri +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace render_sky_quad { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* draw_large_polygon; // draw-large-polygon +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->mov64(v1, a0); // or v1, a0, r0 + c->mov64(v1, a2); // or v1, a2, r0 + c->lqc2(vf14, 780, a2); // lqc2 vf14, 780(a2) + get_fake_spad_addr2(t5, cache.fake_scratchpad_data, 0, c);// lui t5, 28672 + c->ori(t5, t5, 12288); // ori t5, t5, 12288 + get_fake_spad_addr2(t6, cache.fake_scratchpad_data, 0, c);// lui t6, 28672 + c->ori(t6, t6, 14336); // ori t6, t6, 14336 + c->mov64(t0, t5); // or t0, t5, r0 + // nop // sll r0, r0, 0 + c->lqc2(vf1, 0, a0); // lqc2 vf1, 0(a0) + c->addiu(t1, r0, 4); // addiu t1, r0, 4 + c->lqc2(vf2, 16, a0); // lqc2 vf2, 16(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, a0); // lqc2 vf3, 32(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf1); // vmulax.xyzw acc, vf31, vf1 + c->lqc2(vf4, 48, a0); // lqc2 vf4, 48(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf1); // vmadday.xyzw acc, vf30, vf1 + c->lqc2(vf5, 64, a0); // lqc2 vf5, 64(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf1); // vmaddaz.xyzw acc, vf29, vf1 + c->lqc2(vf6, 80, a0); // lqc2 vf6, 80(a0) + c->vmadd_bc(DEST::xyw, BC::w, vf1, vf28, vf1); // vmaddw.xyw vf1, vf28, vf1 + c->lqc2(vf7, 96, a0); // lqc2 vf7, 96(a0) + c->vmove(DEST::z, vf1, vf0); // vmove.z vf1, vf0 + c->lqc2(vf8, 112, a0); // lqc2 vf8, 112(a0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf4); // vmulax.xyzw acc, vf31, vf4 + c->lqc2(vf9, 128, a0); // lqc2 vf9, 128(a0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf4); // vmadday.xyzw acc, vf30, vf4 + c->lqc2(vf10, 144, a0); // lqc2 vf10, 144(a0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf4); // vmaddaz.xyzw acc, vf29, vf4 + c->lqc2(vf11, 160, a0); // lqc2 vf11, 160(a0) + c->vmadd_bc(DEST::xyw, BC::w, vf4, vf28, vf4); // vmaddw.xyw vf4, vf28, vf4 + c->lqc2(vf12, 176, a0); // lqc2 vf12, 176(a0) + c->vmove(DEST::z, vf4, vf0); // vmove.z vf4, vf0 + c->sqc2(vf2, 16, t0); // sqc2 vf2, 16(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf7); // vmulax.xyzw acc, vf31, vf7 + c->sqc2(vf3, 32, t0); // sqc2 vf3, 32(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf7); // vmadday.xyzw acc, vf30, vf7 + c->sqc2(vf5, 64, t0); // sqc2 vf5, 64(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf7); // vmaddaz.xyzw acc, vf29, vf7 + c->sqc2(vf6, 80, t0); // sqc2 vf6, 80(t0) + c->vmadd_bc(DEST::xyw, BC::w, vf7, vf28, vf7); // vmaddw.xyw vf7, vf28, vf7 + c->sqc2(vf8, 112, t0); // sqc2 vf8, 112(t0) + c->vmove(DEST::z, vf7, vf0); // vmove.z vf7, vf0 + c->sqc2(vf9, 128, t0); // sqc2 vf9, 128(t0) + c->vmula_bc(DEST::xyzw, BC::x, vf31, vf10); // vmulax.xyzw acc, vf31, vf10 + c->sqc2(vf11, 160, t0); // sqc2 vf11, 160(t0) + c->vmadda_bc(DEST::xyzw, BC::y, vf30, vf10); // vmadday.xyzw acc, vf30, vf10 + c->sqc2(vf12, 176, t0); // sqc2 vf12, 176(t0) + c->vmadda_bc(DEST::xyzw, BC::z, vf29, vf10); // vmaddaz.xyzw acc, vf29, vf10 + c->sqc2(vf2, 208, t0); // sqc2 vf2, 208(t0) + c->vmadd_bc(DEST::xyw, BC::w, vf10, vf28, vf10); // vmaddw.xyw vf10, vf28, vf10 + c->sqc2(vf3, 224, t0); // sqc2 vf3, 224(t0) + c->vmove(DEST::z, vf10, vf0); // vmove.z vf10, vf0 + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 192, t0); // sqc2 vf1, 192(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf4, 48, t0); // sqc2 vf4, 48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf7, 96, t0); // sqc2 vf7, 96(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf10, 144, t0); // sqc2 vf10, 144(t0) + c->load_symbol2(t9, cache.draw_large_polygon); // lw t9, draw-large-polygon(s7) + // Unknown instr: jr t9 + draw_large_polygon::execute(ctxt); + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.draw_large_polygon = intern_from_c(-1, 0, "draw-large-polygon").c(); + gLinkedFunctionTable.reg("render-sky-quad", execute, 256); +} + +} // namespace render_sky_quad +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace clip_polygon_against_negative_hyperplane { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + // nop // sll r0, r0, 0 + c->mov64(t2, t1); // or t2, t1, r0 + c->addiu(t1, r0, 0); // addiu t1, r0, 0 + c->lwc1(f0, 12, a3); // lwc1 f0, 12(a3) + c->mov64(t4, t0); // or t4, t0, r0 + c->lwc1(f1, 0, t3); // lwc1 f1, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + c->negs(f0, f0); // neg.s f0, f0 + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a3); // lqc2 vf2, 16(a3) + cop1_bc = c->fprs[f1] < c->fprs[f0]; // c.lt.s f1, f0 + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + bc = !cop1_bc; // bc1f L106 + c->lqc2(vf3, -16, a3); // lqc2 vf3, -16(a3) + if (bc) {goto block_9;} // branch non-likely + + +block_1: + c->lwc1(f2, 12, a3); // lwc1 f2, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lwc1(f3, 0, t3); // lwc1 f3, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lqc2(vf4, 0, a3); // lqc2 vf4, 0(a3) + c->negs(f2, f2); // neg.s f2, f2 + // nop // sll r0, r0, 0 + c->lqc2(vf5, 16, a3); // lqc2 vf5, 16(a3) + cop1_bc = c->fprs[f3] < c->fprs[f2]; // c.lt.s f3, f2 + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + bc = !cop1_bc; // bc1f L104 + c->lqc2(vf6, -16, a3); // lqc2 vf6, -16(a3) + if (bc) {goto block_6;} // branch non-likely + + bc = c->sgpr64(t2) == 0; // beq t2, r0, L110 + // nop // sll r0, r0, 0 + if (bc) {goto block_17;} // branch non-likely + + +block_3: + c->lwc1(f0, 12, a3); // lwc1 f0, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lwc1(f1, 0, t3); // lwc1 f1, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + c->negs(f0, f0); // neg.s f0, f0 + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a3); // lqc2 vf2, 16(a3) + cop1_bc = c->fprs[f1] < c->fprs[f0]; // c.lt.s f1, f0 + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + bc = !cop1_bc; // bc1f L105 + c->lqc2(vf3, -16, a3); // lqc2 vf3, -16(a3) + if (bc) {goto block_8;} // branch non-likely + + bc = c->sgpr64(t2) != 0; // bne t2, r0, L102 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + //beq r0, r0, L110 // beq r0, r0, L110 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_6: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf4, vf1); // vsub.xyzw vf7, vf4, vf1 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf5, vf2); // vsub.xyzw vf8, vf5, vf2 + c->subs(f5, f7, f8); // sub.s f5, f7, f8 + c->vsub(DEST::xyzw, vf9, vf6, vf3); // vsub.xyzw vf9, vf6, vf3 + c->divs(f6, f7, f5); // div.s f6, f7, f5 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->vmula_bc(DEST::xyzw, BC::w, vf1, vf0); // vmulaw.xyzw acc, vf1, vf0 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf2, vf0); // vmulaw.xyzw acc, vf2, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf3, vf0); // vmulaw.xyzw acc, vf3, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L107 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_11;} // branch non-likely + + //beq r0, r0, L110 // beq r0, r0, L110 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_8: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf1, vf4); // vsub.xyzw vf7, vf1, vf4 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf2, vf5); // vsub.xyzw vf8, vf2, vf5 + c->subs(f5, f8, f7); // sub.s f5, f8, f7 + c->vsub(DEST::xyzw, vf9, vf3, vf6); // vsub.xyzw vf9, vf3, vf6 + c->divs(f6, f8, f5); // div.s f6, f8, f5 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf5, vf0); // vmulaw.xyzw acc, vf5, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf6, vf0); // vmulaw.xyzw acc, vf6, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) == 0; // beq t2, r0, L110 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_17;} // branch non-likely + + +block_9: + c->lwc1(f2, 12, a3); // lwc1 f2, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lwc1(f3, 0, t3); // lwc1 f3, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lqc2(vf4, 0, a3); // lqc2 vf4, 0(a3) + c->negs(f2, f2); // neg.s f2, f2 + // nop // sll r0, r0, 0 + c->lqc2(vf5, 16, a3); // lqc2 vf5, 16(a3) + cop1_bc = c->fprs[f3] < c->fprs[f2]; // c.lt.s f3, f2 + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + bc = cop1_bc; // bc1t L108 + c->lqc2(vf6, -16, a3); // lqc2 vf6, -16(a3) + if (bc) {goto block_14;} // branch non-likely + + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->sqc2(vf2, -32, t0); // sqc2 vf2, -32(t0) + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + bc = c->sgpr64(t2) == 0; // beq t2, r0, L110 + c->sqc2(vf3, -16, t0); // sqc2 vf3, -16(t0) + if (bc) {goto block_17;} // branch non-likely + + +block_11: + c->lwc1(f0, 12, a3); // lwc1 f0, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lwc1(f1, 0, t3); // lwc1 f1, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + c->negs(f0, f0); // neg.s f0, f0 + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, a3); // lqc2 vf2, 16(a3) + cop1_bc = c->fprs[f1] < c->fprs[f0]; // c.lt.s f1, f0 + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + bc = cop1_bc; // bc1t L109 + c->lqc2(vf3, -16, a3); // lqc2 vf3, -16(a3) + if (bc) {goto block_16;} // branch non-likely + + c->sqc2(vf4, 0, t0); // sqc2 vf4, 0(t0) + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->sqc2(vf5, -32, t0); // sqc2 vf5, -32(t0) + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L106 + c->sqc2(vf6, -16, t0); // sqc2 vf6, -16(t0) + if (bc) {goto block_9;} // branch non-likely + + //beq r0, r0, L110 // beq r0, r0, L110 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_14: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf1, vf4); // vsub.xyzw vf7, vf1, vf4 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf2, vf5); // vsub.xyzw vf8, vf2, vf5 + c->subs(f5, f8, f7); // sub.s f5, f8, f7 + c->vsub(DEST::xyzw, vf9, vf3, vf6); // vsub.xyzw vf9, vf3, vf6 + c->divs(f6, f8, f5); // div.s f6, f8, f5 + c->daddiu(t0, t0, 96); // daddiu t0, t0, 96 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->sqc2(vf1, -96, t0); // sqc2 vf1, -96(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->sqc2(vf2, -80, t0); // sqc2 vf2, -80(t0) + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + c->sqc2(vf3, -64, t0); // sqc2 vf3, -64(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf5, vf0); // vmulaw.xyzw acc, vf5, vf0 + c->daddiu(t1, t1, 2); // daddiu t1, t1, 2 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmula_bc(DEST::xyzw, BC::w, vf6, vf0); // vmulaw.xyzw acc, vf6, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L103 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_3;} // branch non-likely + + //beq r0, r0, L110 // beq r0, r0, L110 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_16: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf4, vf1); // vsub.xyzw vf7, vf4, vf1 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf5, vf2); // vsub.xyzw vf8, vf5, vf2 + c->subs(f5, f7, f8); // sub.s f5, f7, f8 + c->vsub(DEST::xyzw, vf9, vf6, vf3); // vsub.xyzw vf9, vf6, vf3 + c->divs(f6, f7, f5); // div.s f6, f7, f5 + c->daddiu(t0, t0, 96); // daddiu t0, t0, 96 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->sqc2(vf4, -96, t0); // sqc2 vf4, -96(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf1, vf0); // vmulaw.xyzw acc, vf1, vf0 + c->sqc2(vf5, -80, t0); // sqc2 vf5, -80(t0) + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + c->sqc2(vf6, -64, t0); // sqc2 vf6, -64(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf2, vf0); // vmulaw.xyzw acc, vf2, vf0 + c->daddiu(t1, t1, 2); // daddiu t1, t1, 2 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmula_bc(DEST::xyzw, BC::w, vf3, vf0); // vmulaw.xyzw acc, vf3, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L102 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_1;} // branch non-likely + + +block_17: + c->lqc2(vf1, 0, t4); // lqc2 vf1, 0(t4) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, t4); // lqc2 vf2, 16(t4) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, t4); // lqc2 vf3, 32(t4) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf2, 16, t0); // sqc2 vf2, 16(t0) + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->sqc2(vf3, 32, t0); // sqc2 vf3, 32(t0) + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("clip-polygon-against-negative-hyperplane", execute, 256); +} + +} // namespace clip_polygon_against_negative_hyperplane +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace clip_polygon_against_positive_hyperplane { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + // nop // sll r0, r0, 0 + c->mov64(t2, t1); // or t2, t1, r0 + c->addiu(t1, r0, 0); // addiu t1, r0, 0 + c->lwc1(f1, 0, t3); // lwc1 f1, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lwc1(f0, 12, a3); // lwc1 f0, 12(a3) + c->mov64(t4, t0); // or t4, t0, r0 + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + c->lqc2(vf2, -32, a3); // lqc2 vf2, -32(a3) + bc = !cop1_bc; // bc1f L116 + c->lqc2(vf3, -16, a3); // lqc2 vf3, -16(a3) + if (bc) {goto block_9;} // branch non-likely + + +block_1: + c->lwc1(f3, 0, t3); // lwc1 f3, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lwc1(f2, 12, a3); // lwc1 f2, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lqc2(vf4, 0, a3); // lqc2 vf4, 0(a3) + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + cop1_bc = c->fprs[f2] < c->fprs[f3]; // c.lt.s f2, f3 + c->lqc2(vf5, -32, a3); // lqc2 vf5, -32(a3) + bc = !cop1_bc; // bc1f L114 + c->lqc2(vf6, -16, a3); // lqc2 vf6, -16(a3) + if (bc) {goto block_6;} // branch non-likely + + bc = c->sgpr64(t2) == 0; // beq t2, r0, L120 + // nop // sll r0, r0, 0 + if (bc) {goto block_17;} // branch non-likely + + +block_3: + c->lwc1(f1, 0, t3); // lwc1 f1, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lwc1(f0, 12, a3); // lwc1 f0, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + c->lqc2(vf2, -32, a3); // lqc2 vf2, -32(a3) + bc = !cop1_bc; // bc1f L115 + c->lqc2(vf3, -16, a3); // lqc2 vf3, -16(a3) + if (bc) {goto block_8;} // branch non-likely + + bc = c->sgpr64(t2) != 0; // bne t2, r0, L112 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + //beq r0, r0, L120 // beq r0, r0, L120 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_6: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf4, vf1); // vsub.xyzw vf7, vf4, vf1 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf5, vf2); // vsub.xyzw vf8, vf5, vf2 + c->subs(f5, f7, f8); // sub.s f5, f7, f8 + c->vsub(DEST::xyzw, vf9, vf6, vf3); // vsub.xyzw vf9, vf6, vf3 + c->divs(f6, f7, f5); // div.s f6, f7, f5 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->vmula_bc(DEST::xyzw, BC::w, vf1, vf0); // vmulaw.xyzw acc, vf1, vf0 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf2, vf0); // vmulaw.xyzw acc, vf2, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf3, vf0); // vmulaw.xyzw acc, vf3, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L117 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_11;} // branch non-likely + + //beq r0, r0, L120 // beq r0, r0, L120 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_8: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf1, vf4); // vsub.xyzw vf7, vf1, vf4 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf2, vf5); // vsub.xyzw vf8, vf2, vf5 + c->subs(f5, f8, f7); // sub.s f5, f8, f7 + c->vsub(DEST::xyzw, vf9, vf3, vf6); // vsub.xyzw vf9, vf3, vf6 + c->divs(f6, f8, f5); // div.s f6, f8, f5 + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf5, vf0); // vmulaw.xyzw acc, vf5, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + // nop // sll r0, r0, 0 + c->vmula_bc(DEST::xyzw, BC::w, vf6, vf0); // vmulaw.xyzw acc, vf6, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) == 0; // beq t2, r0, L120 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_17;} // branch non-likely + + +block_9: + c->lwc1(f3, 0, t3); // lwc1 f3, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lwc1(f2, 12, a3); // lwc1 f2, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lqc2(vf4, 0, a3); // lqc2 vf4, 0(a3) + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + cop1_bc = c->fprs[f2] < c->fprs[f3]; // c.lt.s f2, f3 + c->lqc2(vf5, -32, a3); // lqc2 vf5, -32(a3) + bc = cop1_bc; // bc1t L118 + c->lqc2(vf6, -16, a3); // lqc2 vf6, -16(a3) + if (bc) {goto block_14;} // branch non-likely + + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->sqc2(vf2, -32, t0); // sqc2 vf2, -32(t0) + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + bc = c->sgpr64(t2) == 0; // beq t2, r0, L120 + c->sqc2(vf3, -16, t0); // sqc2 vf3, -16(t0) + if (bc) {goto block_17;} // branch non-likely + + +block_11: + c->lwc1(f1, 0, t3); // lwc1 f1, 0(t3) + c->daddiu(t3, t3, 48); // daddiu t3, t3, 48 + c->lwc1(f0, 12, a3); // lwc1 f0, 12(a3) + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + c->lqc2(vf1, 0, a3); // lqc2 vf1, 0(a3) + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + c->lqc2(vf2, -32, a3); // lqc2 vf2, -32(a3) + bc = cop1_bc; // bc1t L119 + c->lqc2(vf3, -16, a3); // lqc2 vf3, -16(a3) + if (bc) {goto block_16;} // branch non-likely + + c->sqc2(vf4, 0, t0); // sqc2 vf4, 0(t0) + c->daddiu(t0, t0, 48); // daddiu t0, t0, 48 + c->sqc2(vf5, -32, t0); // sqc2 vf5, -32(t0) + c->daddiu(t1, t1, 1); // daddiu t1, t1, 1 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L116 + c->sqc2(vf6, -16, t0); // sqc2 vf6, -16(t0) + if (bc) {goto block_9;} // branch non-likely + + //beq r0, r0, L120 // beq r0, r0, L120 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_14: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf1, vf4); // vsub.xyzw vf7, vf1, vf4 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf2, vf5); // vsub.xyzw vf8, vf2, vf5 + c->subs(f5, f8, f7); // sub.s f5, f8, f7 + c->vsub(DEST::xyzw, vf9, vf3, vf6); // vsub.xyzw vf9, vf3, vf6 + c->divs(f6, f8, f5); // div.s f6, f8, f5 + c->daddiu(t0, t0, 96); // daddiu t0, t0, 96 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->sqc2(vf1, -96, t0); // sqc2 vf1, -96(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf4, vf0); // vmulaw.xyzw acc, vf4, vf0 + c->sqc2(vf2, -80, t0); // sqc2 vf2, -80(t0) + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + c->sqc2(vf3, -64, t0); // sqc2 vf3, -64(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf5, vf0); // vmulaw.xyzw acc, vf5, vf0 + c->daddiu(t1, t1, 2); // daddiu t1, t1, 2 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmula_bc(DEST::xyzw, BC::w, vf6, vf0); // vmulaw.xyzw acc, vf6, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L113 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_3;} // branch non-likely + + //beq r0, r0, L120 // beq r0, r0, L120 + // nop // sll r0, r0, 0 + goto block_17; // branch always + + +block_16: + c->subs(f7, f0, f1); // sub.s f7, f0, f1 + c->vsub(DEST::xyzw, vf7, vf4, vf1); // vsub.xyzw vf7, vf4, vf1 + c->subs(f8, f2, f3); // sub.s f8, f2, f3 + c->vsub(DEST::xyzw, vf8, vf5, vf2); // vsub.xyzw vf8, vf5, vf2 + c->subs(f5, f7, f8); // sub.s f5, f7, f8 + c->vsub(DEST::xyzw, vf9, vf6, vf3); // vsub.xyzw vf9, vf6, vf3 + c->divs(f6, f7, f5); // div.s f6, f7, f5 + c->daddiu(t0, t0, 96); // daddiu t0, t0, 96 + c->mfc1(v1, f6); // mfc1 v1, f6 + c->mov128_vf_gpr(vf10, v1); // qmtc2.i vf10, v1 + c->sqc2(vf4, -96, t0); // sqc2 vf4, -96(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf1, vf0); // vmulaw.xyzw acc, vf1, vf0 + c->sqc2(vf5, -80, t0); // sqc2 vf5, -80(t0) + c->vmadd_bc(DEST::xyzw, BC::x, vf7, vf7, vf10); // vmaddx.xyzw vf7, vf7, vf10 + c->sqc2(vf6, -64, t0); // sqc2 vf6, -64(t0) + c->vmula_bc(DEST::xyzw, BC::w, vf2, vf0); // vmulaw.xyzw acc, vf2, vf0 + c->daddiu(t1, t1, 2); // daddiu t1, t1, 2 + c->vmadd_bc(DEST::xyzw, BC::x, vf8, vf8, vf10); // vmaddx.xyzw vf8, vf8, vf10 + c->daddiu(t7, s7, 4); // daddiu t7, s7, 4 + c->vmula_bc(DEST::xyzw, BC::w, vf3, vf0); // vmulaw.xyzw acc, vf3, vf0 + // nop // sll r0, r0, 0 + c->vmadd_bc(DEST::xyzw, BC::x, vf9, vf9, vf10); // vmaddx.xyzw vf9, vf9, vf10 + // nop // sll r0, r0, 0 + c->sqc2(vf7, -48, t0); // sqc2 vf7, -48(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf8, -32, t0); // sqc2 vf8, -32(t0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L112 + c->sqc2(vf9, -16, t0); // sqc2 vf9, -16(t0) + if (bc) {goto block_1;} // branch non-likely + + +block_17: + c->lqc2(vf1, 0, t4); // lqc2 vf1, 0(t4) + // nop // sll r0, r0, 0 + c->lqc2(vf2, 16, t4); // lqc2 vf2, 16(t4) + // nop // sll r0, r0, 0 + c->lqc2(vf3, 32, t4); // lqc2 vf3, 32(t4) + // nop // sll r0, r0, 0 + c->sqc2(vf1, 0, t0); // sqc2 vf1, 0(t0) + // nop // sll r0, r0, 0 + c->sqc2(vf2, 16, t0); // sqc2 vf2, 16(t0) + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->sqc2(vf3, 32, t0); // sqc2 vf3, 32(t0) + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("clip-polygon-against-positive-hyperplane", execute, 256); +} + +} // namespace clip_polygon_against_positive_hyperplane +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace set_tex_offset { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->lui(a2, 14208); // lui a2, 14208 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->mtc1(f1, a0); // mtc1 f1, a0 + c->cvtsw(f1, f1); // cvt.s.w f1, f1 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->lui(a0, 14208); // lui a0, 14208 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->mtc1(f1, a1); // mtc1 f1, a1 + c->cvtsw(f1, f1); // cvt.s.w f1, f1 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 4, v1); // swc1 f0, 4(v1) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 8, v1); // swc1 f0, 8(v1) + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + c->lqc2(vf24, 0, v1); // lqc2 vf24, 0(v1) + c->mov128_gpr_vf(v1, vf24); // qmfc2.i v1, vf24 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("set-tex-offset", execute, 256); +} + +} // namespace set_tex_offset +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/sparticle.cpp b/game/mips2c/jakx_functions/sparticle.cpp new file mode 100644 index 0000000000..732187e823 --- /dev/null +++ b/game/mips2c/jakx_functions/sparticle.cpp @@ -0,0 +1,710 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace sp_process_block_3d { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* quaternion; // quaternion*! + void* quaternion_normalize; // quaternion-normalize! + void* sp_free_particle; // sp-free-particle + void* sp_relaunch_particle_3d; // sp-relaunch-particle-3d +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -160); // daddiu sp, sp, -160 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 48, sp); // sq s0, 48(sp) + c->sq(s1, 64, sp); // sq s1, 64(sp) + c->sq(s2, 80, sp); // sq s2, 80(sp) + c->sq(s3, 96, sp); // sq s3, 96(sp) + c->sq(s4, 112, sp); // sq s4, 112(sp) + c->sq(s5, 128, sp); // sq s5, 128(sp) + c->sq(gp, 144, sp); // sq gp, 144(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a1); // or s5, a1, r0 + c->mov64(s4, a2); // or s4, a2, r0 + c->mov64(s1, a3); // or s1, a3, r0 + c->mov64(s3, t0); // or s3, t0, r0 + c->mov64(s2, t1); // or s2, t1, r0 + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + c->sq(r0, 0, v1); // sq r0, 0(v1) + c->sw(v1, 32, sp); // sw v1, 32(sp) + // nop // sll r0, r0, 0 + +block_1: + c->lb(v1, 128, s5); // lb v1, 128(s5) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L83 + // nop // sll r0, r0, 0 + if (bc) {goto block_33;} // branch non-likely + + c->lb(a0, 129, s5); // lb a0, 129(s5) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->lqc2(vf16, 0, v1); // lqc2 vf16, 0(v1) + c->mov128_gpr_vf(v1, vf16); // qmfc2.i v1, vf16 + c->andi(s0, v1, 255); // andi s0, v1, 255 + bc = c->sgpr64(s0) != 0; // bne s0, r0, L71 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->lw(v1, 100, s5); // lw v1, 100(s5) + c->addiu(a0, r0, -1); // addiu a0, r0, -1 + bc = c->sgpr64(v1) == c->sgpr64(a0); // beq v1, a0, L70 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + bc = c->sgpr64(v1) == 0; // beq v1, r0, L82 + // nop // sll r0, r0, 0 + if (bc) {goto block_32;} // branch non-likely + + +block_5: + c->lw(a0, 104, s5); // lw a0, 104(s5) + c->andi(v1, a0, 32); // andi v1, a0, 32 + c->xor_(a0, a0, v1); // xor a0, a0, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L83 + c->sw(a0, 104, s5); // sw a0, 104(s5) + if (bc) {goto block_33;} // branch non-likely + + c->lw(v1, 124, s5); // lw v1, 124(s5) + //beq r0, r0, L83 // beq r0, r0, L83 + c->sw(v1, 44, s4); // sw v1, 44(s4) + goto block_33; // branch always + + +block_7: + c->lw(v1, 100, s5); // lw v1, 100(s5) + c->addiu(a0, r0, -1); // addiu a0, r0, -1 + bc = c->sgpr64(v1) == c->sgpr64(a0); // beq v1, a0, L72 + c->dsubu(a0, v1, s0); // dsubu a0, v1, s0 + if (bc) {goto block_10;} // branch non-likely + + bc = c->sgpr64(v1) == 0; // beq v1, r0, L82 + c->pmaxw(v1, a0, r0); // pmaxw v1, a0, r0 + if (bc) {goto block_32;} // branch non-likely + + c->sw(v1, 100, s5); // sw v1, 100(s5) + +block_10: + c->lw(a0, 104, s5); // lw a0, 104(s5) + c->andi(v1, a0, 32); // andi v1, a0, 32 + c->xor_(a0, a0, v1); // xor a0, a0, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L73 + c->sw(a0, 104, s5); // sw a0, 104(s5) + if (bc) {goto block_12;} // branch non-likely + + c->lw(v1, 124, s5); // lw v1, 124(s5) + c->sw(v1, 44, s4); // sw v1, 44(s4) + +block_12: + c->lw(t9, 112, s5); // lw t9, 112(s5) + bc = c->sgpr64(t9) == 0; // beq t9, r0, L74 + // nop // sll r0, r0, 0 + if (bc) {goto block_14;} // branch non-likely + + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sq(gp, 0, sp); // sq gp, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s1, 48, sp); // sq s1, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a1, s5); // or a1, s5, r0 + c->mov64(a2, s4); // or a2, s4, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sq(s2, 80, sp); // sq s2, 80(sp) + c->jalr(call_addr); // jalr ra, t9 + c->lq(gp, 0, sp); // lq gp, 0(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s1, 48, sp); // lq s1, 48(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 80, sp); // lq s2, 80(sp) + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + +block_14: + c->lw(a1, 120, s5); // lw a1, 120(s5) + c->lw(v1, 116, s5); // lw v1, 116(s5) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L75 + c->dsubu(v1, v1, s0); // dsubu v1, v1, s0 + if (bc) {goto block_17;} // branch non-likely + + bc = ((s64)c->sgpr64(v1)) >= 0; // bgez v1, L75 + c->sw(v1, 116, s5); // sw v1, 116(s5) + if (bc) {goto block_17;} // branch non-likely + + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sq(gp, 0, sp); // sq gp, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s1, 48, sp); // sq s1, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s2, 80, sp); // sq s2, 80(sp) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a3, s4); // or a3, s4, r0 + c->mov64(a2, s5); // or a2, s5, r0 + c->load_symbol2(t9, cache.sp_relaunch_particle_3d);// lw t9, sp-relaunch-particle-3d(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lq(gp, 0, sp); // lq gp, 0(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s1, 48, sp); // lq s1, 48(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 80, sp); // lq s2, 80(sp) + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + +block_17: + c->lqc2(vf8, 0, s4); // lqc2 vf8, 0(s4) + c->lqc2(vf9, 16, s4); // lqc2 vf9, 16(s4) + c->lqc2(vf10, 32, s4); // lqc2 vf10, 32(s4) + c->lqc2(vf11, 16, s5); // lqc2 vf11, 16(s5) + c->lqc2(vf12, 32, s5); // lqc2 vf12, 32(s5) + c->lqc2(vf13, 48, s5); // lqc2 vf13, 48(s5) + c->lqc2(vf14, 64, s5); // lqc2 vf14, 64(s5) + c->lwc1(f0, 96, s5); // lwc1 f0, 96(s5) + c->mfc1(v1, f0); // mfc1 v1, f0 + c->vmul_bc(DEST::xyzw, BC::z, vf14, vf14, vf16); // vmulz.xyzw vf14, vf14, vf16 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L76 + c->vadd(DEST::xyz, vf11, vf11, vf14); // vadd.xyz vf11, vf11, vf14 + if (bc) {goto block_19;} // branch non-likely + + c->mov128_vf_gpr(vf15, v1); // qmtc2.i vf15, v1 + c->vsub_bc(DEST::w, BC::x, vf15, vf0, vf15); // vsubx.w vf15, vf0, vf15 + c->vmul_bc(DEST::xyzw, BC::w, vf15, vf15, vf16); // vmulw.xyzw vf15, vf15, vf16 + c->vsub_bc(DEST::w, BC::w, vf15, vf0, vf15); // vsubw.w vf15, vf0, vf15 + c->vmul_bc(DEST::xyz, BC::w, vf11, vf11, vf15); // vmulw.xyz vf11, vf11, vf15 + +block_19: + c->vmul_bc(DEST::xyzw, BC::y, vf17, vf11, vf16); // vmuly.xyzw vf17, vf11, vf16 + c->vmul_bc(DEST::xyzw, BC::y, vf18, vf12, vf16); // vmuly.xyzw vf18, vf12, vf16 + c->vmul_bc(DEST::xyzw, BC::y, vf19, vf13, vf16); // vmuly.xyzw vf19, vf13, vf16 + c->vadd(DEST::xyzw, vf8, vf8, vf17); // vadd.xyzw vf8, vf8, vf17 + c->vadd_bc(DEST::w, BC::w, vf9, vf9, vf18); // vaddw.w vf9, vf9, vf18 + c->vadd(DEST::xyzw, vf10, vf10, vf19); // vadd.xyzw vf10, vf10, vf19 + c->vmax_bc(DEST::xyzw, BC::x, vf10, vf10, vf0); // vmaxx.xyzw vf10, vf10, vf0 + c->sqc2(vf11, 16, s5); // sqc2 vf11, 16(s5) + c->sqc2(vf8, 0, s4); // sqc2 vf8, 0(s4) + c->sqc2(vf9, 16, s4); // sqc2 vf9, 16(s4) + c->sqc2(vf10, 32, s4); // sqc2 vf10, 32(s4) + c->lwu(v1, 32, sp); // lwu v1, 32(sp) + c->mov64(a0, s4); // or a0, s4, r0 + c->lwc1(f0, 16, a0); // lwc1 f0, 16(a0) + c->lwc1(f1, 20, a0); // lwc1 f1, 20(a0) + c->lwc1(f2, 24, a0); // lwc1 f2, 24(a0) + c->swc1(f0, 0, v1); // swc1 f0, 0(v1) + c->swc1(f1, 4, v1); // swc1 f1, 4(v1) + c->swc1(f2, 8, v1); // swc1 f2, 8(v1) + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f3, a0); // mtc1 f3, a0 + c->muls(f2, f2, f2); // mul.s f2, f2, f2 + c->subs(f2, f3, f2); // sub.s f2, f3, f2 + c->muls(f1, f1, f1); // mul.s f1, f1, f1 + c->subs(f1, f2, f1); // sub.s f1, f2, f1 + c->muls(f0, f0, f0); // mul.s f0, f0, f0 + c->subs(f0, f1, f0); // sub.s f0, f1, f0 + c->sqrts(f0, f0); // sqrt.s f0, f0 + c->swc1(f0, 12, v1); // swc1 f0, 12(v1) + c->mfc1(a0, f0); // mfc1 a0, f0 + c->mov64(s0, s0); // or s0, s0, r0 + +block_20: + c->load_symbol2(t9, cache.quaternion); // lw t9, quaternion*!(s7) + c->lwu(a0, 32, sp); // lwu a0, 32(sp) + c->lwu(a1, 32, sp); // lwu a1, 32(sp) + c->daddiu(a2, s5, 80); // daddiu a2, s5, 80 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddiu(s0, s0, -10); // daddiu s0, s0, -10 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(s0)) > 0; // bgtz s0, L77 + // nop // sll r0, r0, 0 + if (bc) {goto block_20;} // branch non-likely + + c->load_symbol2(t9, cache.quaternion_normalize); // lw t9, quaternion-normalize!(s7) + c->lwu(a0, 32, sp); // lwu a0, 32(sp) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a0, s4); // or a0, s4, r0 + c->lwu(v1, 32, sp); // lwu v1, 32(sp) + c->lwc1(f0, 12, v1); // lwc1 f0, 12(v1) + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + bc = !cop1_bc; // bc1f L78 + // nop // sll r0, r0, 0 + if (bc) {goto block_23;} // branch non-likely + + c->lqc2(vf1, 16, a0); // lqc2 vf1, 16(a0) + c->lqc2(vf2, 0, v1); // lqc2 vf2, 0(v1) + c->vsub(DEST::xyz, vf1, vf0, vf2); // vsub.xyz vf1, vf0, vf2 + c->sqc2(vf1, 16, a0); // sqc2 vf1, 16(a0) + c->mov128_gpr_vf(a0, vf1); // qmfc2.i a0, vf1 + //beq r0, r0, L79 // beq r0, r0, L79 + // nop // sll r0, r0, 0 + goto block_24; // branch always + + +block_23: + c->lqc2(vf1, 16, a0); // lqc2 vf1, 16(a0) + c->lqc2(vf2, 0, v1); // lqc2 vf2, 0(v1) + c->vadd(DEST::xyz, vf1, vf0, vf2); // vadd.xyz vf1, vf0, vf2 + c->sqc2(vf1, 16, a0); // sqc2 vf1, 16(a0) + c->mov128_gpr_vf(a0, vf1); // qmfc2.i a0, vf1 + +block_24: + c->mov128_gpr_vf(v1, vf10); // qmfc2.i v1, vf10 + c->lw(a0, 104, s5); // lw a0, 104(s5) + c->andi(a1, a0, 2); // andi a1, a0, 2 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L80 + c->andi(a1, a0, 4); // andi a1, a0, 4 + if (bc) {goto block_27;} // branch non-likely + + bc = c->sgpr64(v1) != 0; // bne v1, r0, L80 + c->pextuw(a2, v1, r0); // pextuw a2, v1, r0 + if (bc) {goto block_27;} // branch non-likely + + bc = c->sgpr64(a2) == 0; // beq a2, r0, L82 + // nop // sll r0, r0, 0 + if (bc) {goto block_32;} // branch non-likely + + +block_27: + bc = c->sgpr64(a1) == 0; // beq a1, r0, L81 + c->andi(a0, a0, 1); // andi a0, a0, 1 + if (bc) {goto block_29;} // branch non-likely + + c->pcpyud(v1, v1, r0); // pcpyud v1, v1, r0 + c->pexew(v1, v1); // pexew v1, v1 + bc = ((s64)c->sgpr64(v1)) <= 0; // blez v1, L82 + // nop // sll r0, r0, 0 + if (bc) {goto block_32;} // branch non-likely + + +block_29: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L83 + // nop // sll r0, r0, 0 + if (bc) {goto block_33;} // branch non-likely + + c->mov128_gpr_vf(v1, vf8); // qmfc2.i v1, vf8 + c->pcpyud(v1, v1, r0); // pcpyud v1, v1, r0 + c->pexew(v1, v1); // pexew v1, v1 + bc = ((s64)c->sgpr64(v1)) < 0; // bltz v1, L82 + c->mov128_gpr_vf(v1, vf9); // qmfc2.i v1, vf9 + if (bc) {goto block_32;} // branch non-likely + + c->pcpyud(v1, v1, r0); // pcpyud v1, v1, r0 + c->pexew(v1, v1); // pexew v1, v1 + bc = ((s64)c->sgpr64(v1)) >= 0; // bgez v1, L83 + // nop // sll r0, r0, 0 + if (bc) {goto block_33;} // branch non-likely + + +block_32: + c->load_symbol2(t9, cache.sp_free_particle); // lw t9, sp-free-particle(s7) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a1, s1); // or a1, s1, r0 + c->mov64(a2, s5); // or a2, s5, r0 + c->mov64(a3, s4); // or a3, s4, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + +block_33: + c->daddiu(s3, s3, -1); // daddiu s3, s3, -1 + c->daddiu(s5, s5, 144); // daddiu s5, s5, 144 + c->daddiu(s4, s4, 48); // daddiu s4, s4, 48 + bc = c->sgpr64(s3) != 0; // bne s3, r0, L69 + c->daddiu(s1, s1, 1); // daddiu s1, s1, 1 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v0, s1); // or v0, s1, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 144, sp); // lq gp, 144(sp) + c->lq(s5, 128, sp); // lq s5, 128(sp) + c->lq(s4, 112, sp); // lq s4, 112(sp) + c->lq(s3, 96, sp); // lq s3, 96(sp) + c->lq(s2, 80, sp); // lq s2, 80(sp) + c->lq(s1, 64, sp); // lq s1, 64(sp) + c->lq(s0, 48, sp); // lq s0, 48(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 160); // daddiu sp, sp, 160 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.quaternion = intern_from_c(-1, 0, "quaternion*!").c(); + cache.quaternion_normalize = intern_from_c(-1, 0, "quaternion-normalize!").c(); + cache.sp_free_particle = intern_from_c(-1, 0, "sp-free-particle").c(); + cache.sp_relaunch_particle_3d = intern_from_c(-1, 0, "sp-relaunch-particle-3d").c(); + gLinkedFunctionTable.reg("sp-process-block-3d", execute, 512); +} + +} // namespace sp_process_block_3d +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace sp_process_block_2d { +struct Cache { + void* fake_scratchpad_data; // *fake-scratchpad-data* + void* add_to_sprite_aux_list; // add-to-sprite-aux-list + void* sp_free_particle; // sp-free-particle + void* sp_orbiter; // sp-orbiter + void* sp_relaunch_particle_2d; // sp-relaunch-particle-2d +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -128); // daddiu sp, sp, -128 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s0, 16, sp); // sq s0, 16(sp) + c->sq(s1, 32, sp); // sq s1, 32(sp) + c->sq(s2, 48, sp); // sq s2, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s4, 80, sp); // sq s4, 80(sp) + c->sq(s5, 96, sp); // sq s5, 96(sp) + c->sq(gp, 112, sp); // sq gp, 112(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a1); // or s5, a1, r0 + c->mov64(s4, a2); // or s4, a2, r0 + c->mov64(s1, a3); // or s1, a3, r0 + c->mov64(s3, t0); // or s3, t0, r0 + c->mov64(s2, t1); // or s2, t1, r0 + +block_1: + c->lb(v1, 128, s5); // lb v1, 128(s5) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L98 + // nop // sll r0, r0, 0 + if (bc) {goto block_32;} // branch non-likely + + c->lb(a0, 129, s5); // lb a0, 129(s5) + get_fake_spad_addr2(v1, cache.fake_scratchpad_data, 0, c);// lui v1, 28672 + c->dsll(a0, a0, 4); // dsll a0, a0, 4 + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->lqc2(vf9, 0, v1); // lqc2 vf9, 0(v1) + c->mov128_gpr_vf(v1, vf9); // qmfc2.i v1, vf9 + c->andi(s0, v1, 255); // andi s0, v1, 255 + bc = c->sgpr64(s0) != 0; // bne s0, r0, L88 + // nop // sll r0, r0, 0 + if (bc) {goto block_9;} // branch non-likely + + c->lw(v1, 104, s5); // lw v1, 104(s5) + // nop // sll r0, r0, 0 + c->lui(a0, 1); // lui a0, 1 + c->ori(a0, a0, 128); // ori a0, a0, 128 + c->and_(v1, v1, a0); // and v1, v1, a0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L86 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->load_symbol2(t9, cache.add_to_sprite_aux_list);// lw t9, add-to-sprite-aux-list(s7) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a1, s5); // or a1, s5, r0 + c->mov64(a2, s4); // or a2, s4, r0 + c->mov64(a3, s1); // or a3, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + +block_5: + c->lw(v1, 100, s5); // lw v1, 100(s5) + c->addiu(a0, r0, -1); // addiu a0, r0, -1 + bc = c->sgpr64(v1) == c->sgpr64(a0); // beq v1, a0, L87 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + bc = c->sgpr64(v1) == 0; // beq v1, r0, L97 + // nop // sll r0, r0, 0 + if (bc) {goto block_31;} // branch non-likely + + +block_7: + c->lw(a0, 104, s5); // lw a0, 104(s5) + c->andi(v1, a0, 32); // andi v1, a0, 32 + c->xor_(a0, a0, v1); // xor a0, a0, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L98 + c->sw(a0, 104, s5); // sw a0, 104(s5) + if (bc) {goto block_32;} // branch non-likely + + c->lw(v1, 124, s5); // lw v1, 124(s5) + //beq r0, r0, L98 // beq r0, r0, L98 + c->sw(v1, 44, s4); // sw v1, 44(s4) + goto block_32; // branch always + + +block_9: + c->lw(v1, 100, s5); // lw v1, 100(s5) + c->addiu(a0, r0, -1); // addiu a0, r0, -1 + bc = c->sgpr64(v1) == c->sgpr64(a0); // beq v1, a0, L89 + c->dsubu(a0, v1, s0); // dsubu a0, v1, s0 + if (bc) {goto block_12;} // branch non-likely + + bc = c->sgpr64(v1) == 0; // beq v1, r0, L97 + c->pmaxw(v1, a0, r0); // pmaxw v1, a0, r0 + if (bc) {goto block_31;} // branch non-likely + + c->sw(v1, 100, s5); // sw v1, 100(s5) + +block_12: + c->lw(v1, 104, s5); // lw v1, 104(s5) + c->andi(a0, v1, 32); // andi a0, v1, 32 + c->xor_(v1, v1, a0); // xor v1, v1, a0 + bc = c->sgpr64(a0) == 0; // beq a0, r0, L90 + c->sw(v1, 104, s5); // sw v1, 104(s5) + if (bc) {goto block_14;} // branch non-likely + + c->lw(a0, 124, s5); // lw a0, 124(s5) + c->sw(a0, 44, s4); // sw a0, 44(s4) + +block_14: + c->lw(t9, 112, s5); // lw t9, 112(s5) + c->lui(a0, 1); // lui a0, 1 + c->ori(a0, a0, 128); // ori a0, a0, 128 + c->and_(v1, v1, a0); // and v1, v1, a0 + c->load_symbol2(a0, cache.add_to_sprite_aux_list);// lw a0, add-to-sprite-aux-list(s7) + c->movn(t9, a0, v1); // movn t9, a0, v1 + bc = c->sgpr64(t9) == 0; // beq t9, r0, L91 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->sq(gp, 0, sp); // sq gp, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s1, 48, sp); // sq s1, 48(sp) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a1, s5); // or a1, s5, r0 + c->mov64(a2, s4); // or a2, s4, r0 + c->mov64(a3, s1); // or a3, s1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->jalr(call_addr); // jalr ra, t9 + c->lq(gp, 0, sp); // lq gp, 0(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s1, 48, sp); // lq s1, 48(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + +block_16: + c->lw(a1, 120, s5); // lw a1, 120(s5) + c->lw(v1, 116, s5); // lw v1, 116(s5) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L92 + c->dsubu(a0, v1, s0); // dsubu a0, v1, s0 + if (bc) {goto block_19;} // branch non-likely + + c->daddiu(v1, a0, -1); // daddiu v1, a0, -1 + bc = ((s64)c->sgpr64(v1)) >= 0; // bgez v1, L92 + c->sw(a0, 116, s5); // sw a0, 116(s5) + if (bc) {goto block_19;} // branch non-likely + + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sq(gp, 0, sp); // sq gp, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s1, 48, sp); // sq s1, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->sq(s2, 80, sp); // sq s2, 80(sp) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a3, s4); // or a3, s4, r0 + c->mov64(a2, s5); // or a2, s5, r0 + c->load_symbol2(t9, cache.sp_relaunch_particle_2d);// lw t9, sp-relaunch-particle-2d(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lq(gp, 0, sp); // lq gp, 0(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s1, 48, sp); // lq s1, 48(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 80, sp); // lq s2, 80(sp) + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + +block_19: + c->lqc2(vf1, 0, s4); // lqc2 vf1, 0(s4) + c->lqc2(vf2, 16, s4); // lqc2 vf2, 16(s4) + c->lqc2(vf3, 32, s4); // lqc2 vf3, 32(s4) + c->lqc2(vf4, 16, s5); // lqc2 vf4, 16(s5) + c->lqc2(vf5, 32, s5); // lqc2 vf5, 32(s5) + c->lqc2(vf6, 48, s5); // lqc2 vf6, 48(s5) + c->lqc2(vf7, 64, s5); // lqc2 vf7, 64(s5) + c->lwc1(f0, 96, s5); // lwc1 f0, 96(s5) + c->mfc1(v1, f0); // mfc1 v1, f0 + c->vmul_bc(DEST::xyzw, BC::z, vf7, vf7, vf9); // vmulz.xyzw vf7, vf7, vf9 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L93 + c->vadd(DEST::xyz, vf4, vf4, vf7); // vadd.xyz vf4, vf4, vf7 + if (bc) {goto block_21;} // branch non-likely + + c->mov128_vf_gpr(vf8, v1); // qmtc2.i vf8, v1 + c->vsub_bc(DEST::w, BC::x, vf8, vf0, vf8); // vsubx.w vf8, vf0, vf8 + c->vmul_bc(DEST::xyzw, BC::w, vf8, vf8, vf9); // vmulw.xyzw vf8, vf8, vf9 + c->vsub_bc(DEST::w, BC::w, vf8, vf0, vf8); // vsubw.w vf8, vf0, vf8 + c->vmul_bc(DEST::xyz, BC::w, vf4, vf4, vf8); // vmulw.xyz vf4, vf4, vf8 + +block_21: + c->vmul_bc(DEST::xyzw, BC::y, vf10, vf4, vf9); // vmuly.xyzw vf10, vf4, vf9 + c->vmul_bc(DEST::xyzw, BC::y, vf11, vf5, vf9); // vmuly.xyzw vf11, vf5, vf9 + c->vmul_bc(DEST::xyzw, BC::y, vf12, vf6, vf9); // vmuly.xyzw vf12, vf6, vf9 + c->vadd(DEST::xyzw, vf1, vf1, vf10); // vadd.xyzw vf1, vf1, vf10 + c->vadd(DEST::zw, vf2, vf2, vf11); // vadd.zw vf2, vf2, vf11 + c->vadd(DEST::xyzw, vf3, vf3, vf12); // vadd.xyzw vf3, vf3, vf12 + c->vmax_bc(DEST::xyzw, BC::x, vf3, vf3, vf0); // vmaxx.xyzw vf3, vf3, vf0 + c->sqc2(vf4, 16, s5); // sqc2 vf4, 16(s5) + c->sqc2(vf1, 0, s4); // sqc2 vf1, 0(s4) + c->sqc2(vf2, 16, s4); // sqc2 vf2, 16(s4) + c->sqc2(vf3, 32, s4); // sqc2 vf3, 32(s4) + c->lwc1(f0, 24, s4); // lwc1 f0, 24(s4) + c->cvtws(f0, f0); // cvt.w.s f0, f0 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->dsll32(v1, v1, 16); // dsll32 v1, v1, 16 + c->dsra32(v1, v1, 16); // dsra32 v1, v1, 16 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->cvtsw(f0, f0); // cvt.s.w f0, f0 + c->swc1(f0, 24, s4); // swc1 f0, 24(s4) + c->lw(v1, 104, s5); // lw v1, 104(s5) + c->andi(v1, v1, 64); // andi v1, v1, 64 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L94 + c->load_symbol2(t9, cache.sp_orbiter); // lw t9, sp-orbiter(s7) + if (bc) {goto block_23;} // branch non-likely + + c->daddiu(sp, sp, -96); // daddiu sp, sp, -96 + c->sq(gp, 0, sp); // sq gp, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s1, 48, sp); // sq s1, 48(sp) + c->sq(s3, 64, sp); // sq s3, 64(sp) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a1, s5); // or a1, s5, r0 + c->mov64(a2, s4); // or a2, s4, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sq(s2, 80, sp); // sq s2, 80(sp) + c->jalr(call_addr); // jalr ra, t9 + c->lq(gp, 0, sp); // lq gp, 0(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s1, 48, sp); // lq s1, 48(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 80, sp); // lq s2, 80(sp) + c->daddiu(sp, sp, 96); // daddiu sp, sp, 96 + +block_23: + c->lq(v1, 32, s4); // lq v1, 32(s4) + c->lw(a0, 104, s5); // lw a0, 104(s5) + c->andi(a1, a0, 2); // andi a1, a0, 2 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L95 + c->andi(a1, a0, 4); // andi a1, a0, 4 + if (bc) {goto block_26;} // branch non-likely + + bc = c->sgpr64(v1) != 0; // bne v1, r0, L95 + c->pextuw(t4, v1, r0); // pextuw t4, v1, r0 + if (bc) {goto block_26;} // branch non-likely + + bc = c->sgpr64(t4) == 0; // beq t4, r0, L97 + // nop // sll r0, r0, 0 + if (bc) {goto block_31;} // branch non-likely + + +block_26: + bc = c->sgpr64(a1) == 0; // beq a1, r0, L96 + c->andi(a0, a0, 1); // andi a0, a0, 1 + if (bc) {goto block_28;} // branch non-likely + + c->pcpyud(t4, v1, r0); // pcpyud t4, v1, r0 + c->pexew(t4, t4); // pexew t4, t4 + bc = ((s64)c->sgpr64(t4)) <= 0; // blez t4, L97 + // nop // sll r0, r0, 0 + if (bc) {goto block_31;} // branch non-likely + + +block_28: + bc = c->sgpr64(a0) == 0; // beq a0, r0, L98 + // nop // sll r0, r0, 0 + if (bc) {goto block_32;} // branch non-likely + + c->mov128_gpr_vf(v1, vf1); // qmfc2.i v1, vf1 + c->pcpyud(v1, v1, r0); // pcpyud v1, v1, r0 + c->pexew(v1, v1); // pexew v1, v1 + bc = ((s64)c->sgpr64(v1)) < 0; // bltz v1, L97 + c->mov128_gpr_vf(v1, vf2); // qmfc2.i v1, vf2 + if (bc) {goto block_31;} // branch non-likely + + c->pcpyud(v1, v1, r0); // pcpyud v1, v1, r0 + c->pexew(v1, v1); // pexew v1, v1 + bc = ((s64)c->sgpr64(v1)) >= 0; // bgez v1, L98 + // nop // sll r0, r0, 0 + if (bc) {goto block_32;} // branch non-likely + + +block_31: + c->load_symbol2(t9, cache.sp_free_particle); // lw t9, sp-free-particle(s7) + c->mov64(a0, gp); // or a0, gp, r0 + c->mov64(a1, s1); // or a1, s1, r0 + c->mov64(a2, s5); // or a2, s5, r0 + c->mov64(a3, s4); // or a3, s4, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + +block_32: + c->daddiu(s3, s3, -1); // daddiu s3, s3, -1 + c->daddiu(s5, s5, 144); // daddiu s5, s5, 144 + c->daddiu(s4, s4, 48); // daddiu s4, s4, 48 + bc = c->sgpr64(s3) != 0; // bne s3, r0, L85 + c->daddiu(s1, s1, 1); // daddiu s1, s1, 1 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v0, s1); // or v0, s1, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 112, sp); // lq gp, 112(sp) + c->lq(s5, 96, sp); // lq s5, 96(sp) + c->lq(s4, 80, sp); // lq s4, 80(sp) + c->lq(s3, 64, sp); // lq s3, 64(sp) + c->lq(s2, 48, sp); // lq s2, 48(sp) + c->lq(s1, 32, sp); // lq s1, 32(sp) + c->lq(s0, 16, sp); // lq s0, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 128); // daddiu sp, sp, 128 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.fake_scratchpad_data = intern_from_c(-1, 0, "*fake-scratchpad-data*").c(); + cache.add_to_sprite_aux_list = intern_from_c(-1, 0, "add-to-sprite-aux-list").c(); + cache.sp_free_particle = intern_from_c(-1, 0, "sp-free-particle").c(); + cache.sp_orbiter = intern_from_c(-1, 0, "sp-orbiter").c(); + cache.sp_relaunch_particle_2d = intern_from_c(-1, 0, "sp-relaunch-particle-2d").c(); + gLinkedFunctionTable.reg("sp-process-block-2d", execute, 512); +} + +} // namespace sp_process_block_2d +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/sparticle_launcher.cpp b/game/mips2c/jakx_functions/sparticle_launcher.cpp new file mode 100644 index 0000000000..5665d49e6e --- /dev/null +++ b/game/mips2c/jakx_functions/sparticle_launcher.cpp @@ -0,0 +1,1467 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace sparticle_motion_blur { +struct Cache { + void* atan; // atan + void* view_get_active_math_camera; // view-get-active-math-camera +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + u32 Clipping = 0; + c->daddiu(sp, sp, -80); // daddiu sp, sp, -80 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s3, 16, sp); // sq s3, 16(sp) + c->sq(s4, 32, sp); // sq s4, 32(sp) + c->sq(s5, 48, sp); // sq s5, 48(sp) + c->sq(gp, 64, sp); // sq gp, 64(sp) + c->mov64(s3, a1); // or s3, a1, r0 + c->mov64(gp, a2); // or gp, a2, r0 + c->ori(s5, r0, 65535); // ori s5, r0, 65535 + c->load_symbol2(t9, cache.view_get_active_math_camera);// lw t9, view-get-active-math-camera(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->dsll32(a1, s5, 16); // dsll32 a1, s5, 16 + c->lq(a0, 16, s3); // lq a0, 16(s3) + c->lqc2(vf1, 0, gp); // lqc2 vf1, 0(gp) + c->pceqw(a2, a0, r0); // pceqw a2, a0, r0 + c->lqc2(vf24, 572, v1); // lqc2 vf24, 572(v1) + c->ppach(a2, r0, a2); // ppach a2, r0, a2 + c->lqc2(vf25, 588, v1); // lqc2 vf25, 588(v1) + c->or_(a1, a2, a1); // or a1, a2, a1 + c->lqc2(vf26, 604, v1); // lqc2 vf26, 604(v1) + c->daddiu(a1, a1, 1); // daddiu a1, a1, 1 + c->lqc2(vf27, 620, v1); // lqc2 vf27, 620(v1) + bc = c->sgpr64(a1) == 0; // beq a1, r0, L68 + c->mov128_vf_gpr(vf4, a0); // qmtc2.i vf4, a0 + if (bc) {goto block_5;} // branch non-likely + + c->lui(a0, 16896); // lui a0, 16896 + c->lqc2(vf30, 812, v1); // lqc2 vf30, 812(v1) + c->lqc2(vf29, 780, v1); // lqc2 vf29, 780(v1) + c->vmula_bc(DEST::xyzw, BC::x, vf24, vf1); // vmulax.xyzw acc, vf24, vf1 + c->vmadda_bc(DEST::xyzw, BC::y, vf25, vf1); // vmadday.xyzw acc, vf25, vf1 + c->vmadda_bc(DEST::xyzw, BC::z, vf26, vf1); // vmaddaz.xyzw acc, vf26, vf1 + c->vmadd_bc(DEST::xyzw, BC::w, vf10, vf27, vf0); // vmaddw.xyzw vf10, vf27, vf0 + c->mov128_vf_gpr(vf5, a0); // qmtc2.i vf5, a0 + c->vmul(DEST::xyzw, vf12, vf10, vf29); // vmul.xyzw vf12, vf10, vf29 + c->vmula_bc(DEST::xyzw, BC::w, vf1, vf0); // vmulaw.xyzw acc, vf1, vf0 + c->vmadd_bc(DEST::xyzw, BC::x, vf1, vf4, vf5); // vmaddx.xyzw vf1, vf4, vf5 + c->vdiv(vf0, BC::w, vf12, BC::w); // vdiv Q, vf0.w, vf12.w + // Unknown instr: vclip.xyz vf12, vf12 + Clipping = c->clip(vf12, vf12, Clipping); // Unknown instr: vclip.xyz vf12, vf12 + c->vmula_bc(DEST::xyzw, BC::x, vf24, vf1); // vmulax.xyzw acc, vf24, vf1 + c->vmadda_bc(DEST::xyzw, BC::y, vf25, vf1); // vmadday.xyzw acc, vf25, vf1 + c->vmadda_bc(DEST::xyzw, BC::z, vf26, vf1); // vmaddaz.xyzw acc, vf26, vf1 + c->vmadd_bc(DEST::xyzw, BC::w, vf11, vf27, vf0); // vmaddw.xyzw vf11, vf27, vf0 + c->vwaitq(); // vwaitq + // c->gprs[v1].du64[0] = Clipping; // cfc2.i v1, Clipping + c->gprs[v1].du64[0] = Clipping; + c->vmulq(DEST::xyz, vf10, vf10); // vmulq.xyz vf10, vf10, Q + c->vmul(DEST::xyzw, vf13, vf11, vf29); // vmul.xyzw vf13, vf11, vf29 + c->andi(v1, v1, 63); // andi v1, v1, 63 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L68 + c->vadd(DEST::xyzw, vf10, vf10, vf30); // vadd.xyzw vf10, vf10, vf30 + if (bc) {goto block_5;} // branch non-likely + + c->vdiv(vf0, BC::w, vf13, BC::w); // vdiv Q, vf0.w, vf13.w + // Unknown instr: vclip.xyz vf13, vf13 + Clipping = c->clip(vf13, vf13, Clipping); + c->vmax_bc(DEST::w, BC::x, vf10, vf10, vf0); // vmaxx.w vf10, vf10, vf0 + c->vftoi4(DEST::xyzw, vf2, vf10); // vftoi4.xyzw vf2, vf10 + c->vwaitq(); // vwaitq + c->vmulq(DEST::xyz, vf11, vf11); // vmulq.xyz vf11, vf11, Q + // c->gprs[v1].du64[0] = Clipping; // cfc2.i v1, Clipping + c->gprs[v1].du64[0] = Clipping; + c->vitof0(DEST::xyzw, vf6, vf2); // vitof0.xyzw vf6, vf2 + c->vadd(DEST::xyzw, vf11, vf11, vf30); // vadd.xyzw vf11, vf11, vf30 + c->andi(v1, v1, 63); // andi v1, v1, 63 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L68 + c->vdiv(vf0, BC::w, vf6, BC::z); // vdiv Q, vf0.w, vf6.z + if (bc) {goto block_5;} // branch non-likely + + c->vmax_bc(DEST::w, BC::x, vf11, vf11, vf0); // vmaxx.w vf11, vf11, vf0 + c->vadd_bc(DEST::x, BC::w, vf9, vf0, vf0); // vaddw.x vf9, vf0, vf0 + c->vftoi4(DEST::xyzw, vf3, vf11); // vftoi4.xyzw vf3, vf11 + c->vitof0(DEST::xyzw, vf7, vf3); // vitof0.xyzw vf7, vf3 + c->vsub(DEST::xy, vf8, vf7, vf6); // vsub.xy vf8, vf7, vf6 + c->mov128_gpr_vf(s4, vf8); // qmfc2.i s4, vf8 + c->dsra32(s5, s4, 0); // dsra32 s5, s4, 0 + c->vmulq(DEST::x, vf9, vf9); // vmulq.x vf9, vf9, Q + c->load_symbol2(t9, cache.atan); // lw t9, atan(s7) + c->mov64(a0, s4); // or a0, s4, r0 + c->mov64(a1, s5); // or a1, s5, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a0, v0); // or a0, v0, r0 + c->lw(v1, 12, s3); // lw v1, 12(s3) + c->lui(a1, -14720); // lui a1, -14720 + c->mtc1(f0, a1); // mtc1 f0, a1 + c->mtc1(f1, a0); // mtc1 f1, a0 + c->adds(f0, f0, f1); // add.s f0, f0, f1 + c->swc1(f0, 24, gp); // swc1 f0, 24(gp) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L69 + c->mov128_gpr_vf(a0, vf9); // qmfc2.i a0, vf9 + if (bc) {goto block_7;} // branch non-likely + + c->mtc1(f2, a0); // mtc1 f2, a0 + c->lui(a0, 16256); // lui a0, 16256 + c->mtc1(f1, r0); // mtc1 f1, r0 + c->lui(a1, 13702); // lui a1, 13702 + c->ori(a1, a1, 14269); // ori a1, a1, 14269 + c->lui(a2, 13337); // lui a2, 13337 + c->ori(a2, a2, 25670); // ori a2, a2, 25670 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->mtc1(f3, a1); // mtc1 f3, a1 + c->mtc1(f4, a2); // mtc1 f4, a2 + c->subs(f2, f2, f3); // sub.s f2, f2, f3 + c->subs(f3, f4, f3); // sub.s f3, f4, f3 + c->divs(f2, f2, f3); // div.s f2, f2, f3 + c->mtc1(f3, s4); // mtc1 f3, s4 + c->mtc1(f4, s5); // mtc1 f4, s5 + // Unknown instr: mula.s f3, f3 + // Unknown instr: madd.s f3, f4, f4 + { + float f3 = c->fprs[3]; + float f4 = c->fprs[4]; + c->fprs[3] = (f3 * f3) + (f4 * f4); + } + c->maxs(f2, f2, f1); // max.s f2, f2, f1 + c->sqrts(f1, f3); // sqrt.s f1, f3 + c->mins(f2, f2, f0); // min.s f2, f2, f0 + c->lui(a0, 16448); // lui a0, 16448 + c->subs(f0, f0, f2); // sub.s f0, f0, f2 + c->lui(a1, 16000); // lui a1, 16000 + c->mtc1(f3, a0); // mtc1 f3, a0 + c->mtc1(f5, a1); // mtc1 f5, a1 + c->mtc1(f4, v1); // mtc1 f4, v1 + // Unknown instr: mula.s f0, f3 + // Unknown instr: madd.s f0, f2, f5 + { + float f0 = c->fprs[0]; + float f2 = c->fprs[2]; + float f3 = c->fprs[3]; + float f5 = c->fprs[5]; + c->fprs[0] = (f0 * f3) + (f2 * f5); + } + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->muls(f0, f0, f4); // mul.s f0, f0, f4 + //beq r0, r0, L69 // beq r0, r0, L69 + c->swc1(f0, 12, gp); // swc1 f0, 12(gp) + goto block_7; // branch always + + +block_5: + c->lwc1(f0, 12, s3); // lwc1 f0, 12(s3) + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] == c->fprs[f1]; // c.eq.s f0, f1 + bc = cop1_bc; // bc1t L69 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_7;} // branch non-likely + + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 12, gp); // swc1 f0, 12(gp) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_7: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 64, sp); // lq gp, 64(sp) + c->lq(s5, 48, sp); // lq s5, 48(sp) + c->lq(s4, 32, sp); // lq s4, 32(sp) + c->lq(s3, 16, sp); // lq s3, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 80); // daddiu sp, sp, 80 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.atan = intern_from_c(-1, 0, "atan").c(); + cache.view_get_active_math_camera = intern_from_c(-1, 0, "view-get-active-math-camera").c(); + gLinkedFunctionTable.reg("sparticle-motion-blur", execute, 256); +} + +} // namespace sparticle_motion_blur +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace sp_launch_particles_var { +struct Cache { + void* sp_launcher_enable; // *sp-launcher-enable* + void* sp_launcher_lock; // *sp-launcher-lock* + void* time_of_day_context; // *time-of-day-context* + void* add_to_sprite_aux_list; // add-to-sprite-aux-list + void* cos; // cos + void* particle_adgif; // particle-adgif + void* quaternion_axis_angle; // quaternion-axis-angle! + void* sin; // sin + void* sp_adjust_launch; // sp-adjust-launch + void* sp_euler_convert; // sp-euler-convert + void* sp_get_particle; // sp-get-particle + void* sp_init_fields; // sp-init-fields! + void* sp_queue_launch; // sp-queue-launch + void* sp_rotate_system; // sp-rotate-system +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + u16 vis[16]; + + c->mov64(v1, a0); // or v1, a0, r0 + c->mov64(v1, a1); // or v1, a1, r0 + c->mov64(v1, a2); // or v1, a2, r0 + c->mov64(v1, a3); // or v1, a3, r0 + c->mov64(v1, t0); // or v1, t0, r0 + c->mov64(v1, t1); // or v1, t1, r0 + // nop // sll r0, r0, 0 + c->daddiu(sp, sp, -320); // daddiu sp, sp, -320 + // nop // sll r0, r0, 0 + c->load_symbol2(v1, cache.sp_launcher_enable); // lw v1, *sp-launcher-enable*(s7) + c->sw(ra, 0, sp); // sw ra, 0(sp) + bc = c->sgpr64(v1) == c->sgpr64(s7); // beq v1, s7, L312 + c->sq(s0, 16, sp); // sq s0, 16(sp) + if (bc) {goto block_6;} // branch non-likely + + c->load_symbol2(v1, cache.sp_launcher_lock); // lw v1, *sp-launcher-lock*(s7) + c->sq(s1, 32, sp); // sq s1, 32(sp) + bc = c->sgpr64(v1) == c->sgpr64(s7); // beq v1, s7, L314 + c->sq(s2, 48, sp); // sq s2, 48(sp) + if (bc) {goto block_8;} // branch non-likely + + bc = c->sgpr64(a3) != c->sgpr64(s7); // bne a3, s7, L313 + c->lui(v1, 16256); // lui v1, 16256 + if (bc) {goto block_7;} // branch non-likely + + bc = c->sgpr64(t0) != c->sgpr64(s7); // bne t0, s7, L313 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + bc = c->sgpr64(t1) != c->sgpr64(v1); // bne t1, v1, L313 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->load_symbol2(t9, cache.sp_queue_launch); // lw t9, sp-queue-launch(s7) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(ra, 0, sp); // lw ra, 0(sp) + // nop // sll r0, r0, 0 + +block_6: + //jr ra // jr ra + c->daddiu(sp, sp, 320); // daddiu sp, sp, 320 + goto end_of_function; // return + + +block_7: + c->sd(r0, 2, r0); // sd r0, 2(r0) + // nop // sll r0, r0, 0 + +block_8: + c->sq(s3, 240, sp); // sq s3, 240(sp) + // nop // sll r0, r0, 0 + c->sq(s4, 256, sp); // sq s4, 256(sp) + // nop // sll r0, r0, 0 + c->sq(s5, 272, sp); // sq s5, 272(sp) + // nop // sll r0, r0, 0 + c->sq(s6, 288, sp); // sq s6, 288(sp) + c->sqc2(vf0, 128, sp); // sqc2 vf0, 128(sp) + c->lw(v1, 8, s6); // lw v1, 8(s6) + // nop // sll r0, r0, 0 + c->lh(v1, 0, v1); // lh v1, 0(v1) + // nop // sll r0, r0, 0 + // vi14 = c->gpr_src(v1).du16[0]; // ctc2.i vi14, v1 + vis[14] = c->gpr_src(v1).du16[0]; + // nop // sll r0, r0, 0 + c->lqc2(vf30, 0, a2); // lqc2 vf30, 0(a2) + c->sqc2(vf30, 80, sp); // sqc2 vf30, 80(sp) + c->lqc2(vf30, 16, a2); // lqc2 vf30, 16(a2) + c->sqc2(vf30, 96, sp); // sqc2 vf30, 96(sp) + c->lqc2(vf30, 32, a2); // lqc2 vf30, 32(a2) + c->sqc2(vf30, 112, sp); // sqc2 vf30, 112(sp) + c->lqc2(vf30, 48, a2); // lqc2 vf30, 48(a2) + c->mtc1(f1, t1); // mtc1 f1, t1 + c->sqc2(vf30, 64, sp); // sqc2 vf30, 64(sp) + c->lui(v1, 17279); // lui v1, 17279 + c->mov64(s3, a0); // or s3, a0, r0 + c->mov128_vf_gpr(vf31, v1); // qmtc2.i vf31, v1 + c->mov64(s4, a1); // or s4, a1, r0 + c->lw(s6, 24, s3); // lw s6, 24(s3) + c->mov64(s0, a3); // or s0, a3, r0 + c->mov64(s1, t0); // or s1, t0, r0 + c->lw(a1, 4, a1); // lw a1, 4(a1) + c->daddiu(a0, sp, 160); // daddiu a0, sp, 160 + c->addiu(a2, r0, 0); // addiu a2, r0, 0 + c->addiu(a3, r0, 7); // addiu a3, r0, 7 + c->load_symbol2(t9, cache.sp_init_fields); // lw t9, sp-init-fields!(s7) + c->daddiu(t0, s7, 4); // daddiu t0, s7, 4 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->sw(v0, 12, sp); // sw v0, 12(sp) + // nop // sll r0, r0, 0 + c->lwc1(f2, 180, sp); // lwc1 f2, 180(sp) + // nop // sll r0, r0, 0 + bc = c->sgpr64(s0) == c->sgpr64(s7); // beq s0, s7, L315 + c->muls(f1, f2, f1); // mul.s f1, f2, f1 + if (bc) {goto block_11;} // branch non-likely + + c->lwc1(f2, 24, s0); // lwc1 f2, 24(s0) + // nop // sll r0, r0, 0 + c->adds(f2, f2, f1); // add.s f2, f2, f1 + // nop // sll r0, r0, 0 + c->swc1(f2, 24, s0); // swc1 f2, 24(s0) + // nop // sll r0, r0, 0 + c->cvtws(f2, f2); // cvt.w.s f2, f2 + // nop // sll r0, r0, 0 + c->sw(s1, 32, s0); // sw s1, 32(s0) + // nop // sll r0, r0, 0 + c->mfc1(v1, f2); // mfc1 v1, f2 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L338 + // nop // sll r0, r0, 0 + if (bc) {goto block_64;} // branch non-likely + + //beq r0, r0, L316 // beq r0, r0, L316 + // nop // sll r0, r0, 0 + goto block_12; // branch always + + +block_11: + // nop // sll r0, r0, 0 + c->lwc1(f2, 0, s4); // lwc1 f2, 0(s4) + // nop // sll r0, r0, 0 + c->adds(f2, f2, f1); // add.s f2, f2, f1 + // nop // sll r0, r0, 0 + c->swc1(f2, 0, s4); // swc1 f2, 0(s4) + // nop // sll r0, r0, 0 + c->cvtws(f2, f2); // cvt.w.s f2, f2 + // nop // sll r0, r0, 0 + c->mfc1(v1, f2); // mfc1 v1, f2 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L338 + // nop // sll r0, r0, 0 + if (bc) {goto block_64;} // branch non-likely + + +block_12: + c->addiu(a1, r0, 0); // addiu a1, r0, 0 + c->mov64(a2, s7); // or a2, s7, r0 + bc = c->sgpr64(s1) == c->sgpr64(s7); // beq s1, s7, L317 + // nop // sll r0, r0, 0 + if (bc) {goto block_15;} // branch non-likely + + c->lw(v1, 12, s1); // lw v1, 12(s1) + bc = c->sgpr64(v1) == c->sgpr64(s7); // beq v1, s7, L317 + // nop // sll r0, r0, 0 + if (bc) {goto block_15;} // branch non-likely + + c->lh(v1, 6, v1); // lh v1, 6(v1) + c->andi(a0, v1, 4); // andi a0, v1, 4 + c->addiu(a3, r0, 1); // addiu a3, r0, 1 + c->movn(a1, a3, a0); // movn a1, a3, a0 + c->andi(a0, v1, 8); // andi a0, v1, 8 + c->movn(a2, s0, a0); // movn a2, s0, a0 + // nop // sll r0, r0, 0 + +block_15: + c->load_symbol2(t9, cache.sp_get_particle); // lw t9, sp-get-particle(s7) + c->mov64(a0, s3); // or a0, s3, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(v0) == c->sgpr64(s7); // beq v0, s7, L338 + c->mov64(s2, v0); // or s2, v0, r0 + if (bc) {goto block_64;} // branch non-likely + + c->daddiu(a0, sp, 192); // daddiu a0, sp, 192 + c->lw(a1, 12, sp); // lw a1, 12(sp) + c->addiu(a2, r0, 8); // addiu a2, r0, 8 + c->addiu(a3, r0, 21); // addiu a3, r0, 21 + c->load_symbol2(t9, cache.sp_init_fields); // lw t9, sp-init-fields!(s7) + c->daddiu(t0, s7, 4); // daddiu t0, s7, 4 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->daddiu(a0, s2, 12); // daddiu a0, s2, 12 + c->mov64(a1, v0); // or a1, v0, r0 + c->addiu(a2, r0, 22); // addiu a2, r0, 22 + c->addiu(a3, r0, 51); // addiu a3, r0, 51 + call_addr = c->gprs[t9].du32[0]; // function call: + c->daddiu(t0, s7, 4); // daddiu t0, s7, 4 + c->jalr(call_addr); // jalr ra, t9 + c->sw(v0, 144, sp); // sw v0, 144(sp) + // nop // sll r0, r0, 0 + c->lw(s5, 104, s2); // lw s5, 104(s2) + // nop // sll r0, r0, 0 + c->andi(v1, s5, 8); // andi v1, s5, 8 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L318 + // nop // sll r0, r0, 0 + if (bc) {goto block_18;} // branch non-likely + + c->ori(s5, s5, 16384); // ori s5, s5, 16384 + // nop // sll r0, r0, 0 + c->sw(s5, 104, s2); // sw s5, 104(s2) + // nop // sll r0, r0, 0 + +block_18: + bc = c->sgpr64(s6) != c->sgpr64(s7); // bne s6, s7, L321 + // nop // sll r0, r0, 0 + if (bc) {goto block_26;} // branch non-likely + + bc = c->sgpr64(s1) == c->sgpr64(s7); // beq s1, s7, L319 + // nop // sll r0, r0, 0 + if (bc) {goto block_24;} // branch non-likely + + c->lw(v1, 12, s1); // lw v1, 12(s1) + bc = c->sgpr64(v1) == c->sgpr64(s7); // beq v1, s7, L319 + // nop // sll r0, r0, 0 + if (bc) {goto block_24;} // branch non-likely + + c->lh(v1, 6, v1); // lh v1, 6(v1) + c->andi(v1, v1, 4); // andi v1, v1, 4 + c->mov64(a0, s5); // or a0, s5, r0 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L319 + c->lb(v1, 28, s1); // lb v1, 28(s1) + if (bc) {goto block_24;} // branch non-likely + + c->lui(a1, 1); // lui a1, 1 + c->and_(a1, a0, a1); // and a1, a0, a1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a1) != 0; // bne a1, r0, L320 + // nop // sll r0, r0, 0 + if (bc) {goto block_25;} // branch non-likely + + c->andi(a0, a0, 128); // andi a0, a0, 128 + c->addiu(a1, r0, 1); // addiu a1, r0, 1 + c->movn(v1, a1, a0); // movn v1, a1, a0 + // nop // sll r0, r0, 0 + //beq r0, r0, L320 // beq r0, r0, L320 + c->sw(v1, 212, sp); // sw v1, 212(sp) + goto block_25; // branch always + + +block_24: + c->andi(v1, s5, 16384); // andi v1, s5, 16384 + // nop // sll r0, r0, 0 + c->dsra(v1, v1, 14); // dsra v1, v1, 14 + // nop // sll r0, r0, 0 + c->sw(v1, 212, sp); // sw v1, 212(sp) + // nop // sll r0, r0, 0 + +block_25: + c->lwc1(f2, 216, sp); // lwc1 f2, 216(sp) + // nop // sll r0, r0, 0 + c->cvtws(f2, f2); // cvt.w.s f2, f2 + // nop // sll r0, r0, 0 + c->mfc1(v1, f2); // mfc1 v1, f2 + // nop // sll r0, r0, 0 + c->dsll32(v1, v1, 16); // dsll32 v1, v1, 16 + // nop // sll r0, r0, 0 + c->dsra32(v1, v1, 16); // dsra32 v1, v1, 16 + // nop // sll r0, r0, 0 + c->mtc1(f2, v1); // mtc1 f2, v1 + // nop // sll r0, r0, 0 + c->cvtsw(f2, f2); // cvt.s.w f2, f2 + // nop // sll r0, r0, 0 + c->swc1(f2, 216, sp); // swc1 f2, 216(sp) + // nop // sll r0, r0, 0 + +block_26: + c->andi(v1, s5, 128); // andi v1, s5, 128 + c->lqc2(vf4, 224, sp); // lqc2 vf4, 224(sp) + bc = c->sgpr64(v1) != 0; // bne v1, r0, L322 + c->vmini_bc(DEST::xyz, BC::x, vf4, vf4, vf31); // vminix.xyz vf4, vf4, vf31 + if (bc) {goto block_28;} // branch non-likely + + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf4, vf4); // vftoi0.xyzw vf4, vf4 + // nop // sll r0, r0, 0 + c->vitof0(DEST::xyzw, vf4, vf4); // vitof0.xyzw vf4, vf4 + c->addiu(v1, r0, -2); // addiu v1, r0, -2 + c->mov128_gpr_vf(a0, vf4); // qmfc2.i a0, vf4 + c->and_(a0, a0, v1); // and a0, a0, v1 + c->andi(v1, s5, 16384); // andi v1, s5, 16384 + c->sra(v1, v1, 14); // sra v1, v1, 14 + // nop // sll r0, r0, 0 + c->or_(a0, a0, v1); // or a0, a0, v1 + // nop // sll r0, r0, 0 + c->sq(a0, 224, sp); // sq a0, 224(sp) + // nop // sll r0, r0, 0 + +block_28: + c->gprs[v1].du64[0] = vi14; // cfc2.i v1, vi14 + c->sb(v1, 129, s2); // sb v1, 129(s2) + bc = c->sgpr64(s1) == c->sgpr64(s7); // beq s1, s7, L323 + c->andi(v1, s5, 64); // andi v1, s5, 64 + if (bc) {goto block_31;} // branch non-likely + + bc = c->sgpr64(v1) == 0; // beq v1, r0, L323 + c->lw(a0, 192, sp); // lw a0, 192(sp) + if (bc) {goto block_31;} // branch non-likely + + c->load_symbol2(t9, cache.cos); // lw t9, cos(s7) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(a1, v0); // or a1, v0, r0 + c->lw(a0, 192, sp); // lw a0, 192(sp) + c->load_symbol2(t9, cache.sin); // lw t9, sin(s7) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->ori(v1, r0, 32768); // ori v1, r0, 32768 + c->dsll(v1, v1, 16); // dsll v1, v1, 16 + c->lw(a0, 200, sp); // lw a0, 200(sp) + c->xor_(a3, v0, v1); // xor a3, v0, v1 + c->sw(a0, 8, s2); // sw a0, 8(s2) + c->gprs[a2].du64[0] = 0; // or a2, r0, r0 + c->lw(t0, 196, sp); // lw t0, 196(sp) + c->load_symbol2(t9, cache.quaternion_axis_angle); // lw t9, quaternion-axis-angle!(s7) + c->daddiu(a0, s2, 80); // daddiu a0, s2, 80 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(v1, 16, s0); // lw v1, 16(s0) + // nop // sll r0, r0, 0 + c->lw(v1, 0, v1); // lw v1, 0(v1) + // nop // sll r0, r0, 0 + c->sw(v1, 108, s2); // sw v1, 108(s2) + // nop // sll r0, r0, 0 + +block_31: + c->sw(s7, 136, s2); // sw s7, 136(s2) + // nop // sll r0, r0, 0 + bc = c->sgpr64(s0) == c->sgpr64(s7); // beq s0, s7, L327 + // nop // sll r0, r0, 0 + if (bc) {goto block_40;} // branch non-likely + + c->lw(a0, 0, s0); // lw a0, 0(s0) + // nop // sll r0, r0, 0 + c->lw(a1, 24, a0); // lw a1, 24(a0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(a1) == 0; // beq a1, r0, L327 + // nop // sll r0, r0, 0 + if (bc) {goto block_40;} // branch non-likely + + c->lw(t0, 0, s1); // lw t0, 0(s1) + c->daddiu(a3, s1, 108); // daddiu a3, s1, 108 + c->mov64(a2, t0); // or a2, t0, r0 + // nop // sll r0, r0, 0 + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + // nop // sll r0, r0, 0 + +block_34: + c->lw(v1, 0, a3); // lw v1, 0(a3) + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + c->lw(v1, 0, v1); // lw v1, 0(v1) + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) != c->sgpr64(a1); // bne v1, a1, L326 + c->lh(v1, 4, a3); // lh v1, 4(a3) + if (bc) {goto block_39;} // branch non-likely + + c->andi(a0, v1, 1); // andi a0, v1, 1 + c->ori(v1, v1, 1); // ori v1, v1, 1 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L326 + // nop // sll r0, r0, 0 + if (bc) {goto block_39;} // branch non-likely + + c->sh(v1, 4, a3); // sh v1, 4(a3) + // nop // sll r0, r0, 0 + c->lw(v1, 0, s2); // lw v1, 0(s2) + // nop // sll r0, r0, 0 + c->sw(v1, 8, a3); // sw v1, 8(a3) + c->mov64(a0, s7); // or a0, s7, r0 + if (((s64)c->sgpr64(s6)) != ((s64)c->sgpr64(s7))) {// bnel s6, s7, L325 + c->lw(a0, 0, s2); // lw a0, 0(s2) + goto block_38; + } + +block_38: + c->sw(a0, 12, a3); // sw a0, 12(a3) + // nop // sll r0, r0, 0 + c->sw(s2, 16, a3); // sw s2, 16(a3) + // nop // sll r0, r0, 0 + c->subu(v1, t0, a2); // subu v1, t0, a2 + // nop // sll r0, r0, 0 + c->sw(v1, 136, s2); // sw v1, 136(s2) + // nop // sll r0, r0, 0 + //beq r0, r0, L327 // beq r0, r0, L327 + // nop // sll r0, r0, 0 + goto block_40; // branch always + + +block_39: + bc = c->sgpr64(a2) != 0; // bne a2, r0, L324 + c->daddiu(a3, a3, 48); // daddiu a3, a3, 48 + if (bc) {goto block_34;} // branch non-likely + + +block_40: + c->lw(a2, 144, sp); // lw a2, 144(sp) + c->daddiu(a0, sp, 192); // daddiu a0, sp, 192 + c->lh(v1, 0, a2); // lh v1, 0(a2) + c->mov64(a1, s2); // or a1, s2, r0 + c->load_symbol2(t9, cache.sp_adjust_launch); // lw t9, sp-adjust-launch(s7) + c->daddiu(v1, v1, -63); // daddiu v1, v1, -63 + bc = ((s64)c->sgpr64(v1)) >= 0; // bgez v1, L328 + c->daddiu(a3, sp, 80); // daddiu a3, sp, 80 + if (bc) {goto block_42;} // branch non-likely + + call_addr = c->gprs[t9].du32[0]; // function call: + c->mov64(t0, s6); // or t0, s6, r0 + c->jalr(call_addr); // jalr ra, t9 + +block_42: + bc = c->sgpr64(s6) == c->sgpr64(s7); // beq s6, s7, L329 + // nop // sll r0, r0, 0 + if (bc) {goto block_44;} // branch non-likely + + c->load_symbol2(t9, cache.sp_euler_convert); // lw t9, sp-euler-convert(s7) + c->daddiu(a0, sp, 192); // daddiu a0, sp, 192 + call_addr = c->gprs[t9].du32[0]; // function call: + c->mov64(a1, s2); // or a1, s2, r0 + c->jalr(call_addr); // jalr ra, t9 + +block_44: + bc = c->sgpr64(s0) == c->sgpr64(s7); // beq s0, s7, L330 + // nop // sll r0, r0, 0 + if (bc) {goto block_48;} // branch non-likely + + c->lw(a2, 12, s0); // lw a2, 12(s0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(a2) == c->sgpr64(s7); // beq a2, s7, L330 + c->daddiu(a0, sp, 192); // daddiu a0, sp, 192 + if (bc) {goto block_48;} // branch non-likely + + bc = c->sgpr64(a2) == 0; // beq a2, r0, L330 + c->mov64(a1, s2); // or a1, s2, r0 + if (bc) {goto block_48;} // branch non-likely + + c->load_symbol2(t9, cache.sp_rotate_system); // lw t9, sp-rotate-system(s7) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + +block_48: + c->lqc2(vf4, 192, sp); // lqc2 vf4, 192(sp) + // nop // sll r0, r0, 0 + c->vadd(DEST::xyz, vf4, vf4, vf30); // vadd.xyz vf4, vf4, vf30 + c->lw(a0, 4, s2); // lw a0, 4(s2) + c->lw(a1, 160, sp); // lw a1, 160(sp) + // nop // sll r0, r0, 0 + c->load_symbol2(t9, cache.particle_adgif); // lw t9, particle-adgif(s7) + // nop // sll r0, r0, 0 + c->sqc2(vf4, 192, sp); // sqc2 vf4, 192(sp) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(a2, 4, s2); // lw a2, 4(s2) + c->lui(a3, 5); // lui a3, 5 + c->lw(v1, 64, a2); // lw v1, 64(a2) + c->andi(a0, s5, 16); // andi a0, s5, 16 + c->addiu(a1, r0, 66); // addiu a1, r0, 66 + // nop // sll r0, r0, 0 + c->movn(v1, a1, a0); // movn v1, a1, a0 + c->andi(a0, s5, 8); // andi a0, s5, 8 + c->addiu(a1, r0, 72); // addiu a1, r0, 72 + // nop // sll r0, r0, 0 + c->movn(v1, a1, a0); // movn v1, a1, a0 + c->andi(a0, s5, 256); // andi a0, s5, 256 + c->sw(v1, 64, a2); // sw v1, 64(a2) + c->ori(a1, a3, 4715); // ori a1, a3, 4715 + if (((s64)c->sgpr64(a0)) != ((s64)0)) { // bnel a0, r0, L331 + c->sd(a1, 48, a2); // sd a1, 48(a2) + goto block_50; + } + +block_50: + c->lw(t9, 172, sp); // lw t9, 172(sp) + c->mov64(a1, s2); // or a1, s2, r0 + c->mov64(a0, s3); // or a0, s3, r0 + c->mov64(t0, s0); // or t0, s0, r0 + bc = c->sgpr64(t9) == 0; // beq t9, r0, L332 + c->daddiu(a2, sp, 192); // daddiu a2, sp, 192 + if (bc) {goto block_52;} // branch non-likely + + c->sq(s6, 304, sp); // sq s6, 304(sp) + // nop // sll r0, r0, 0 + c->lq(s6, 288, sp); // lq s6, 288(sp) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->mov64(a3, s4); // or a3, s4, r0 + c->jalr(call_addr); // jalr ra, t9 + c->lq(s6, 304, sp); // lq s6, 304(sp) + // nop // sll r0, r0, 0 + +block_52: + c->addiu(a0, r0, 4); // addiu a0, r0, 4 + c->andi(v1, s5, 128); // andi v1, s5, 128 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L333 + c->dsubu(a0, r0, a0); // dsubu a0, r0, a0 + if (bc) {goto block_54;} // branch non-likely + + c->load_symbol2(v1, cache.add_to_sprite_aux_list);// lw v1, add-to-sprite-aux-list(s7) + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + // nop // sll r0, r0, 0 + c->and_(s5, s5, a0); // and s5, s5, a0 + c->sw(r0, 236, sp); // sw r0, 236(sp) + // nop // sll r0, r0, 0 + c->sw(r0, 60, s2); // sw r0, 60(s2) + // nop // sll r0, r0, 0 + c->lw(v1, 208, sp); // lw v1, 208(sp) + c->addiu(a0, r0, 3); // addiu a0, r0, 3 + c->pmaxw(v1, v1, a0); // pmaxw v1, v1, a0 + c->addiu(a0, r0, 11); // addiu a0, r0, 11 + c->pminw(v1, v1, a0); // pminw v1, v1, a0 + // nop // sll r0, r0, 0 + c->sw(v1, 208, sp); // sw v1, 208(sp) + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + +block_54: + c->andi(v1, s5, 32896); // andi v1, s5, 32896 + c->ori(a0, r0, 32768); // ori a0, r0, 32768 + bc = c->sgpr64(v1) != c->sgpr64(a0); // bne v1, a0, L334 + c->load_symbol2(a0, cache.time_of_day_context); // lw a0, *time-of-day-context*(s7) + if (bc) {goto block_56;} // branch non-likely + + c->lqc2(vf4, 156, a0); // lqc2 vf4, 156(a0) + // nop // sll r0, r0, 0 + c->lqc2(vf5, 224, sp); // lqc2 vf5, 224(sp) + // nop // sll r0, r0, 0 + c->lqc2(vf6, 48, s2); // lqc2 vf6, 48(s2) + // nop // sll r0, r0, 0 + c->vmul(DEST::xyz, vf5, vf5, vf4); // vmul.xyz vf5, vf5, vf4 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyz, vf6, vf6, vf4); // vmul.xyz vf6, vf6, vf4 + // nop // sll r0, r0, 0 + c->sqc2(vf5, 224, sp); // sqc2 vf5, 224(sp) + // nop // sll r0, r0, 0 + //beq r0, r0, L335 // beq r0, r0, L335 + c->sqc2(vf6, 48, s2); // sqc2 vf6, 48(s2) + goto block_58; // branch always + + +block_56: + // nop // sll r0, r0, 0 + c->andi(v1, s5, 128); // andi v1, s5, 128 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L335 + c->lqc2(vf5, 224, sp); // lqc2 vf5, 224(sp) + if (bc) {goto block_58;} // branch non-likely + + c->lqc2(vf6, 48, s2); // lqc2 vf6, 48(s2) + // nop // sll r0, r0, 0 + c->sqc2(vf5, 224, sp); // sqc2 vf5, 224(sp) + // nop // sll r0, r0, 0 + c->sqc2(vf6, 48, s2); // sqc2 vf6, 48(s2) + // nop // sll r0, r0, 0 + +block_58: + c->mov64(v1, s1); // or v1, s1, r0 + c->dsubu(a0, s1, s7); // dsubu a0, s1, s7 + c->movz(v1, r0, a0); // movz v1, r0, a0 + // nop // sll r0, r0, 0 + c->sw(s7, 132, s2); // sw s7, 132(s2) + // nop // sll r0, r0, 0 + bc = c->sgpr64(s1) == c->sgpr64(s7); // beq s1, s7, L336 + // nop // sll r0, r0, 0 + if (bc) {goto block_60;} // branch non-likely + + c->lw(v1, 32, s1); // lw v1, 32(s1) + // nop // sll r0, r0, 0 + c->sw(v1, 132, s2); // sw v1, 132(s2) + // nop // sll r0, r0, 0 + +block_60: + c->lw(v1, 0, s2); // lw v1, 0(s2) + // nop // sll r0, r0, 0 + c->lqc2(vf4, 192, sp); // lqc2 vf4, 192(sp) + // nop // sll r0, r0, 0 + c->lqc2(vf5, 208, sp); // lqc2 vf5, 208(sp) + // nop // sll r0, r0, 0 + c->lqc2(vf6, 224, sp); // lqc2 vf6, 224(sp) + // nop // sll r0, r0, 0 + c->sqc2(vf4, 0, v1); // sqc2 vf4, 0(v1) + // nop // sll r0, r0, 0 + c->sqc2(vf5, 16, v1); // sqc2 vf5, 16(v1) + // nop // sll r0, r0, 0 + c->vsub_bc(DEST::w, BC::w, vf6, vf0, vf0); // vsubw.w vf6, vf0, vf0 + // nop // sll r0, r0, 0 + c->sqc2(vf6, 32, v1); // sqc2 vf6, 32(v1) + // nop // sll r0, r0, 0 + c->ori(s5, s5, 32); // ori s5, s5, 32 + c->lw(a0, 236, sp); // lw a0, 236(sp) + c->sw(s5, 104, s2); // sw s5, 104(s2) + // nop // sll r0, r0, 0 + c->sw(a0, 124, s2); // sw a0, 124(s2) + // nop // sll r0, r0, 0 + bc = c->sgpr64(s0) == c->sgpr64(s7); // beq s0, s7, L337 + c->lui(v1, 16256); // lui v1, 16256 + if (bc) {goto block_63;} // branch non-likely + + c->lwc1(f2, 24, s0); // lwc1 f2, 24(s0) + c->mtc1(f3, v1); // mtc1 f3, v1 + c->subs(f2, f2, f3); // sub.s f2, f2, f3 + // nop // sll r0, r0, 0 + c->swc1(f2, 24, s0); // swc1 f2, 24(s0) + c->cvtws(f2, f2); // cvt.w.s f2, f2 + c->mfc1(v1, f2); // mfc1 v1, f2 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L316 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + //beq r0, r0, L338 // beq r0, r0, L338 + // nop // sll r0, r0, 0 + goto block_64; // branch always + + +block_63: + c->lwc1(f2, 0, s4); // lwc1 f2, 0(s4) + c->mtc1(f3, v1); // mtc1 f3, v1 + c->subs(f2, f2, f3); // sub.s f2, f2, f3 + // nop // sll r0, r0, 0 + c->swc1(f2, 0, s4); // swc1 f2, 0(s4) + c->cvtws(f2, f2); // cvt.w.s f2, f2 + c->mfc1(v1, f2); // mfc1 v1, f2 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L316 + // nop // sll r0, r0, 0 + if (bc) {goto block_12;} // branch non-likely + + +block_64: + c->lw(ra, 0, sp); // lw ra, 0(sp) + // nop // sll r0, r0, 0 + c->lq(s0, 16, sp); // lq s0, 16(sp) + // nop // sll r0, r0, 0 + c->lq(s1, 32, sp); // lq s1, 32(sp) + // nop // sll r0, r0, 0 + c->lq(s2, 48, sp); // lq s2, 48(sp) + // nop // sll r0, r0, 0 + c->lq(s3, 240, sp); // lq s3, 240(sp) + // nop // sll r0, r0, 0 + c->lq(s4, 256, sp); // lq s4, 256(sp) + // nop // sll r0, r0, 0 + c->lq(s5, 272, sp); // lq s5, 272(sp) + // nop // sll r0, r0, 0 + c->lq(s6, 288, sp); // lq s6, 288(sp) + // nop // sll r0, r0, 0 + //jr ra // jr ra + c->daddiu(sp, sp, 320); // daddiu sp, sp, 320 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.sp_launcher_enable = intern_from_c(-1, 0, "*sp-launcher-enable*").c(); + cache.sp_launcher_lock = intern_from_c(-1, 0, "*sp-launcher-lock*").c(); + cache.time_of_day_context = intern_from_c(-1, 0, "*time-of-day-context*").c(); + cache.add_to_sprite_aux_list = intern_from_c(-1, 0, "add-to-sprite-aux-list").c(); + cache.cos = intern_from_c(-1, 0, "cos").c(); + cache.particle_adgif = intern_from_c(-1, 0, "particle-adgif").c(); + cache.quaternion_axis_angle = intern_from_c(-1, 0, "quaternion-axis-angle!").c(); + cache.sin = intern_from_c(-1, 0, "sin").c(); + cache.sp_adjust_launch = intern_from_c(-1, 0, "sp-adjust-launch").c(); + cache.sp_euler_convert = intern_from_c(-1, 0, "sp-euler-convert").c(); + cache.sp_get_particle = intern_from_c(-1, 0, "sp-get-particle").c(); + cache.sp_init_fields = intern_from_c(-1, 0, "sp-init-fields!").c(); + cache.sp_queue_launch = intern_from_c(-1, 0, "sp-queue-launch").c(); + cache.sp_rotate_system = intern_from_c(-1, 0, "sp-rotate-system").c(); + gLinkedFunctionTable.reg("sp-launch-particles-var", execute, 256); +} + +} // namespace sp_launch_particles_var +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace particle_adgif { +struct Cache { + void* particle_adgif_cache; // *particle-adgif-cache* + void* particle_setup_adgif; // particle-setup-adgif +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + // nop // sll r0, r0, 0 + c->dsra(a3, a1, 20); // dsra a3, a1, 20 + c->load_symbol2(t1, cache.particle_adgif_cache); // lw t1, *particle-adgif-cache*(s7) + c->dsra(t0, a1, 8); // dsra t0, a1, 8 + c->lw(t2, 0, t1); // lw t2, 0(t1) + c->xor_(a3, a3, t0); // xor a3, a3, t0 + c->lhu(v1, 4, t1); // lhu v1, 4(t1) + c->andi(a3, a3, 65535); // andi a3, a3, 65535 + c->lw(t4, 8, t1); // lw t4, 8(t1) + bc = c->sgpr64(v1) == c->sgpr64(a3); // beq v1, a3, L360 + c->daddiu(t3, t1, 12); // daddiu t3, t1, 12 + if (bc) {goto block_7;} // branch non-likely + + bc = c->sgpr64(t2) == 0; // beq t2, r0, L359 + c->daddiu(t4, t1, 172); // daddiu t4, t1, 172 + if (bc) {goto block_4;} // branch non-likely + + +block_2: + c->lhu(v1, 0, t3); // lhu v1, 0(t3) + c->daddiu(t3, t3, 2); // daddiu t3, t3, 2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + bc = c->sgpr64(v1) == c->sgpr64(a3); // beq v1, a3, L360 + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + if (bc) {goto block_7;} // branch non-likely + + bc = c->sgpr64(t2) != 0; // bne t2, r0, L358 + c->daddiu(t4, t4, 80); // daddiu t4, t4, 80 + if (bc) {goto block_2;} // branch non-likely + + +block_4: + c->daddiu(sp, sp, -16); // daddiu sp, sp, -16 + c->lw(v1, 0, t1); // lw v1, 0(t1) + c->daddiu(v1, v1, -80); // daddiu v1, v1, -80 + c->sw(a0, 0, sp); // sw a0, 0(sp) + bc = c->sgpr64(v1) == 0; // beq v1, r0, L361 + c->daddiu(v1, v1, 81); // daddiu v1, v1, 81 + if (bc) {goto block_8;} // branch non-likely + + c->sh(a3, 0, t3); // sh a3, 0(t3) + // nop // sll r0, r0, 0 + c->sw(t4, 4, sp); // sw t4, 4(sp) + c->mov64(a0, t4); // or a0, t4, r0 + c->load_symbol2(t9, cache.particle_setup_adgif); // lw t9, particle-setup-adgif(s7) + // nop // sll r0, r0, 0 + c->sw(ra, 8, sp); // sw ra, 8(sp) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sw(v1, 0, t1); // sw v1, 0(t1) + c->jalr(call_addr); // jalr ra, t9 + // nop // sll r0, r0, 0 + c->lw(v1, 8, t4); // lw v1, 8(t4) + c->lw(a0, 0, sp); // lw a0, 0(sp) + // nop // sll r0, r0, 0 + c->lw(t4, 4, sp); // lw t4, 4(sp) + c->andi(v1, v1, 1024); // andi v1, v1, 1024 + c->lw(ra, 8, sp); // lw ra, 8(sp) + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L360 + c->lw(v1, 0, t1); // lw v1, 0(t1) + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->sw(v1, 0, t1); // sw v1, 0(t1) + +block_7: + c->lqc2(vf16, 0, t4); // lqc2 vf16, 0(t4) + c->lqc2(vf17, 16, t4); // lqc2 vf17, 16(t4) + c->lqc2(vf18, 32, t4); // lqc2 vf18, 32(t4) + c->lqc2(vf19, 48, t4); // lqc2 vf19, 48(t4) + c->lqc2(vf20, 64, t4); // lqc2 vf20, 64(t4) + c->sqc2(vf16, 0, a0); // sqc2 vf16, 0(a0) + c->sqc2(vf17, 16, a0); // sqc2 vf17, 16(a0) + c->sqc2(vf18, 32, a0); // sqc2 vf18, 32(a0) + c->sqc2(vf19, 48, a0); // sqc2 vf19, 48(a0) + c->sqc2(vf20, 64, a0); // sqc2 vf20, 64(a0) + c->sw(t4, 8, t1); // sw t4, 8(t1) + c->sh(a3, 4, t1); // sh a3, 4(t1) + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_8: + c->sw(t4, 4, sp); // sw t4, 4(sp) + // nop // sll r0, r0, 0 + c->load_symbol2(t9, cache.particle_setup_adgif); // lw t9, particle-setup-adgif(s7) + // nop // sll r0, r0, 0 + c->sw(ra, 8, sp); // sw ra, 8(sp) + // nop // sll r0, r0, 0 + call_addr = c->gprs[t9].du32[0]; // function call: + // nop // sll r0, r0, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(t4, 4, sp); // lw t4, 4(sp) + // nop // sll r0, r0, 0 + c->lw(ra, 8, sp); // lw ra, 8(sp) + c->daddiu(sp, sp, 16); // daddiu sp, sp, 16 + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.particle_adgif_cache = intern_from_c(-1, 0, "*particle-adgif-cache*").c(); + cache.particle_setup_adgif = intern_from_c(-1, 0, "particle-setup-adgif").c(); + gLinkedFunctionTable.reg("particle-adgif", execute, 256); +} + +} // namespace particle_adgif +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace sp_init_fields { +struct Cache { + void* part_id_table; // *part-id-table* + void* sp_temp; // *sp-temp* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->mov64(v1, a0); // or v1, a0, r0 + c->mov64(v1, a2); // or v1, a2, r0 + c->mov64(v1, a3); // or v1, a3, r0 + c->mov64(v1, t0); // or v1, t0, r0 + // nop // sll r0, r0, 0 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->mov64(v0, a1); // or v0, a1, r0 + +block_1: + c->lh(a1, 0, v0); // lh a1, 0(v0) + // nop // sll r0, r0, 0 + c->dsubu(a1, a1, a2); // dsubu a1, a1, a2 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + if (((s64)c->sgpr64(a1)) < 0) { // bltzl a1, L367 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + goto block_1; + } + +block_3: + c->dsubu(a1, a2, a3); // dsubu a1, a2, a3 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a1)) >= 0; // bgez a1, L382 + // nop // sll r0, r0, 0 + if (bc) {goto block_44;} // branch non-likely + + +block_4: + c->lh(a1, 0, v0); // lh a1, 0(v0) + // nop // sll r0, r0, 0 + bc = c->sgpr64(a1) != c->sgpr64(a2); // bne a1, a2, L380 + c->vrget(DEST::xyzw, vf1); // vrget.xyzw vf1 + if (bc) {goto block_41;} // branch non-likely + + c->vsqrt(vf1, BC::x); // vsqrt Q, vf1.x + c->lh(a1, 2, v0); // lh a1, 2(v0) + c->vaddq(DEST::x, vf2, vf0); // vaddq.x vf2, vf0, Q + c->lw(t2, 8, v0); // lw t2, 8(v0) + // nop // sll r0, r0, 0 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L370 + c->addiu(t1, r0, 2); // addiu t1, r0, 2 + if (bc) {goto block_18;} // branch non-likely + + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L374 + c->addiu(t1, r0, 7); // addiu t1, r0, 7 + if (bc) {goto block_28;} // branch non-likely + + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L372 + c->addiu(t1, r0, 3); // addiu t1, r0, 3 + if (bc) {goto block_23;} // branch non-likely + + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L375 + c->addiu(t1, r0, 5); // addiu t1, r0, 5 + if (bc) {goto block_31;} // branch non-likely + + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L377 + c->addiu(t1, r0, 6); // addiu t1, r0, 6 + if (bc) {goto block_35;} // branch non-likely + + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L378 + c->addiu(t1, r0, 4); // addiu t1, r0, 4 + if (bc) {goto block_37;} // branch non-likely + + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L379 + c->addiu(t1, r0, 8); // addiu t1, r0, 8 + if (bc) {goto block_39;} // branch non-likely + + bc = c->sgpr64(a1) == c->sgpr64(t1); // beq a1, t1, L376 + // nop // sll r0, r0, 0 + if (bc) {goto block_33;} // branch non-likely + + bc = c->sgpr64(t2) == 0; // beq t2, r0, L369 + // nop // sll r0, r0, 0 + if (bc) {goto block_16;} // branch non-likely + + c->vrxor(vf2, BC::w); // vrxorw vf2 + c->lw(t1, 12, v0); // lw t1, 12(v0) + c->vrnext(DEST::xyzw, vf1); // vrnext.xyzw vf1 + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->vsub_bc(DEST::xyzw, BC::w, vf1, vf1, vf0); // vsubw.xyzw vf1, vf1, vf0 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t2); // qmtc2.i vf2, t2 + // nop // sll r0, r0, 0 + c->vitof0(DEST::xyzw, vf2, vf2); // vitof0.xyzw vf2, vf2 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf1, vf1, vf2); // vmul.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf1, vf1); // vftoi0.xyzw vf1, vf1 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t2, vf1); // qmfc2.i t2, vf1 + // nop // sll r0, r0, 0 + c->mult3(t2, t2, t1); // mult3 t2, t2, t1 + // nop // sll r0, r0, 0 + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t2, 0, a0); // sw t2, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_16: + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t3, 0, a0); // sw t3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_18: + bc = c->sgpr64(t2) == 0; // beq t2, r0, L371 + c->vrxor(vf2, BC::w); // vrxorw vf2 + if (bc) {goto block_21;} // branch non-likely + + c->vrnext(DEST::xyzw, vf1); // vrnext.xyzw vf1 + c->lw(t1, 12, v0); // lw t1, 12(v0) + c->vsub_bc(DEST::xyzw, BC::w, vf1, vf1, vf0); // vsubw.xyzw vf1, vf1, vf0 + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->mov128_vf_gpr(vf2, t2); // qmtc2.i vf2, t2 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf1, vf1, vf2); // vmul.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t1); // qmtc2.i vf2, t1 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf1, vf1, vf2); // vmul.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t3); // qmtc2.i vf2, t3 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf1, vf1, vf2); // vadd.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t2, vf1); // qmfc2.i t2, vf1 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t2, 0, a0); // sw t2, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_21: + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t3, 0, a0); // sw t3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_23: + bc = c->sgpr64(t2) == 0; // beq t2, r0, L373 + c->vrxor(vf2, BC::w); // vrxorw vf2 + if (bc) {goto block_26;} // branch non-likely + + c->vrnext(DEST::xyzw, vf1); // vrnext.xyzw vf1 + c->lw(t1, 12, v0); // lw t1, 12(v0) + c->vsub_bc(DEST::xyzw, BC::w, vf1, vf1, vf0); // vsubw.xyzw vf1, vf1, vf0 + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->mov128_vf_gpr(vf2, t2); // qmtc2.i vf2, t2 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf1, vf1, vf2); // vmul.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t1); // qmtc2.i vf2, t1 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf1, vf1, vf2); // vmul.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t3); // qmtc2.i vf2, t3 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf1, vf1, vf2); // vadd.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t2, vf1); // qmfc2.i t2, vf1 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t2, 0, a0); // sw t2, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + c->store_symbol2(t2, cache.sp_temp); // sw t2, *sp-temp*(s7) + // nop // sll r0, r0, 0 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_26: + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t3, 0, a0); // sw t3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + c->store_symbol2(t3, cache.sp_temp); // sw t3, *sp-temp*(s7) + // nop // sll r0, r0, 0 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_28: + bc = c->sgpr64(t2) == 0; // beq t2, r0, L371 + c->vrxor(vf2, BC::w); // vrxorw vf2 + if (bc) {goto block_21;} // branch non-likely + + c->vrnext(DEST::xyzw, vf1); // vrnext.xyzw vf1 + c->lw(t1, 12, v0); // lw t1, 12(v0) + c->vsub_bc(DEST::xyzw, BC::w, vf1, vf1, vf0); // vsubw.xyzw vf1, vf1, vf0 + c->daddiu(t2, t2, 1); // daddiu t2, t2, 1 + c->mov128_vf_gpr(vf2, t2); // qmtc2.i vf2, t2 + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->vitof0(DEST::xyzw, vf2, vf2); // vitof0.xyzw vf2, vf2 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf1, vf1, vf2); // vmul.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->vftoi0(DEST::xyzw, vf1, vf1); // vftoi0.xyzw vf1, vf1 + // nop // sll r0, r0, 0 + c->vitof0(DEST::xyzw, vf1, vf1); // vitof0.xyzw vf1, vf1 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t1); // qmtc2.i vf2, t1 + // nop // sll r0, r0, 0 + c->vmul(DEST::xyzw, vf1, vf1, vf2); // vmul.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_vf_gpr(vf2, t3); // qmtc2.i vf2, t3 + // nop // sll r0, r0, 0 + c->vadd(DEST::xyzw, vf1, vf1, vf2); // vadd.xyzw vf1, vf1, vf2 + // nop // sll r0, r0, 0 + c->mov128_gpr_vf(t2, vf1); // qmfc2.i t2, vf1 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t2, 0, a0); // sw t2, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_31: + c->lw(t1, 4, v0); // lw t1, 4(v0) + // nop // sll r0, r0, 0 + c->dsll(t1, t1, 2); // dsll t1, t1, 2 + // nop // sll r0, r0, 0 + c->daddu(t1, t1, a0); // daddu t1, t1, a0 + // nop // sll r0, r0, 0 + c->lw(t3, 0, t1); // lw t3, 0(t1) + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t3, 0, a0); // sw t3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_33: + // nop // sll r0, r0, 0 + c->lw(t1, 4, v0); // lw t1, 4(v0) + c->dsll(t1, t1, 2); // dsll t1, t1, 2 + // nop // sll r0, r0, 0 + c->daddu(t1, t1, a0); // daddu t1, t1, a0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + c->lwc1(f2, 0, t1); // lwc1 f2, 0(t1) + // nop // sll r0, r0, 0 + c->lwc1(f1, 12, v0); // lwc1 f1, 12(v0) + c->cvtsw(f2, f2); // cvt.s.w f2, f2 + // nop // sll r0, r0, 0 + c->muls(f1, f1, f2); // mul.s f1, f1, f2 + // nop // sll r0, r0, 0 + c->cvtws(f1, f1); // cvt.w.s f1, f1 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->swc1(f1, 0, a0); // swc1 f1, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_35: + c->lw(t1, 4, v0); // lw t1, 4(v0) + // nop // sll r0, r0, 0 + c->lw(t3, -1, t1); // lw t3, -1(t1) + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t3, 0, a0); // sw t3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_37: + c->load_symbol2(t1, cache.part_id_table); // lw t1, *part-id-table*(s7) + // nop // sll r0, r0, 0 + c->lw(t3, 4, v0); // lw t3, 4(v0) + // nop // sll r0, r0, 0 + c->dsll(t3, t3, 2); // dsll t3, t3, 2 + c->daddiu(t1, t1, 12); // daddiu t1, t1, 12 + c->daddu(t3, t3, t1); // daddu t3, t3, t1 + // nop // sll r0, r0, 0 + c->lw(t2, 0, t3); // lw t2, 0(t3) + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t2, 0, a0); // sw t2, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_39: + c->lw(t3, 4, v0); // lw t3, 4(v0) + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->sw(t3, 0, a0); // sw t3, 0(a0) + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + c->daddiu(v0, v0, 16); // daddiu v0, v0, 16 + if (bc) {goto block_4;} // branch non-likely + + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + +block_41: + if (((s64)c->sgpr64(t0)) != ((s64)c->sgpr64(s7))) {// bnel t0, s7, L381 + c->sw(r0, 0, a0); // sw r0, 0(a0) + goto block_43; + } + +block_43: + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + c->daddiu(a0, a0, 4); // daddiu a0, a0, 4 + bc = c->sgpr64(a2) != c->sgpr64(a3); // bne a2, a3, L368 + // nop // sll r0, r0, 0 + if (bc) {goto block_4;} // branch non-likely + + +block_44: + //jr ra // jr ra + // nop // sll r0, r0, 0 + goto end_of_function; // return + + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.part_id_table = intern_from_c(-1, 0, "*part-id-table*").c(); + cache.sp_temp = intern_from_c(-1, 0, "*sp-temp*").c(); + gLinkedFunctionTable.reg("sp-init-fields!", execute, 256); +} + +} // namespace sp_init_fields +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/spatial_hash.cpp b/game/mips2c/jakx_functions/spatial_hash.cpp new file mode 100644 index 0000000000..92873ca8ce --- /dev/null +++ b/game/mips2c/jakx_functions/spatial_hash.cpp @@ -0,0 +1,1227 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_19_grid_hash { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(gp, 16, sp); // sq gp, 16(sp) + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + //beq r0, r0, L235 // beq r0, r0, L235 + // nop // sll r0, r0, 0 + goto block_2; // branch always + + +block_1: + c->daddu(a3, v1, a0); // daddu a3, v1, a0 + c->lb(a3, 24, a3); // lb a3, 24(a3) + c->daddu(t0, v1, a2); // daddu t0, v1, a2 + c->sb(a3, 0, t0); // sb a3, 0(t0) + c->addiu(a3, r0, -1); // addiu a3, r0, -1 + c->daddu(t0, v1, a2); // daddu t0, v1, a2 + c->sb(a3, 3, t0); // sb a3, 3(t0) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + +block_2: + c->slti(a3, v1, 3); // slti a3, v1, 3 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L234 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->lh(v1, 10, a0); // lh v1, 10(a0) + c->lb(a3, 24, a0); // lb a3, 24(a0) + c->mult3(a3, a3, v1); // mult3 a3, a3, v1 + c->lb(t0, 26, a0); // lb t0, 26(a0) + c->mult3(t0, t0, a3); // mult3 t0, t0, a3 + c->lb(t1, 24, a0); // lb t1, 24(a0) + c->lb(t2, 26, a0); // lb t2, 26(a0) + c->lb(t3, 25, a0); // lb t3, 25(a0) + c->dsra(t4, a1, 3); // dsra t4, a1, 3 + c->daddu(t4, r0, t4); // daddu t4, r0, t4 + c->lwu(a0, 28, a0); // lwu a0, 28(a0) + c->daddu(a0, t4, a0); // daddu a0, t4, a0 + c->addiu(t4, r0, 1); // addiu t4, r0, 1 + c->andi(a1, a1, 7); // andi a1, a1, 7 + if (((s64)c->sgpr64(a1)) >= 0) { // bgezl a1, L236 + c->dsllv(a1, t4, a1); // dsllv a1, t4, a1 + goto block_6; + } + +block_5: + c->dsubu(a1, r0, a1); // dsubu a1, r0, a1 + c->dsrav(a1, t4, a1); // dsrav a1, t4, a1 + +block_6: + c->addiu(t4, r0, 0); // addiu t4, r0, 0 + //beq r0, r0, L243 // beq r0, r0, L243 + // nop // sll r0, r0, 0 + goto block_16; // branch always + + +block_7: + c->mov64(t5, a0); // or t5, a0, r0 + c->addiu(t6, r0, 0); // addiu t6, r0, 0 + //beq r0, r0, L242 // beq r0, r0, L242 + // nop // sll r0, r0, 0 + goto block_14; // branch always + + +block_8: + c->mov64(t7, t5); // or t7, t5, r0 + c->addiu(t8, r0, 0); // addiu t8, r0, 0 + //beq r0, r0, L241 // beq r0, r0, L241 + // nop // sll r0, r0, 0 + goto block_12; // branch always + + +block_9: + c->lbu(t9, 0, t7); // lbu t9, 0(t7) + c->and_(t9, t9, a1); // and t9, t9, a1 + bc = c->sgpr64(t9) == 0; // beq t9, r0, L240 + c->mov64(t9, s7); // or t9, s7, r0 + if (bc) {goto block_11;} // branch non-likely + + c->lb(t9, 0, a2); // lb t9, 0(a2) + c->mov64(t9, t9); // or t9, t9, r0 + c->mov64(ra, t8); // or ra, t8, r0 + c->slt(gp, t9, ra); // slt gp, t9, ra + c->movz(t9, ra, gp); // movz t9, ra, gp + c->sb(t9, 0, a2); // sb t9, 0(a2) + c->lb(t9, 1, a2); // lb t9, 1(a2) + c->mov64(t9, t9); // or t9, t9, r0 + c->mov64(ra, t4); // or ra, t4, r0 + c->slt(gp, t9, ra); // slt gp, t9, ra + c->movz(t9, ra, gp); // movz t9, ra, gp + c->sb(t9, 1, a2); // sb t9, 1(a2) + c->lb(t9, 2, a2); // lb t9, 2(a2) + c->mov64(t9, t9); // or t9, t9, r0 + c->mov64(ra, t6); // or ra, t6, r0 + c->slt(gp, t9, ra); // slt gp, t9, ra + c->movz(t9, ra, gp); // movz t9, ra, gp + c->sb(t9, 2, a2); // sb t9, 2(a2) + c->lb(t9, 3, a2); // lb t9, 3(a2) + c->mov64(t9, t9); // or t9, t9, r0 + c->mov64(ra, t8); // or ra, t8, r0 + c->slt(gp, t9, ra); // slt gp, t9, ra + c->movn(t9, ra, gp); // movn t9, ra, gp + c->sb(t9, 3, a2); // sb t9, 3(a2) + c->lb(t9, 4, a2); // lb t9, 4(a2) + c->mov64(t9, t9); // or t9, t9, r0 + c->mov64(ra, t4); // or ra, t4, r0 + c->slt(gp, t9, ra); // slt gp, t9, ra + c->movn(t9, ra, gp); // movn t9, ra, gp + c->sb(t9, 4, a2); // sb t9, 4(a2) + c->lb(t9, 5, a2); // lb t9, 5(a2) + c->mov64(gp, t9); // or gp, t9, r0 + c->mov64(t9, t6); // or t9, t6, r0 + c->slt(ra, gp, t9); // slt ra, gp, t9 + c->movn(gp, t9, ra); // movn gp, t9, ra + c->sb(gp, 5, a2); // sb gp, 5(a2) + +block_11: + c->daddu(t7, t7, v1); // daddu t7, t7, v1 + c->daddiu(t8, t8, 1); // daddiu t8, t8, 1 + +block_12: + c->slt(t9, t8, t1); // slt t9, t8, t1 + bc = c->sgpr64(t9) != 0; // bne t9, r0, L239 + // nop // sll r0, r0, 0 + if (bc) {goto block_9;} // branch non-likely + + c->mov64(t7, s7); // or t7, s7, r0 + c->mov64(t7, s7); // or t7, s7, r0 + c->daddu(t5, t5, a3); // daddu t5, t5, a3 + c->daddiu(t6, t6, 1); // daddiu t6, t6, 1 + +block_14: + c->slt(t7, t6, t2); // slt t7, t6, t2 + bc = c->sgpr64(t7) != 0; // bne t7, r0, L238 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + c->mov64(t5, s7); // or t5, s7, r0 + c->mov64(t5, s7); // or t5, s7, r0 + c->daddu(a0, a0, t0); // daddu a0, a0, t0 + c->daddiu(t4, t4, 1); // daddiu t4, t4, 1 + +block_16: + c->slt(t5, t4, t3); // slt t5, t4, t3 + bc = c->sgpr64(t5) != 0; // bne t5, r0, L237 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 16, sp); // lq gp, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 19 grid-hash)", execute, 256); +} + +} // namespace method_19_grid_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_38_spatial_hash { +struct Cache { + void* perf_stats; // *perf-stats* +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -112); // daddiu sp, sp, -112 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s3, 48, sp); // sq s3, 48(sp) + c->sq(s4, 64, sp); // sq s4, 64(sp) + c->sq(s5, 80, sp); // sq s5, 80(sp) + c->sq(gp, 96, sp); // sq gp, 96(sp) + c->mov64(s5, a0); // or s5, a0, r0 + c->mov64(gp, a1); // or gp, a1, r0 + c->mov64(s4, a2); // or s4, a2, r0 + c->mov64(s3, a3); // or s3, a3, r0 + c->load_symbol2(v1, cache.perf_stats); // lw v1, *perf-stats*(s7) + c->daddiu(v1, v1, 116); // daddiu v1, v1, 116 + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->mov64(a0, s5); // or a0, s5, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 112, v1); // lwu t9, 112(v1) + c->daddiu(a1, s5, 4); // daddiu a1, s5, 4 + c->mov64(a2, gp); // or a2, gp, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->lwu(v1, 0, s5); // lwu v1, 0(s5) + c->daddiu(v1, v1, 12); // daddiu v1, v1, 12 + c->sw(v1, 16, sp); // sw v1, 16(sp) + c->mov64(a0, s5); // or a0, s5, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 104, v1); // lwu t9, 104(v1) + c->daddiu(a1, s5, 4); // daddiu a1, s5, 4 + c->lwu(a2, 16, sp); // lwu a2, 16(sp) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->sd(r0, 24, sp); // sd r0, 24(sp) + c->sw(s5, 32, sp); // sw s5, 32(sp) + c->sw(s4, 36, sp); // sw s4, 36(sp) + c->sd(s3, 40, sp); // sd s3, 40(sp) + c->lwu(v1, 32, sp); // lwu v1, 32(sp) + c->lh(v1, 10, v1); // lh v1, 10(v1) + c->lwu(a0, 16, sp); // lwu a0, 16(sp) + c->gprs[a1].du64[0] = 0; // or a1, r0, r0 + // nop // sll r0, r0, 0 + +block_1: + c->dsll(a2, a1, 3); // dsll a2, a1, 3 + c->lbu(a3, 0, a0); // lbu a3, 0(a0) + bc = c->sgpr64(a3) == 0; // beq a3, r0, L27 + // nop // sll r0, r0, 0 + if (bc) {goto block_7;} // branch non-likely + + +block_2: + c->andi(t0, a3, 1); // andi t0, a3, 1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t0) == 0; // beq t0, r0, L26 + // nop // sll r0, r0, 0 + if (bc) {goto block_6;} // branch non-likely + + c->lwu(t0, 32, sp); // lwu t0, 32(sp) + c->lwu(t0, 84, t0); // lwu t0, 84(t0) + c->dsll(t1, a2, 4); // dsll t1, a2, 4 + c->daddu(t0, t0, t1); // daddu t0, t0, t1 + c->mov64(t1, gp); // or t1, gp, r0 + c->mov64(t2, t0); // or t2, t0, r0 + c->lqc2(vf2, 0, t1); // lqc2 vf2, 0(t1) + c->lqc2(vf3, 0, t2); // lqc2 vf3, 0(t2) + c->vsub(DEST::xyzw, vf1, vf3, vf2); // vsub.xyzw vf1, vf3, vf2 + c->vmul(DEST::xyzw, vf1, vf1, vf1); // vmul.xyzw vf1, vf1, vf1 + c->vadd_bc(DEST::x, BC::y, vf1, vf1, vf1); // vaddy.x vf1, vf1, vf1 + c->vadd_bc(DEST::x, BC::z, vf1, vf1, vf1); // vaddz.x vf1, vf1, vf1 + c->mov128_gpr_vf(t1, vf1); // qmfc2.i t1, vf1 + c->mtc1(f0, t1); // mtc1 f0, t1 + c->lwc1(f1, 12, gp); // lwc1 f1, 12(gp) + c->lwc1(f2, 12, t0); // lwc1 f2, 12(t0) + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->muls(f1, f1, f1); // mul.s f1, f1, f1 + c->mfc1(t0, f1); // mfc1 t0, f1 + c->mtc1(f1, t0); // mtc1 f1, t0 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + bc = !cop1_bc; // bc1f L26 + c->mov64(t0, s7); // or t0, s7, r0 + if (bc) {goto block_6;} // branch non-likely + + c->ld(t0, 24, sp); // ld t0, 24(sp) + c->ld(t1, 40, sp); // ld t1, 40(sp) + c->slt(t0, t0, t1); // slt t0, t0, t1 + bc = c->sgpr64(t0) == 0; // beq t0, r0, L26 + c->mov64(t0, s7); // or t0, s7, r0 + if (bc) {goto block_6;} // branch non-likely + + c->dsll(t0, a2, 4); // dsll t0, a2, 4 + c->lwu(t1, 32, sp); // lwu t1, 32(sp) + c->lwu(t1, 100, t1); // lwu t1, 100(t1) + c->daddu(t0, t0, t1); // daddu t0, t0, t1 + c->lwu(t0, 0, t0); // lwu t0, 0(t0) + c->lwu(t1, 36, sp); // lwu t1, 36(sp) + c->ld(t2, 24, sp); // ld t2, 24(sp) + c->dsll(t2, t2, 2); // dsll t2, t2, 2 + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->sw(t0, 0, t1); // sw t0, 0(t1) + c->ld(t0, 24, sp); // ld t0, 24(sp) + c->daddiu(t0, t0, 1); // daddiu t0, t0, 1 + c->sd(t0, 24, sp); // sd t0, 24(sp) + // nop // sll r0, r0, 0 + +block_6: + c->dsra(a3, a3, 1); // dsra a3, a3, 1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a3) != 0; // bne a3, r0, L25 + c->daddiu(a2, a2, 1); // daddiu a2, a2, 1 + if (bc) {goto block_2;} // branch non-likely + + +block_7: + c->daddiu(a1, a1, 1); // daddiu a1, a1, 1 + c->daddiu(a0, a0, 1); // daddiu a0, a0, 1 + c->slt(a2, a1, v1); // slt a2, a1, v1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L24 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->load_symbol2(v1, cache.perf_stats); // lw v1, *perf-stats*(s7) + c->daddiu(v1, v1, 116); // daddiu v1, v1, 116 + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->ld(v0, 24, sp); // ld v0, 24(sp) + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 96, sp); // lq gp, 96(sp) + c->lq(s5, 80, sp); // lq s5, 80(sp) + c->lq(s4, 64, sp); // lq s4, 64(sp) + c->lq(s3, 48, sp); // lq s3, 48(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 112); // daddiu sp, sp, 112 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.perf_stats = intern_from_c(-1, 0, "*perf-stats*").c(); + gLinkedFunctionTable.reg("(method 38 spatial-hash)", execute, 512); +} + +} // namespace method_38_spatial_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_36_spatial_hash { +struct Cache { + void* debug_segment; // *debug-segment* + void* format; // format +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -160); // daddiu sp, sp, -160 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sd(fp, 8, sp); // sd fp, 8(sp) + c->mov64(fp, t9); // or fp, t9, r0 + c->sq(s0, 48, sp); // sq s0, 48(sp) + c->sq(s1, 64, sp); // sq s1, 64(sp) + c->sq(s2, 80, sp); // sq s2, 80(sp) + c->sq(s3, 96, sp); // sq s3, 96(sp) + c->sq(s4, 112, sp); // sq s4, 112(sp) + c->sq(s5, 128, sp); // sq s5, 128(sp) + c->sq(gp, 144, sp); // sq gp, 144(sp) + c->mov64(s5, a0); // or s5, a0, r0 + c->mov64(s3, a1); // or s3, a1, r0 + c->mov64(s4, a2); // or s4, a2, r0 + c->lh(gp, 56, s5); // lh gp, 56(s5) + c->lh(v1, 88, s5); // lh v1, 88(s5) + c->slt(v1, gp, v1); // slt v1, gp, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L39 + // nop // sll r0, r0, 0 + if (bc) {goto block_8;} // branch non-likely + + c->lwu(v1, 84, s5); // lwu v1, 84(s5) + c->dsll(a0, gp, 4); // dsll a0, gp, 4 + c->daddu(s2, v1, a0); // daddu s2, v1, a0 + c->lwu(v1, 100, s5); // lwu v1, 100(s5) + c->dsll(a0, gp, 4); // dsll a0, gp, 4 + c->daddu(s1, v1, a0); // daddu s1, v1, a0 + c->daddiu(s0, sp, 16); // daddiu s0, sp, 16 + c->daddu(a0, r0, s0); // daddu a0, r0, s0 + c->mov64(v1, s3); // or v1, s3, r0 + c->lwc1(f0, 12, s3); // lwc1 f0, 12(s3) + c->negs(f0, f0); // neg.s f0, f0 + c->mfc1(a1, f0); // mfc1 a1, f0 + c->mov128_vf_gpr(vf6, a1); // qmtc2.i vf6, a1 + c->lqc2(vf4, 0, v1); // lqc2 vf4, 0(v1) + c->vadd_bc(DEST::w, BC::x, vf5, vf0, vf0); // vaddx.w vf5, vf0, vf0 + c->vadd_bc(DEST::xyz, BC::x, vf5, vf4, vf6); // vaddx.xyz vf5, vf4, vf6 + c->sqc2(vf5, 0, a0); // sqc2 vf5, 0(a0) + c->daddiu(a0, s0, 16); // daddiu a0, s0, 16 + c->mov64(v1, s3); // or v1, s3, r0 + c->lwc1(f0, 12, s3); // lwc1 f0, 12(s3) + c->mfc1(a1, f0); // mfc1 a1, f0 + c->mov128_vf_gpr(vf6, a1); // qmtc2.i vf6, a1 + c->lqc2(vf4, 0, v1); // lqc2 vf4, 0(v1) + c->vadd_bc(DEST::w, BC::x, vf5, vf0, vf0); // vaddx.w vf5, vf0, vf0 + c->vadd_bc(DEST::xyz, BC::x, vf5, vf4, vf6); // vaddx.xyz vf5, vf4, vf6 + c->sqc2(vf5, 0, a0); // sqc2 vf5, 0(a0) + c->load_symbol2(v1, cache.debug_segment); // lw v1, *debug-segment*(s7) + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L36 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_4;} // branch non-likely + + c->lui(v1, 19584); // lui v1, 19584 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lwc1(f1, 0, s3); // lwc1 f1, 0(s3) + c->abss(f1, f1); // abs.s f1, f1 + c->lwc1(f2, 4, s3); // lwc1 f2, 4(s3) + c->abss(f2, f2); // abs.s f2, f2 + c->maxs(f1, f1, f2); // max.s f1, f1, f2 + c->lwc1(f2, 8, s3); // lwc1 f2, 8(s3) + c->abss(f2, f2); // abs.s f2, f2 + c->maxs(f1, f1, f2); // max.s f1, f1, f2 + c->lwc1(f2, 12, s3); // lwc1 f2, 12(s3) + c->abss(f2, f2); // abs.s f2, f2 + c->maxs(f1, f1, f2); // max.s f1, f1, f2 + cop1_bc = c->fprs[f0] < c->fprs[f1]; // c.lt.s f0, f1 + bc = !cop1_bc; // bc1f L36 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_4;} // branch non-likely + + c->load_symbol2(t9, cache.format); // lw t9, format(s7) + c->addiu(a0, r0, 0); // addiu a0, r0, 0 + // TODO - fix daddiu a1, fp, L198 // daddiu a1, fp, L198 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lw(r0, 2, r0); // lw r0, 2(r0) + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + +block_4: + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + //beq r0, r0, L38 // beq r0, r0, L38 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_5: + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->lwc1(f0, 32, a0); // lwc1 f0, 32(a0) + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s0); // daddu a0, a0, s0 + c->lwc1(f1, 0, a0); // lwc1 f1, 0(a0) + c->mins(f0, f0, f1); // min.s f0, f0, f1 + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->swc1(f0, 32, a0); // swc1 f0, 32(a0) + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->lwc1(f0, 44, a0); // lwc1 f0, 44(a0) + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s0); // daddu a0, a0, s0 + c->lwc1(f1, 16, a0); // lwc1 f1, 16(a0) + c->maxs(f0, f0, f1); // max.s f0, f0, f1 + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->swc1(f0, 44, a0); // swc1 f0, 44(a0) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + +block_6: + c->slti(a0, v1, 3); // slti a0, v1, 3 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L37 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->lq(v1, 0, s3); // lq v1, 0(s3) + c->sq(v1, 0, s2); // sq v1, 0(s2) + c->sw(s4, 0, s1); // sw s4, 0(s1) + c->lh(v1, 56, s5); // lh v1, 56(s5) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + c->sh(v1, 56, s5); // sh v1, 56(s5) + //beq r0, r0, L40 // beq r0, r0, L40 + // nop // sll r0, r0, 0 + goto block_9; // branch always + + +block_8: + c->addiu(gp, r0, -1); // addiu gp, r0, -1 + c->mov64(v1, gp); // or v1, gp, r0 + +block_9: + c->mov64(v0, gp); // or v0, gp, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->ld(fp, 8, sp); // ld fp, 8(sp) + c->lq(gp, 144, sp); // lq gp, 144(sp) + c->lq(s5, 128, sp); // lq s5, 128(sp) + c->lq(s4, 112, sp); // lq s4, 112(sp) + c->lq(s3, 96, sp); // lq s3, 96(sp) + c->lq(s2, 80, sp); // lq s2, 80(sp) + c->lq(s1, 64, sp); // lq s1, 64(sp) + c->lq(s0, 48, sp); // lq s0, 48(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 160); // daddiu sp, sp, 160 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.debug_segment = intern_from_c(-1, 0, "*debug-segment*").c(); + cache.format = intern_from_c(-1, 0, "format").c(); + gLinkedFunctionTable.reg("(method 36 spatial-hash)", execute, 512); +} + +} // namespace method_36_spatial_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_35_spatial_hash { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -48); // daddiu sp, sp, -48 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(gp, 32, sp); // sq gp, 32(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(s5, a2); // or s5, a2, r0 + c->mov64(a0, gp); // or a0, gp, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 112, v1); // lwu t9, 112(v1) + c->daddiu(v1, gp, 4); // daddiu v1, gp, 4 + c->mov64(a2, a1); // or a2, a1, r0 + c->mov64(a1, v1); // or a1, v1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mov64(t1, gp); // or t1, gp, r0 + c->daddiu(t2, gp, 4); // daddiu t2, gp, 4 + c->mov64(t0, s5); // or t0, s5, r0 + c->lh(v1, 10, t1); // lh v1, 10(t1) + c->lb(a0, 24, t1); // lb a0, 24(t1) + c->mult3(a0, a0, v1); // mult3 a0, a0, v1 + c->lb(a1, 26, t1); // lb a1, 26(t1) + c->mult3(a1, a1, a0); // mult3 a1, a1, a0 + c->addiu(a2, r0, 1); // addiu a2, r0, 1 + c->lb(a3, 0, t2); // lb a3, 0(t2) + c->dsubu(a2, a2, a3); // dsubu a2, a2, a3 + c->lb(a3, 3, t2); // lb a3, 3(t2) + c->daddu(a2, a2, a3); // daddu a2, a2, a3 + c->addiu(a3, r0, 1); // addiu a3, r0, 1 + c->lb(t3, 2, t2); // lb t3, 2(t2) + c->dsubu(a3, a3, t3); // dsubu a3, a3, t3 + c->lb(t3, 5, t2); // lb t3, 5(t2) + c->daddu(a3, a3, t3); // daddu a3, a3, t3 + c->addiu(t3, r0, 1); // addiu t3, r0, 1 + c->lb(t4, 1, t2); // lb t4, 1(t2) + c->dsubu(t3, t3, t4); // dsubu t3, t3, t4 + c->lb(t4, 4, t2); // lb t4, 4(t2) + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->lb(t4, 0, t2); // lb t4, 0(t2) + c->mult3(t4, t4, v1); // mult3 t4, t4, v1 + c->lb(t5, 1, t2); // lb t5, 1(t2) + c->mult3(t5, t5, a1); // mult3 t5, t5, a1 + c->daddu(t4, t4, t5); // daddu t4, t4, t5 + c->lb(t2, 2, t2); // lb t2, 2(t2) + c->mult3(t2, t2, a0); // mult3 t2, t2, a0 + c->daddu(t2, t4, t2); // daddu t2, t4, t2 + c->dsra(t4, t0, 3); // dsra t4, t0, 3 + c->daddu(t2, t2, t4); // daddu t2, t2, t4 + c->daddu(t2, r0, t2); // daddu t2, r0, t2 + c->lwu(t1, 28, t1); // lwu t1, 28(t1) + c->daddu(t1, t2, t1); // daddu t1, t2, t1 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->andi(t0, t0, 7); // andi t0, t0, 7 + if (((s64)c->sgpr64(t0)) >= 0) { // bgezl t0, L42 + c->dsllv(t0, t2, t0); // dsllv t0, t2, t0 + goto block_3; + } + +block_2: + c->dsubu(t0, r0, t0); // dsubu t0, r0, t0 + c->dsrav(t0, t2, t0); // dsrav t0, t2, t0 + +block_3: + c->nor(t0, t0, r0); // nor t0, t0, r0 + c->mov64(t2, t3); // or t2, t3, r0 + +block_4: + c->mov64(t3, a3); // or t3, a3, r0 + c->mov64(t4, t1); // or t4, t1, r0 + +block_5: + c->mov64(t5, a2); // or t5, a2, r0 + c->mov64(t6, t4); // or t6, t4, r0 + +block_6: + // nop // sll r0, r0, 0 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + // nop // sll r0, r0, 0 + c->and_(t7, t7, t0); // and t7, t7, t0 + c->daddiu(t5, t5, -1); // daddiu t5, t5, -1 + c->sb(t7, 0, t6); // sb t7, 0(t6) + bc = c->sgpr64(t5) != 0; // bne t5, r0, L45 + c->daddu(t6, t6, v1); // daddu t6, t6, v1 + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(t3, t3, -1); // daddiu t3, t3, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L44 + c->daddu(t4, t4, a0); // daddu t4, t4, a0 + if (bc) {goto block_5;} // branch non-likely + + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L43 + c->daddu(t1, t1, a1); // daddu t1, t1, a1 + if (bc) {goto block_4;} // branch non-likely + + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->dsll(v1, s5, 4); // dsll v1, s5, 4 + c->lwu(a0, 100, gp); // lwu a0, 100(gp) + c->daddu(v1, v1, a0); // daddu v1, v1, a0 + c->sw(s7, 0, v1); // sw s7, 0(v1) + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 32, sp); // lq gp, 32(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 48); // daddiu sp, sp, 48 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 35 spatial-hash)", execute, 256); +} + +} // namespace method_35_spatial_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_33_sphere_hash { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -32); // daddiu sp, sp, -32 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->daddiu(v1, sp, 16); // daddiu v1, sp, 16 + c->lwu(t1, -4, a0); // lwu t1, -4(a0) + c->lwu(t9, 152, t1); // lwu t9, 152(t1) + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + c->mov64(t2, t0); // or t2, t0, r0 + c->mov64(t0, v1); // or t0, v1, r0 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->slt(v1, r0, v1); // slt v1, r0, v1 + c->daddiu(v0, s7, 4); // daddiu v0, s7, 4 + c->movz(v0, s7, v1); // movz v0, s7, v1 + c->ld(ra, 0, sp); // ld ra, 0(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 32); // daddiu sp, sp, 32 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 33 sphere-hash)", execute, 256); +} + +} // namespace method_33_sphere_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_28_sphere_hash { +struct Cache { + void* mem_copy; // mem-copy! +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -64); // daddiu sp, sp, -64 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s4, 16, sp); // sq s4, 16(sp) + c->sq(s5, 32, sp); // sq s5, 32(sp) + c->sq(gp, 48, sp); // sq gp, 48(sp) + c->mov64(s5, a0); // or s5, a0, r0 + c->mov64(s4, a1); // or s4, a1, r0 + c->lh(gp, 56, s5); // lh gp, 56(s5) + c->lh(v1, 88, s5); // lh v1, 88(s5) + c->slt(v1, gp, v1); // slt v1, gp, v1 + bc = c->sgpr64(v1) == 0; // beq v1, r0, L96 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->lwu(v1, 84, s5); // lwu v1, 84(s5) + c->dsll(a0, gp, 4); // dsll a0, gp, 4 + c->daddu(a0, v1, a0); // daddu a0, v1, a0 + c->load_symbol2(t9, cache.mem_copy); // lw t9, mem-copy!(s7) + c->mov64(a1, s4); // or a1, s4, r0 + c->addiu(a2, r0, 16); // addiu a2, r0, 16 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->addiu(v1, r0, 0); // addiu v1, r0, 0 + //beq r0, r0, L95 // beq r0, r0, L95 + // nop // sll r0, r0, 0 + goto block_3; // branch always + + +block_2: + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->lwc1(f0, 32, a0); // lwc1 f0, 32(a0) + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s4); // daddu a0, a0, s4 + c->lwc1(f1, 0, a0); // lwc1 f1, 0(a0) + c->lwc1(f2, 12, s4); // lwc1 f2, 12(s4) + c->subs(f1, f1, f2); // sub.s f1, f1, f2 + c->mins(f0, f0, f1); // min.s f0, f0, f1 + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->swc1(f0, 32, a0); // swc1 f0, 32(a0) + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->lwc1(f0, 44, a0); // lwc1 f0, 44(a0) + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s4); // daddu a0, a0, s4 + c->lwc1(f1, 0, a0); // lwc1 f1, 0(a0) + c->lwc1(f2, 12, s4); // lwc1 f2, 12(s4) + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->maxs(f0, f0, f1); // max.s f0, f0, f1 + c->dsll(a0, v1, 2); // dsll a0, v1, 2 + c->daddu(a0, a0, s5); // daddu a0, a0, s5 + c->swc1(f0, 44, a0); // swc1 f0, 44(a0) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + +block_3: + c->slti(a0, v1, 3); // slti a0, v1, 3 + bc = c->sgpr64(a0) != 0; // bne a0, r0, L94 + // nop // sll r0, r0, 0 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->lh(v1, 56, s5); // lh v1, 56(s5) + c->daddiu(v1, v1, 1); // daddiu v1, v1, 1 + c->sh(v1, 56, s5); // sh v1, 56(s5) + //beq r0, r0, L97 // beq r0, r0, L97 + // nop // sll r0, r0, 0 + goto block_6; // branch always + + +block_5: + c->addiu(gp, r0, -1); // addiu gp, r0, -1 + c->mov64(v1, gp); // or v1, gp, r0 + +block_6: + c->mov64(v0, gp); // or v0, gp, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 48, sp); // lq gp, 48(sp) + c->lq(s5, 32, sp); // lq s5, 32(sp) + c->lq(s4, 16, sp); // lq s4, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 64); // daddiu sp, sp, 64 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.mem_copy = intern_from_c(-1, 0, "mem-copy!").c(); + gLinkedFunctionTable.reg("(method 28 sphere-hash)", execute, 256); +} + +} // namespace method_28_sphere_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_30_sphere_hash { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -48); // daddiu sp, sp, -48 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(gp, 32, sp); // sq gp, 32(sp) + c->mov64(gp, a0); // or gp, a0, r0 + c->mov64(a0, gp); // or a0, gp, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 120, v1); // lwu t9, 120(v1) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->addiu(s5, r0, 0); // addiu s5, r0, 0 + //beq r0, r0, L104 // beq r0, r0, L104 + // nop // sll r0, r0, 0 + goto block_11; // branch always + + +block_1: + c->lwu(v1, 84, gp); // lwu v1, 84(gp) + c->dsll(a0, s5, 4); // dsll a0, s5, 4 + c->daddu(a2, v1, a0); // daddu a2, v1, a0 + c->mov64(a0, gp); // or a0, gp, r0 + c->lwu(v1, -4, a0); // lwu v1, -4(a0) + c->lwu(t9, 112, v1); // lwu t9, 112(v1) + c->daddiu(a1, gp, 4); // daddiu a1, gp, 4 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + c->mov64(t1, gp); // or t1, gp, r0 + c->daddiu(t2, gp, 4); // daddiu t2, gp, 4 + c->mov64(a3, s5); // or a3, s5, r0 + c->lh(v1, 10, t1); // lh v1, 10(t1) + c->lb(a0, 24, t1); // lb a0, 24(t1) + c->mult3(a0, a0, v1); // mult3 a0, a0, v1 + c->lb(a1, 26, t1); // lb a1, 26(t1) + c->mult3(a1, a1, a0); // mult3 a1, a1, a0 + c->addiu(a2, r0, 1); // addiu a2, r0, 1 + c->lb(t0, 0, t2); // lb t0, 0(t2) + c->dsubu(a2, a2, t0); // dsubu a2, a2, t0 + c->lb(t0, 3, t2); // lb t0, 3(t2) + c->daddu(a2, a2, t0); // daddu a2, a2, t0 + c->addiu(t0, r0, 1); // addiu t0, r0, 1 + c->lb(t3, 2, t2); // lb t3, 2(t2) + c->dsubu(t0, t0, t3); // dsubu t0, t0, t3 + c->lb(t3, 5, t2); // lb t3, 5(t2) + c->daddu(t0, t0, t3); // daddu t0, t0, t3 + c->addiu(t3, r0, 1); // addiu t3, r0, 1 + c->lb(t4, 1, t2); // lb t4, 1(t2) + c->dsubu(t3, t3, t4); // dsubu t3, t3, t4 + c->lb(t4, 4, t2); // lb t4, 4(t2) + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->lb(t4, 0, t2); // lb t4, 0(t2) + c->mult3(t4, t4, v1); // mult3 t4, t4, v1 + c->lb(t5, 1, t2); // lb t5, 1(t2) + c->mult3(t5, t5, a1); // mult3 t5, t5, a1 + c->daddu(t4, t4, t5); // daddu t4, t4, t5 + c->lb(t2, 2, t2); // lb t2, 2(t2) + c->mult3(t2, t2, a0); // mult3 t2, t2, a0 + c->daddu(t2, t4, t2); // daddu t2, t4, t2 + c->dsra(t4, a3, 3); // dsra t4, a3, 3 + c->daddu(t2, t2, t4); // daddu t2, t2, t4 + c->daddu(t2, r0, t2); // daddu t2, r0, t2 + c->lwu(t1, 28, t1); // lwu t1, 28(t1) + c->daddu(t1, t2, t1); // daddu t1, t2, t1 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->andi(a3, a3, 7); // andi a3, a3, 7 + if (((s64)c->sgpr64(a3)) >= 0) { // bgezl a3, L100 + c->dsllv(a3, t2, a3); // dsllv a3, t2, a3 + goto block_4; + } + +block_3: + c->dsubu(a3, r0, a3); // dsubu a3, r0, a3 + c->dsrav(a3, t2, a3); // dsrav a3, t2, a3 + +block_4: + c->mov64(t2, t3); // or t2, t3, r0 + +block_5: + c->mov64(t3, t0); // or t3, t0, r0 + c->mov64(t4, t1); // or t4, t1, r0 + +block_6: + c->mov64(t5, a2); // or t5, a2, r0 + c->mov64(t6, t4); // or t6, t4, r0 + +block_7: + // nop // sll r0, r0, 0 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + // nop // sll r0, r0, 0 + c->or_(t7, t7, a3); // or t7, t7, a3 + c->daddiu(t5, t5, -1); // daddiu t5, t5, -1 + c->sb(t7, 0, t6); // sb t7, 0(t6) + bc = c->sgpr64(t5) != 0; // bne t5, r0, L103 + c->daddu(t6, t6, v1); // daddu t6, t6, v1 + if (bc) {goto block_7;} // branch non-likely + + c->daddiu(t3, t3, -1); // daddiu t3, t3, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L102 + c->daddu(t4, t4, a0); // daddu t4, t4, a0 + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(t2, t2, -1); // daddiu t2, t2, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t2) != 0; // bne t2, r0, L101 + c->daddu(t1, t1, a1); // daddu t1, t1, a1 + if (bc) {goto block_5;} // branch non-likely + + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + c->daddiu(s5, s5, 1); // daddiu s5, s5, 1 + +block_11: + c->lh(v1, 56, gp); // lh v1, 56(gp) + c->slt(v1, s5, v1); // slt v1, s5, v1 + bc = c->sgpr64(v1) != 0; // bne v1, r0, L99 + // nop // sll r0, r0, 0 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + c->mov64(v1, s7); // or v1, s7, r0 + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 32, sp); // lq gp, 32(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 48); // daddiu sp, sp, 48 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 30 sphere-hash)", execute, 256); +} + +} // namespace method_30_sphere_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_22_grid_hash { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->daddiu(sp, sp, -48); // daddiu sp, sp, -48 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s5, 16, sp); // sq s5, 16(sp) + c->sq(gp, 32, sp); // sq gp, 32(sp) + c->lh(v1, 10, a0); // lh v1, 10(a0) + c->lb(a3, 24, a0); // lb a3, 24(a0) + c->mult3(a3, v1, a3); // mult3 a3, v1, a3 + c->lb(t0, 26, a0); // lb t0, 26(a0) + c->mult3(t0, a3, t0); // mult3 t0, a3, t0 + c->lb(t1, 3, a1); // lb t1, 3(a1) + c->lb(t2, 0, a1); // lb t2, 0(a1) + c->dsubu(t1, t1, t2); // dsubu t1, t1, t2 + c->lb(t2, 5, a1); // lb t2, 5(a1) + c->lb(t3, 2, a1); // lb t3, 2(a1) + c->dsubu(t2, t2, t3); // dsubu t2, t2, t3 + c->lb(t3, 4, a1); // lb t3, 4(a1) + c->lb(t4, 1, a1); // lb t4, 1(a1) + c->dsubu(t3, t3, t4); // dsubu t3, t3, t4 + c->lb(t4, 0, a1); // lb t4, 0(a1) + c->mult3(t4, t4, v1); // mult3 t4, t4, v1 + c->lb(t5, 1, a1); // lb t5, 1(a1) + c->mult3(t5, t5, t0); // mult3 t5, t5, t0 + c->daddu(t4, t4, t5); // daddu t4, t4, t5 + c->lb(a1, 2, a1); // lb a1, 2(a1) + c->mult3(a1, a1, a3); // mult3 a1, a1, a3 + c->daddu(a1, t4, a1); // daddu a1, t4, a1 + c->daddu(a1, r0, a1); // daddu a1, r0, a1 + c->lwu(t4, 28, a0); // lwu t4, 28(a0) + c->daddu(a1, a1, t4); // daddu a1, a1, t4 + c->lh(a0, 10, a0); // lh a0, 10(a0) + c->mov64(t4, a2); // or t4, a2, r0 + +block_1: + c->daddiu(a0, a0, -16); // daddiu a0, a0, -16 + c->sq(r0, 0, t4); // sq r0, 0(t4) + bc = ((s64)c->sgpr64(a0)) > 0; // bgtz a0, L177 + c->daddiu(t4, t4, 16); // daddiu t4, t4, 16 + if (bc) {goto block_1;} // branch non-likely + + c->mov64(a0, t3); // or a0, t3, r0 + // nop // sll r0, r0, 0 + +block_3: + c->mov64(t3, t2); // or t3, t2, r0 + c->mov64(t4, a1); // or t4, a1, r0 + +block_4: + c->mov64(t5, t1); // or t5, t1, r0 + c->mov64(t6, t4); // or t6, t4, r0 + +block_5: + c->slti(t8, v1, 9); // slti t8, v1, 9 + c->mov64(t7, v1); // or t7, v1, r0 + bc = c->sgpr64(t8) != 0; // bne t8, r0, L182 + c->mov64(t8, a2); // or t8, a2, r0 + if (bc) {goto block_8;} // branch non-likely + + +block_6: + c->mov64(ra, t8); // or ra, t8, r0 + c->ldr(t9, 0, t6); // ldr t9, 0(t6) + c->daddiu(t8, t8, 8); // daddiu t8, t8, 8 + c->ldl(t9, 7, t6); // ldl t9, 7(t6) + c->daddiu(t7, t7, -8); // daddiu t7, t7, -8 + c->ld(s5, 0, ra); // ld s5, 0(ra) + c->slti(gp, t7, 8); // slti gp, t7, 8 + c->or_(t9, s5, t9); // or t9, s5, t9 + c->daddiu(t6, t6, 8); // daddiu t6, t6, 8 + c->sd(t9, 0, ra); // sd t9, 0(ra) + bc = c->sgpr64(gp) == 0; // beq gp, r0, L181 + c->gprs[t9].du64[0] = 0; // or t9, r0, r0 + if (bc) {goto block_6;} // branch non-likely + + bc = c->sgpr64(t7) == 0; // beq t7, r0, L183 + // nop // sll r0, r0, 0 + if (bc) {goto block_9;} // branch non-likely + + +block_8: + // nop // sll r0, r0, 0 + c->ld(ra, 0, t8); // ld ra, 0(t8) + // nop // sll r0, r0, 0 + c->ldr(t9, 0, t6); // ldr t9, 0(t6) + // nop // sll r0, r0, 0 + c->ldl(t9, 7, t6); // ldl t9, 7(t6) + c->daddu(t6, t6, t7); // daddu t6, t6, t7 + c->or_(t7, ra, t9); // or t7, ra, t9 + // nop // sll r0, r0, 0 + c->sd(t7, 0, t8); // sd t7, 0(t8) + +block_9: + bc = ((s64)c->sgpr64(t5)) > 0; // bgtz t5, L180 + c->daddiu(t5, t5, -1); // daddiu t5, t5, -1 + if (bc) {goto block_5;} // branch non-likely + + c->daddu(t4, t4, a3); // daddu t4, t4, a3 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(t3)) > 0; // bgtz t3, L179 + c->daddiu(t3, t3, -1); // daddiu t3, t3, -1 + if (bc) {goto block_4;} // branch non-likely + + c->daddu(a1, a1, t0); // daddu a1, a1, t0 + // nop // sll r0, r0, 0 + bc = ((s64)c->sgpr64(a0)) > 0; // bgtz a0, L178 + c->daddiu(a0, a0, -1); // daddiu a0, a0, -1 + if (bc) {goto block_3;} // branch non-likely + + c->mov64(v0, a2); // or v0, a2, r0 + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lq(gp, 32, sp); // lq gp, 32(sp) + c->lq(s5, 16, sp); // lq s5, 16(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 48); // daddiu sp, sp, 48 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 22 grid-hash)", execute, 256); +} + +} // namespace method_22_grid_hash +} // namespace Mips2C + +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace method_20_grid_hash { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->lh(v1, 10, a0); // lh v1, 10(a0) + c->lb(a3, 24, a0); // lb a3, 24(a0) + c->mult3(a3, a3, v1); // mult3 a3, a3, v1 + c->lb(t0, 26, a0); // lb t0, 26(a0) + c->mult3(t0, t0, a3); // mult3 t0, t0, a3 + c->addiu(t1, r0, 1); // addiu t1, r0, 1 + c->lb(t2, 0, a1); // lb t2, 0(a1) + c->dsubu(t1, t1, t2); // dsubu t1, t1, t2 + c->lb(t2, 3, a1); // lb t2, 3(a1) + c->daddu(t1, t1, t2); // daddu t1, t1, t2 + c->addiu(t2, r0, 1); // addiu t2, r0, 1 + c->lb(t3, 2, a1); // lb t3, 2(a1) + c->dsubu(t2, t2, t3); // dsubu t2, t2, t3 + c->lb(t3, 5, a1); // lb t3, 5(a1) + c->daddu(t2, t2, t3); // daddu t2, t2, t3 + c->addiu(t3, r0, 1); // addiu t3, r0, 1 + c->lb(t4, 1, a1); // lb t4, 1(a1) + c->dsubu(t3, t3, t4); // dsubu t3, t3, t4 + c->lb(t4, 4, a1); // lb t4, 4(a1) + c->daddu(t3, t3, t4); // daddu t3, t3, t4 + c->lb(t4, 0, a1); // lb t4, 0(a1) + c->mult3(t4, t4, v1); // mult3 t4, t4, v1 + c->lb(t5, 1, a1); // lb t5, 1(a1) + c->mult3(t5, t5, t0); // mult3 t5, t5, t0 + c->daddu(t4, t4, t5); // daddu t4, t4, t5 + c->lb(a1, 2, a1); // lb a1, 2(a1) + c->mult3(a1, a1, a3); // mult3 a1, a1, a3 + c->daddu(a1, t4, a1); // daddu a1, t4, a1 + c->dsra(t4, a2, 3); // dsra t4, a2, 3 + c->daddu(a1, a1, t4); // daddu a1, a1, t4 + c->daddu(a1, r0, a1); // daddu a1, r0, a1 + c->lwu(a0, 28, a0); // lwu a0, 28(a0) + c->daddu(a0, a1, a0); // daddu a0, a1, a0 + c->addiu(a1, r0, 1); // addiu a1, r0, 1 + c->andi(a2, a2, 7); // andi a2, a2, 7 + if (((s64)c->sgpr64(a2)) >= 0) { // bgezl a2, L190 + c->dsllv(a1, a1, a2); // dsllv a1, a1, a2 + goto block_3; + } + +block_2: + c->dsubu(a2, r0, a2); // dsubu a2, r0, a2 + c->dsrav(a1, a1, a2); // dsrav a1, a1, a2 + +block_3: + c->mov64(a2, t3); // or a2, t3, r0 + // nop // sll r0, r0, 0 + +block_4: + c->mov64(t3, t2); // or t3, t2, r0 + c->mov64(t4, a0); // or t4, a0, r0 + +block_5: + c->mov64(t5, t1); // or t5, t1, r0 + c->mov64(t6, t4); // or t6, t4, r0 + +block_6: + // nop // sll r0, r0, 0 + c->lbu(t7, 0, t6); // lbu t7, 0(t6) + // nop // sll r0, r0, 0 + c->or_(t7, t7, a1); // or t7, t7, a1 + c->daddiu(t5, t5, -1); // daddiu t5, t5, -1 + c->sb(t7, 0, t6); // sb t7, 0(t6) + bc = c->sgpr64(t5) != 0; // bne t5, r0, L193 + c->daddu(t6, t6, v1); // daddu t6, t6, v1 + if (bc) {goto block_6;} // branch non-likely + + c->daddiu(t3, t3, -1); // daddiu t3, t3, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t3) != 0; // bne t3, r0, L192 + c->daddu(t4, t4, a3); // daddu t4, t4, a3 + if (bc) {goto block_5;} // branch non-likely + + c->daddiu(a2, a2, -1); // daddiu a2, a2, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(a2) != 0; // bne a2, r0, L191 + c->daddu(a0, a0, t0); // daddu a0, a0, t0 + if (bc) {goto block_4;} // branch non-likely + + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("(method 20 grid-hash)", execute, 256); +} + +} // namespace method_20_grid_hash +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/texture.cpp b/game/mips2c/jakx_functions/texture.cpp new file mode 100644 index 0000000000..f916b5a37c --- /dev/null +++ b/game/mips2c/jakx_functions/texture.cpp @@ -0,0 +1,188 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace adgif_shader_texture_with_update { +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + c->ld(a2, 16, a0); // ld a2, 16(a0) + c->addiu(v1, r0, 256); // addiu v1, r0, 256 + c->andi(a2, a2, 513); // andi a2, a2, 513 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->cvtsw(f0, f0); // cvt.s.w f0, f0 + c->lbu(v1, 4, a1); // lbu v1, 4(a1) + c->lwc1(f1, 44, a1); // lwc1 f1, 44(a1) + c->daddiu(v1, v1, -1); // daddiu v1, v1, -1 + c->divs(f0, f0, f1); // div.s f0, f0, f1 + c->dsll(v1, v1, 2); // dsll v1, v1, 2 + c->or_(a2, a2, v1); // or a2, a2, v1 + c->lbu(v1, 7, a1); // lbu v1, 7(a1) + c->dsll(v1, v1, 19); // dsll v1, v1, 19 + c->lbu(a3, 5, a1); // lbu a3, 5(a1) + c->or_(a2, a2, v1); // or a2, a2, v1 + c->dsll(a3, a3, 5); // dsll a3, a3, 5 + c->or_(a2, a2, a3); // or a2, a2, a3 + c->ld(t1, 0, a0); // ld t1, 0(a0) + c->dsll(t1, t1, 27); // dsll t1, t1, 27 + c->lbu(v1, 6, a1); // lbu v1, 6(a1) + c->dsra32(t1, t1, 30); // dsra32 t1, t1, 30 + c->dsll(v1, v1, 20); // dsll v1, v1, 20 + c->dsll32(t1, t1, 3); // dsll32 t1, t1, 3 + c->lhu(a3, 10, a1); // lhu a3, 10(a1) + c->or_(t1, t1, v1); // or t1, t1, v1 + c->lbu(v1, 26, a1); // lbu v1, 26(a1) + c->or_(t1, t1, a3); // or t1, t1, a3 + c->dsll(v1, v1, 14); // dsll v1, v1, 14 + c->or_(t1, t1, v1); // or t1, t1, v1 + c->lhu(v1, 0, a1); // lhu v1, 0(a1) + c->plzcw(v1, v1); // plzcw v1, v1 + c->addiu(t0, r0, 30); // addiu t0, r0, 30 + c->subu(v1, t0, v1); // subu v1, t0, v1 + c->lhu(a3, 2, a1); // lhu a3, 2(a1) + c->dsll(v1, v1, 26); // dsll v1, v1, 26 + c->plzcw(a3, a3); // plzcw a3, a3 + c->or_(t1, t1, v1); // or t1, t1, v1 + c->subu(a3, t0, a3); // subu a3, t0, a3 + c->dsll(a3, a3, 30); // dsll a3, a3, 30 + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->or_(t1, t1, a3); // or t1, t1, a3 + c->dsll32(v1, v1, 2); // dsll32 v1, v1, 2 + c->or_(t1, t1, v1); // or t1, t1, v1 + c->lhu(v1, 24, a1); // lhu v1, 24(a1) + c->dsll32(v1, v1, 5); // dsll32 v1, v1, 5 + c->lhu(a3, 8, a1); // lhu a3, 8(a1) + c->dsll32(a3, a3, 19); // dsll32 a3, a3, 19 + c->or_(t1, t1, v1); // or t1, t1, v1 + c->or_(t1, t1, a3); // or t1, t1, a3 + c->addiu(v1, r0, 1); // addiu v1, r0, 1 + c->dsll32(v1, v1, 29); // dsll32 v1, v1, 29 + c->cvtws(f0, f0); // cvt.w.s f0, f0 + c->or_(t1, t1, v1); // or t1, t1, v1 + c->mfc1(v1, f0); // mfc1 v1, f0 + c->sd(t1, 0, a0); // sd t1, 0(a0) + c->plzcw(a3, v1); // plzcw a3, v1 + c->subu(a3, t0, a3); // subu a3, t0, a3 + c->lbu(t0, 7, a1); // lbu t0, 7(a1) + c->daddiu(t0, t0, -1); // daddiu t0, t0, -1 + // nop // sll r0, r0, 0 + bc = c->sgpr64(t0) == 0; // beq t0, r0, L40 + // nop // sll r0, r0, 0 + if (bc) {goto block_5;} // branch non-likely + + c->daddiu(t0, a3, -4); // daddiu t0, a3, -4 + c->dsll(a3, a3, 4); // dsll a3, a3, 4 + bc = ((s64)c->sgpr64(t0)) < 0; // bltz t0, L38 + c->daddiu(a3, a3, -175); // daddiu a3, a3, -175 + if (bc) {goto block_3;} // branch non-likely + + //beq r0, r0, L39 // beq r0, r0, L39 + c->dsrav(t0, v1, t0); // dsrav t0, v1, t0 + goto block_4; // branch always + + +block_3: + c->dsubu(t0, r0, t0); // dsubu t0, r0, t0 + c->dsllv(t0, v1, t0); // dsllv t0, v1, t0 + +block_4: + c->andi(t0, t0, 15); // andi t0, t0, 15 + // nop // sll r0, r0, 0 + //beq r0, r0, L43 // beq r0, r0, L43 + c->daddu(a3, a3, t0); // daddu a3, a3, t0 + goto block_9; // branch always + + +block_5: + c->daddiu(t0, a3, -5); // daddiu t0, a3, -5 + c->dsll(a3, a3, 5); // dsll a3, a3, 5 + bc = ((s64)c->sgpr64(t0)) < 0; // bltz t0, L41 + c->daddiu(a3, a3, -350); // daddiu a3, a3, -350 + if (bc) {goto block_7;} // branch non-likely + + //beq r0, r0, L42 // beq r0, r0, L42 + c->dsrav(t0, v1, t0); // dsrav t0, v1, t0 + goto block_8; // branch always + + +block_7: + c->dsubu(t0, r0, t0); // dsubu t0, r0, t0 + c->dsllv(t0, v1, t0); // dsllv t0, v1, t0 + +block_8: + c->andi(t0, t0, 31); // andi t0, t0, 31 + // nop // sll r0, r0, 0 + c->daddu(a3, a3, t0); // daddu a3, a3, t0 + // nop // sll r0, r0, 0 + +block_9: + c->andi(a3, a3, 4095); // andi a3, a3, 4095 + c->lhu(t1, 12, a1); // lhu t1, 12(a1) + c->dsll32(a3, a3, 0); // dsll32 a3, a3, 0 + c->lbu(v1, 27, a1); // lbu v1, 27(a1) + c->or_(a2, a2, a3); // or a2, a2, a3 + c->dsll(v1, v1, 14); // dsll v1, v1, 14 + c->sd(a2, 16, a0); // sd a2, 16(a0) + c->or_(a2, t1, v1); // or a2, t1, v1 + c->lhu(v1, 14, a1); // lhu v1, 14(a1) + // nop // sll r0, r0, 0 + c->lbu(a3, 28, a1); // lbu a3, 28(a1) + c->dsll(v1, v1, 20); // dsll v1, v1, 20 + c->or_(a2, a2, v1); // or a2, a2, v1 + c->dsll32(a3, a3, 2); // dsll32 a3, a3, 2 + c->or_(a2, a2, a3); // or a2, a2, a3 + c->lhu(v1, 16, a1); // lhu v1, 16(a1) + c->lbu(a3, 29, a1); // lbu a3, 29(a1) + c->dsll32(v1, v1, 8); // dsll32 v1, v1, 8 + c->or_(a2, a2, v1); // or a2, a2, v1 + c->dsll32(a3, a3, 22); // dsll32 a3, a3, 22 + c->or_(a2, a2, a3); // or a2, a2, a3 + c->lbu(t0, 4, a1); // lbu t0, 4(a1) + c->daddiu(t0, t0, -5); // daddiu t0, t0, -5 + c->sd(a2, 32, a0); // sd a2, 32(a0) + bc = ((s64)c->sgpr64(t0)) < 0; // bltz t0, L44 + c->lbu(a3, 30, a1); // lbu a3, 30(a1) + if (bc) {goto block_11;} // branch non-likely + + c->lhu(a2, 18, a1); // lhu a2, 18(a1) + c->dsll(a3, a3, 14); // dsll a3, a3, 14 + c->or_(a2, a2, a3); // or a2, a2, a3 + c->lhu(v1, 20, a1); // lhu v1, 20(a1) + c->dsll(v1, v1, 20); // dsll v1, v1, 20 + c->lbu(a3, 31, a1); // lbu a3, 31(a1) + c->or_(a2, a2, v1); // or a2, a2, v1 + c->dsll32(a3, a3, 2); // dsll32 a3, a3, 2 + c->or_(a2, a2, a3); // or a2, a2, a3 + c->lhu(v1, 22, a1); // lhu v1, 22(a1) + c->dsll32(v1, v1, 8); // dsll32 v1, v1, 8 + c->lbu(a3, 32, a1); // lbu a3, 32(a1) + c->or_(a2, a2, v1); // or a2, a2, v1 + c->dsll32(a3, a3, 22); // dsll32 a3, a3, 22 + c->or_(a2, a2, a3); // or a2, a2, a3 + c->addiu(v1, r0, 54); // addiu v1, r0, 54 + c->sd(a2, 64, a0); // sd a2, 64(a0) + // nop // sll r0, r0, 0 + c->sw(v1, 72, a0); // sw v1, 72(a0) + // nop // sll r0, r0, 0 + +block_11: + c->mov64(v0, a0); // or v0, a0, r0 + //jr ra // jr ra + c->daddu(sp, sp, r0); // daddu sp, sp, r0 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + gLinkedFunctionTable.reg("adgif-shader<-texture-with-update!", execute, 256); +} + +} // namespace adgif_shader<_texture_with_update +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/jakx_functions/todo.txt b/game/mips2c/jakx_functions/todo.txt deleted file mode 100644 index 2b31011cf9..0000000000 --- a/game/mips2c/jakx_functions/todo.txt +++ /dev/null @@ -1 +0,0 @@ -hey \ No newline at end of file diff --git a/game/mips2c/jakx_functions/wvehicle_part.cpp b/game/mips2c/jakx_functions/wvehicle_part.cpp new file mode 100644 index 0000000000..4d371e4440 --- /dev/null +++ b/game/mips2c/jakx_functions/wvehicle_part.cpp @@ -0,0 +1,265 @@ +//--------------------------MIPS2C--------------------- +// clang-format off +#include "game/mips2c/mips2c_private.h" +#include "game/kernel/jakx/kscheme.h" +using ::jakx::intern_from_c; +namespace Mips2C::jakx { +namespace sparticle_motion_blur_dirt { +struct Cache { + void* atan; // atan + void* transform_point_qword; // transform-point-qword! + void* view_get_active_target; // view-get-active-target +} cache; + +u64 execute(void* ctxt) { + auto* c = (ExecutionContext*)ctxt; + bool bc = false; + u32 call_addr = 0; + bool cop1_bc = false; + c->daddiu(sp, sp, -176); // daddiu sp, sp, -176 + c->sd(ra, 0, sp); // sd ra, 0(sp) + c->sq(s2, 80, sp); // sq s2, 80(sp) + c->sq(s3, 96, sp); // sq s3, 96(sp) + c->sq(s4, 112, sp); // sq s4, 112(sp) + c->sq(s5, 128, sp); // sq s5, 128(sp) + c->sq(gp, 144, sp); // sq gp, 144(sp) + c->swc1(f26, 160, sp); // swc1 f26, 160(sp) + c->swc1(f28, 164, sp); // swc1 f28, 164(sp) + c->swc1(f30, 168, sp); // swc1 f30, 168(sp) + c->mov64(s4, a1); // or s4, a1, r0 + c->mov64(gp, a2); // or gp, a2, r0 + c->daddiu(s5, sp, 16); // daddiu s5, sp, 16 + c->lwc1(f0, 0, gp); // lwc1 f0, 0(gp) + c->swc1(f0, 0, s5); // swc1 f0, 0(s5) + c->lwc1(f0, 4, gp); // lwc1 f0, 4(gp) + c->swc1(f0, 4, s5); // swc1 f0, 4(s5) + c->lwc1(f0, 8, gp); // lwc1 f0, 8(gp) + c->swc1(f0, 8, s5); // swc1 f0, 8(s5) + c->lui(v1, 16256); // lui v1, 16256 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->swc1(f0, 12, s5); // swc1 f0, 12(s5) + c->lwc1(f0, 16, s4); // lwc1 f0, 16(s4) + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] == c->fprs[f1]; // c.eq.s f0, f1 + bc = !cop1_bc; // bc1f L8 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_2;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_2: + if (((s64)c->sgpr64(s7)) != ((s64)c->sgpr64(v1))) {// bnel s7, v1, L10 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_10; + } + +block_4: + c->lwc1(f0, 20, s4); // lwc1 f0, 20(s4) + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] == c->fprs[f1]; // c.eq.s f0, f1 + bc = !cop1_bc; // bc1f L9 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_6;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_6: + if (((s64)c->sgpr64(s7)) != ((s64)c->sgpr64(v1))) {// bnel s7, v1, L10 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_10; + } + +block_8: + c->lwc1(f0, 24, s4); // lwc1 f0, 24(s4) + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] == c->fprs[f1]; // c.eq.s f0, f1 + bc = !cop1_bc; // bc1f L10 + c->daddiu(v1, s7, 4); // daddiu v1, s7, 4 + if (bc) {goto block_10;} // branch non-likely + + c->mov64(v1, s7); // or v1, s7, r0 + +block_10: + if (((s64)c->sgpr64(s7)) == ((s64)c->sgpr64(v1))) {// beql s7, v1, L11 + c->mov64(v1, v1); // or v1, v1, r0 + goto block_13; + } + +block_12: + c->load_symbol2(t9, cache.transform_point_qword); // lw t9, transform-point-qword!(s7) + c->daddiu(a0, s5, 32); // daddiu a0, s5, 32 + c->daddu(a1, r0, s5); // daddu a1, r0, s5 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mov64(v1, v0); // or v1, v0, r0 + +block_13: + bc = c->sgpr64(s7) == c->sgpr64(v1); // beq s7, v1, L14 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_21;} // branch non-likely + + c->daddiu(v1, s5, 16); // daddiu v1, s5, 16 + c->daddiu(a0, s4, 16); // daddiu a0, s4, 16 + c->lq(a0, 0, a0); // lq a0, 0(a0) + c->sq(a0, 0, v1); // sq a0, 0(v1) + c->load_symbol2(t9, cache.view_get_active_target);// lw t9, view-get-active-target(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(s7) == c->sgpr64(v0); // beq s7, v0, L12 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_16;} // branch non-likely + + c->daddiu(s3, s5, 16); // daddiu s3, s5, 16 + c->daddiu(s2, s5, 16); // daddiu s2, s5, 16 + c->load_symbol2(t9, cache.view_get_active_target);// lw t9, view-get-active-target(s7) + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->lwu(v1, 184, v0); // lwu v1, 184(v0) + c->daddiu(v1, v1, 60); // daddiu v1, v1, 60 + c->lui(a0, 15194); // lui a0, 15194 + c->ori(a0, a0, 29710); // ori a0, a0, 29710 + c->mtc1(f0, a0); // mtc1 f0, a0 + c->lqc2(vf2, 0, v1); // lqc2 vf2, 0(v1) + c->lqc2(vf1, 0, s2); // lqc2 vf1, 0(s2) + c->mfc1(v1, f0); // mfc1 v1, f0 + c->mov128_vf_gpr(vf3, v1); // qmtc2.i vf3, v1 + c->vadd_bc(DEST::w, BC::x, vf4, vf0, vf0); // vaddx.w vf4, vf0, vf0 + c->vmula_bc(DEST::xyzw, BC::x, vf2, vf3); // vmulax.xyzw acc, vf2, vf3 + c->vmadd_bc(DEST::xyz, BC::w, vf4, vf1, vf0); // vmaddw.xyz vf4, vf1, vf0 + c->sqc2(vf4, 0, s3); // sqc2 vf4, 0(s3) + +block_16: + c->daddu(v1, r0, s5); // daddu v1, r0, s5 + c->daddu(a0, r0, s5); // daddu a0, r0, s5 + c->daddiu(a1, s5, 16); // daddiu a1, s5, 16 + c->lui(a2, 16896); // lui a2, 16896 + c->mtc1(f0, a2); // mtc1 f0, a2 + c->lqc2(vf2, 0, a1); // lqc2 vf2, 0(a1) + c->lqc2(vf1, 0, a0); // lqc2 vf1, 0(a0) + c->mfc1(a0, f0); // mfc1 a0, f0 + c->mov128_vf_gpr(vf3, a0); // qmtc2.i vf3, a0 + c->vadd_bc(DEST::w, BC::x, vf4, vf0, vf0); // vaddx.w vf4, vf0, vf0 + c->vmula_bc(DEST::xyzw, BC::x, vf2, vf3); // vmulax.xyzw acc, vf2, vf3 + c->vmadd_bc(DEST::xyz, BC::w, vf4, vf1, vf0); // vmaddw.xyz vf4, vf1, vf0 + c->sqc2(vf4, 0, v1); // sqc2 vf4, 0(v1) + c->load_symbol2(t9, cache.transform_point_qword); // lw t9, transform-point-qword!(s7) + c->daddiu(a0, s5, 48); // daddiu a0, s5, 48 + c->daddu(a1, r0, s5); // daddu a1, r0, s5 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + bc = c->sgpr64(s7) == c->sgpr64(v0); // beq s7, v0, L14 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_21;} // branch non-likely + + c->lw(v1, 32, s5); // lw v1, 32(s5) + c->daddiu(v1, v1, -28672); // daddiu v1, v1, -28672 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->cvtsw(f0, f0); // cvt.s.w f0, f0 + c->lw(v1, 36, s5); // lw v1, 36(s5) + c->daddiu(v1, v1, -29440); // daddiu v1, v1, -29440 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->cvtsw(f1, f1); // cvt.s.w f1, f1 + c->lw(v1, 48, s5); // lw v1, 48(s5) + c->daddiu(v1, v1, -28672); // daddiu v1, v1, -28672 + c->mtc1(f2, v1); // mtc1 f2, v1 + c->cvtsw(f2, f2); // cvt.s.w f2, f2 + c->lw(v1, 52, s5); // lw v1, 52(s5) + c->daddiu(v1, v1, -29440); // daddiu v1, v1, -29440 + c->mtc1(f3, v1); // mtc1 f3, v1 + c->cvtsw(f3, f3); // cvt.s.w f3, f3 + c->subs(f30, f2, f0); // sub.s f30, f2, f0 + c->subs(f28, f3, f1); // sub.s f28, f3, f1 + c->lui(v1, -14720); // lui v1, -14720 + c->mtc1(f26, v1); // mtc1 f26, v1 + c->load_symbol2(t9, cache.atan); // lw t9, atan(s7) + c->mfc1(a0, f30); // mfc1 a0, f30 + c->mfc1(a1, f28); // mfc1 a1, f28 + call_addr = c->gprs[t9].du32[0]; // function call: + c->sll(v0, ra, 0); // sll v0, ra, 0 + c->jalr(call_addr); // jalr ra, t9 + c->mtc1(f0, v0); // mtc1 f0, v0 + c->adds(f0, f26, f0); // add.s f0, f26, f0 + c->swc1(f0, 24, gp); // swc1 f0, 24(gp) + c->lwc1(f0, 12, s4); // lwc1 f0, 12(s4) + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] == c->fprs[f1]; // c.eq.s f0, f1 + bc = cop1_bc; // bc1t L13 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_19;} // branch non-likely + + c->lui(v1, 16580); // lui v1, 16580 + c->ori(v1, v1, 39846); // ori v1, v1, 39846 + c->mtc1(f0, v1); // mtc1 f0, v1 + c->lui(v1, 18804); // lui v1, 18804 + c->ori(v1, v1, 9216); // ori v1, v1, 9216 + c->mtc1(f1, v1); // mtc1 f1, v1 + c->lw(v1, 40, s5); // lw v1, 40(s5) + c->mtc1(f2, v1); // mtc1 f2, v1 + c->cvtsw(f2, f2); // cvt.s.w f2, f2 + c->divs(f1, f1, f2); // div.s f1, f1, f2 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->muls(f1, f30, f30); // mul.s f1, f30, f30 + c->muls(f2, f28, f28); // mul.s f2, f28, f28 + c->adds(f1, f1, f2); // add.s f1, f1, f2 + c->sqrts(f1, f1); // sqrt.s f1, f1 + c->muls(f0, f0, f1); // mul.s f0, f0, f1 + c->swc1(f0, 12, gp); // swc1 f0, 12(gp) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_19: + c->mov64(v0, s7); // or v0, s7, r0 + //beq r0, r0, L16 // beq r0, r0, L16 + // nop // sll r0, r0, 0 + goto block_24; // branch always + + c->gprs[v1].du64[0] = 0; // or v1, r0, r0 + +block_21: + c->lwc1(f0, 12, s4); // lwc1 f0, 12(s4) + c->mtc1(f1, r0); // mtc1 f1, r0 + cop1_bc = c->fprs[f0] == c->fprs[f1]; // c.eq.s f0, f1 + bc = cop1_bc; // bc1t L15 + c->mov64(v1, s7); // or v1, s7, r0 + if (bc) {goto block_23;} // branch non-likely + + c->mtc1(f0, r0); // mtc1 f0, r0 + c->swc1(f0, 12, gp); // swc1 f0, 12(gp) + c->mfc1(v1, f0); // mfc1 v1, f0 + +block_23: + c->gprs[v0].du64[0] = 0; // or v0, r0, r0 + +block_24: + c->ld(ra, 0, sp); // ld ra, 0(sp) + c->lwc1(f30, 168, sp); // lwc1 f30, 168(sp) + c->lwc1(f28, 164, sp); // lwc1 f28, 164(sp) + c->lwc1(f26, 160, sp); // lwc1 f26, 160(sp) + c->lq(gp, 144, sp); // lq gp, 144(sp) + c->lq(s5, 128, sp); // lq s5, 128(sp) + c->lq(s4, 112, sp); // lq s4, 112(sp) + c->lq(s3, 96, sp); // lq s3, 96(sp) + c->lq(s2, 80, sp); // lq s2, 80(sp) + //jr ra // jr ra + c->daddiu(sp, sp, 176); // daddiu sp, sp, 176 + goto end_of_function; // return + + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 + // nop // sll r0, r0, 0 +end_of_function: + return c->gprs[v0].du64[0]; +} + +void link() { + cache.atan = intern_from_c(-1, 0, "atan").c(); + cache.transform_point_qword = intern_from_c(-1, 0, "transform-point-qword!").c(); + cache.view_get_active_target = intern_from_c(-1, 0, "view-get-active-target").c(); + gLinkedFunctionTable.reg("sparticle-motion-blur-dirt", execute, 512); +} + +} // namespace sparticle_motion_blur_dirt +} // namespace Mips2C \ No newline at end of file diff --git a/game/mips2c/mips2c_table.cpp b/game/mips2c/mips2c_table.cpp index 02841b22da..ccd967edce 100644 --- a/game/mips2c/mips2c_table.cpp +++ b/game/mips2c/mips2c_table.cpp @@ -9,6 +9,7 @@ #include "game/kernel/jak1/kscheme.h" #include "game/kernel/jak2/kscheme.h" #include "game/kernel/jak3/kscheme.h" +#include "game/kernel/jakx/kscheme.h" #include "game/runtime.h" extern "C" { @@ -401,7 +402,137 @@ namespace shadow_add_single_tris { extern void link(); } namespace shadow_add_double_tris { extern void link(); } namespace shadow_execute { extern void link(); } namespace method_21_cloth_system { extern void link(); } +} +namespace jakx { +namespace light_hash_get_bucket_index { extern void link(); } +namespace add_light_sphere_to_light_group { extern void link(); } +namespace light_hash_count_items { extern void link(); } +namespace light_hash_add_items { extern void link(); } +namespace debug_line_clip { extern void link(); } +namespace init_boundary_regs { extern void link(); } +namespace draw_boundary_polygon { extern void link(); } +namespace render_boundary_quad { extern void link(); } +namespace render_boundary_tri { extern void link(); } +// namespace set_sky_vf27 { extern void link(); } +namespace generic_light_proc { extern void link(); } +namespace generic_envmap_proc { extern void link(); } +// namespace generic_prepare_dma_double { extern void link(); } +namespace generic_prepare_dma_single { extern void link(); } +namespace generic_warp_source_proc { extern void link(); } +namespace generic_warp_dest_proc { extern void link(); } +namespace generic_warp_dest { extern void link(); } +namespace generic_warp_envmap_dest { extern void link(); } +namespace generic_no_light_proc { extern void link(); } +// namespace method_9_font_work { extern void link(); } +// namespace draw_string_asm { extern void link(); } +// namespace get_string_length { extern void link(); } +namespace adgif_shader_texture_with_update { extern void link(); } +namespace moving_sphere_triangle_intersect { extern void link(); } +namespace collide_do_primitives { extern void link(); } +// namespace cspace_parented_transformq_joint { extern void link(); } +namespace foreground_check_longest_edge_asm { extern void link(); } +namespace foreground_merc { extern void link(); } +namespace foreground_generic_merc { extern void link(); } +namespace live_func_curve { extern void link(); } +namespace birth_func_curve { extern void link(); } +namespace method_11_collide_hash { extern void link(); } +namespace method_12_collide_hash { extern void link(); } +namespace fill_bg_using_box_new { extern void link(); } +namespace fill_bg_using_line_sphere_new { extern void link(); } +namespace method_12_collide_mesh { extern void link(); } +namespace method_14_collide_mesh { extern void link(); } +// namespace method_15_collide_mesh { extern void link(); } +namespace method_10_collide_shape_prim_mesh { extern void link(); } +namespace method_10_collide_shape_prim_sphere { extern void link(); } +namespace method_10_collide_shape_prim_group { extern void link(); } +namespace method_11_collide_shape_prim_mesh { extern void link(); } +namespace method_11_collide_shape_prim_sphere { extern void link(); } +namespace method_11_collide_shape_prim_group { extern void link(); } +namespace method_9_collide_cache_prim { extern void link(); } +namespace method_10_collide_cache_prim { extern void link(); } +namespace method_17_collide_cache { extern void link(); } +namespace method_9_collide_puss_work { extern void link(); } +namespace method_10_collide_puss_work { extern void link(); } +// namespace method_18_grid_hash { extern void link(); } +namespace method_19_grid_hash { extern void link(); } +namespace method_20_grid_hash { extern void link(); } +namespace method_22_grid_hash { extern void link(); } +namespace method_28_sphere_hash { extern void link(); } +// namespace method_32_sphere_hash { extern void link(); } +// namespace method_29_sphere_hash { extern void link(); } +namespace method_30_sphere_hash { extern void link(); } +// namespace method_31_sphere_hash { extern void link(); } +// namespace method_32_spatial_hash { extern void link(); } +// namespace method_38_spatial_hash { extern void link(); } +namespace method_35_spatial_hash { extern void link(); } +namespace method_36_spatial_hash { extern void link(); } +namespace method_34_spatial_hash { extern void link(); } +namespace sparticle_motion_blur { extern void link(); } +namespace sp_launch_particles_var { extern void link(); } +namespace particle_adgif { extern void link(); } +namespace sp_init_fields { extern void link(); } +namespace sp_process_block_2d { extern void link(); } +namespace sp_process_block_3d { extern void link(); } +namespace method_39_nav_state { extern void link(); } +namespace method_21_nav_engine { extern void link(); } +namespace method_20_nav_engine { extern void link(); } +namespace method_18_nav_engine { extern void link(); } +namespace method_17_nav_engine { extern void link(); } +namespace nav_state_patch_pointers { extern void link(); } +namespace nav_dma_send_from_spr_no_flush { extern void link(); } +namespace nav_dma_send_to_spr_no_flush { extern void link(); } +namespace blerc_execute { extern void link(); } +namespace setup_blerc_chains_for_one_fragment { extern void link(); } +namespace sparticle_motion_blur_dirt { extern void link(); } +namespace foreground_draw_hud { extern void link(); } +namespace ripple_matrix_scale { extern void link(); } +namespace ripple_apply_wave_table { extern void link(); } +namespace ripple_create_wave_table { extern void link(); } +namespace ripple_execute_init { extern void link(); } +// namespace method_14_ocean { extern void link(); } +// namespace method_15_ocean { extern void link(); } +// namespace method_16_ocean { extern void link(); } +namespace init_ocean_far_regs { extern void link(); } +namespace draw_large_polygon_ocean { extern void link(); } +namespace render_ocean_quad { extern void link(); } +namespace generic_merc_do_chain { extern void link(); } +namespace generic_merc_execute_asm { extern void link(); } +namespace generic_merc_death { extern void link(); } +namespace generic_merc_query { extern void link(); } +namespace generic_translucent { extern void link(); } +namespace high_speed_reject { extern void link(); } +namespace mercneric_convert { extern void link(); } +namespace generic_merc_init_asm { extern void link(); } +namespace set_tex_offset { extern void link(); } +namespace draw_large_polygon { extern void link(); } +namespace render_sky_quad { extern void link(); } +namespace render_sky_tri { extern void link(); } +namespace method_17_sky_work { extern void link(); } +namespace method_29_sky_work { extern void link(); } +namespace method_30_sky_work { extern void link(); } +namespace method_31_sky_work { extern void link(); } +// namespace method_34_sky_work { extern void link(); } +// namespace method_35_sky_work { extern void link(); } +namespace method_32_sky_work { extern void link(); } +// namespace set_sky_vf23_value { extern void link(); } +namespace shadow_xform_verts { extern void link(); } +namespace shadow_calc_dual_verts { extern void link(); } +namespace shadow_scissor_edges { extern void link(); } +namespace shadow_scissor_top { extern void link(); } +namespace shadow_init_vars { extern void link(); } +namespace shadow_find_facing_single_tris { extern void link(); } +namespace shadow_find_facing_double_tris { extern void link(); } +namespace shadow_find_single_edges { extern void link(); } +namespace shadow_find_double_edges { extern void link(); } +namespace shadow_add_verts { extern void link(); } +namespace shadow_add_facing_single_tris { extern void link(); } +namespace shadow_add_single_edges { extern void link(); } +namespace shadow_add_double_edges { extern void link(); } +namespace shadow_add_single_tris { extern void link(); } +namespace shadow_add_double_tris { extern void link(); } +namespace shadow_execute { extern void link(); } +namespace method_21_cloth_system { extern void link(); } } // clang-format on @@ -665,7 +796,116 @@ PerGameVersion>> gMips2C jak3::shadow_add_single_tris::link, jak3::shadow_add_double_tris::link}}, {"cloth", {jak3::method_21_cloth_system::link}}}, /////////// JAK X - {}}; + {{"lights", + {jakx::light_hash_get_bucket_index::link, jakx::add_light_sphere_to_light_group::link, + jakx::light_hash_count_items::link, jakx::light_hash_add_items::link}}, + {"debug", + { + jakx::debug_line_clip::link, jakx::init_boundary_regs::link, + jakx::draw_boundary_polygon::link, jakx::render_boundary_quad::link, + // jakx::render_boundary_tri::link, jakx::set_sky_vf27::link + }}, + {"generic-effect", + {jakx::generic_light_proc::link, jakx::generic_envmap_proc::link, + // jakx::generic_prepare_dma_double::link, + jakx::generic_prepare_dma_single::link, jakx::generic_warp_source_proc::link, + jakx::generic_warp_dest_proc::link, jakx::generic_warp_dest::link, + jakx::generic_warp_envmap_dest::link, jakx::generic_no_light_proc::link}}, + // {"font", + // {jakx::method_9_font_work::link, + // jakx::draw_string_asm::link, + // jakx::get_string_length::link}}, + {"texture", {jakx::adgif_shader_texture_with_update::link}}, + {"collide-func", + {jakx::moving_sphere_triangle_intersect::link, jakx::collide_do_primitives::link}}, + {"joint", + { + // jakx::cspace_parented_transformq_joint::link + }}, + {"foreground", + {jakx::foreground_check_longest_edge_asm::link, jakx::foreground_generic_merc::link, + jakx::foreground_merc::link, jakx::foreground_draw_hud::link}}, + {"particle-curves", {jakx::live_func_curve::link, jakx::birth_func_curve::link}}, + {"collide-hash", + {jakx::method_11_collide_hash::link, jakx::method_12_collide_hash::link, + jakx::fill_bg_using_box_new::link, jakx::fill_bg_using_line_sphere_new::link}}, + {"collide-mesh", + {jakx::method_12_collide_mesh::link, jakx::method_14_collide_mesh::link, + // jakx::method_15_collide_mesh::link, + jakx::method_10_collide_shape_prim_mesh::link}}, + {"collide-cache", + {jakx::method_10_collide_shape_prim_mesh::link, + jakx::method_10_collide_shape_prim_sphere::link, + jakx::method_10_collide_shape_prim_group::link, + jakx::method_11_collide_shape_prim_mesh::link, + jakx::method_11_collide_shape_prim_sphere::link, + jakx::method_11_collide_shape_prim_group::link, jakx::method_9_collide_cache_prim::link, + jakx::method_10_collide_cache_prim::link, jakx::method_17_collide_cache::link, + jakx::method_9_collide_puss_work::link, jakx::method_10_collide_puss_work::link}}, + {"spatial-hash", + { + // jakx::method_18_grid_hash::link, + jakx::method_19_grid_hash::link, jakx::method_20_grid_hash::link, + jakx::method_22_grid_hash::link, jakx::method_28_sphere_hash::link, + // jakx::method_32_sphere_hash::link, + // jakx::method_29_sphere_hash::link, + jakx::method_30_sphere_hash::link, + // jakx::method_31_sphere_hash::link, + // jakx::method_32_spatial_hash::link, + // jakx::method_38_spatial_hash::link, + jakx::method_35_spatial_hash::link, jakx::method_36_spatial_hash::link, + // jakx::method_34_spatial_hash::link + }}, + {"sparticle-launcher", + {jakx::sparticle_motion_blur::link, jakx::sp_launch_particles_var::link, + jakx::particle_adgif::link, jakx::sp_init_fields::link}}, + {"sparticle", {jakx::sp_process_block_2d::link, jakx::sp_process_block_3d::link}}, + {"nav-engine", + {jakx::method_21_nav_engine::link, jakx::method_20_nav_engine::link, + jakx::method_18_nav_engine::link, jakx::method_17_nav_engine::link, + jakx::nav_state_patch_pointers::link, jakx::nav_dma_send_from_spr_no_flush::link, + jakx::nav_dma_send_to_spr_no_flush::link}}, + {"nav-control", {jakx::method_39_nav_state::link}}, + {"merc-blend-shape", + {jakx::blerc_execute::link, jakx::setup_blerc_chains_for_one_fragment::link}}, + {"wvehicle-part", {jakx::sparticle_motion_blur_dirt::link}}, + {"ripple", + {jakx::ripple_matrix_scale::link, jakx::ripple_apply_wave_table::link, + jakx::ripple_create_wave_table::link, jakx::ripple_execute_init::link}}, + {"ocean-vu0", + { + // jakx::method_14_ocean::link, + // jakx::method_15_ocean::link, + // jakx::method_16_ocean::link + }}, + {"ocean", + {jakx::init_ocean_far_regs::link, jakx::draw_large_polygon_ocean::link, + jakx::render_ocean_quad::link}}, + {"generic-merc", + {jakx::generic_merc_do_chain::link, jakx::generic_merc_execute_asm::link, + jakx::generic_merc_death::link, jakx::generic_merc_query::link, + jakx::generic_translucent::link, jakx::high_speed_reject::link, + jakx::mercneric_convert::link, jakx::generic_merc_init_asm::link}}, + {"sky-tng", + {jakx::set_tex_offset::link, jakx::render_sky_quad::link, jakx::render_sky_tri::link, + jakx::method_17_sky_work::link, jakx::method_29_sky_work::link, + jakx::method_30_sky_work::link, jakx::method_31_sky_work::link, + // jakx::method_34_sky_work::link, + // jakx::method_35_sky_work::link, + jakx::method_32_sky_work::link, + // jakx::set_sky_vf23_value::link, + jakx::draw_large_polygon::link}}, + {"shadow-cpu", + {jakx::shadow_xform_verts::link, jakx::shadow_execute::link, + jakx::shadow_calc_dual_verts::link, jakx::shadow_scissor_edges::link, + jakx::shadow_scissor_top::link, jakx::shadow_init_vars::link, + jakx::shadow_find_facing_single_tris::link, jakx::shadow_find_facing_double_tris::link, + jakx::shadow_find_single_edges::link, jakx::shadow_find_double_edges::link, + jakx::shadow_add_verts::link, jakx::shadow_add_facing_single_tris::link, + jakx::shadow_add_single_edges::link, jakx::shadow_add_double_edges::link, + jakx::shadow_add_single_tris::link, jakx::shadow_add_double_tris::link}}, + {"cloth", {jakx::method_21_cloth_system::link}}}, +}; void LinkedFunctionTable::reg(const std::string& name, u64 (*exec)(void*), u32 stack_size) { const auto& it = m_executes.insert({name, {exec, Ptr()}}); @@ -692,6 +932,11 @@ void LinkedFunctionTable::reg(const std::string& name, u64 (*exec)(void*), u32 s s7.offset + jak3_symbols::FIX_SYM_GLOBAL_HEAP, ::jak3::u32_in_fixed_sym(jak3_symbols::FIX_SYM_FUNCTION_TYPE), 0x40, UNKNOWN_PP)); break; + case GameVersion::JakX: + jump_to_asm = Ptr(::jak3::alloc_heap_object( + s7.offset + jak3_symbols::FIX_SYM_GLOBAL_HEAP, + ::jakx::u32_in_fixed_sym(jakx_symbols::FIX_SYM_FUNCTION_TYPE), 0x40, UNKNOWN_PP)); + break; default: ASSERT(false); } diff --git a/goal_src/jakx/engine/anim/joint-exploder.gc b/goal_src/jakx/engine/anim/joint-exploder.gc index bcfbed1259..ced93eedeb 100644 --- a/goal_src/jakx/engine/anim/joint-exploder.gc +++ b/goal_src/jakx/engine/anim/joint-exploder.gc @@ -7,3 +7,23 @@ ;; DECOMP BEGINS +(deftype joint-exploder-static-joint-params (structure) + ((joint-index int16 :offset-assert 0) + (parent-joint-index int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) + +(deftype joint-exploder-static-params (basic) + ((joints (array joint-exploder-static-joint-params) :offset-assert 4) ;; guessed by decompiler + (collide-spec collide-spec :offset-assert 8) ;; guessed by decompiler + (art-level symbol :offset-assert 12) ;; guessed by decompiler + (collide-sound uint16 :offset-assert 16) ;; sound-name + (collide-sound-interval uint64 :offset-assert 24) ;; time-frame + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) \ No newline at end of file diff --git a/goal_src/jakx/engine/anim/joint-mod-h.gc b/goal_src/jakx/engine/anim/joint-mod-h.gc index d7572ea5c3..aa4946d1e2 100644 --- a/goal_src/jakx/engine/anim/joint-mod-h.gc +++ b/goal_src/jakx/engine/anim/joint-mod-h.gc @@ -73,58 +73,639 @@ ) ;; ---joint-mod-ik-flags +(deftype joint-mod-blend-world-work (structure) + ((mat1 matrix :inline) + (mat2 matrix :inline) + (quat quaternion :inline) + (vec vector :inline)) + ) ;; DECOMP BEGINS - (deftype joint-mod (basic) "Utility to modify a joint transform from code, rather than just getting it from animation. - This is used to make jak look toward an enemy, for example." - ((mode joint-mod-mode :offset-assert 4) ;; guessed by decompiler - (process process-drawable :offset-assert 8) ;; guessed by decompiler - (joint cspace :offset-assert 12) - (target vector :inline :offset-assert 16) - (twist vector :inline :offset-assert 32) - (twist-max vector :inline :offset-assert 48) - (extra-twist degrees :offset-assert 40 :overlay-at (-> twist z)) ;; degrees - (track-mode track-mode :offset-assert 44 :overlay-at (-> twist w)) - (look-at-count uint16 :offset 46) - (twist-range-x meters :offset 56) - (twist-range-y meters :offset 60) - (twist-speed-x float :offset-assert 64) - (twist-speed-y float :offset-assert 68) - (trans vector :inline :offset-assert 80) - (smushy-old float :offset 80) - (smushy-off float :offset 84) - (smushyv float :offset 88) - (quat quaternion :inline :offset-assert 96) - (scale vector :inline :offset-assert 112) - (notice-time time-frame :offset-assert 128) ;; time-frame - (flex-blend float :offset-assert 136) - (blend float :offset-assert 140) - (old-blend float :offset-assert 144) - (max-dist meters :offset-assert 148) - (ignore-angle degrees :offset-assert 152) ;; degrees - (up uint8 :offset-assert 156) - (nose uint8 :offset-assert 157) - (ear uint8 :offset-assert 158) - (base-joint uint8 :offset-assert 159) - (base-nose uint8 :offset-assert 160) - (shutting-down? symbol :offset-assert 164) ;; guessed by decompiler - (parented-scale? symbol :offset-assert 168) ;; guessed by decompiler +This is used to make jak look toward an enemy, for example." + ((mode joint-mod-mode) + (process process-drawable) + (joint cspace) + (target vector :inline) + (twist vector :inline) + (twist-max vector :inline) + (extra-twist degrees :overlay-at (-> twist data 2)) + (track-mode track-mode :overlay-at (-> twist data 3)) + (look-at-count uint16 :offset 46) + (twist-range-x meters :overlay-at (-> twist-max data 2)) + (twist-range-y meters :overlay-at (-> twist-max data 3)) + (twist-speed-x float) + (twist-speed-y float) + (trans vector :inline) + (smushy-old float :overlay-at (-> trans data 0)) + (smushy-off float :overlay-at (-> trans data 1)) + (smushyv float :overlay-at (-> trans data 2)) + (quat quaternion :inline) + (scale vector :inline) + (notice-time time-frame) + (flex-blend float) + (blend float) + (old-blend float) + (max-dist meters) + (ignore-angle degrees) + (up uint8) + (nose uint8) + (ear uint8) + (base-joint uint8) + (base-nose uint8) + (shutting-down? symbol) + (parented-scale? symbol) ) - :method-count-assert 16 - :size-assert #xac - :flag-assert #x10000000ac - ;; field track-mode is likely a value type. (:methods - (new (symbol type joint-mod-mode process-drawable int) _type_) ;; 0 - (mode-set! "Set the type of joint-mod and install the right callback." (_type_ joint-mod-mode) none) ;; 9 - (target-set! "Set the target position for look-at mode." (_type_ vector) none) ;; 10 - (look-at! "Activate joint mod to look at the process." (_type_ vector symbol process) none) ;; 11 - (reset-blend! "Set the blend to 0." (_type_) _type_) ;; 12 - (twist-set! "Set twist x,y,z. A value of #f will skip the set." (_type_ float float float) vector) ;; 13 - (trs-set! "Set translation, quaternion, scale. A value of #f will skip the set." (_type_ vector quaternion vector) none) ;; 14 - (shut-down "Disable the joint mod, possibly blending out depending on the type" (_type_) none) ;; 15 + (new (symbol type joint-mod-mode process-drawable int) _type_) + (mode-set! (_type_ joint-mod-mode) none) + (target-set! (_type_ vector) none) + (look-at! (_type_ vector symbol process) none) + (reset-blend! (_type_) _type_) + (twist-set! (_type_ float float float) vector) + (trs-set! (_type_ vector quaternion vector) none) + (shut-down (_type_) none) ) - ) \ No newline at end of file + ) + + +(deftype try-to-look-at-info (basic) + ((who handle) + (horz float) + (vert float) + ) + ) + + +(defun-debug joint-mod-debug-draw ((arg0 joint-mod)) + (add-debug-matrix #t (bucket-id bucket785) (-> arg0 joint bone transform) (meters 2)) + 0 + (none) + ) + +(defmethod reset-blend! ((this joint-mod)) + "Set the blend to 0." + (set! (-> this blend) 0.0) + this + ) + +(deftype joint-mod-spinner (basic) + "Control a joint by just spinning it around an axis." + ((spin-axis vector :inline) + (angle float) + (spin-rate float) + (enable symbol) + ) + (:methods + (new (symbol type process-drawable int vector float) _type_) + ) + ) + + +(defun joint-mod-spinner-callback ((arg0 cspace) (arg1 transformq)) + (let ((gp-0 (the-as joint-mod-spinner (-> arg0 param1)))) + (when (-> gp-0 enable) + (let ((f30-0 + (the float (sar (shl (the int (+ (-> gp-0 angle) (* (-> gp-0 spin-rate) (seconds-per-frame)))) 48) 48)) + ) + ) + (quaternion-vector-angle! (the-as quaternion (-> arg1 rot)) (-> gp-0 spin-axis) f30-0) + (set! (-> gp-0 angle) f30-0) + ) + ) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (none) + ) + +(defmethod new joint-mod-spinner ((allocation symbol) (type-to-make type) (arg0 process-drawable) (arg1 int) (arg2 vector) (arg3 float)) + "Create and attach a joint-mod-spinner to a joint." + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 spin-axis quad) (-> arg2 quad)) + (set! (-> v0-0 spin-rate) arg3) + (set! (-> v0-0 enable) #t) + (set! (-> v0-0 angle) 0.0) + (let ((a0-3 (-> arg0 node-list data arg1))) + (set! (-> a0-3 param0) joint-mod-spinner-callback) + (set! (-> a0-3 param1) v0-0) + ) + v0-0 + ) + ) + +(deftype joint-mod-base (structure) + "Base type for most joint-mods" + ((flags joint-mod-base-flags) + (node-index int16) + (proc (pointer process-drawable)) + (callback (function cspace transformq none)) + ) + (:methods + (init (_type_ process-drawable uint joint-mod-base-flags) none) + (attach-callback (_type_) none) + (remove-callback (_type_) none) + ) + ) + + +(defmethod attach-callback ((this joint-mod-base)) + "Take control of the specified joint by modifying the cspace callback." + (when (> (-> this node-index) 0) + (let ((a1-3 (-> this proc 0 node-list data (-> this node-index)))) + (set! (-> a1-3 param0) (-> this callback)) + (set! (-> a1-3 param1) (the-as basic this)) + ) + (logior! (-> this flags) (joint-mod-base-flags attached)) + ) + 0 + (none) + ) + +(defmethod remove-callback ((this joint-mod-base)) + "Remove this callback and set param0 to #f to use the default (animated joint)" + (if (> (-> this node-index) 0) + (set! (-> this proc 0 node-list data (-> this node-index) param0) #f) + ) + (logclear! (-> this flags) (joint-mod-base-flags attached)) + 0 + (none) + ) + +(defmethod init ((this joint-mod-base) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (set! (-> this flags) arg2) + (set! (-> this node-index) (the-as int arg1)) + (set! (-> this proc) (the-as (pointer process-drawable) (process->ppointer arg0))) + (if (logtest? arg2 (joint-mod-base-flags attached)) + (attach-callback this) + ) + 0 + (none) + ) + +(deftype joint-mod-rotate-local (joint-mod-base) + ((rotation quaternion :inline) + ) + (:methods + (new (symbol type) _type_) + ) + ) + + +(defun joint-mod-rotate-local-callback ((arg0 cspace) (arg1 transformq)) + (let ((v1-0 (the-as joint-mod-rotate-local (-> arg0 param1)))) + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) (-> v1-0 rotation)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (none) + ) + +(defmethod init ((this joint-mod-rotate-local) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (set! (-> this callback) joint-mod-rotate-local-callback) + (quaternion-identity! (-> this rotation)) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + +(deftype joint-mod-trans-rot-local (joint-mod-base) + ((trans vector :inline) + (rot quaternion :inline) + ) + ) + + +(defun joint-mod-trans-rot-local-callback ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (the-as joint-mod-trans-rot-local (-> arg0 param1)))) + (let ((a2-0 (-> arg1 trans))) + (let ((a0-1 (-> arg1 trans)) + (a1-1 (-> v1-0 trans)) + ) + (.lvf vf4 (&-> a0-1 quad)) + (.lvf vf5 (&-> a1-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-0 quad) vf6) + ) + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) (-> v1-0 rot)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (none) + ) + ) + +(defmethod init ((this joint-mod-trans-rot-local) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (set! (-> this callback) joint-mod-trans-rot-local-callback) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this rot)) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + +(deftype joint-mod-rotate-world (joint-mod-base) + "Add an additional rotation to a joint (right multiply)" + ((rotation quaternion :inline) + ) + ) + + +(defun vector<-cspace2! ((output-vec vector) (input-cspace cspace)) + (rlet ((Q :class vf) + (vf0 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> (-> input-cspace bone) transform trans quad)) + (.div.vf Q vf0 vf2 :fsf #b11 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf2 vf2 Q) + (.nop.vf) + (.nop.vf) + (.mov.vf.w vf2 vf0) + (.svf (&-> output-vec quad) vf2) + output-vec + ) + ) + +;; WARN: Return type mismatch matrix vs none. +(defun joint-mod-rotate-world-callback ((bone-cspace cspace) (joint-transform transformq)) + (let ((s3-0 (the-as joint-mod-rotate-world (-> bone-cspace param1)))) + (cspace<-parented-transformq-joint! bone-cspace joint-transform) + (let ((s4-0 (vector<-cspace2! (new 'stack-no-clear 'vector) bone-cspace))) + (quaternion*! + (the-as quaternion (-> joint-transform rot)) + (the-as quaternion (-> joint-transform rot)) + (-> s3-0 rotation) + ) + (set! (-> joint-transform trans quad) (-> s4-0 quad)) + ) + ) + (cspace<-transformq! bone-cspace joint-transform) + (none) + ) + +(defmethod init ((this joint-mod-rotate-world) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (set! (-> this callback) joint-mod-rotate-world-callback) + (quaternion-identity! (-> this rotation)) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + +(deftype joint-mod-set-local (joint-mod-base) + "Override the trans, quat, and scale of the joint transform. The component to override is selected by the flag." + ((transform transformq :inline) + ) + (:methods + (new (symbol type) _type_) + ) + ) + + +(defun joint-mod-set-local-callback ((bone-cspace cspace) (joint-transform transformq)) + (let ((v1-0 (the-as joint-mod-set-local (-> bone-cspace param1)))) + (if (not (logtest? (-> v1-0 flags) (joint-mod-base-flags trans))) + (set! (-> v1-0 transform trans quad) (-> joint-transform trans quad)) + ) + (if (not (logtest? (-> v1-0 flags) (joint-mod-base-flags quat))) + (set! (-> v1-0 transform rot quad) (-> joint-transform rot quad)) + ) + (if (not (logtest? (-> v1-0 flags) (joint-mod-base-flags scale))) + (set! (-> v1-0 transform scale quad) (-> joint-transform scale quad)) + ) + (cspace<-parented-transformq-joint! bone-cspace (-> v1-0 transform)) + ) + (none) + ) + +(defmethod init ((this joint-mod-set-local) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (rlet ((vf0 :class vf)) + (init-vf0-vector) + (set! (-> this callback) joint-mod-set-local-callback) + (.svf (&-> (-> this transform) trans quad) vf0) + (quaternion-identity! (the-as quaternion (-> this transform rot))) + (vector-identity! (-> this transform scale)) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + ) + +(deftype joint-mod-add-local (joint-mod-base) + "Add to the trans, rotate the quat, and multiply the scale of the joint transform. The components can be selected by the flag. +Unlike jak 2, this actually multiplies the scale, instead of adding." + ((transform transformq :inline) + ) + (:methods + (new (symbol type) _type_) + ) + ) + + +(defun joint-mod-add-local-callback ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s4-0 (the-as joint-mod-add-local (-> arg0 param1)))) + (when (logtest? (-> s4-0 flags) (joint-mod-base-flags trans)) + (let ((a1-1 (-> arg1 trans))) + (let ((v1-3 (-> arg1 trans)) + (a0-1 (-> s4-0 transform)) + ) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 trans quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + ) + (when (logtest? (-> s4-0 flags) (joint-mod-base-flags quat)) + (quaternion*! + (the-as quaternion (-> arg1 rot)) + (the-as quaternion (-> arg1 rot)) + (the-as quaternion (-> s4-0 transform rot)) + ) + (quaternion-normalize! (the-as quaternion (-> arg1 rot))) + ) + (if (logtest? (-> s4-0 flags) (joint-mod-base-flags scale)) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> s4-0 transform scale)) + ) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (none) + ) + ) + +(defmethod init ((this joint-mod-add-local) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (rlet ((vf0 :class vf)) + (init-vf0-vector) + (set! (-> this callback) joint-mod-add-local-callback) + (.svf (&-> (-> this transform) trans quad) vf0) + (quaternion-identity! (the-as quaternion (-> this transform rot))) + (set-vector! (-> this transform scale) 1.0 1.0 1.0 1.0) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + ) + +(deftype joint-mod-set-world (joint-mod-base) + "Directly overwrite the _bone_ transform (ignoring the parent entirely). +This does not pay attention to the flags." + ((transform transformq :inline) + ) + (:methods + (new (symbol type) _type_) + ) + ) + + +;; WARN: Return type mismatch matrix vs none. +(defun joint-mod-set-world-callback ((bone-cspace cspace) (joint-trasnform transformq)) + (let ((v1-0 (the-as joint-mod-set-local (-> bone-cspace param1)))) + (cspace<-transformq! bone-cspace (-> v1-0 transform)) + ) + (none) + ) + +(defmethod init ((this joint-mod-set-world) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (rlet ((vf0 :class vf)) + (init-vf0-vector) + (set! (-> this callback) joint-mod-set-world-callback) + (.svf (&-> (-> this transform) trans quad) vf0) + (quaternion-identity! (the-as quaternion (-> this transform rot))) + (vector-identity! (-> this transform scale)) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + ) + +(deftype joint-mod-set-world-no-trans (joint-mod-base) + "Set the rotation and scale of the _bone_ directly to the values from this transform. +The translation is kept from the result of the normal parented value." + ((transform transformq :inline) + ) + ) + + +;; WARN: Return type mismatch vector vs none. +(defun joint-mod-set-world-no-trans-callback ((bone-cspace cspace) (joint-transform transformq)) + (let ((s4-0 (the-as joint-mod-set-world-no-trans (-> bone-cspace param1))) + (gp-0 (new 'stack-no-clear 'matrix)) + ) + (cspace<-parented-transformq-joint! bone-cspace joint-transform) + (matrix<-transformq! gp-0 (-> s4-0 transform)) + (set! (-> bone-cspace bone transform rvec quad) (-> gp-0 rvec quad)) + (set! (-> bone-cspace bone transform uvec quad) (-> gp-0 uvec quad)) + (set! (-> bone-cspace bone transform fvec quad) (-> gp-0 fvec quad)) + ) + (none) + ) + +(defmethod init ((this joint-mod-set-world-no-trans) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (rlet ((vf0 :class vf)) + (init-vf0-vector) + (set! (-> this callback) joint-mod-set-world-no-trans-callback) + (.svf (&-> (-> this transform) trans quad) vf0) + (quaternion-identity! (the-as quaternion (-> this transform rot))) + (vector-identity! (-> this transform scale)) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + ) + +(deftype joint-mod-blend-local (joint-mod-base) + "Blend the _joint_ transform between this transform and the animated one. +Then, apply the normal parented transform." + ((transform transformq :inline) + (blend-transform transformq :inline) + (blend float) + ) + (:methods + (new (symbol type) _type_) + ) + ) + + +(defun joint-mod-blend-local-callback ((bone-cspace cspace) (joint-transform transformq)) + (let ((gp-0 (the-as joint-mod-blend-local (-> bone-cspace param1)))) + (vector-lerp! + (-> gp-0 blend-transform trans) + (-> joint-transform trans) + (-> gp-0 transform trans) + (-> gp-0 blend) + ) + (vector-lerp! + (-> gp-0 blend-transform scale) + (-> joint-transform scale) + (-> gp-0 transform scale) + (-> gp-0 blend) + ) + (quaternion-slerp! + (the-as quaternion (-> gp-0 blend-transform rot)) + (the-as quaternion (-> joint-transform rot)) + (the-as quaternion (-> gp-0 transform rot)) + (-> gp-0 blend) + ) + (cspace<-parented-transformq-joint! bone-cspace (-> gp-0 blend-transform)) + ) + (none) + ) + +(defmethod init ((this joint-mod-blend-local) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (rlet ((vf0 :class vf)) + (init-vf0-vector) + (set! (-> this callback) joint-mod-blend-local-callback) + (.svf (&-> (-> this transform) trans quad) vf0) + (quaternion-identity! (the-as quaternion (-> this transform rot))) + (vector-identity! (-> this transform scale)) + (set! (-> this blend) 0.0) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + ) + +(deftype joint-mod-blend-world (joint-mod-base) + "Blend the _bone_ transform between this one and the animated one." + ((transform transformq :inline) + (blend-transform transformq :inline) + (blend float) + ) + (:methods + (new (symbol type) _type_) + ) + ) + + +;; WARN: Return type mismatch matrix vs none. +(defun joint-mod-blend-world-callback ((bone-cspace cspace) (joint-transform transformq)) + (let ((gp-0 (the-as joint-mod-blend-world (-> bone-cspace param1)))) + (let ((f30-0 (if (logtest? (-> gp-0 flags) (joint-mod-base-flags trans)) + (-> gp-0 blend) + 0.0 + ) + ) + (f28-0 (if (logtest? (-> gp-0 flags) (joint-mod-base-flags quat)) + (-> gp-0 blend) + 0.0 + ) + ) + (f26-0 (if (logtest? (-> gp-0 flags) (joint-mod-base-flags scale)) + (-> gp-0 blend) + 0.0 + ) + ) + (s3-0 (new 'stack-no-clear 'joint-mod-blend-world-work)) + ) + (if (= (-> bone-cspace parent bone scale w) 0.0) + (matrix<-transformq! (-> s3-0 mat1) joint-transform) + (matrix<-parented-transformq! (-> s3-0 mat1) joint-transform (-> bone-cspace parent bone scale)) + ) + (matrix*! (-> s3-0 mat2) (-> s3-0 mat1) (-> bone-cspace parent bone transform)) + (set-vector! + (-> s3-0 vec) + (vector-length (-> s3-0 mat2 rvec)) + (vector-length (-> s3-0 mat2 uvec)) + (vector-length (-> s3-0 mat2 fvec)) + 1.0 + ) + (vector*! (-> gp-0 blend-transform scale) (-> s3-0 vec) (-> joint-transform scale)) + (vector-lerp! (-> gp-0 blend-transform trans) (-> s3-0 mat2 trans) (-> gp-0 transform trans) f30-0) + (vector-lerp! (-> gp-0 blend-transform scale) (-> gp-0 blend-transform scale) (-> gp-0 transform scale) f26-0) + (quaternion-slerp! + (the-as quaternion (-> gp-0 blend-transform rot)) + (matrix->quat (-> s3-0 mat2) (-> s3-0 quat)) + (the-as quaternion (-> gp-0 transform rot)) + f28-0 + ) + ) + (cspace<-transformq! bone-cspace (-> gp-0 blend-transform)) + ) + (none) + ) + +(defmethod init ((this joint-mod-blend-world) (arg0 process-drawable) (arg1 uint) (arg2 joint-mod-base-flags)) + "Set up this joint-mod to modify the given joint of the given process. Will attach automatically if attached flag is set." + (rlet ((vf0 :class vf)) + (init-vf0-vector) + (set! (-> this callback) joint-mod-blend-world-callback) + (.svf (&-> (-> this transform) trans quad) vf0) + (quaternion-identity! (the-as quaternion (-> this transform rot))) + (vector-identity! (-> this transform scale)) + (set! (-> this blend) 0.0) + ((method-of-type joint-mod-base init) this arg0 arg1 arg2) + (none) + ) + ) + +(deftype joint-mod-ik (basic) + ((flags joint-mod-ik-flags) + (elbow-pole-vector-axis int8) + (elbow-rotation-axis int8) + (elbow-node int8) + (process process-drawable) + (callback (function joint-mod-ik matrix matrix vector object)) + (handle-pos vector :inline) + (hand-dist float) + (blend float) + ) + (:methods + (new (symbol type process-drawable int float) _type_) + (set-ik-target! (_type_ vector) none) + (enable-set! (_type_ symbol) none) + ) + ) + + +(deftype ik-limb-setup (structure) + ((elbow-index int32) + (hand-dist float) + ) + ) + + +(deftype joint-mod-polar-look-at (basic) + ((flags joint-mod-polar-flags) + (ear int8) + (up int8) + (nose int8) + (polar-internal-tilt-max float) + (polar-internal-radius float) + (polar-external-tilt-max float) + (polar-external-radius float) + (upward-tilt float) + (downward-tilt float) + (forward-twist float) + (backward-twist float) + (target vector :inline) + (blend-duration time-frame) + (blend-start-time time-frame) + (blend-start-value float) + (blend-max float) + ) + (:methods + (initialize (_type_ process-drawable int) none) + (set-target! (_type_ vector) none) + (set-both-targets! (_type_ joint-mod-polar-look-at vector) none) + (blend-on! (_type_ time-frame float symbol) none) + (blend-to-off! (_type_ time-frame symbol) none) + (get-start-blend! (_type_) float) + ) + ) diff --git a/goal_src/jakx/engine/anim/joint-mod.gc b/goal_src/jakx/engine/anim/joint-mod.gc index c374c52646..edbefeb3ea 100644 --- a/goal_src/jakx/engine/anim/joint-mod.gc +++ b/goal_src/jakx/engine/anim/joint-mod.gc @@ -5,5 +5,1469 @@ ;; name in dgo: joint-mod ;; dgos: ENGINE, GAME +(define-extern joint-mod-look-at-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-world-look-at-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-rotate-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set-world-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set*-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-joint-set*-world-handler (function cspace transformq none :behavior process)) +(define-extern joint-mod-polar-look-at-callback (function cspace transformq none :behavior process)) + ;; DECOMP BEGINS +;; WARN: Return type mismatch matrix vs none. +;; WARN: Function joint-mod-ik-callback has a return type of none, but the expression builder found a return statement. +(defbehavior joint-mod-ik-callback process ((arg0 cspace) (arg1 transformq)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (the-as joint-mod-ik (-> arg0 param1)))) + (-> arg0 param2) + (cspace<-parented-transformq-joint! arg0 arg1) + (cond + ((logtest? (-> gp-0 flags) (joint-mod-ik-flags enable)) + (+! (-> gp-0 blend) (* 4.0 (seconds-per-frame))) + (if (< 1.0 (-> gp-0 blend)) + (set! (-> gp-0 blend) 1.0) + ) + ) + (else + (set! (-> gp-0 blend) (- (-> gp-0 blend) (* 4.0 (seconds-per-frame)))) + (if (< (-> gp-0 blend) 0.0) + (set! (-> gp-0 blend) 0.0) + ) + ) + ) + (if (= (-> gp-0 blend) 0.0) + (return #f) + ) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'vector 4)) + (s4-0 (-> arg0 parent bone transform)) + (s3-1 (-> arg0 bone transform)) + ) + (matrix->trans s4-0 (-> s5-0 13)) + (set! (-> s4-0 trans quad) (-> s5-0 13 quad)) + (matrix->trans s3-1 (-> s5-0 13)) + (set! (-> s3-1 trans quad) (-> s5-0 13 quad)) + 0.0 + 0.0 + (set! (-> s5-0 8 quad) (-> s4-0 trans quad)) + (set! (-> s5-0 9 quad) (-> s3-1 trans quad)) + (let ((a1-3 (-> s5-0 10))) + (let ((v1-22 (-> s5-0 9))) + (let ((a0-12 (-> s3-1 uvec))) + (let ((a2-0 (-> gp-0 hand-dist))) + (.mov vf7 a2-0) + ) + (.lvf vf5 (&-> a0-12 quad)) + ) + (.lvf vf4 (&-> v1-22 quad)) + ) + (.add.x.vf.w vf6 vf0 vf0) + (.mul.x.vf.xyz acc vf5 vf7) + (.add.mul.w.vf.xyz vf6 vf4 vf0 acc) + (.svf (&-> a1-3 quad) vf6) + ) + (if (-> gp-0 callback) + ((-> gp-0 callback) gp-0 s4-0 s3-1 (-> s5-0 10)) + ) + (set! (-> s5-0 11 quad) (-> gp-0 handle-pos quad)) + (let ((f30-0 (vector-vector-distance (-> s5-0 8) (-> s5-0 9))) + (f0-12 (vector-vector-distance (-> s5-0 9) (-> s5-0 10))) + ) + (vector-! (-> s5-0 17) (-> s5-0 11) (-> s5-0 8)) + (let ((f1-7 (vector-length (-> s5-0 17))) + (f2-4 (+ -4.096 f0-12 f30-0)) + (f0-15 (+ 4.096 (fabs (- f30-0 f0-12)))) + ) + (cond + ((< f2-4 f1-7) + (vector-normalize! (-> s5-0 17) f2-4) + (let ((v1-33 (-> s5-0 11))) + (let ((a0-20 (-> s5-0 8)) + (a1-10 (-> s5-0 17)) + ) + (.lvf vf4 (&-> a0-20 quad)) + (.lvf vf5 (&-> a1-10 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-33 quad) vf6) + ) + ) + ((< f1-7 f0-15) + (vector-normalize! (-> s5-0 17) f0-15) + (let ((v1-35 (-> s5-0 11))) + (let ((a0-22 (-> s5-0 8)) + (a1-12 (-> s5-0 17)) + ) + (.lvf vf4 (&-> a0-22 quad)) + (.lvf vf5 (&-> a1-12 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-35 quad) vf6) + ) + ) + ) + ) + ) + (vector-! (-> s5-0 14) (-> s5-0 9) (-> s5-0 8)) + (vector-! (-> s5-0 15) (-> s5-0 10) (-> s5-0 9)) + (vector-! (-> s5-0 16) (-> s5-0 10) (-> s5-0 8)) + (vector-! (-> s5-0 17) (-> s5-0 11) (-> s5-0 8)) + (let* ((f28-0 (vector-length (-> s5-0 14))) + (f26-0 (vector-length (-> s5-0 15))) + (f24-0 (vector-length (-> s5-0 17))) + (f30-1 (vector-vector-angle-safe (-> s5-0 14) (-> s5-0 15))) + (f0-17 (fmax -1.0 (fmin 1.0 (/ (- (- (square f24-0) (square f28-0)) (square f26-0)) (* 2.0 f26-0 f28-0))))) + (f28-1 (acos f0-17)) + ) + (cond + ((= f30-1 0.0) + (set! (-> s5-0 20 quad) (-> (&-> s3-1 quad (-> gp-0 elbow-rotation-axis)) 0)) + (when (logtest? (-> gp-0 flags) (joint-mod-ik-flags elbow-rot-neg)) + (vector-negate! (-> s5-0 20) (-> s5-0 20)) + (set! f28-1 (- f28-1)) + ) + (set! (-> s5-0 12 quad) (-> (&-> s3-1 quad (-> gp-0 elbow-pole-vector-axis)) 0)) + (if (logtest? (-> gp-0 flags) (joint-mod-ik-flags elbow-trans-neg)) + (vector-negate! (-> s5-0 12) (-> s5-0 12)) + ) + ) + (else + (vector-cross! (-> s5-0 20) (-> s5-0 14) (-> s5-0 15)) + (vector-! + (-> s5-0 12) + (-> s5-0 14) + (vector-float*! + (new 'stack-no-clear 'vector) + (-> s5-0 16) + (/ (vector-dot (-> s5-0 16) (-> s5-0 14)) (vector-dot (-> s5-0 16) (-> s5-0 16))) + ) + ) + ) + ) + (vector-normalize! (-> s5-0 12) 1.0) + (vector-normalize! (-> s5-0 20) 1.0) + (quaternion-vector-angle! (the-as quaternion (-> s5-0 18)) (-> s5-0 20) (- f28-1 f30-1)) + ) + (vector-orient-by-quat! (-> s5-0 15) (-> s5-0 15) (the-as quaternion (-> s5-0 18))) + (let ((a1-32 (-> s5-0 16))) + (let ((v1-61 (-> s5-0 14)) + (a0-48 (-> s5-0 15)) + ) + (.lvf vf4 (&-> v1-61 quad)) + (.lvf vf5 (&-> a0-48 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-32 quad) vf6) + ) + (quaternion-from-two-vectors! + (the-as quaternion (-> s5-0 19)) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 16) 1.0) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 17) 1.0) + ) + (vector-orient-by-quat! (-> s5-0 14) (-> s5-0 14) (the-as quaternion (-> s5-0 19))) + (vector-normalize-copy! (-> s5-0 21) (-> s5-0 14) 1.0) + (vector-normalize-copy! (-> s5-0 22) (-> s5-0 17) 1.0) + (let ((f0-25 (fabs (vector-dot (-> s5-0 21) (-> s5-0 22))))) + (if (< 0.98 f0-25) + (vector-orient-by-quat! (-> s5-0 14) (-> s5-0 12) (the-as quaternion (-> s5-0 19))) + ) + ) + (vector-flatten! (-> s5-0 23) (-> s5-0 14) (-> s5-0 17)) + (vector-flatten! (-> s5-0 24) (-> s5-0 12) (-> s5-0 17)) + (vector-normalize! (-> s5-0 23) 1.0) + (vector-normalize! (-> s5-0 24) 1.0) + (quaternion-from-two-vectors! (the-as quaternion (-> s5-0 26)) (-> s5-0 23) (-> s5-0 24)) + (quaternion*! + (the-as quaternion (-> s5-0 19)) + (the-as quaternion (-> s5-0 26)) + (the-as quaternion (-> s5-0 19)) + ) + (quaternion-pseudo-slerp! + (the-as quaternion (-> s5-0 18)) + *unity-quaternion* + (the-as quaternion (-> s5-0 18)) + (-> gp-0 blend) + ) + (quaternion-pseudo-slerp! + (the-as quaternion (-> s5-0 19)) + *unity-quaternion* + (the-as quaternion (-> s5-0 19)) + (-> gp-0 blend) + ) + (quaternion->matrix (the-as matrix (-> s5-0 0)) (the-as quaternion (-> s5-0 18))) + (set! (-> s5-0 13 quad) (-> s3-1 trans quad)) + (matrix*! s3-1 s3-1 (the-as matrix (-> s5-0 0))) + (set! (-> s3-1 trans quad) (-> s5-0 13 quad)) + (quaternion->matrix (the-as matrix (-> s5-0 0)) (the-as quaternion (-> s5-0 19))) + (matrix-4x4-inverse! (the-as matrix (-> s5-0 4)) s4-0) + (set! (-> s5-0 13 quad) (-> s4-0 trans quad)) + (matrix*! s3-1 s3-1 (the-as matrix (-> s5-0 4))) + (matrix*! s4-0 s4-0 (the-as matrix (-> s5-0 0))) + (set! (-> s4-0 trans quad) (-> s5-0 13 quad)) + (matrix*! s3-1 s3-1 s4-0) + ) + ) + (none) + ) + ) + +(defmethod new joint-mod-ik ((allocation symbol) (type-to-make type) (arg0 process-drawable) (arg1 int) (arg2 float)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 process) arg0) + (set! (-> v0-0 hand-dist) arg2) + (set! (-> v0-0 elbow-pole-vector-axis) 0) + (set! (-> v0-0 elbow-node) arg1) + (logclear! (-> v0-0 flags) (joint-mod-ik-flags elbow-trans-neg)) + (set! (-> v0-0 elbow-rotation-axis) 2) + (logclear! (-> v0-0 flags) (joint-mod-ik-flags elbow-rot-neg)) + (set! (-> v0-0 callback) #f) + (set! (-> v0-0 blend) 0.0) + (logclear! (-> v0-0 flags) (joint-mod-ik-flags enable)) + (let ((a0-5 (-> arg0 node-list data arg1))) + (set! (-> a0-5 param0) joint-mod-ik-callback) + (set! (-> a0-5 param1) v0-0) + (set! (-> a0-5 param2) (the-as basic arg1)) + ) + v0-0 + ) + ) + +(defmethod set-ik-target! ((this joint-mod-ik) (pos vector)) + (set! (-> this handle-pos quad) (-> pos quad)) + 0 + (none) + ) + +(defmethod enable-set! ((this joint-mod-ik) (arg0 symbol)) + (if arg0 + (logior! (-> this flags) (joint-mod-ik-flags enable)) + (logclear! (-> this flags) (joint-mod-ik-flags enable)) + ) + 0 + (none) + ) + +(defbehavior real-joint-mod-gun-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (let ((sv-16 (the-as joint-mod (-> arg0 param1)))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> sv-16 scale)) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s5-0 (-> arg0 bone transform))) + (let ((s4-0 (matrix->quat s5-0 (new 'stack-no-clear 'quaternion))) + (sv-64 (matrix->trans s5-0 (new 'stack-no-clear 'vector))) + ) + (quaternion-rotate-y! s4-0 s4-0 (-> sv-16 twist z)) + (let ((sv-96 (quaternion-copy! (new 'stack-no-clear 'quaternion) s4-0))) + (when (!= (-> sv-16 flex-blend) 0.0) + (let ((sv-160 (vector-y-quaternion! (new 'stack-no-clear 'vector) sv-96)) + (sv-164 (vector-z-quaternion! (new 'stack-no-clear 'vector) sv-96)) + (sv-168 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> sv-16 target) sv-64) 1.0)) + ) + (let* ((sv-172 (the-as symbol #f)) + (f30-0 (vector-y-angle sv-164)) + (a0-14 (vector-flatten! (new 'stack-no-clear 'vector) sv-168 sv-160)) + (f0-2 (vector-y-angle a0-14)) + (f0-3 (deg-diff f30-0 f0-2)) + (f30-1 (* f0-3 (-> sv-16 blend))) + ) + (let ((f28-0 (fmax (fmin f30-1 (-> sv-16 twist-max y)) (- (-> sv-16 twist-max y))))) + (if (or (!= f30-1 f28-0) (= (-> sv-16 blend) 0.0)) + (logclear! (-> sv-16 track-mode) (track-mode lock-on)) + ) + (cond + ((or (< (-> sv-16 ignore-angle) (fabs f0-3)) + (< (-> sv-16 twist-max w) (vector-vector-distance (-> sv-16 target) sv-64)) + ) + (set! f30-1 0.0) + (set! f28-0 0.0) + (set! sv-172 #t) + ) + ((< 5461.3335 (fabs (deg-diff f30-1 f28-0))) + (set! (-> sv-16 blend) 0.0001) + ) + ((< 182.04445 (fabs (deg-diff f30-1 f28-0))) + (logclear! (-> sv-16 track-mode) (track-mode track-x)) + ) + ) + (if (or (and (logtest? (-> sv-16 track-mode) (track-mode track-y)) (= f30-1 f28-0)) + (< (-> sv-16 twist-max y) (fabs (-> sv-16 twist y))) + ) + (set! (-> sv-16 twist y) + (deg-seek (-> sv-16 twist y) f28-0 (* (fabs (deg-diff f28-0 (-> sv-16 twist y))) + (if (logtest? (-> sv-16 track-mode) (track-mode lock-on)) + 1.0 + (-> sv-16 twist-speed-y) + ) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + (if (and (< (fabs (deg-diff f30-1 (-> sv-16 twist y))) 728.1778) (and (not sv-172) (!= (-> sv-16 blend) 0.0))) + (logior! (-> sv-16 track-mode) (track-mode lock-on)) + ) + ) + (quaternion-rotate-local-y! sv-96 sv-96 (-> sv-16 twist y)) + (let* ((s3-1 (vector-x-quaternion! (new 'stack-no-clear 'vector) sv-96)) + (f30-2 (vector-x-angle sv-164)) + (s3-2 (vector-flatten! (new 'stack-no-clear 'vector) sv-168 s3-1)) + (f0-24 (vector-x-angle s3-2)) + (f30-3 (fmax + (fmin (* (- (deg-diff f30-2 f0-24)) (-> sv-16 blend)) (-> sv-16 twist-max x)) + (- (-> sv-16 twist-max x)) + ) + ) + ) + (if (or (< (vector-dot s3-2 sv-164) 0.1) + (< (-> sv-16 twist-max z) (vector-vector-distance (-> sv-16 target) sv-64)) + ) + (set! f30-3 0.0) + ) + (if (or (logtest? (-> sv-16 track-mode) (track-mode track-x)) + (< (-> sv-16 twist-max x) (fabs (-> sv-16 twist x))) + ) + (set! (-> sv-16 twist x) + (deg-seek (-> sv-16 twist x) f30-3 (* (fabs (deg-diff f30-3 (-> sv-16 twist x))) + (if (logtest? (-> sv-16 track-mode) (track-mode lock-on)) + 1.0 + (-> sv-16 twist-speed-x) + ) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + ) + (quaternion-rotate-x! sv-96 sv-96 (-> sv-16 twist x)) + (quaternion-normalize! (quaternion*! sv-96 sv-96 (-> sv-16 quat))) + ) + (let ((a1-27 (quaternion-slerp! (new 'stack-no-clear 'quaternion) s4-0 sv-96 (-> sv-16 flex-blend)))) + (matrix<-quat s5-0 a1-27) + ) + ) + ) + (let ((f30-4 (-> sv-16 trans x)) + (s4-1 (-> s5-0 uvec)) + (v1-97 (vector<-matrix! (new 'stack-no-clear 'vector) s5-0)) + ) + (let ((f0-43 (- f30-4 (-> v1-97 y)))) + (if (< 614.4 (fabs f0-43)) + (+! (-> sv-16 trans z) (* 8.0 f0-43)) + ) + ) + (+! (-> sv-16 trans z) (* -260.0 (seconds-per-frame) (-> sv-16 trans y))) + (let ((f0-48 (-> sv-16 trans y))) + (+! (-> sv-16 trans y) (* (-> sv-16 trans z) (seconds-per-frame))) + (set! (-> sv-16 trans y) (* 0.95 (-> sv-16 trans y))) + (when (< (* f0-48 (-> sv-16 trans y)) 0.0) + (set! (-> sv-16 trans y) 0.0) + (set! (-> sv-16 trans z) 0.0) + ) + ) + (cond + ((< 409.6 (-> sv-16 trans y)) + (set! (-> sv-16 trans y) 409.6) + (set! (-> sv-16 trans z) 0.0) + ) + ((< (-> sv-16 trans y) -409.6) + (set! (-> sv-16 trans y) -409.6) + (set! (-> sv-16 trans z) 0.0) + ) + ) + (set! (-> sv-16 trans x) (-> v1-97 y)) + (let ((f0-60 (* (-> sv-16 trans y) (-> sv-16 flex-blend)))) + (if (!= f0-60 0.0) + (vector+float*! (-> s5-0 trans) v1-97 s4-1 f0-60) + ) + ) + ) + ) + (if (-> sv-16 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + +(defbehavior joint-mod-gun-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (real-joint-mod-gun-look-at-handler arg0 arg1) + (none) + ) + +(defbehavior joint-mod-foot-rot-handler process ((arg0 cspace) (arg1 transformq)) + (let ((s5-0 (the-as joint-mod (-> arg0 param1))) + (gp-0 (-> arg0 bone transform)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s3-0 (-> s5-0 target)) + (s4-0 (-> s5-0 twist-max)) + ) + 1.0 + (when (< 8192.0 (vector-vector-angle-safe s3-0 s4-0)) + (let* ((a1-4 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) s3-0 s4-0) 1.0)) + (a2-1 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) a1-4 8192.0)) + ) + (vector-orient-by-quat! s4-0 s3-0 a2-1) + ) + ) + (let* ((f0-4 + (/ (vector-dot s3-0 (-> s5-0 joint bone transform uvec)) (vector-length (-> s5-0 joint bone transform uvec))) + ) + (f30-1 (lerp-scale 0.0 1.0 f0-4 0.85 1.0)) + ) + (vector-deg-slerp (-> s5-0 twist) (-> s5-0 twist) s4-0 0.3) + (set! (-> s4-0 quad) (-> s5-0 twist quad)) + (seek! (-> s5-0 blend) (-> s5-0 flex-blend) (* 4.0 (seconds-per-frame))) + (let ((s3-1 (matrix->scale gp-0 (new 'stack-no-clear 'vector)))) + (let ((s2-0 (matrix->quat gp-0 (new 'stack-no-clear 'quaternion))) + (s0-0 (matrix->trans gp-0 (new 'stack-no-clear 'vector))) + ) + (set! (-> gp-0 uvec quad) (-> s5-0 twist-max quad)) + (vector-cross! (-> gp-0 fvec) (-> gp-0 rvec) (-> gp-0 uvec)) + (vector-cross! (-> gp-0 rvec) (-> gp-0 uvec) (-> gp-0 fvec)) + (set! (-> gp-0 rvec w) 0.0) + (set! (-> gp-0 uvec w) 0.0) + (set! (-> gp-0 fvec w) 0.0) + (let ((s1-0 (matrix->quat gp-0 (new 'stack-no-clear 'quaternion)))) + (let* ((f0-14 (vector-dot s4-0 (vector-! (new 'stack-no-clear 'vector) s0-0 (-> s5-0 trans)))) + (f0-15 (lerp-scale 1.0 0.0 f0-14 819.2 2048.0)) + ) + (seek! (-> s5-0 old-blend) (* (-> s5-0 blend) f0-15 f30-1) (* 15.0 (seconds-per-frame))) + ) + (quaternion-slerp! s1-0 s2-0 s1-0 (-> s5-0 old-blend)) + (matrix<-quat gp-0 s1-0) + ) + ) + (matrix<-scale gp-0 s3-1) + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod new joint-mod ((allocation symbol) (type-to-make type) (arg0 joint-mod-mode) (arg1 process-drawable) (arg2 int)) + (let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> gp-0 process) arg1) + (set! (-> gp-0 joint) (-> arg1 node-list data arg2)) + (mode-set! gp-0 arg0) + (set-vector! (-> gp-0 twist-max) 8192.0 11832.889 0.0 1.0) + (set! (-> gp-0 twist-speed-x) 0.1) + (set! (-> gp-0 twist-speed-y) 0.1) + (set! (-> gp-0 up) (the-as uint 1)) + (set! (-> gp-0 nose) (the-as uint 2)) + (set! (-> gp-0 ear) (the-as uint 0)) + (set! (-> gp-0 base-joint) (the-as uint arg2)) + (set! (-> gp-0 base-nose) (the-as uint 2)) + (set! (-> gp-0 max-dist) 122880.0) + (set! (-> gp-0 ignore-angle) 65536.0) + (set! (-> gp-0 flex-blend) 1.0) + (set! (-> gp-0 shutting-down?) #f) + (set-vector! (-> gp-0 scale) 1.0 1.0 1.0 1.0) + (set! (-> gp-0 parented-scale?) #f) + (quaternion-identity! (-> gp-0 quat)) + gp-0 + ) + ) + +;; WARN: Return type mismatch joint-mod vs none. +(defmethod mode-set! ((this joint-mod) (mode joint-mod-mode)) + "Set the type of joint-mod and install the right callback." + (set! (-> this mode) mode) + (let ((v1-0 (-> this joint))) + (case mode + (((joint-mod-mode flex-blend)) + (set! (-> v1-0 param0) #f) + (set! (-> this blend) 0.0) + (set! (-> this flex-blend) 1.0) + ) + (((joint-mod-mode reset)) + (set! (-> v1-0 param0) #f) + (set! (-> this blend) 0.0) + (set! (-> this shutting-down?) #f) + ) + (((joint-mod-mode look-at)) + (let ((a0-4 v1-0)) + (set! (-> a0-4 param0) joint-mod-look-at-handler) + (set! (-> a0-4 param1) this) + ) + ) + (((joint-mod-mode joint-set*-world)) + (let ((a0-5 v1-0)) + (set! (-> a0-5 param0) joint-mod-gun-look-at-handler) + (set! (-> a0-5 param1) this) + ) + ) + (((joint-mod-mode gun-look-at)) + (set-vector! (-> this twist) 0.0 1.0 0.0 1.0) + (let ((a0-7 v1-0)) + (set! (-> a0-7 param0) + (lambda ((arg0 cspace) (arg1 transformq)) (joint-mod-foot-rot-handler arg0 arg1) (none)) + ) + (set! (-> a0-7 param1) this) + ) + ) + (((joint-mod-mode world-look-at)) + (let ((a0-8 v1-0)) + (set! (-> a0-8 param0) joint-mod-world-look-at-handler) + (set! (-> a0-8 param1) this) + ) + ) + (((joint-mod-mode rotate)) + (let ((a0-9 v1-0)) + (set! (-> a0-9 param0) joint-mod-rotate-handler) + (set! (-> a0-9 param1) this) + ) + (set! (-> this blend) 1.0) + ) + (((joint-mod-mode rotate2)) + (let ((a0-11 v1-0)) + (set! (-> a0-11 param0) joint-mod-rotate-handler) + (set! (-> a0-11 param1) this) + ) + (set! (-> this blend) 1.0) + ) + (((joint-mod-mode joint-set)) + (let ((a0-13 v1-0)) + (set! (-> a0-13 param0) joint-mod-joint-set-handler) + (set! (-> a0-13 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + ) + (((joint-mod-mode foot-rot)) + (let ((a0-16 v1-0)) + (set! (-> a0-16 param0) joint-mod-joint-set-world-handler) + (set! (-> a0-16 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + (set! (-> this flex-blend) 1.0) + ) + (((joint-mod-mode joint-set*)) + (let ((a0-23 v1-0)) + (set! (-> a0-23 param0) joint-mod-joint-set*-handler) + (set! (-> a0-23 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + ) + (((joint-mod-mode polar-look-at)) + (let ((a0-27 v1-0)) + (set! (-> a0-27 param0) joint-mod-joint-set*-world-handler) + (set! (-> a0-27 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch joint-mod vs none. +(defmethod shut-down ((this joint-mod)) + "Disable the joint mod, possibly blending out depending on the type" + (set! (-> this shutting-down?) #t) + (set! (-> this blend) 0.0) + (none) + ) + +(defmethod twist-set! ((this joint-mod) (x float) (y float) (z float)) + "Set twist x,y,z. A value of #f will skip the set." + (if x + (set! (-> this twist x) x) + ) + (if y + (set! (-> this twist y) y) + ) + (if z + (set! (-> this twist z) z) + ) + (-> this twist) + ) + +(defmethod trs-set! ((this joint-mod) (trans vector) (quat quaternion) (scale vector)) + "Set translation, quaternion, scale. A value of #f will skip the set." + (if trans + (set! (-> this trans quad) (-> trans quad)) + ) + (if quat + (quaternion-copy! (-> this quat) quat) + ) + (if scale + (set! (-> this scale quad) (-> scale quad)) + ) + 0 + (none) + ) + +(defmethod target-set! ((this joint-mod) (arg0 vector)) + "Set the target position for look-at mode." + (if (= (-> this mode) (joint-mod-mode reset)) + (mode-set! this (joint-mod-mode look-at)) + ) + (let ((f0-0 (vector-vector-distance (-> this process root trans) arg0))) + (set! (-> this shutting-down?) #f) + (set! (-> this target quad) (-> arg0 quad)) + (if (< f0-0 (-> this max-dist)) + (set! (-> this blend) 1.0) + (set! (-> this blend) 0.0) + ) + ) + 0 + (none) + ) + +(define last-try-to-look-at-data (new 'global 'try-to-look-at-info)) + +(defmethod look-at! ((this joint-mod) (arg0 vector) (arg1 symbol) (arg2 process)) + "Activate joint mod to look at the process." + (when (= arg1 'attacking) + (let ((s1-0 (as-type arg2 process-drawable))) + (when s1-0 + (let ((s2-1 (as-type (-> s1-0 fact) fact-info-enemy))) + (when s2-1 + (when (< (vector-vector-distance (-> this process root trans) (-> s1-0 root trans)) (-> s2-1 cam-notice-dist)) + (set-time! (-> this notice-time)) + (set! (-> last-try-to-look-at-data who) (process->handle arg2)) + (if (< (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) + (set! (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) + ) + (if (< (-> last-try-to-look-at-data horz) (-> s2-1 cam-horz)) + (set! (-> last-try-to-look-at-data horz) (-> s2-1 cam-horz)) + ) + ) + ) + ) + ) + ) + ) + (let ((f30-0 (vector-vector-distance (-> this process root trans) arg0))) + (if (logtest? (process-mask enemy) (-> arg2 mask)) + (+! (-> this look-at-count) (the int (lerp-scale 256.0 0.0 f30-0 20480.0 204800.0))) + ) + (when (and (or (= (-> this blend) 0.0) + (or (< f30-0 (vector-vector-distance (-> this process root trans) (-> this target))) (= arg1 'force)) + ) + (< f30-0 (-> this max-dist)) + ) + (if (= (-> this mode) (joint-mod-mode reset)) + (mode-set! this (joint-mod-mode look-at)) + ) + (set! (-> this target quad) (-> arg0 quad)) + (set! (-> this blend) 1.0) + (set! (-> this shutting-down?) #f) + ) + ) + 0 + (none) + ) + +(defbehavior joint-mod-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (the-as joint-mod (-> arg0 param1)))) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s3-0 (-> arg0 bone transform)) + (sv-144 (new 'stack-no-clear 'matrix)) + (sv-148 (new 'stack-no-clear 'quaternion)) + (sv-152 (new 'stack-no-clear 'vector)) + (sv-156 (new 'stack-no-clear 'vector)) + ) + (let ((sv-160 (&-> gp-0 process node-list data (-> gp-0 base-joint) bone transform quad (-> gp-0 base-nose))) + (sv-164 + (< (vector-dot (-> s3-0 rvec) (vector-cross! (new 'stack-no-clear 'vector) (-> s3-0 uvec) (-> s3-0 fvec))) + 0.0 + ) + ) + ) + (vector-normalize-copy! (-> sv-144 rvec) (the-as vector (&-> s3-0 quad (-> gp-0 ear))) (if sv-164 + -1.0 + 1.0 + ) + ) + (vector-normalize-copy! (-> sv-144 uvec) (the-as vector (&-> s3-0 quad (-> gp-0 up))) 1.0) + (vector-normalize-copy! (-> sv-144 fvec) (the-as vector (&-> s3-0 quad (-> gp-0 nose))) 1.0) + (vector-reset! (-> sv-144 trans)) + (matrix->quaternion sv-148 sv-144) + (vector-normalize! (vector-! sv-152 (-> gp-0 target) (-> arg0 bone transform trans)) 1.0) + (vector-inv-orient-by-quat! sv-156 sv-152 sv-148) + (let ((f30-0 (vector-y-angle sv-156)) + (f0-2 (if (= (-> gp-0 base-joint) (+ (-> arg0 joint number) 1)) + 0.0 + (deg-diff (vector-y-angle (-> sv-144 fvec)) (vector-y-angle (the-as vector sv-160))) + ) + ) + ) + (if (< (-> gp-0 ignore-angle) (fabs f30-0)) + (set! f30-0 0.0) + ) + (let ((f30-1 + (fmax + (fmin (* f30-0 (-> gp-0 blend) (-> gp-0 flex-blend)) (+ (-> gp-0 twist-max y) (* f0-2 (-> gp-0 flex-blend)))) + (+ (- (-> gp-0 twist-max y)) (* f0-2 (-> gp-0 flex-blend))) + ) + ) + ) + (when (and (-> gp-0 shutting-down?) (< (fabs (- (-> gp-0 twist y) f30-1)) 18.204445)) + (if (and (= (-> gp-0 scale x) 1.0) (= (-> gp-0 scale y) 1.0) (= (-> gp-0 scale z) 1.0)) + (mode-set! gp-0 (joint-mod-mode reset)) + (mode-set! gp-0 (joint-mod-mode rotate2)) + ) + ) + (set! (-> gp-0 twist y) + (deg-seek + (-> gp-0 twist y) + f30-1 + (* (fabs (deg-diff f30-1 (-> gp-0 twist y))) (-> gp-0 twist-speed-y) (-> self clock time-adjust-ratio)) + ) + ) + ) + ) + (let ((f0-21 (if sv-164 + (- (-> gp-0 twist y)) + (-> gp-0 twist y) + ) + ) + (a1-18 (new-stack-vector0)) + ) + (set! (-> a1-18 data (-> gp-0 up)) 1.0) + (let ((a2-7 (quaternion-vector-angle! (new-stack-quaternion0) a1-18 f0-21))) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) a2-7) + ) + ) + ) + ) + (let ((f0-27 + (fmax + (fmin (* (- (vector-x-angle sv-156)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x)) + (- (-> gp-0 twist-max x)) + ) + ) + ) + (if (< (vector-dot sv-156 *z-vector*) 0.1) + (set! f0-27 0.0) + ) + (set! (-> gp-0 twist x) + (deg-seek + (-> gp-0 twist x) + f0-27 + (* (fabs (deg-diff f0-27 (-> gp-0 twist x))) (-> gp-0 twist-speed-x) (-> self clock time-adjust-ratio)) + ) + ) + ) + ) + (let ((a1-22 (new-stack-vector0))) + (set! (-> a1-22 data (-> gp-0 ear)) 1.0) + (let ((a2-10 (quaternion-vector-angle! (new-stack-quaternion0) a1-22 (-> gp-0 twist x)))) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) a2-10) + ) + ) + ) + (let ((a1-24 (-> arg1 trans))) + (let ((v1-70 (-> arg1 trans)) + (a0-33 (-> gp-0 trans)) + ) + (.lvf vf4 (&-> v1-70 quad)) + (.lvf vf5 (&-> a0-33 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-24 quad) vf6) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) (-> gp-0 quat)) + ) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> gp-0 scale)) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> gp-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + (if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0)) + (add-debug-text-sphere + *display-target-marks* + (bucket-id bucket785) + (-> gp-0 target) + (meters 0.2) + "look" + (new 'static 'rgba :r #xff :g #xff :a #x80) + ) + ) + ) + 0 + (none) + ) + ) + +(defbehavior joint-mod-world-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (let ((gp-0 (the-as joint-mod (-> arg0 param1)))) + (let ((s5-0 (-> arg0 bone transform))) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((sv-48 (vector-normalize-copy! + (new 'stack-no-clear 'vector) + (-> gp-0 process node-list data 0 bone transform uvec) + 1.0 + ) + ) + (sv-52 (vector-normalize! (the-as vector (&-> s5-0 quad (-> gp-0 nose))) 1.0)) + (sv-56 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> gp-0 target) (-> s5-0 trans)) 1.0)) + ) + (let* ((f30-0 (vector-y-angle sv-52)) + (a0-7 (vector-flatten! (new-stack-vector0) sv-56 sv-48)) + (f0-0 (vector-y-angle a0-7)) + (f0-1 (deg-diff f30-0 f0-0)) + ) + (if (< (-> gp-0 ignore-angle) (fabs f0-1)) + (set! f0-1 0.0) + ) + (let ((f0-5 + (fmax (fmin (* f0-1 (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max y)) (- (-> gp-0 twist-max y))) + ) + ) + (set! (-> gp-0 twist y) (deg-seek + (-> gp-0 twist y) + f0-5 + (* (fmax 1.0 (* (fabs (deg-diff f0-5 (-> gp-0 twist y))) (-> gp-0 twist-speed-y))) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + (when (!= (-> gp-0 twist y) 0.0) + (let ((a2-3 (matrix-rotate-y! (new 'stack-no-clear 'matrix) (-> gp-0 twist y))) + (s4-2 (-> s5-0 trans quad)) + ) + (matrix*! s5-0 s5-0 a2-3) + (set! (-> s5-0 trans quad) s4-2) + ) + ) + (let* ((s4-3 (vector-normalize-copy! + (new 'stack-no-clear 'vector) + (-> gp-0 process node-list data 0 bone transform rvec) + 1.0 + ) + ) + (f30-2 (vector-x-angle sv-52)) + (s4-4 (vector-flatten! (new-stack-vector0) sv-56 s4-3)) + (f0-15 (vector-x-angle s4-4)) + (f0-21 (fmax + (fmin (* (- (deg-diff f30-2 f0-15)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x)) + (- (-> gp-0 twist-max x)) + ) + ) + ) + (if (< (vector-dot s4-4 sv-52) 0.1) + (set! f0-21 0.0) + ) + (set! (-> gp-0 twist x) (deg-seek + (-> gp-0 twist x) + f0-21 + (* (fmax 1.0 (* (fabs (deg-diff f0-21 (-> gp-0 twist x))) (-> gp-0 twist-speed-x))) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + (when (!= (-> gp-0 twist x) 0.0) + (let* ((v1-25 (-> gp-0 ear)) + (a1-17 ((cond + ((zero? v1-25) + matrix-rotate-x! + ) + ((= v1-25 1) + matrix-rotate-y! + ) + (else + matrix-rotate-z! + ) + ) + (new 'stack-no-clear 'matrix) + (-> gp-0 twist x) + ) + ) + ) + (matrix*! s5-0 a1-17 s5-0) + ) + ) + ) + (if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0)) + (add-debug-text-sphere + *display-target-marks* + (bucket-id bucket785) + (-> gp-0 target) + (meters 0.2) + "look" + (new 'static 'rgba :r #xff :g #xff :a #x80) + ) + ) + ) + 0 + (none) + ) + +(defbehavior joint-mod-rotate-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (the-as joint-mod (-> arg0 param1)))) + (let ((s3-0 (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + ) + ) + ) + (when (not (logtest? (-> s5-0 track-mode) (track-mode no-trans))) + (let ((a1-1 (-> arg1 trans))) + (let ((v1-3 (-> arg1 trans)) + (a0-1 (-> s5-0 trans)) + ) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + ) + (when (not (logtest? (-> s5-0 track-mode) (track-mode no-rotate))) + (let* ((v1-9 (-> s3-0 (-> s5-0 ear))) + (a1-3 + (quaternion-axis-angle! + (new 'stack-no-clear 'quaternion) + (-> v1-9 x) + (-> v1-9 y) + (-> v1-9 z) + (* (-> s5-0 twist x) (-> s5-0 blend) (-> s5-0 flex-blend)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) a1-3 (the-as quaternion (-> arg1 rot))) + ) + ) + (let* ((v1-13 (-> s3-0 (-> s5-0 up))) + (a1-5 + (quaternion-axis-angle! + (new 'stack-no-clear 'quaternion) + (-> v1-13 x) + (-> v1-13 y) + (-> v1-13 z) + (* (-> s5-0 twist y) (-> s5-0 blend) (-> s5-0 flex-blend)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) a1-5 (the-as quaternion (-> arg1 rot))) + ) + ) + (let* ((v1-17 (-> s3-0 (-> s5-0 nose))) + (a1-7 + (quaternion-axis-angle! + (new 'stack-no-clear 'quaternion) + (-> v1-17 x) + (-> v1-17 y) + (-> v1-17 z) + (* (-> s5-0 twist z) (-> s5-0 blend) (-> s5-0 flex-blend)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) a1-7 (the-as quaternion (-> arg1 rot))) + ) + ) + ) + ) + (if (not (logtest? (-> s5-0 track-mode) (track-mode no-scale))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> s5-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + ) + +(defbehavior joint-mod-scale-handler process ((arg0 cspace) (arg1 transformq)) + (let ((s5-0 (the-as joint-mod (-> arg0 param1)))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> s5-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + +(defbehavior joint-mod-joint-set-handler process ((arg0 cspace) (arg1 transformq)) + (let ((s4-0 (the-as joint-mod (-> arg0 param1)))) + (if (not (logtest? (-> s4-0 track-mode) (track-mode no-trans))) + (set! (-> arg1 trans quad) (-> s4-0 trans quad)) + ) + (if (not (logtest? (-> s4-0 track-mode) (track-mode no-rotate))) + (quaternion-copy! (the-as quaternion (-> arg1 rot)) (-> s4-0 quat)) + ) + (if (not (logtest? (-> s4-0 track-mode) (track-mode no-scale))) + (set! (-> arg1 scale quad) (-> s4-0 scale quad)) + ) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) + ) + +;; WARN: Function joint-mod-joint-set-world-handler has a return type of none, but the expression builder found a return statement. +(defbehavior joint-mod-joint-set-world-handler process ((arg0 cspace) (arg1 transformq)) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s5-0 (the-as joint-mod (-> arg0 param1))) + (s4-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) + ) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (if (>= 0.0 (-> s5-0 flex-blend)) + (return #f) + ) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-scale)) + (set! (-> s3-0 quad) (-> arg1 scale quad)) + ) + ((>= (-> s5-0 flex-blend) 1.0) + (set! (-> s3-0 quad) (-> s5-0 scale quad)) + ) + (else + (vector-lerp! s3-0 (-> arg1 scale) (-> s5-0 scale) (-> s5-0 flex-blend)) + ) + ) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-rotate)) + ) + ((>= (-> s5-0 flex-blend) 1.0) + (quaternion->matrix (-> arg0 bone transform) (-> s5-0 quat)) + ) + (else + (let ((v1-15 (new 'stack-no-clear 'vector))) + (set! (-> v1-15 quad) (-> arg1 scale quad)) + (set! (-> v1-15 x) (/ 1.0 (-> v1-15 x))) + (set! (-> v1-15 y) (/ 1.0 (-> v1-15 y))) + (set! (-> v1-15 z) (/ 1.0 (-> v1-15 z))) + (vector-float*! (-> arg0 bone transform rvec) (-> arg0 bone transform rvec) (-> v1-15 x)) + (vector-float*! (-> arg0 bone transform uvec) (-> arg0 bone transform uvec) (-> v1-15 y)) + (vector-float*! (-> arg0 bone transform fvec) (-> arg0 bone transform fvec) (-> v1-15 z)) + ) + (let ((a1-12 (matrix->quaternion (new 'stack-no-clear 'quaternion) (-> arg0 bone transform)))) + (quaternion->matrix + (-> arg0 bone transform) + (quaternion-slerp! (new 'stack-no-clear 'quaternion) a1-12 (-> s5-0 quat) (-> s5-0 flex-blend)) + ) + ) + ) + ) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-rotate)) + (vector-normalize! (-> arg0 bone transform rvec) (-> s3-0 x)) + (vector-normalize! (-> arg0 bone transform uvec) (-> s3-0 y)) + (vector-normalize! (-> arg0 bone transform fvec) (-> s3-0 z)) + ) + (else + (vector-float*! (-> arg0 bone transform rvec) (-> arg0 bone transform rvec) (-> s3-0 x)) + (vector-float*! (-> arg0 bone transform uvec) (-> arg0 bone transform uvec) (-> s3-0 y)) + (vector-float*! (-> arg0 bone transform fvec) (-> arg0 bone transform fvec) (-> s3-0 z)) + ) + ) + ) + (set! (-> arg0 bone transform rvec w) 0.0) + (set! (-> arg0 bone transform uvec w) 0.0) + (set! (-> arg0 bone transform fvec w) 0.0) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-trans)) + (set! (-> arg0 bone transform trans quad) (-> s4-0 quad)) + ) + ((>= (-> s5-0 flex-blend) 1.0) + (set! (-> arg0 bone transform trans quad) (-> s5-0 trans quad)) + (set! (-> arg0 bone transform trans w) 1.0) + ) + (else + (vector-lerp! (-> arg0 bone transform trans) s4-0 (-> s5-0 trans) (-> s5-0 flex-blend)) + (set! (-> arg0 bone transform trans w) 1.0) + ) + ) + ) + 0 + (none) + ) + +(defbehavior joint-mod-joint-set*-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (the-as joint-mod (-> arg0 param1)))) + (when (not (logtest? (-> s5-0 track-mode) (track-mode no-trans))) + (let ((a1-1 (-> arg1 trans))) + (let ((v1-3 (-> arg1 trans)) + (a0-1 (-> s5-0 trans)) + ) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + ) + (if (not (logtest? (-> s5-0 track-mode) (track-mode no-rotate))) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) (-> s5-0 quat)) + ) + ) + (if (not (logtest? (-> s5-0 track-mode) (track-mode no-scale))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> s5-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + ) + +(defbehavior joint-mod-joint-set*-world-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s5-0 (-> arg0 param1))) + (let ((s3-0 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> (the-as joint-mod s5-0) quat))) + (s4-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) + ) + (vector-reset! (-> arg0 bone transform trans)) + (set! (-> arg0 bone transform trans w) 1.0) + (vector-float*! (-> s3-0 rvec) (-> s3-0 rvec) (-> (the-as joint-mod s5-0) scale x)) + (vector-float*! (-> s3-0 uvec) (-> s3-0 uvec) (-> (the-as joint-mod s5-0) scale y)) + (vector-float*! (-> s3-0 fvec) (-> s3-0 fvec) (-> (the-as joint-mod s5-0) scale z)) + (set! (-> s3-0 rvec w) 0.0) + (set! (-> s3-0 uvec w) 0.0) + (set! (-> s3-0 fvec w) 0.0) + (matrix*! (-> arg0 bone transform) (-> arg0 bone transform) s3-0) + (let ((a0-8 (-> arg0 bone transform trans))) + (let ((v1-14 (-> (the-as joint-mod s5-0) trans))) + (.lvf vf4 (&-> s4-0 quad)) + (.lvf vf5 (&-> v1-14 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-8 quad) vf6) + ) + ) + (if (-> (the-as joint-mod s5-0) parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + ) + +;; WARN: Return type mismatch float vs none. +(defmethod initialize ((this joint-mod-polar-look-at) (arg0 process-drawable) (arg1 int)) + "Attach joint-mod to process and set defaults." + (let ((a1-2 (-> arg0 node-list data arg1))) + (set! (-> a1-2 param0) joint-mod-polar-look-at-callback) + (set! (-> a1-2 param1) this) + ) + (set! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + (set! (-> this up) 1) + (set! (-> this nose) 2) + (set! (-> this ear) 0) + (set! (-> this polar-internal-tilt-max) 32768.0) + (set! (-> this polar-internal-radius) 32768.0) + (set! (-> this polar-external-tilt-max) 32768.0) + (set! (-> this polar-external-radius) 32768.0) + (set! (-> this upward-tilt) 16384.0) + (set! (-> this downward-tilt) 16384.0) + (set! (-> this forward-twist) 16384.0) + (set! (-> this backward-twist) 16384.0) + (set! (-> this blend-duration) 0) + (set! (-> this blend-start-value) 0.0) + (set! (-> this blend-max) 1.0) + (none) + ) + +;; WARN: Return type mismatch float vs none. +(defmethod set-both-targets! ((this joint-mod-polar-look-at) (other joint-mod-polar-look-at) (pos vector)) + "Update the target position of this mod, and a second one." + (when (nonzero? this) + (set-target! this pos) + (when (nonzero? other) + (set! (-> this polar-external-tilt-max) (-> other polar-internal-tilt-max)) + (set! (-> this polar-external-radius) (-> other polar-internal-radius)) + ) + ) + (when (nonzero? other) + (set-target! other pos) + (when (nonzero? this) + (set! (-> other polar-external-tilt-max) (-> this polar-internal-tilt-max)) + (set! (-> other polar-external-radius) (-> this polar-internal-radius)) + ) + ) + (none) + ) + +(defmethod set-target! ((this joint-mod-polar-look-at) (pos vector)) + "Update the target position." + (set! (-> this target quad) (-> pos quad)) + 0 + (none) + ) + +(defmethod blend-on! ((this joint-mod-polar-look-at) (duration time-frame) (final-val float) (restart-if-in-progress symbol)) + "Start blending this joint mod on." + (cond + ((and (not restart-if-in-progress) (not (logtest? (-> this flags) (joint-mod-polar-flags blending-to-zero)))) + ) + ((zero? duration) + (set! (-> this blend-start-value) final-val) + (set! (-> this blend-max) final-val) + (set! (-> this blend-duration) duration) + (logclear! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + (else + (set-time! (-> this blend-start-time)) + (set! (-> this blend-start-value) (get-start-blend! this)) + (set! (-> this blend-max) final-val) + (set! (-> this blend-duration) duration) + (logclear! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + ) + 0 + (none) + ) + +(defmethod blend-to-off! ((this joint-mod-polar-look-at) (duration time-frame) (restart-if-in-progress symbol)) + "Start blending to disable this joint mod." + (cond + ((and (not restart-if-in-progress) (logtest? (-> this flags) (joint-mod-polar-flags blending-to-zero))) + ) + ((zero? duration) + (set! (-> this blend-start-value) 0.0) + (set! (-> this blend-duration) duration) + (logior! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + (else + (set-time! (-> this blend-start-time)) + (set! (-> this blend-start-value) (get-start-blend! this)) + (set! (-> this blend-duration) duration) + (logior! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + ) + 0 + (none) + ) + +(defmethod get-start-blend! ((this joint-mod-polar-look-at)) + "Determine what blend to use when starting a new one." + (local-vars (f0-2 float)) + (cond + ((zero? (-> this blend-duration)) + (-> this blend-start-value) + ) + ((begin + (set! f0-2 (the float (- (current-time) (-> this blend-start-time)))) + (logtest? (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + (let ((f0-5 (lerp-scale (-> this blend-start-value) 0.0 f0-2 0.0 (the float (-> this blend-duration))))) + (when (= f0-5 0.0) + (set! (-> this blend-start-value) f0-5) + (set! (-> this blend-duration) 0) + 0 + ) + f0-5 + ) + ) + (else + (let ((f0-8 + (lerp-scale (-> this blend-start-value) (-> this blend-max) f0-2 0.0 (the float (-> this blend-duration))) + ) + ) + (when (>= f0-8 (-> this blend-max)) + (set! (-> this blend-start-value) f0-8) + (set! (-> this blend-duration) 0) + 0 + ) + f0-8 + ) + ) + ) + ) + +(defbehavior joint-mod-polar-look-at-callback process ((arg0 cspace) (arg1 transformq)) + (let* ((s5-0 (the-as joint-mod-polar-look-at (-> arg0 param1))) + (f30-0 (get-start-blend! s5-0)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (when (< 0.0 f30-0) + (let* ((t9-2 vector-normalize-copy!) + (a0-3 (new 'stack-no-clear 'vector)) + (v1-3 (abs (-> s5-0 nose))) + (s3-0 (t9-2 a0-3 (the-as vector (&-> arg0 bone transform quad v1-3)) 1.0)) + (s1-0 (vector-normalize! + (vector-! (new 'stack-no-clear 'vector) (-> s5-0 target) (-> arg0 bone transform trans)) + 1.0 + ) + ) + (s4-1 (new 'stack-no-clear 'matrix)) + ) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (if (logtest? (-> s5-0 flags) (joint-mod-polar-flags negate-nose)) + (vector-negate! s3-0 s3-0) + ) + (let ((t9-5 vector-normalize-copy!) + (a0-7 (-> s4-1 rvec)) + (v1-11 (abs (-> s5-0 ear))) + ) + (t9-5 a0-7 (the-as vector (&-> arg0 bone transform quad v1-11)) 1.0) + ) + (if (logtest? (-> s5-0 flags) (joint-mod-polar-flags negate-ear)) + (vector-negate! (-> s4-1 rvec) (-> s4-1 rvec)) + ) + (let ((t9-7 vector-normalize-copy!) + (a0-9 (-> s4-1 uvec)) + (v1-18 (abs (-> s5-0 up))) + ) + (t9-7 a0-9 (the-as vector (&-> arg0 bone transform quad v1-18)) 1.0) + ) + (if (logtest? (-> s5-0 flags) (joint-mod-polar-flags negate-up)) + (vector-negate! (-> s4-1 uvec) (-> s4-1 uvec)) + ) + (set! (-> s4-1 fvec quad) (-> s3-0 quad)) + (set-vector! (-> s4-1 trans) 0.0 0.0 0.0 1.0) + (matrix-transpose! s4-1 s4-1) + (set-vector! (-> s4-1 trans) 0.0 0.0 0.0 1.0) + (vector-matrix*! s2-0 s1-0 s4-1) + (let ((f26-0 (asin (sqrtf (+ (square (-> s2-0 x)) (square (-> s2-0 y)))))) + (f28-0 (atan (-> s2-0 y) (-> s2-0 x))) + ) + (if (< (-> s2-0 z) 0.0) + (set! f26-0 (- 32768.0 f26-0)) + ) + (set! (-> s5-0 polar-internal-radius) f26-0) + (cond + ((< 16384.0 f28-0) + (set! (-> s5-0 polar-internal-tilt-max) (- 32768.0 f28-0)) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< 0.0 (-> s5-0 polar-external-tilt-max))) + (set! f28-0 (fmax f28-0 (- 32768.0 (-> s5-0 polar-external-tilt-max)))) + ) + ) + ((< f28-0 -16384.0) + (set! (-> s5-0 polar-internal-tilt-max) (- -32768.0 f28-0)) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< (-> s5-0 polar-external-tilt-max) 0.0)) + (set! f28-0 (fmin f28-0 (- -32768.0 (-> s5-0 polar-external-tilt-max)))) + ) + ) + ((< 0.0 f28-0) + (set! (-> s5-0 polar-internal-tilt-max) f28-0) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< 0.0 (-> s5-0 polar-external-tilt-max))) + (set! f28-0 (fmin f28-0 (-> s5-0 polar-external-tilt-max))) + ) + ) + (else + (set! (-> s5-0 polar-internal-tilt-max) f28-0) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< (-> s5-0 polar-external-tilt-max) 0.0)) + (set! f28-0 (fmax f28-0 (-> s5-0 polar-external-tilt-max))) + ) + ) + ) + (let ((f24-0 (square (sin f28-0))) + (f0-43 (square (cos f28-0))) + ) + 32768.0 + (let ((f0-45 (cond + ((< 16384.0 f28-0) + (+ (* f24-0 (-> s5-0 upward-tilt)) (* f0-43 (-> s5-0 backward-twist))) + ) + ((< f28-0 -16384.0) + (+ (* f24-0 (-> s5-0 downward-tilt)) (* f0-43 (-> s5-0 backward-twist))) + ) + ((< 0.0 f28-0) + (+ (* f24-0 (-> s5-0 upward-tilt)) (* f0-43 (-> s5-0 forward-twist))) + ) + (else + (+ (* f24-0 (-> s5-0 downward-tilt)) (* f0-43 (-> s5-0 forward-twist))) + ) + ) + ) + ) + (if (< f0-45 f26-0) + (set! f26-0 f0-45) + ) + ) + ) + (let ((f26-1 (cos f26-0))) + (set-vector! s2-0 (cos f28-0) (sin f28-0) 0.0 1.0) + (vector-normalize! s2-0 (sqrtf (- 1.0 (square f26-1)))) + (set! (-> s2-0 z) f26-1) + ) + ) + (matrix-transpose! s4-1 s4-1) + (vector-matrix*! s2-0 s2-0 s4-1) + (if (< f30-0 1.0) + (matrix-from-two-vectors-partial-linear! s4-1 s3-0 s2-0 f30-0) + (matrix-from-two-vectors! s4-1 s3-0 s2-0) + ) + ) + (let ((s3-1 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) + (set-vector! (-> arg0 bone transform trans) 0.0 0.0 0.0 1.0) + (matrix*! (-> arg0 bone transform) (-> arg0 bone transform) s4-1) + (when (logtest? (-> s5-0 flags) (joint-mod-polar-flags no-z-rot)) + (let ((a1-25 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 bone transform uvec) -1.0))) + (matrix-remove-z-rot (-> arg0 bone transform) a1-25) + ) + ) + (set! (-> arg0 bone transform trans quad) (-> s3-1 quad)) + ) + ) + ) + ) + 0 + (none) + ) diff --git a/goal_src/jakx/engine/camera/cam-debug-h.gc b/goal_src/jakx/engine/camera/cam-debug-h.gc index eea5f8465f..45948840d1 100644 --- a/goal_src/jakx/engine/camera/cam-debug-h.gc +++ b/goal_src/jakx/engine/camera/cam-debug-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: cam-debug-h ;; dgos: ENGINE, GAME +(define-extern debug-set-camera-pos-rot! (function vector matrix vector)) + ;; DECOMP BEGINS ;; this file is debug only diff --git a/goal_src/jakx/engine/camera/pov-camera-h.gc b/goal_src/jakx/engine/camera/pov-camera-h.gc index 7b83b92b6a..1df553f925 100644 --- a/goal_src/jakx/engine/camera/pov-camera-h.gc +++ b/goal_src/jakx/engine/camera/pov-camera-h.gc @@ -5,4 +5,15 @@ ;; name in dgo: pov-camera-h ;; dgos: ENGINE, GAME +;; +++pov-camera-flag +(defenum pov-camera-flag + :bitfield #t + :type int32 + (notify-of-abort 0) + (allow-abort 1) + (inherit-orientation 2) + (pcf3 3) + ) +;; ---pov-camera-flag + ;; DECOMP BEGINS diff --git a/goal_src/jakx/engine/collide/collide-cache-h.gc b/goal_src/jakx/engine/collide/collide-cache-h.gc index 32e574981d..59f56ab61f 100644 --- a/goal_src/jakx/engine/collide/collide-cache-h.gc +++ b/goal_src/jakx/engine/collide/collide-cache-h.gc @@ -107,7 +107,7 @@ It is not useful for ollision queries against a specific foreground object, like (:methods (new (symbol type int int) _type_) (collide-cache-method-9 () none) - (collide-cache-method-10 () none) + (fill-and-probe-using-line-sphere (_type_ collide-query) float) (collide-cache-method-11 () none) (collide-cache-method-12 () none) (collide-cache-method-13 () none) diff --git a/goal_src/jakx/engine/collide/collide-frag.gc b/goal_src/jakx/engine/collide/collide-frag.gc index dbb5b23a53..463006f657 100644 --- a/goal_src/jakx/engine/collide/collide-frag.gc +++ b/goal_src/jakx/engine/collide/collide-frag.gc @@ -7,3 +7,96 @@ ;; DECOMP BEGINS +(defmethod login ((this drawable-tree-collide-fragment)) + "Initialize the object after it is loaded." + this + ) + +(defmethod draw ((this drawable-tree-collide-fragment)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (when *display-render-collision* + (dotimes (s5-0 (-> this length)) + (draw (-> this data s5-0)) + ) + ) + 0 + (none) + ) + +(defmethod unpack-vis ((this drawable-tree-collide-fragment) (arg0 (pointer int8)) (arg1 (pointer int8))) + arg1 + ) + +;; WARN: Return type mismatch int vs collide-fragment. +(defmethod mem-usage ((this collide-fragment) (usage memory-usage-block) (flags int)) + (let ((s5-0 (if (logtest? flags 1) + 54 + 50 + ) + ) + (s4-0 (-> this mesh)) + ) + (set! (-> usage data s5-0 name) "collide-fragment") + (+! (-> usage data s5-0 count) 1) + (let ((v1-9 (+ (asize-of this) (asize-of s4-0)))) + (+! (-> usage data s5-0 used) v1-9) + (+! (-> usage data s5-0 total) (logand -16 (+ v1-9 15))) + ) + (set! (-> usage data (+ s5-0 1) name) "collision-poly") + (+! (-> usage data (+ s5-0 1) count) (-> s4-0 poly-count)) + (let ((v1-20 (+ (-> s4-0 strip-data-len) (-> s4-0 poly-count)))) + (+! (-> usage data (+ s5-0 1) used) v1-20) + (+! (-> usage data (+ s5-0 1) total) v1-20) + ) + (set! (-> usage data (+ s5-0 2) name) "collision-vertex") + (+! (-> usage data (+ s5-0 2) count) (-> s4-0 vertex-count)) + (let ((v1-29 (* (-> s4-0 vertex-data-qwc) 16))) + (+! (-> usage data (+ s5-0 2) used) v1-29) + (let ((v0-2 (+ (-> usage data (+ s5-0 2) total) v1-29))) + (set! (-> usage data (+ s5-0 2) total) v0-2) + (the-as collide-fragment v0-2) + ) + ) + ) + ) + +(defmethod login ((this drawable-inline-array-collide-fragment)) + "Initialize the object after it is loaded." + this + ) + +(defmethod draw ((this collide-fragment)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + 0 + (none) + ) + +(defmethod draw ((this drawable-inline-array-collide-fragment)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (dotimes (s5-0 (-> this length)) + (let ((s4-0 (-> this data s5-0))) + (if (sphere-cull (-> s4-0 bsphere)) + (draw s4-0) + ) + ) + ) + 0 + (none) + ) + +(defmethod mem-usage ((this drawable-inline-array-collide-fragment) (usage memory-usage-block) (flags int)) + (set! (-> usage length) (max 1 (-> usage length))) + (set! (-> usage data 0 name) "drawable-group") + (+! (-> usage data 0 count) 1) + (let ((v1-5 32)) + (+! (-> usage data 0 used) v1-5) + (+! (-> usage data 0 total) (logand -16 (+ v1-5 15))) + ) + (dotimes (s3-0 (-> this length)) + (mem-usage (-> this data s3-0) usage flags) + ) + this + ) diff --git a/goal_src/jakx/engine/collide/collide-planes.gc b/goal_src/jakx/engine/collide/collide-planes.gc index fb2c235c3d..68fe2cae86 100644 --- a/goal_src/jakx/engine/collide/collide-planes.gc +++ b/goal_src/jakx/engine/collide/collide-planes.gc @@ -7,3 +7,10 @@ ;; DECOMP BEGINS +;; ERROR: function has no type analysis. Cannot decompile. + +;; ERROR: function has no type analysis. Cannot decompile. + +;; ERROR: function has no type analysis. Cannot decompile. + +;; ERROR: function has no type analysis. Cannot decompile. diff --git a/goal_src/jakx/engine/collide/collide-probe.gc b/goal_src/jakx/engine/collide/collide-probe.gc index 5d07a818c4..51be224ec8 100644 --- a/goal_src/jakx/engine/collide/collide-probe.gc +++ b/goal_src/jakx/engine/collide/collide-probe.gc @@ -5,5 +5,191 @@ ;; name in dgo: collide-probe ;; dgos: ENGINE, GAME +(define-extern probe-traverse-draw-node (function draw-node int none)) + ;; DECOMP BEGINS +(defun creates-new-method? ((arg0 type) (arg1 int)) + (let ((v1-1 (-> arg0 parent allocated-length))) + (-> arg0 allocated-length) + (>= arg1 (the-as int v1-1)) + ) + ) + +(defun overrides-parent-method? ((arg0 type) (arg1 int)) + (!= (-> arg0 method-table arg1) (-> arg0 parent method-table arg1)) + ) + +(defun describe-methods ((arg0 type)) + (let ((s5-0 (-> arg0 allocated-length))) + (dotimes (s4-0 (the-as int s5-0)) + (let ((s3-0 arg0)) + (format #t "~3d:~%" s4-0) + (while (!= s3-0 basic) + (cond + ((creates-new-method? s3-0 s4-0) + (format #t " created by ~s.~%" (symbol->string (-> s3-0 symbol))) + (set! s3-0 basic) + ) + ((overrides-parent-method? s3-0 s4-0) + (format #t " overridden by ~s.~%" (symbol->string (-> s3-0 symbol))) + (set! s3-0 (-> s3-0 parent)) + ) + (else + (set! s3-0 (-> s3-0 parent)) + ) + ) + ) + ) + ) + ) + #f + ) + +;; WARN: Return type mismatch symbol vs none. +(defun indent-to ((arg0 int)) + (dotimes (s5-0 arg0) + (format #t " ") + ) + (none) + ) + +(defun probe-traverse-draw-node ((arg0 draw-node) (arg1 int)) + (indent-to arg1) + (format + #t + "[~08x] child-count: ~d, flags: ~d, dist: ~f, child: ~a~%" + arg0 + (-> arg0 child-count) + (-> arg0 flags) + (-> arg0 distance) + (-> arg0 child) + ) + (cond + ((nonzero? (-> arg0 flags)) + (let ((s4-0 (-> arg0 child))) + (dotimes (s3-0 (the-as int (-> arg0 child-count))) + (probe-traverse-draw-node (the-as draw-node (+ (the-as uint s4-0) (* s3-0 32))) (+ arg1 1)) + ) + ) + ) + (else + ) + ) + 0 + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun probe-traverse-inline-array-node ((arg0 drawable-inline-array-node) (arg1 int)) + (indent-to arg1) + (format #t "[~08x] drawable-inline-array-node: length = ~d~%" arg0 (-> arg0 length)) + (let ((s4-0 (-> arg0 length))) + (dotimes (s3-0 s4-0) + (indent-to arg1) + (format #t "(~3d) ~a~%" s3-0 (-> arg0 data s3-0)) + (if (= (-> arg0 data s3-0 type) draw-node) + (probe-traverse-draw-node (-> arg0 data s3-0) (+ arg1 1)) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun probe-traverse-collide-fragment ((arg0 drawable-tree-collide-fragment) (arg1 int)) + (indent-to arg1) + (format #t "[~08x] drawable-tree-collide-fragment: length = ~d~%" arg0 (-> arg0 length)) + (let ((s4-0 (-> arg0 length))) + (dotimes (s3-0 (+ s4-0 -1)) + (indent-to arg1) + (if (= (-> arg0 data s3-0 type) drawable-inline-array-node) + (probe-traverse-inline-array-node (the-as drawable-inline-array-node (-> arg0 data s3-0)) (+ arg1 1)) + (format #t "unknown: ~a~%" (-> arg0 data s3-0)) + ) + ) + ) + (none) + ) + +(deftype collide-probe-stack-elem (structure) + ((child uint32) + (count uint32) + ) + ) + + +(deftype collide-probe-stack (structure) + ((data collide-probe-stack-elem 1024 :inline) + ) + ) + + +(define *collide-probe-stack* (the-as collide-probe-stack (+ 4192 #x70000000))) + +(define collide-vu0-block (new 'static 'vu-function :length 90 :qlength 45)) + +(defun print-out ((arg0 int)) + (format *stdcon* "~d~%" arg0) + ) + +(defun collide-probe-instance-tie-collide-frags () + 0 + (none) + ) + +(defun distc ((arg0 vector) (arg1 vector)) + (sqrtf (+ (square (- (-> arg0 x) (-> arg1 x))) (square (- (-> arg0 z) (-> arg1 z))))) + ) + +(defun interpolate ((arg0 float) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + (let ((f0-1 (- arg3 arg1)) + (f1-2 (- arg4 arg2)) + (f3-1 (- arg0 arg1)) + ) + (+ arg2 (/ (* f3-1 f1-2) f0-1)) + ) + ) + +(defun misty-ambush-height ((arg0 vector)) + (let* ((a1-0 (new 'static 'vector :data (new 'static 'array float 4 -808960.0 111656.96 3924992.0 0.0))) + (f0-0 (distc arg0 a1-0)) + ) + (cond + ((< f0-0 52019.2) + 111656.96 + ) + ((>= 58982.4 f0-0) + (interpolate f0-0 52019.2 111656.96 58982.4 116776.96) + ) + ((>= 124436.48 f0-0) + (interpolate f0-0 58982.4 116776.96 124436.48 114688.0) + ) + ((>= 219217.92 f0-0) + (interpolate f0-0 124436.48 114688.0 219217.92 113254.4) + ) + (else + 113254.4 + ) + ) + ) + ) + +(defun misty-ambush-height-probe ((arg0 vector) (arg1 float)) + (let ((f0-0 (misty-ambush-height arg0))) + (cond + ((< f0-0 (-> arg0 y)) + (/ (- (-> arg0 y) f0-0) arg1) + ) + (else + (format 0 "WARNING: ~%height = ~f, pos.y = ~f" (/ f0-0 METER_LENGTH) (/ (-> arg0 y) METER_LENGTH)) + -1.0 + ) + ) + ) + ) + +(defun pke-collide-test () + 0 + (none) + ) diff --git a/goal_src/jakx/engine/collide/collide-touch.gc b/goal_src/jakx/engine/collide/collide-touch.gc index 3b6249ee10..f32c472dcb 100644 --- a/goal_src/jakx/engine/collide/collide-touch.gc +++ b/goal_src/jakx/engine/collide/collide-touch.gc @@ -7,3 +7,540 @@ ;; DECOMP BEGINS +(defmethod get-free-node-count ((this touching-prims-entry-pool)) + (let ((v0-0 0)) + (let ((v1-0 (-> this head))) + (while v1-0 + (+! v0-0 1) + (set! v1-0 (-> v1-0 next)) + (nop!) + (nop!) + (nop!) + ) + ) + v0-0 + ) + ) + +(defmethod alloc-node ((this touching-prims-entry-pool)) + (let ((gp-0 (-> this head))) + (cond + (gp-0 + (let ((v1-0 (-> gp-0 next))) + (set! (-> this head) v1-0) + (if v1-0 + (set! (-> v1-0 prev) #f) + ) + ) + (set! (-> gp-0 allocated?) #t) + (set! (-> gp-0 next) #f) + (set! (-> gp-0 prev) #f) + ) + (else + (format 0 "ERROR: touching-prims-entry-pool::alloc-node() failed!~%") + ) + ) + gp-0 + ) + ) + +(defmethod free-node ((this touching-prims-entry-pool) (arg0 touching-prims-entry)) + (when (-> arg0 allocated?) + (set! (-> arg0 allocated?) #f) + (let ((v1-1 (-> this head))) + (set! (-> arg0 next) v1-1) + (set! (-> arg0 prev) #f) + (set! (-> this head) arg0) + (when v1-1 + (set! (-> v1-1 prev) arg0) + arg0 + ) + ) + ) + ) + +(defmethod free-touching-prims-list ((this touching-shapes-entry)) + (when (-> this cshape1) + (set! (-> this cshape1) #f) + (let ((gp-0 (-> this head))) + (when gp-0 + (set! (-> this head) #f) + (let ((s5-0 *touching-prims-entry-pool*)) + (while gp-0 + (let ((a1-0 gp-0)) + (set! gp-0 (-> a1-0 next)) + (free-node s5-0 a1-0) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod free-nodes ((this touching-list)) + (let ((s5-0 (the-as object (-> this touching-shapes)))) + (countdown (s4-0 (-> this num-touching-shapes)) + (free-touching-prims-list (the-as touching-shapes-entry s5-0)) + (set! s5-0 (&+ (the-as touching-shapes-entry s5-0) 32)) + ) + ) + (set! (-> this num-touching-shapes) 0) + (set! (-> this resolve-u) 0) + 0 + (none) + ) + +;; WARN: Return type mismatch object vs touching-shapes-entry. +(defmethod get-shapes-entry ((this touching-list) (arg0 collide-shape) (arg1 collide-shape)) + (let ((v0-0 (the-as object (-> this touching-shapes)))) + (let ((v1-0 (the-as touching-shapes-entry #f))) + (countdown (a3-0 (-> this num-touching-shapes)) + (let ((t0-0 (-> (the-as touching-shapes-entry v0-0) cshape1))) + (set! v1-0 (cond + (t0-0 + (if (or (and (= t0-0 arg0) (= (-> (the-as touching-shapes-entry v0-0) cshape2) arg1)) + (and (= t0-0 arg1) (= (-> (the-as touching-shapes-entry v0-0) cshape2) arg0)) + ) + (return (the-as touching-shapes-entry v0-0)) + ) + v1-0 + ) + (else + (the-as touching-shapes-entry v0-0) + ) + ) + ) + ) + (set! v0-0 (&+ (the-as touching-shapes-entry v0-0) 32)) + ) + (cond + (v1-0 + (set! v0-0 v1-0) + ) + (else + (when (>= (-> this num-touching-shapes) 32) + (format 0 "ERROR: touching-list::get-shapes-entry() failed!~%") + (return (the-as touching-shapes-entry #f)) + ) + (+! (-> this num-touching-shapes) 1) + ) + ) + ) + (set! (-> (the-as touching-shapes-entry v0-0) cshape1) arg0) + (set! (-> (the-as touching-shapes-entry v0-0) cshape2) arg1) + (set! (-> (the-as touching-shapes-entry v0-0) head) #f) + (set! (-> (the-as touching-shapes-entry v0-0) resolve-u) 1) + (set! (-> this resolve-u) 1) + (set! (-> (the-as touching-shapes-entry v0-0) handle1) (process->handle (-> arg0 process))) + (set! (-> (the-as touching-shapes-entry v0-0) handle2) (process->handle (-> arg1 process))) + (the-as touching-shapes-entry v0-0) + ) + ) + +(deftype add-prims-touching-work (structure) + ((tri1 collide-tri-result) + (tri2 collide-tri-result) + ) + ) + + +;; WARN: Function (method 9 touching-list) has a return type of none, but the expression builder found a return statement. +(defmethod add-touching-prims ((this touching-list) + (arg0 collide-shape-prim) + (arg1 collide-shape-prim) + (arg2 float) + (arg3 collide-tri-result) + (arg4 collide-tri-result) + ) + (let ((gp-0 (new 'stack-no-clear 'add-prims-touching-work))) + (set! (-> gp-0 tri1) arg3) + (set! (-> gp-0 tri2) arg4) + (let ((s2-0 (get-shapes-entry this (-> arg0 cshape) (-> arg1 cshape)))) + (when s2-0 + (when (= (-> s2-0 cshape1) (-> arg1 cshape)) + (let ((v1-4 arg0)) + (set! arg0 arg1) + (set! arg1 v1-4) + ) + ) + (let ((s0-0 (-> s2-0 head))) + (while s0-0 + (when (and (= (-> s0-0 prim1 cprim) arg0) (= (-> s0-0 prim2 cprim) arg1)) + (when (< arg2 (-> s0-0 u)) + (-> s0-0 u) + (let ((v1-12 (-> s0-0 prim1)) + (a1-2 (-> gp-0 tri1)) + ) + (cond + (a1-2 + (set! (-> v1-12 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-12 tri)) (the-as pointer a1-2) 88) + ) + (else + (set! (-> v1-12 has-tri?) #f) + ) + ) + ) + (let ((v1-15 (-> s0-0 prim2)) + (a1-3 (-> gp-0 tri2)) + ) + (cond + (a1-3 + (set! (-> v1-15 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-15 tri)) (the-as pointer a1-3) 88) + ) + (else + (set! (-> v1-15 has-tri?) #f) + ) + ) + ) + ) + (return 0) + ) + (set! s0-0 (-> s0-0 next)) + ) + ) + (let ((s0-1 (alloc-node *touching-prims-entry-pool*))) + (when s0-1 + (let ((v1-22 (-> s2-0 head))) + (set! (-> s0-1 next) v1-22) + (set! (-> s0-1 prev) #f) + (set! (-> s2-0 head) s0-1) + (if v1-22 + (set! (-> v1-22 prev) s0-1) + ) + ) + (set! (-> s0-1 u) arg2) + (when (>= arg2 0.0) + (set! (-> s2-0 resolve-u) 1) + (set! (-> this resolve-u) 1) + ) + (let ((v1-26 (-> s0-1 prim1)) + (a1-4 (-> gp-0 tri1)) + ) + (set! (-> v1-26 cprim) arg0) + (cond + (a1-4 + (set! (-> v1-26 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-26 tri)) (the-as pointer a1-4) 88) + ) + (else + (set! (-> v1-26 has-tri?) #f) + ) + ) + ) + (let ((v1-29 (-> s0-1 prim2)) + (a1-5 (-> gp-0 tri2)) + ) + (set! (-> v1-29 cprim) arg1) + (cond + (a1-5 + (set! (-> v1-29 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-29 tri)) (the-as pointer a1-5) 88) + ) + (else + (set! (-> v1-29 has-tri?) #f) + ) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod update-from-step-size ((this touching-list) (arg0 float)) + (when (nonzero? (-> this resolve-u)) + (set! (-> this resolve-u) 0) + (let ((s5-0 (the-as object (-> this touching-shapes)))) + (countdown (s4-0 (-> this num-touching-shapes)) + (when (nonzero? (-> (the-as touching-shapes-entry s5-0) resolve-u)) + (set! (-> (the-as touching-shapes-entry s5-0) resolve-u) 0) + (when (-> (the-as touching-shapes-entry s5-0) cshape1) + (let ((s3-0 (-> (the-as touching-shapes-entry s5-0) head))) + (while s3-0 + (let ((f0-0 (-> s3-0 u))) + (set! s3-0 (cond + ((>= f0-0 0.0) + (cond + ((>= arg0 f0-0) + (set! (-> s3-0 u) -1.0) + (set! s3-0 (-> s3-0 next)) + ) + (else + (let ((a1-1 s3-0)) + (let ((v1-8 (-> s3-0 next))) + (let ((a0-1 (-> s3-0 prev))) + (if a0-1 + (set! (-> a0-1 next) v1-8) + (set! (-> (the-as touching-shapes-entry s5-0) head) v1-8) + ) + (if v1-8 + (set! (-> v1-8 prev) a0-1) + ) + ) + (set! s3-0 v1-8) + ) + (free-node *touching-prims-entry-pool* a1-1) + ) + ) + ) + s3-0 + ) + (else + (-> s3-0 next) + ) + ) + ) + ) + ) + ) + (if (not (-> (the-as touching-shapes-entry s5-0) head)) + (set! (-> (the-as touching-shapes-entry s5-0) cshape1) #f) + ) + ) + ) + (set! s5-0 (&+ (the-as touching-shapes-entry s5-0) 32)) + ) + ) + ) + 0 + (none) + ) + +(defmethod send-events-for-touching-shapes ((this touching-list)) + (let ((gp-0 (the-as object (-> this touching-shapes)))) + (countdown (s5-0 (-> this num-touching-shapes)) + (let ((s3-0 (-> (the-as touching-shapes-entry gp-0) cshape1))) + (when s3-0 + (let ((s4-0 (handle->process (-> (the-as touching-shapes-entry gp-0) handle1))) + (s2-0 (handle->process (-> (the-as touching-shapes-entry gp-0) handle2))) + ) + (when (and s4-0 s2-0) + (let ((s1-0 (-> (the-as touching-shapes-entry gp-0) cshape2))) + (when (< (-> s3-0 event-priority) (-> s1-0 event-priority)) + (let ((v1-9 s3-0)) + (set! s3-0 s1-0) + (set! s1-0 v1-9) + ) + (let ((v1-11 s4-0)) + (set! s4-0 s2-0) + (set! s2-0 v1-11) + ) + ) + (let ((v1-13 (-> s3-0 event-self))) + (if v1-13 + (send-event s4-0 v1-13 :from s2-0 gp-0) + ) + ) + (let ((v1-14 (-> s3-0 event-other))) + (if v1-14 + (send-event s2-0 v1-14 :from s4-0 gp-0) + ) + ) + (let ((v1-15 (-> s1-0 event-self))) + (if v1-15 + (send-event s2-0 v1-15 :from s4-0 gp-0) + ) + ) + (let ((v1-16 (-> s1-0 event-other))) + (if v1-16 + (send-event s4-0 v1-16 :from s2-0 gp-0) + ) + ) + ) + ) + ) + ) + ) + (set! gp-0 (&+ (the-as touching-shapes-entry gp-0) 32)) + ) + ) + 0 + (none) + ) + +(defmethod prims-touching? ((this touching-shapes-entry) (arg0 collide-shape) (arg1 uint)) + (cond + ((= (-> this cshape1) arg0) + (let ((v1-1 (-> this head))) + (while v1-1 + (if (logtest? (-> v1-1 prim1 cprim prim-id) arg1) + (return v1-1) + ) + (set! v1-1 (-> v1-1 next)) + ) + ) + ) + ((= (-> this cshape2) arg0) + (let ((v1-4 (-> this head))) + (while v1-4 + (if (logtest? (-> v1-4 prim2 cprim prim-id) arg1) + (return v1-4) + ) + (set! v1-4 (-> v1-4 next)) + ) + ) + ) + (else + (format 0 "ERROR: touching-shapes-entry::prims-touching? : Bogus cshape value!~%") + ) + ) + (the-as touching-prims-entry #f) + ) + +;; WARN: Return type mismatch touching-prims-entry vs basic. +(defmethod prims-touching-action? ((this touching-shapes-entry) (arg0 collide-shape) (arg1 collide-action) (arg2 collide-action)) + (cond + ((= (-> this cshape1) arg0) + (let ((v1-1 (-> this head))) + (while v1-1 + (let ((a0-1 (-> v1-1 prim1 cprim))) + (if (and (logtest? arg1 (-> a0-1 prim-core action)) (not (logtest? arg2 (-> a0-1 prim-core action)))) + (return (the-as basic v1-1)) + ) + ) + (set! v1-1 (-> v1-1 next)) + ) + ) + ) + ((= (-> this cshape2) arg0) + (let ((v1-4 (-> this head))) + (while v1-4 + (let ((a0-5 (-> v1-4 prim2 cprim))) + (if (and (logtest? arg1 (-> a0-5 prim-core action)) (not (logtest? arg2 (-> a0-5 prim-core action)))) + (return (the-as basic v1-4)) + ) + ) + (set! v1-4 (-> v1-4 next)) + ) + ) + ) + (else + (format 0 "ERROR: touching-shapes-entry::prims-touching-action? : Bogus cshape value!~%") + ) + ) + (the-as basic #f) + ) + +(defmethod get-touched-shape ((this touching-shapes-entry) (arg0 collide-shape)) + (cond + ((= (-> this cshape1) arg0) + (return (-> this cshape2)) + ) + ((= (-> this cshape2) arg0) + (return (-> this cshape1)) + ) + ) + (the-as collide-shape #f) + ) + +(defmethod get-touched-prim ((this touching-prims-entry) (arg0 collide-shape) (arg1 touching-shapes-entry)) + (cond + ((= (-> arg1 cshape1) arg0) + (return (-> this prim1 cprim)) + ) + ((= (-> arg1 cshape2) arg0) + (return (-> this prim2 cprim)) + ) + ) + (the-as collide-shape-prim #f) + ) + +(defmethod get-touched-tri ((this touching-prims-entry) (arg0 collide-shape) (arg1 touching-shapes-entry)) + (let ((v0-0 (the-as collide-tri-result #f))) + (cond + ((not this) + ) + ((= (-> arg1 cshape1) arg0) + (let ((v1-4 (-> this prim1))) + (if (-> v1-4 has-tri?) + (set! v0-0 (-> v1-4 tri)) + ) + ) + ) + ((= (-> arg1 cshape2) arg0) + (let ((v1-7 (-> this prim2))) + (if (-> v1-7 has-tri?) + (set! v0-0 (-> v1-7 tri)) + ) + ) + ) + ) + v0-0 + ) + ) + +(defmethod touching-prims-entry-method-9 ((this touching-prims-entry) (arg0 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let* ((s4-0 (-> this prim1 cprim)) + (v1-0 (-> this prim2 cprim)) + (gp-1 + (vector-! (new 'stack-no-clear 'vector) (-> v1-0 prim-core world-sphere) (-> s4-0 prim-core world-sphere)) + ) + ) + (let ((f1-2 (- (- (vector-length gp-1) (-> v1-0 prim-core world-sphere w)) (-> s4-0 prim-core world-sphere w)))) + (vector-normalize! gp-1 (+ (-> s4-0 prim-core world-sphere w) (/ f1-2 2))) + ) + (let ((v1-2 arg0)) + (let ((a0-5 (-> s4-0 prim-core))) + (.lvf vf4 (&-> gp-1 quad)) + (.lvf vf5 (&-> a0-5 world-sphere quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-2 quad) vf6) + ) + ) + arg0 + ) + ) + +(defmethod get-middle-of-bsphere-overlap ((this touching-prims-entry) (arg0 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (-> this prim1 cprim)) + (a2-0 (-> this prim2 cprim)) + (a0-1 arg0) + ) + (let ((a2-1 (-> a2-0 prim-core)) + (v1-1 (-> v1-0 prim-core)) + ) + (.lvf vf4 (&-> a2-1 world-sphere quad)) + (.lvf vf5 (&-> v1-1 world-sphere quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-1 quad) vf6) + ) + (vector-float*! arg0 arg0 0.5) + arg0 + ) + ) + +(defun get-intersect-point ((arg0 vector) (arg1 touching-prims-entry) (arg2 collide-shape) (arg3 touching-shapes-entry)) + (when arg1 + (let ((a0-2 (get-touched-tri arg1 arg2 arg3))) + (if a0-2 + (set! (-> arg0 quad) (-> a0-2 intersect quad)) + (touching-prims-entry-method-9 arg1 arg0) + ) + ) + ) + arg0 + ) diff --git a/goal_src/jakx/engine/collide/collide.gc b/goal_src/jakx/engine/collide/collide.gc index f241cc8612..4e95bbc3c7 100644 --- a/goal_src/jakx/engine/collide/collide.gc +++ b/goal_src/jakx/engine/collide/collide.gc @@ -7,3 +7,18 @@ ;; DECOMP BEGINS +(define *collide-vif0-init* (new 'static 'boxed-array :type uint32 + #x30000000 + #x4d000000 + #x4d000000 + #x4d000000 + #x3f800000 + #x5000001 + #x20000000 + #x40404040 + #x1000404 + #x0 + #x0 + #x0 + ) + ) diff --git a/goal_src/jakx/engine/collide/find-nearest-h.gc b/goal_src/jakx/engine/collide/find-nearest-h.gc index a3b55dab12..8c6477674a 100644 --- a/goal_src/jakx/engine/collide/find-nearest-h.gc +++ b/goal_src/jakx/engine/collide/find-nearest-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: find-nearest-h ;; dgos: ENGINE, GAME +(define-extern find-nearest-focusable (function (array collide-shape) vector float search-info-flag search-info-flag vector vector float process-focusable)) + ;; DECOMP BEGINS (define *HACK-find-nearest-focusable-ignore* #f) diff --git a/goal_src/jakx/engine/collide/main-collide.gc b/goal_src/jakx/engine/collide/main-collide.gc index 685d5d48e1..7025b32d77 100644 --- a/goal_src/jakx/engine/collide/main-collide.gc +++ b/goal_src/jakx/engine/collide/main-collide.gc @@ -7,3 +7,191 @@ ;; DECOMP BEGINS +(defun drawable-sphere-box-intersect? ((arg0 drawable) (arg1 bounding-box4w)) + (local-vars (v1-1 uint128) (v1-2 uint128) (v1-3 uint128) (a0-1 uint128) (a1-2 uint128) (a2-0 uint128)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (nop!) + (nop!) + (.lvf vf1 (&-> arg0 bsphere quad)) + (.add.w.vf.xyz vf2 vf1 vf1) + (let ((v1-0 (-> arg1 min quad))) + (.sub.w.vf.xyz vf1 vf1 vf1) + (let ((a1-1 (-> arg1 max quad))) + (.ftoi.vf vf4 vf2) + (nop!) + (.ftoi.vf vf3 vf1) + (nop!) + (.mov a0-1 vf4) + (nop!) + (.mov a2-0 vf3) + (nop!) + (.pcgtw a1-2 a2-0 a1-1) + ) + (nop!) + (.pcgtw v1-1 v1-0 a0-1) + ) + (nop!) + (.por v1-2 a1-2 v1-1) + (nop!) + (.ppach v1-3 (the-as uint128 0) v1-2) + (nop!) + (let ((v1-4 (shl (the-as int v1-3) 16))) + (nop!) + (zero? v1-4) + ) + ) + ) + +(defun instance-sphere-box-intersect? ((arg0 drawable) (arg1 instance-tie) (arg2 bounding-box4w)) + (local-vars + (v1-3 uint128) + (v1-4 uint128) + (v1-5 uint128) + (a0-2 uint128) + (a1-2 uint128) + (a2-1 uint128) + (a3-1 uint128) + (a3-3 uint128) + (a3-4 uint128) + (t0-1 uint128) + (t0-2 uint128) + (t1-0 uint128) + (t2-1 uint128) + (t2-2 uint128) + ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf10 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (nop!) + (let ((v1-0 (-> arg1 max-scale))) + (nop!) + (let ((a3-0 (the-as uint128 (-> arg1 origin long 3)))) + (nop!) + (let ((t2-0 (the-as uint128 (-> arg1 origin long 0)))) + (.pextlh a3-1 a3-0 0) + (let ((t0-0 (the-as uint128 (-> arg1 origin long 1)))) + (.pw.sra t1-0 a3-1 10) + (let ((a3-2 (the-as uint128 (-> arg1 origin long 2)))) + (.pextlh t2-1 t2-0 0) + (nop!) + (.pw.sra t2-2 t2-1 16) + (nop!) + (.pextlh t0-1 t0-0 0) + (.mov vf8 t1-0) + (.pw.sra t0-2 t0-1 16) + (.mov vf5 t2-2) + (.pextlh a3-3 a3-2 0) + ) + ) + ) + ) + (.mov vf6 t0-2) + (.pw.sra a3-4 a3-3 16) + (.lvf vf9 (&-> arg1 bsphere quad)) + (nop!) + (.mov vf7 a3-4) + (nop!) + (.mov vf10 v1-0) + ) + (.itof.vf vf8 vf8) + (nop!) + (vitof12.xyzw vf5 vf5) + (nop!) + (vitof12.xyzw vf6 vf6) + (nop!) + (vitof12.xyzw vf7 vf7) + (nop!) + (.add.vf.xyz vf8 vf8 vf9) + (nop!) + (nop!) + (.lvf vf9 (&-> arg0 bsphere quad)) + (vitof12.xyzw vf10 vf10) + (nop!) + (.mul.w.vf.x vf10 vf10 vf9) + (nop!) + (.mul.x.vf acc vf5 vf9) + (nop!) + (.add.mul.y.vf acc vf6 vf9 acc) + (let ((v1-2 (-> arg2 min quad))) + (.add.mul.z.vf acc vf7 vf9 acc) + (let ((a1-1 (-> arg2 max quad))) + (.add.mul.w.vf vf1 vf8 vf0 acc) + (nop!) + (.add.x.vf.xyz vf2 vf1 vf10) + (nop!) + (.sub.x.vf.xyz vf1 vf1 vf10) + (nop!) + (.ftoi.vf vf4 vf2) + (nop!) + (.ftoi.vf vf3 vf1) + (nop!) + (.mov a0-2 vf4) + (nop!) + (.mov a2-1 vf3) + (nop!) + (.pcgtw a1-2 a2-1 a1-1) + ) + (nop!) + (.pcgtw v1-3 v1-2 a0-2) + ) + (nop!) + (.por v1-4 a1-2 v1-3) + (nop!) + (.ppach v1-5 (the-as uint128 0) v1-4) + (nop!) + (let ((v1-6 (shl (the-as int v1-5) 16))) + (nop!) + (zero? v1-6) + ) + ) + ) + +(defun instance-tfragment-add-debug-sphere ((arg0 drawable) (arg1 instance-tie)) + (local-vars (v1-1 uint128) (v1-2 uint128) (a3-0 float)) + (rlet ((vf0 :class vf) + (vf10 :class vf) + (vf11 :class vf) + (vf12 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (nop!) + (let ((v1-0 (the-as uint128 (-> arg1 origin long 3)))) + (.pextlh v1-1 v1-0 0) + ) + (.lvf vf9 (&-> arg0 bsphere quad)) + (.pw.sra v1-2 v1-1 10) + (.lvf vf10 (&-> arg1 bsphere quad)) + (nop!) + (.mov vf12 v1-2) + (.itof.vf vf12 vf12) + (nop!) + (.add.vf.xyz vf10 vf10 vf12) + (nop!) + (.add.vf.xyz vf9 vf9 vf10) + (nop!) + (.add.w.vf.x vf11 vf0 vf9) + (nop!) + (.mov a3-0 vf11) + (nop!) + (let ((a2-0 (new-stack-vector0))) + (.svf (&-> a2-0 quad) vf9) + (add-debug-sphere #t (bucket-id bucket793) a2-0 a3-0 (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80)) + ) + ) + ) diff --git a/goal_src/jakx/engine/common-obs/debris.gc b/goal_src/jakx/engine/common-obs/debris.gc index 25ecbc026b..5d66b70a43 100644 --- a/goal_src/jakx/engine/common-obs/debris.gc +++ b/goal_src/jakx/engine/common-obs/debris.gc @@ -7,3 +7,31 @@ ;; DECOMP BEGINS +(deftype debris-static-joint-params (structure) + ((parent-joint-index int16 :offset-assert 0) + (group string :offset-assert 4) ;; guessed by decompiler + (offset vector :offset-assert 8) + (color-tint rgbaf :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) + +(deftype debris-static-params (basic) + ((joints (array debris-static-joint-params) :offset-assert 4) ;; guessed by decompiler + (collide-spec collide-spec :offset-assert 8) ;; guessed by decompiler + (sound-hit uint16 :offset-assert 12) ;; sound-name + (initial-sound-hit uint16 :offset-assert 14) + (roll-sound uint16 :offset-assert 16) + (art-level symbol :offset-assert 20) ;; guessed by decompiler + (vscale float :offset-assert 24) + (volume-time float :offset-assert 28) + (play-delay int32 :offset-assert 32) + (min-speed float :offset-assert 36) + (max-speed float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) \ No newline at end of file diff --git a/goal_src/jakx/engine/common-obs/generic-obs-h.gc b/goal_src/jakx/engine/common-obs/generic-obs-h.gc index cdc1107268..d82777662e 100644 --- a/goal_src/jakx/engine/common-obs/generic-obs-h.gc +++ b/goal_src/jakx/engine/common-obs/generic-obs-h.gc @@ -5,5 +5,72 @@ ;; name in dgo: generic-obs-h ;; dgos: ENGINE, GAME +;; +++manipy-options +(defenum manipy-options + :bitfield #t + :type uint32 + (mo0 0) + (mo1 1) + (mo2 2) + (mo3 3) + (mo4 4) + ) +;; ---manipy-options + +;; +++task-arrow-flags +(defenum task-arrow-flags + :type uint32 + :bitfield #t + (taf0 0) + (taf1 1) + (taf2 2) + (taf3 3) + (taf4 4) + (taf5 5) + (taf6 6) + (taf7 7) + (taf8 8) + ) +;; ---task-arrow-flags + ;; DECOMP BEGINS +(deftype manipy (process-drawable) + ((new-trans-hook (function none) :offset-assert 248) ;; guessed by decompiler + (cur-trans-hook (function none) :offset-assert 252) ;; guessed by decompiler + (cur-event-hook (function none) :offset-assert 256) ;; guessed by decompiler + (new-joint-anim art-joint-anim :offset-assert 260) ;; guessed by decompiler + (new-joint-anim-blend uint64 :offset-assert 264) + (new-joint-anim-frame float :offset-assert 272) + (anim-mode symbol :offset-assert 276) ;; guessed by decompiler + (cur-grab-handle uint64 :offset-assert 280) ;; handle + (cur-target-handle uint64 :offset-assert 288) ;; handle + (old-grab-pos vector :inline :offset-assert 304) + (joint joint-mod 4 :offset-assert 320) ;; guessed by decompiler + (new-post-hook (function none) :offset-assert 336) ;; guessed by decompiler + (cur-post-hook (function none) :offset-assert 340) ;; guessed by decompiler + (clone-copy-trans symbol :offset-assert 344) ;; guessed by decompiler + (shadow-backup shadow-geo :offset-assert 348) ;; guessed by decompiler + (draw? symbol :offset-assert 352) ;; guessed by decompiler + (userdata uint64 :offset-assert 360) + (prefix basic :offset-assert 368) + (shadow-volume-joint int32 :offset-assert 372) + (speed float :offset-assert 376) + (user-uint64 uint64 4 :offset-assert 384) ;; guessed by decompiler + (options manipy-options :offset-assert 416) ;; guessed by decompiler + ) + :method-count-assert 51 + :size-assert #x1a4 + :flag-assert #x33012001a4 + ;; field userdata uses ~A with a 64-bit load. + (:methods + (manipy-method-50 () none) ;; 50 + ) + ) + +(deftype process-hidden (process) + () + (:state-methods + die + ) + ) \ No newline at end of file diff --git a/goal_src/jakx/engine/common-obs/prim-h.gc b/goal_src/jakx/engine/common-obs/prim-h.gc index 3158ff45f5..7deba2fe8e 100644 --- a/goal_src/jakx/engine/common-obs/prim-h.gc +++ b/goal_src/jakx/engine/common-obs/prim-h.gc @@ -76,7 +76,7 @@ These are owned by the thing submitting to prim, not the prim renderer itself." (num-verts uint16) (allocated-num-verts uint16) (last-tex-id uint32) - (data prim-vertex :dynamic) + (data prim-vertex :inline :dynamic) ) (:methods (new (symbol type int texture-id string) _type_) @@ -119,17 +119,17 @@ These are owned by the thing submitting to prim, not the prim renderer itself." (set! (-> s5-0 texture-index) 4) (let ((f0-1 (/ 1.0 (the float (/ (+ arg0 -1) 2))))) (dotimes (v1-22 arg0) - (let ((a0-6 (&+ (-> s5-0 data) (* v1-22 32)))) - (set! (-> a0-6 0) (the-as prim-vertex (* (the float (/ v1-22 2)) f0-1))) - (set! (-> a0-6 1) (the-as prim-vertex (the float (logand v1-22 1)))) - (set! (-> a0-6 2) (the-as prim-vertex 0.0)) - (set! (-> a0-6 3) (the-as prim-vertex 0.0)) + (let ((a0-6 (-> s5-0 data v1-22))) + (set! (-> a0-6 stq x) (* (the float (/ v1-22 2)) f0-1)) + (set! (-> a0-6 stq y) (the float (logand v1-22 1))) + (set! (-> a0-6 stq z) 0.0) + (set! (-> a0-6 col) (the-as rgba 0.0)) ) (set! (-> (the-as (inline-array prim-vertex) (+ (the-as uint s5-0) (* v1-22 32))) 3 stq z) (the-as float (the-as uint #x80808080)) ) (set-vector! - (the-as vector (+ (the-as uint (the-as vector (&-> s5-0 data 4))) (* v1-22 32))) + (the-as vector (+ (the-as uint (the-as vector (-> s5-0 data 0 pos))) (* v1-22 32))) (* 4096.0 (the float (/ v1-22 2))) (* 4096.0 (the float (logand v1-22 1))) 0.0 diff --git a/goal_src/jakx/engine/common-obs/projectile-h.gc b/goal_src/jakx/engine/common-obs/projectile-h.gc index 10c49d9b5f..0316b9475d 100644 --- a/goal_src/jakx/engine/common-obs/projectile-h.gc +++ b/goal_src/jakx/engine/common-obs/projectile-h.gc @@ -5,5 +5,147 @@ ;; name in dgo: projectile-h ;; dgos: ENGINE, GAME +;; +++projectile-options +(defenum projectile-options + :bitfield #t + :type uint64 + (po0 0) + (po1 1) + (po2 2) + (po3 3) + (po4 4) + (po5 5) + (po6 6) + (po7 7) + (po8 8) + (po9 9) + (po10 10) + (po11 11) + (po12 12) + (po13 13) + (po14 14) + (po15 15) + (po16 16) + (po17 17) + (po18 18) + (po19 19) + (po20 20) + (po21 21) + (po22 22) + (po23 23) + (po24 24) + (po25 25) + (po26 26) + (po27 27) + (po28 28) + (po29 29) + (po30 30) + (po31 31) + ) +;; ---projectile-options + ;; DECOMP BEGINS +(deftype projectile (process-drawable) + ((starting-pos vector :inline :offset-assert 256) + (starting-dir vector :inline :offset-assert 272) + (target-pos vector :inline :offset-assert 288) + (base-target-pos vector :inline :offset-assert 304) + (pre-move-transv vector :inline :offset-assert 320) + (timeout time-frame :offset-assert 336) ;; time-frame + (spawn-time time-frame :offset-assert 344) ;; time-frame + (options projectile-options :offset-assert 352) ;; projectile-options + (last-target handle :offset-assert 360) ;; handle + (notify-handle handle :offset-assert 368) ;; handle + (owner-handle handle :offset-assert 376) ;; handle + (ignore-handle handle :offset-assert 384) ;; handle + (update-velocity (function projectile none) :offset-assert 392) ;; guessed by decompiler + (move (function projectile none) :offset-assert 396) ;; guessed by decompiler + (pick-target (function projectile none) :offset-assert 400) ;; guessed by decompiler + (max-speed float :offset-assert 404) + (old-dist float 16 :offset-assert 408) ;; guessed by decompiler + (old-dist-count int32 :offset-assert 472) + (hits int32 :offset-assert 476) + (max-hits int32 :offset-assert 480) + (tween float :offset-assert 484) + (attack-mode symbol :offset-assert 488) ;; guessed by decompiler + (attack-id uint32 :offset-assert 492) + (damage float :offset-assert 496) + (vehicle-damage-factor float :offset-assert 500) + (vehicle-impulse-factor float :offset-assert 504) + (charge-level float :offset-assert 508) + (sound-id sound-id :offset-assert 512) ;; guessed by decompiler + (stop-speed meters :offset-assert 516) + (invinc-time time-frame :offset-assert 520) ;; time-frame + (desired-target handle :offset-assert 528) ;; handle + (desired-target-pos vector :inline :offset-assert 544) + (wpn-type uint8 :offset-assert 560) + ) + :method-count-assert 72 + :size-assert #x231 + :flag-assert #x4801b00231 + (:methods + (projectile-method-50 () none) ;; 50 + (projectile-method-51 () none) ;; 51 + (projectile-method-52 () none) ;; 52 + (projectile-method-53 () none) ;; 53 + (projectile-method-54 () none) ;; 54 + (projectile-method-55 () none) ;; 55 + (projectile-method-56 () none) ;; 56 + (projectile-method-57 () none) ;; 57 + (projectile-method-58 () none) ;; 58 + (projectile-method-59 () none) ;; 59 + (projectile-method-60 () none) ;; 60 + (projectile-method-61 () none) ;; 61 + (projectile-method-62 () none) ;; 62 + (projectile-method-63 () none) ;; 63 + (projectile-method-64 () none) ;; 64 + (projectile-method-65 () none) ;; 65 + (projectile-method-66 () none) ;; 66 + (projectile-method-67 () none) ;; 67 + (projectile-method-68 () none) ;; 68 + (projectile-method-69 () none) ;; 69 + (projectile-method-70 () none) ;; 70 + (projectile-method-71 () none) ;; 71 + ) + ) + +(deftype projectile-init-by-other-params (structure) + ((pos vector :inline :offset-assert 0) + (vel vector :inline :offset-assert 16) + (target-pos vector :inline :offset-assert 32) + (target-handle handle :offset-assert 48) + (ent entity :offset-assert 56) ;; guessed by decompiler + (charge float :offset-assert 60) + (attack-id uint32 :offset-assert 64) + (options projectile-options :offset-assert 72) ;; projectile-options + (notify-handle handle :offset-assert 80) ;; handle + (owner-handle handle :offset-assert 88) ;; handle + (ignore-handle handle :offset-assert 96) ;; handle + (timeout time-frame :offset-assert 104) ;; time-frame + (damage float :offset-assert 112) + (vehicle-damage-factor float :offset-assert 116) + (vehicle-impulse-factor float :offset-assert 120) + (wpn-type uint8 :offset-assert 124) + ) + :method-count-assert 9 + :size-assert #x7d + :flag-assert #x90000007d + ) + +(deftype projectile-bounce (projectile) + ((played-bounce-time time-frame :offset-assert 568) ;; time-frame + (tumble-quat quaternion :inline :offset-assert 576) + (gravity float :offset-assert 592) + ) + :method-count-assert 75 + :size-assert #x254 + :flag-assert #x4b01d00254 + (:methods + (projectile-bounce-method-72 () none) ;; 72 + (projectile-bounce-method-73 () none) ;; 73 + (projectile-bounce-method-74 () none) ;; 74 + ) + ) + +(define-extern spawn-projectile (function type projectile-init-by-other-params process-tree dead-pool (pointer process))) ;; diff --git a/goal_src/jakx/engine/common-obs/water-h.gc b/goal_src/jakx/engine/common-obs/water-h.gc index 9b76db2c77..08ab30f4b0 100644 --- a/goal_src/jakx/engine/common-obs/water-h.gc +++ b/goal_src/jakx/engine/common-obs/water-h.gc @@ -7,3 +7,94 @@ ;; DECOMP BEGINS +(deftype water-control (basic) + ((flags water-flag) + (process target) + (joint-index int32) + (top-y-offset float) + (attack-id uint32) + (enter-water-time uint64) + (wade-time uint64) + (on-water-time uint64) + (enter-swim-time uint64) + (swim-time uint64) + (base-height meters) + (wade-height meters) + (swim-height meters) + (surface-height meters) + (bottom-height meters) + (collide-height meters) + (height meters) + (height-offset float 4) + (base-ocean-offset meters :overlay-at (-> height-offset 0)) + (real-ocean-offset meters :overlay-at (-> height-offset 0)) + (ocean-offset meters :overlay-at (-> height-offset 1)) + (bob-offset meters :overlay-at (-> height-offset 2)) + (align-offset meters :overlay-at (-> height-offset 3)) + (swim-depth meters :offset 108) + (bob smush-control :inline) + (ripple uint64) + (ripple-size meters) + (wake-size meters) + (bottom vector 2 :inline) + (top vector 2 :inline) + (enter-water-pos vector :inline) + (drip-old-pos vector :inline) + (drip-joint-index int32) + (drip-wetness float) + (drip-time uint64) + (drip-speed float) + (drip-height meters) + (drip-mult float) + (distort-time uint64) + (enter-water-sound uint16) + (normal vector :inline) + ) + (:methods + (new (symbol type process int float float float) _type_) + (water-control-method-9 () none) + (water-control-method-10 () none) + (water-control-method-11 () none) + (distance-from-surface (_type_) float) + (water-control-method-13 () none) + (display-water-marks? (_type_) symbol) + (water-control-method-15 () none) + (water-control-method-16 () none) + (water-control-method-17 () none) + ) + ) + + +(defmethod display-water-marks? ((this water-control)) + *display-water-marks* + ) + +(defmethod new water-control ((allocation symbol) (type-to-make type) (arg0 process) (arg1 int) (arg2 float) (arg3 float) (arg4 float)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 process) (the-as target arg0)) + (set! (-> v0-0 joint-index) arg1) + (set! (-> v0-0 wade-height) arg4) + (set! (-> v0-0 swim-height) arg3) + (set! (-> v0-0 bottom-height) 32768.0) + (set! (-> v0-0 ripple-size) 1638.4) + (set! (-> v0-0 wake-size) 3072.0) + (set! (-> v0-0 ripple) (the-as uint #f)) + (set! (-> v0-0 drip-mult) 1.0) + (set! (-> v0-0 top-y-offset) arg2) + (let* ((v1-6 *game-info*) + (a0-2 (+ (-> v1-6 attack-id) 1)) + ) + (set! (-> v1-6 attack-id) a0-2) + (set! (-> v0-0 attack-id) a0-2) + ) + v0-0 + ) + ) + +(defmethod distance-from-surface ((this water-control)) + (- (-> this top 0 y) (-> this height)) + ) + +(deftype water-vol (process-hidden) + () + ) diff --git a/goal_src/jakx/engine/data/art-h.gc b/goal_src/jakx/engine/data/art-h.gc index a033dc42fb..7b78e883c2 100644 --- a/goal_src/jakx/engine/data/art-h.gc +++ b/goal_src/jakx/engine/data/art-h.gc @@ -481,4 +481,7 @@ This stores settings like the name of the art-group, shadow/level-of-detail sett :global-effects ,global-effects :clothing ,clothing))) -;; TODO JAKX - data files, import them \ No newline at end of file +;; TODO JAKX - data files, import them +;; (import "goal_src/jakx/engine/data/art-elts.gc") +;; (import "goal_src/jakx/engine/data/joint-nodes.gc") +;; (import "goal_src/jakx/engine/data/part-groups.gc") \ No newline at end of file diff --git a/goal_src/jakx/engine/debug/debug-h.gc b/goal_src/jakx/engine/debug/debug-h.gc index 59a60ac2a8..c7b462134b 100644 --- a/goal_src/jakx/engine/debug/debug-h.gc +++ b/goal_src/jakx/engine/debug/debug-h.gc @@ -15,7 +15,7 @@ (define-extern drawable-tri-count (function drawable int)) (define-extern add-debug-x (function symbol bucket-id vector rgba symbol)) (define-extern add-debug-text-3d (function symbol bucket-id string vector font-color vector2h symbol)) -(define-extern add-debug-flat-triangle (function symbol bucket-id vector vector vector rgba symbol)) +(define-extern add-debug-flat-triangle (function symbol bucket-id vector vector vector rgba none)) (define-extern add-debug-box-with-transform (function symbol bucket-id bounding-box matrix rgba symbol)) (define-extern add-debug-line-sphere (function symbol bucket-id vector vector float rgba none)) diff --git a/goal_src/jakx/engine/debug/debug.gc b/goal_src/jakx/engine/debug/debug.gc index 75fdf6fbe8..cfe2085dff 100644 --- a/goal_src/jakx/engine/debug/debug.gc +++ b/goal_src/jakx/engine/debug/debug.gc @@ -5,6 +5,1701 @@ ;; name in dgo: debug ;; dgos: ENGINE, GAME +(define-extern add-debug-flat-triangle-noclip (function vector vector vector vector vector none)) + ;; DECOMP BEGINS -(define-extern add-debug-flat-triangle-noclip (function vector vector vector vector vector none)) \ No newline at end of file +;; ERROR: Bad vector register dependency: vf1 +;; ERROR: Bad vector register dependency: vf2 +;; ERROR: Bad vector register dependency: vf3 +;; ERROR: Bad vector register dependency: vf4 +;; ERROR: Bad vector register dependency: vf6 +;; ERROR: Bad vector register dependency: vf8 +;; ERROR: Bad vector register dependency: vf9 +(defun transform-float-point ((src-world-pt vector) (dst-gs-screen-pt vector4w)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (.lvf vf5 (&-> src-world-pt quad)) + (.mul.w.vf acc vf4 vf5) + (.add.mul.x.vf acc vf1 vf5 acc) + (.add.mul.y.vf acc vf2 vf5 acc) + (.add.mul.z.vf vf5 vf3 vf5 acc) + (.div.vf Q vf9 vf5 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf5 vf5 Q) + (.add.vf vf5 vf5 vf8) + (.max.x.vf.w vf5 vf5 vf0) + (.min.x.vf.w vf5 vf5 vf6) + (vftoi4.xyzw vf5 vf5) + (.svf (&-> dst-gs-screen-pt quad) vf5) + dst-gs-screen-pt + ) + ) + +(defun-debug add-debug-point ((arg0 symbol) (arg1 bucket-id) (arg2 vector)) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s5-0 (new 'stack 'vector4w-2)) + (a1-2 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-2 quad) (-> arg2 quad)) + (set! (-> a1-2 w) 1.0) + (when (transform-point-qword! (-> s5-0 vector 0) a1-2) + (with-dma-buffer-add-bucket ((v1-11 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg1 + ) + (let ((a0-6 (-> v1-11 base))) + (let* ((a1-3 v1-11) + (a3-0 (the-as dma-packet (-> a1-3 base))) + ) + (set! (-> a3-0 dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> a3-0 vif0) (new 'static 'vif-tag)) + (set! (-> a3-0 vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-3 base) (the-as pointer (&+ a3-0 16))) + ) + (let* ((a1-4 v1-11) + (a3-2 (the-as gs-gif-tag (-> a1-4 base))) + ) + (set! (-> a3-2 tag) (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :abe #x1) + :nreg #x8 + ) + ) + (set! (-> a3-2 regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id xyzf2) + :regs2 (gif-reg-id rgbaq) + :regs3 (gif-reg-id xyzf2) + :regs4 (gif-reg-id rgbaq) + :regs5 (gif-reg-id xyzf2) + :regs6 (gif-reg-id rgbaq) + :regs7 (gif-reg-id xyzf2) + ) + ) + (set! (-> a1-4 base) (the-as pointer (&+ a3-2 16))) + ) + (set! (-> s5-0 vector 1 x) 255) + (set! (-> s5-0 vector 1 y) 128) + (set! (-> s5-0 vector 1 z) 128) + (set! (-> s5-0 vector 1 w) 128) + (+! (-> s5-0 vector 0 y) 288) + (let* ((a1-11 v1-11) + (a3-4 (the-as vector4w-2 (-> a1-11 base))) + ) + (set! (-> a3-4 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a3-4 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a1-11 base) (the-as pointer (&+ a3-4 32))) + ) + (+! (-> s5-0 vector 0 x) -256) + (+! (-> s5-0 vector 0 y) -288) + (set! (-> s5-0 vector 1 x) 128) + (set! (-> s5-0 vector 1 y) 255) + (let* ((a1-18 v1-11) + (a3-6 (the-as vector4w-2 (-> a1-18 base))) + ) + (set! (-> a3-6 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a3-6 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a1-18 base) (the-as pointer (&+ a3-6 32))) + ) + (+! (-> s5-0 vector 0 x) 512) + (set! (-> s5-0 vector 1 y) 128) + (set! (-> s5-0 vector 1 z) 255) + (let* ((a1-23 v1-11) + (a3-8 (the-as vector4w-2 (-> a1-23 base))) + ) + (set! (-> a3-8 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a3-8 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a1-23 base) (the-as pointer (&+ a3-8 32))) + ) + (+! (-> s5-0 vector 0 x) -256) + (+! (-> s5-0 vector 0 y) -288) + (set! (-> s5-0 vector 1 x) 255) + (set! (-> s5-0 vector 1 y) 128) + (let* ((a3-10 v1-11) + (a1-30 (the-as vector4w-2 (-> a3-10 base))) + ) + (set! (-> a1-30 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a1-30 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a3-10 base) (the-as pointer (&+ a1-30 32))) + ) + (let ((a3-14 (/ (the-as int (+ (- -16 (the-as int a0-6)) (the-as int (-> v1-11 base)))) 16))) + (cond + ((nonzero? a3-14) + (logior! (-> (the-as (pointer uint64) a0-6) 0) (shr (shl a3-14 48) 48)) + (logior! (-> (the-as (pointer uint64) a0-6) 1) (shl (shr (shl a3-14 48) 48) 32)) + ) + (else + (set! (-> v1-11 base) a0-6) + ) + ) + ) + ) + ) + ) + ) + #f + ) + +(def-mips2c debug-line-clip? (function vector vector vector vector symbol)) + +;; WARN: Return type mismatch pointer vs symbol. +(defun-debug internal-draw-debug-line ((arg0 bucket-id) (arg1 vector) (arg2 vector) (arg3 rgba) (arg4 symbol) (arg5 rgba)) + (let ((a0-2 (-> *display* frames (-> *display* on-screen) debug-buf))) + (if (< (the-as uint (shr (+ (&- (-> a0-2 end) (the-as uint (-> a0-2 base))) 15) 4)) (the-as uint #x8000)) + (return (the-as symbol #f)) + ) + ) + (if (the-as rgba (or (= arg5 -1) (= arg5 (the-as uint #xffffffff)))) + (set! arg5 arg3) + ) + (case arg4 + (('fade) + (set! arg5 + (new 'static 'rgba :r (shr (-> arg5 r) 1) :g (shr (-> arg5 g) 1) :b (shr (-> arg5 b) 1) :a (-> arg5 a)) + ) + ) + ) + (let ((s4-0 (new 'stack-no-clear 'inline-array 'vector4w 5))) + (the-as + symbol + (when (debug-line-clip? (the-as vector (-> s4-0 4)) (the-as vector (-> s4-0 5)) arg1 arg2) + (set! (-> s4-0 4 w) (the-as int 1.0)) + (set! (-> s4-0 5 w) (the-as int 1.0)) + (when (and (transform-point-qword! (-> s4-0 0) (the-as vector (-> s4-0 4))) + (transform-point-qword! (-> s4-0 1) (the-as vector (-> s4-0 5))) + ) + (with-dma-buffer-add-bucket ((v1-33 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg0 + ) + (let ((a0-26 (-> v1-33 base))) + (let* ((a1-4 v1-33) + (a3-2 (the-as object (-> a1-4 base))) + ) + (set! (-> (the-as dma-packet a3-2) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a3-2) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a3-2) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-4 base) (&+ (the-as pointer a3-2) 16)) + ) + (let* ((a1-5 v1-33) + (a3-4 (the-as object (-> a1-5 base))) + ) + (set! (-> (the-as gs-gif-tag a3-4) tag) + (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type line) :iip #x1 :abe #x1) + :nreg #x4 + ) + ) + (set! (-> (the-as gs-gif-tag a3-4) regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id xyzf2) + :regs2 (gif-reg-id rgbaq) + :regs3 (gif-reg-id xyzf2) + ) + ) + (set! (-> a1-5 base) (&+ (the-as pointer a3-4) 16)) + ) + (case arg4 + (('fade-depth) + (let ((f0-3 (fmax 0.2 (fmin 1.0 (* 0.00000005960465 (the float (-> s4-0 0 z))))))) + (set! (-> s4-0 2 x) (the int (* (the float (-> arg3 r)) f0-3))) + (set! (-> s4-0 2 y) (the int (* (the float (-> arg3 g)) f0-3))) + (set! (-> s4-0 2 z) (the int (* (the float (-> arg3 b)) f0-3))) + ) + (set! (-> s4-0 2 w) (the-as int (-> arg3 a))) + ) + (else + (set! (-> s4-0 2 x) (the-as int (-> arg3 r))) + (set! (-> s4-0 2 y) (the-as int (-> arg3 g))) + (set! (-> s4-0 2 z) (the-as int (-> arg3 b))) + (set! (-> s4-0 2 w) (the-as int (-> arg3 a))) + ) + ) + (cond + ((= arg4 'fade-depth) + (let ((f0-7 (fmax 0.2 (fmin 1.0 (* 0.00000005960465 (the float (-> s4-0 1 z))))))) + (set! (-> s4-0 3 x) (the int (* (the float (-> arg5 r)) f0-7))) + (set! (-> s4-0 3 y) (the int (* (the float (-> arg5 g)) f0-7))) + (set! (-> s4-0 3 z) (the int (* (the float (-> arg5 b)) f0-7))) + ) + (set! (-> s4-0 3 w) (the-as int (-> arg5 a))) + ) + (else + (set! (-> s4-0 3 x) (the-as int (-> arg5 r))) + (set! (-> s4-0 3 y) (the-as int (-> arg5 g))) + (set! (-> s4-0 3 z) (the-as int (-> arg5 b))) + (set! (-> s4-0 3 w) (the-as int (-> arg5 a))) + ) + ) + (+! (-> s4-0 0 z) -8192) + (+! (-> s4-0 1 z) -8192) + (let* ((a3-7 v1-33) + (a1-48 (the-as object (-> a3-7 base))) + ) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 0 vector 0 quad) (-> s4-0 2 quad)) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 0 vector 1 quad) (-> s4-0 0 quad)) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 1 vector 0 quad) (-> s4-0 3 quad)) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 1 vector 1 quad) (-> s4-0 1 quad)) + (set! (-> a3-7 base) (&+ (the-as pointer a1-48) 64)) + ) + (let ((a3-11 (/ (the-as int (+ (- -16 (the-as int a0-26)) (the-as int (-> v1-33 base)))) 16))) + (cond + ((nonzero? a3-11) + (logior! (-> (the-as (pointer uint64) a0-26) 0) (shr (shl a3-11 48) 48)) + (logior! (-> (the-as (pointer uint64) a0-26) 1) (shl (shr (shl a3-11 48) 48) 32)) + ) + (else + (set! (-> v1-33 base) (the-as (pointer uint64) a0-26)) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + +(defun-debug internal-draw-debug-text-3d ((arg0 bucket-id) (arg1 string) (arg2 vector) (arg3 font-color) (arg4 vector2h)) + (let ((s2-0 (new 'stack-no-clear 'vector4w))) + (set! (-> s2-0 quad) (the-as uint128 0)) + (when (transform-point-qword! s2-0 arg2) + (with-dma-buffer-add-bucket ((s1-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg0 + ) + (let ((a2-2 (new + 'stack + 'font-context + *font-default-matrix* + (+ (-> arg4 x) -1792 (/ (-> s2-0 x) 16)) + (+ (-> arg4 y) -1855 (/ (-> s2-0 y) 16)) + (the-as float (/ (-> s2-0 z) 16)) + arg3 + (font-flags shadow kerning) + ) + ) + ) + (draw-string arg1 s1-0 a2-2) + ) + ) + ) + ) + ) + +(defun-debug add-debug-outline-triangle ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (add-debug-line #t arg1 arg2 arg3 arg5 #f (the-as rgba -1)) + (add-debug-line #t arg1 arg3 arg4 arg5 #f (the-as rgba -1)) + (add-debug-line #t arg1 arg4 arg2 arg5 #f (the-as rgba -1)) + ) + #f + ) + +(defun-debug add-debug-triangle-normal ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (let ((s3-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (vector-3pt-cross! (-> s3-0 1) arg2 arg3 arg4) + (vector-float/! (-> s3-0 1) (-> s3-0 1) (* 0.00024414062 (vector-length (-> s3-0 1)))) + (let ((v1-7 (-> s3-0 0))) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> arg3 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-7 quad) vf6) + ) + (let ((a0-3 (-> s3-0 0))) + (.lvf vf4 (&-> (-> s3-0 0) quad)) + (.lvf vf5 (&-> arg4 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-3 quad) vf6) + ) + (vector-float/! (-> s3-0 0) (-> s3-0 0) 3.0) + (let ((a1-4 (-> s3-0 1))) + (let ((v1-9 (-> s3-0 1)) + (a0-5 (-> s3-0 0)) + ) + (.lvf vf4 (&-> v1-9 quad)) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (add-debug-line #t arg1 (-> s3-0 0) (-> s3-0 1) arg5 #f (the-as rgba -1)) + ) + ) + #f + ) + ) + + +(when *debug-segment* +(deftype debug-line (structure) + ((flags int32) + (bucket int32) + (v1 vector :inline) + (v2 vector :inline) + (color rgba) + (mode symbol) + (color2 rgba) + ) + ) + + +(deftype debug-text-3d (structure) + ((flags int32) + (bucket int32) + (pos vector :inline) + (color uint8) + (offset vector2h :inline) + (str string) + ) + ) + + +(deftype debug-tracking-thang (basic) + ((length int32) + (allocated-length int32) + ) + ) + + +(define *debug-lines* (the-as (inline-array debug-line) (malloc 'debug #x100000))) + +(define *debug-lines-trk* (new 'debug 'debug-tracking-thang)) + +(set! (-> *debug-lines-trk* allocated-length) #x4000) + +(define *debug-text-3ds* (the-as (inline-array debug-text-3d) (malloc 'debug #x6000))) + +(define *debug-text-3d-trk* (new 'debug 'debug-tracking-thang)) + +(set! (-> *debug-text-3d-trk* allocated-length) 512) + +(define *debug-prims* (the-as prim-strip 0)) + +(dotimes (gp-0 (-> *debug-text-3d-trk* allocated-length)) + (set! (-> *debug-text-3ds* gp-0 str) (new 'debug 'string 80 (the-as string #f))) + ) + +) +(defun-debug debug-reset-prim-buffer () + (when (zero? *debug-prims*) + (set! *debug-prims* + (new 'debug 'prim-strip 1500 (new 'static 'texture-id :index #x3 :page #x1) (the-as string #f)) + ) + (set! (-> *debug-prims* data0) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest always))) + (set! (-> *debug-prims* adnops 0 cmds) (gs-reg64 test-1)) + ) + (when (nonzero? *debug-prims*) + (set! (-> *debug-prims* num-verts) (the-as uint 0)) + 0 + ) + (none) + ) + +(defun-debug get-debug-line () + (cond + ((< (-> *debug-lines-trk* length) (-> *debug-lines-trk* allocated-length)) + (+! (-> *debug-lines-trk* length) 1) + (-> *debug-lines* (+ (-> *debug-lines-trk* length) -1)) + ) + (else + (the-as debug-line #f) + ) + ) + ) + +(defun-debug get-debug-text-3d () + (cond + ((< (-> *debug-text-3d-trk* length) (-> *debug-text-3d-trk* allocated-length)) + (+! (-> *debug-text-3d-trk* length) 1) + (-> *debug-text-3ds* (+ (-> *debug-text-3d-trk* length) -1)) + ) + (else + (the-as debug-text-3d #f) + ) + ) + ) + +(defun-debug debug-reset-buffers () + (set! (-> *debug-lines-trk* length) 0) + (set! (-> *debug-text-3d-trk* length) 0) + (set! *debug-draw-pauseable* #f) + #f + ) + +(defun-debug debug-draw-buffers () + (dotimes (gp-0 (-> *debug-lines-trk* length)) + (let ((v1-1 (-> *debug-lines* gp-0))) + (internal-draw-debug-line + (the-as bucket-id (-> v1-1 bucket)) + (-> v1-1 v1) + (-> v1-1 v2) + (-> v1-1 color) + (-> v1-1 mode) + (-> v1-1 color2) + ) + ) + ) + (dotimes (gp-1 (-> *debug-text-3d-trk* length)) + (let ((v1-8 (-> *debug-text-3ds* gp-1))) + (internal-draw-debug-text-3d + (the-as bucket-id (-> v1-8 bucket)) + (-> v1-8 str) + (-> v1-8 pos) + (the-as font-color (-> v1-8 color)) + (-> v1-8 offset) + ) + ) + ) + #f + ) + +(defun-debug add-debug-line ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 rgba) (arg5 symbol) (arg6 rgba)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (cond + (*debug-draw-pauseable* + (let ((v1-5 (get-debug-line))) + (when v1-5 + (set! (-> v1-5 bucket) (the-as int arg1)) + (set! (-> v1-5 v1 quad) (-> arg2 quad)) + (set! (-> v1-5 v2 quad) (-> arg3 quad)) + (set! (-> v1-5 color) arg4) + (set! (-> v1-5 color2) arg6) + (set! (-> v1-5 mode) arg5) + ) + ) + ) + (else + (internal-draw-debug-line arg1 arg2 arg3 arg4 arg5 arg6) + ) + ) + ) + #f + ) + +(defun-debug add-debug-line2d ((arg0 symbol) (arg1 bucket-id) (arg2 vector4w) (arg3 vector4w) (arg4 vector4w)) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg1 + ) + (let ((s2-0 (new 'stack 'vector4w)) + (v1-10 (new 'stack 'vector4w)) + ) + (set! (-> s2-0 quad) (-> arg2 quad)) + (set! (-> v1-10 quad) (-> arg3 quad)) + (set! (-> s2-0 x) (* (+ (-> s2-0 x) 2048) 16)) + (set! (-> s2-0 y) (* -16 (- 2048 (-> s2-0 y)))) + (set! (-> s2-0 z) #x7fffff) + (set! (-> v1-10 x) (* (+ (-> v1-10 x) 2048) 16)) + (set! (-> v1-10 y) (* -16 (- 2048 (-> v1-10 y)))) + (set! (-> v1-10 z) #x7fffff) + (let ((a0-18 (-> s4-0 base))) + (let* ((a1-7 s4-0) + (a2-3 (the-as dma-packet (-> a1-7 base))) + ) + (set! (-> a2-3 dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> a2-3 vif0) (new 'static 'vif-tag)) + (set! (-> a2-3 vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-7 base) (the-as pointer (&+ a2-3 16))) + ) + (let* ((a1-8 s4-0) + (a2-5 (the-as gs-gif-tag (-> a1-8 base))) + ) + (set! (-> a2-5 tag) (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type line) :iip #x1 :abe #x1) + :nreg #x4 + ) + ) + (set! (-> a2-5 regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id xyzf2) + :regs2 (gif-reg-id rgbaq) + :regs3 (gif-reg-id xyzf2) + ) + ) + (set! (-> a1-8 base) (the-as pointer (&+ a2-5 16))) + ) + (let* ((a1-9 s4-0) + (a2-7 (the-as vector4w-2 (-> a1-9 base))) + ) + (set! (-> a2-7 vector 0 quad) (-> arg4 quad)) + (set! (-> a2-7 vector 1 quad) (-> s2-0 quad)) + (set! (-> a1-9 base) (the-as pointer (&+ a2-7 32))) + ) + (let* ((a1-10 s4-0) + (a2-9 (the-as vector4w-2 (-> a1-10 base))) + ) + (set! (-> a2-9 vector 0 quad) (-> arg4 quad)) + (set! (-> a2-9 vector 1 quad) (-> v1-10 quad)) + (set! (-> a1-10 base) (the-as pointer (&+ a2-9 32))) + ) + (let ((a1-14 (/ (the-as int (+ (- -16 (the-as int a0-18)) (the-as int (-> s4-0 base)))) 16))) + (cond + ((nonzero? a1-14) + (logior! (-> (the-as (pointer uint64) a0-18) 0) (shr (shl a1-14 48) 48)) + (logior! (-> (the-as (pointer uint64) a0-18) 1) (shl (shr (shl a1-14 48) 48) 32)) + ) + (else + (set! (-> s4-0 base) a0-18) + ) + ) + ) + ) + ) + ) + #f + ) + +(defun-debug add-debug-box ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 rgba)) + (let ((s5-0 (new-stack-vector0))) + (set! (-> s5-0 quad) (-> arg2 quad)) + (let ((s1-0 (new-stack-vector0))) + (set! (-> s1-0 quad) (-> arg2 quad)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (set! (-> s1-0 x) (-> arg3 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 x) (-> arg2 x)) + (set! (-> s1-0 y) (-> arg3 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg2 y)) + (set! (-> s1-0 z) (-> arg3 z)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s5-0 y) (-> arg3 y)) + (set! (-> s1-0 y) (-> arg3 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 z) (-> arg2 z)) + (set! (-> s1-0 x) (-> arg3 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg2 y)) + (set! (-> s5-0 x) (-> arg3 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s5-0 quad) (-> arg3 quad)) + (set! (-> s1-0 quad) (-> arg3 quad)) + (set! (-> s1-0 x) (-> arg2 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 x) (-> arg3 x)) + (set! (-> s1-0 y) (-> arg2 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg3 y)) + (set! (-> s1-0 z) (-> arg2 z)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s5-0 y) (-> arg2 y)) + (set! (-> s1-0 y) (-> arg2 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 z) (-> arg3 z)) + (set! (-> s1-0 x) (-> arg2 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg3 y)) + (set! (-> s5-0 x) (-> arg2 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + ) + ) + ) + #f + ) + +;; WARN: Return type mismatch int vs symbol. +(defun-debug add-debug-box-with-transform ((enable symbol) (bucket bucket-id) (box bounding-box) (mat matrix) (color rgba)) + (b! (not enable) cfg-5 :delay (nop!)) + (let ((s4-0 (new 'stack-no-clear 'inline-array 'vector 8))) + (let ((s2-0 (new 'stack-no-clear 'inline-array 'vector 2)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s2-0 0 quad) (-> box min quad)) + (set! (-> s2-0 1 quad) (-> box max quad)) + (set! (-> s1-0 w) 1.0) + (dotimes (s0-0 8) + (set! (-> s1-0 x) (-> s2-0 (logand s0-0 1) x)) + (set! (-> s1-0 y) (-> s2-0 (logand (/ s0-0 2) 1) y)) + (set! (-> s1-0 z) (-> s2-0 (logand (/ s0-0 4) 1) z)) + (let ((a0-5 (-> s4-0 s0-0))) + (vector-matrix*! a0-5 s1-0 mat) + ) + ) + ) + (add-debug-line #t bucket (-> s4-0 0) (-> s4-0 1) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 1) (-> s4-0 3) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 3) (-> s4-0 2) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 2) (-> s4-0 0) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 4) (-> s4-0 5) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 5) (-> s4-0 7) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 7) (-> s4-0 6) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 6) (-> s4-0 4) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 0) (-> s4-0 4) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 1) (-> s4-0 5) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 3) (-> s4-0 7) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 2) (-> s4-0 6) color #f (the-as rgba -1)) + ) + (label cfg-5) + (the-as symbol 0) + ) + +(defun-debug add-debug-x ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 rgba)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s3-0 (new-stack-vector0)) + (s2-0 (new-stack-vector0)) + ) + (let ((a1-1 s3-0)) + (let ((v1-3 arg2) + (a0-1 (new 'static 'vector :data (new 'static 'array float 4 -1228.8 0.0 0.0 0.0))) + ) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + (let ((a1-2 s2-0)) + (let ((v1-4 arg2) + (a0-2 (new 'static 'vector :data (new 'static 'array float 4 1228.8 0.0 0.0 0.0))) + ) + (.lvf vf4 (&-> v1-4 quad)) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-2 quad) vf6) + ) + (add-debug-line #t arg1 s3-0 s2-0 arg3 #f (the-as rgba -1)) + (let ((a1-4 s3-0)) + (let ((v1-5 arg2) + (a0-4 (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1228.8 0.0))) + ) + (.lvf vf4 (&-> v1-5 quad)) + (.lvf vf5 (&-> a0-4 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (let ((a0-5 s2-0)) + (let ((v1-6 (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1228.8 0.0)))) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> v1-6 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-5 quad) vf6) + ) + (add-debug-line #t arg1 s3-0 s2-0 arg3 #f (the-as rgba -1)) + ) + #f + ) + ) + +(defun-debug add-debug-cross ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s4-0 (new-stack-vector0)) + (s3-0 (new-stack-vector0)) + ) + (let ((a1-1 s4-0)) + (let ((v1-3 arg2) + (a0-1 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-1 x) (- arg3)) + (set! (-> a0-1 y) 0.0) + (set! (-> a0-1 z) 0.0) + (set! (-> a0-1 w) 1.0) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + (let ((a1-2 s3-0)) + (let ((v1-4 arg2) + (a0-2 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-2 x) arg3) + (set! (-> a0-2 y) 0.0) + (set! (-> a0-2 z) 0.0) + (set! (-> a0-2 w) 1.0) + (.lvf vf4 (&-> v1-4 quad)) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-2 quad) vf6) + ) + (add-debug-line #t arg1 s4-0 s3-0 *color-red* #f (the-as rgba -1)) + (let ((a1-4 s4-0)) + (let ((v1-5 arg2) + (a0-4 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-4 x) 0.0) + (set! (-> a0-4 y) (- arg3)) + (set! (-> a0-4 z) 0.0) + (set! (-> a0-4 w) 1.0) + (.lvf vf4 (&-> v1-5 quad)) + (.lvf vf5 (&-> a0-4 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (let ((a1-5 s3-0)) + (let ((v1-6 arg2) + (a0-5 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-5 x) 0.0) + (set! (-> a0-5 y) arg3) + (set! (-> a0-5 z) 0.0) + (set! (-> a0-5 w) 1.0) + (.lvf vf4 (&-> v1-6 quad)) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-5 quad) vf6) + ) + (add-debug-line #t arg1 s4-0 s3-0 *color-green* #f (the-as rgba -1)) + (let ((a1-7 s4-0)) + (let ((v1-7 arg2) + (a0-7 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-7 x) 0.0) + (set! (-> a0-7 y) 0.0) + (set! (-> a0-7 z) (- arg3)) + (set! (-> a0-7 w) 1.0) + (.lvf vf4 (&-> v1-7 quad)) + (.lvf vf5 (&-> a0-7 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-7 quad) vf6) + ) + (let ((a0-8 s3-0)) + (let ((v1-8 (new 'stack-no-clear 'vector))) + (set! (-> v1-8 x) 0.0) + (set! (-> v1-8 y) 0.0) + (set! (-> v1-8 z) arg3) + (set! (-> v1-8 w) 1.0) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> v1-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-8 quad) vf6) + ) + (add-debug-line #t arg1 s4-0 s3-0 *color-blue* #f (the-as rgba -1)) + ) + #f + ) + ) + +(defun-debug add-debug-text-3d ((arg0 symbol) (arg1 bucket-id) (arg2 string) (arg3 vector) (arg4 font-color) (arg5 vector2h)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (cond + (*debug-draw-pauseable* + (let ((v1-5 (get-debug-text-3d))) + (when v1-5 + (set! (-> v1-5 flags) 0) + (set! (-> v1-5 bucket) (the-as int arg1)) + (set! (-> v1-5 pos quad) (-> arg3 quad)) + (cond + (arg5 + (set! (-> v1-5 offset x) (-> arg5 x)) + (set! (-> v1-5 offset y) (-> arg5 y)) + ) + (else + (set! (-> v1-5 offset x) 0) + (set! (-> v1-5 offset y) 0) + 0 + ) + ) + (set! (-> v1-5 color) (the-as uint arg4)) + (let ((a0-6 0) + (a1-2 (-> arg2 data)) + (v1-7 (-> v1-5 str data)) + ) + (while (and (nonzero? (-> a1-2 0)) (< a0-6 79)) + (set! (-> v1-7 0) (-> a1-2 0)) + (set! a1-2 (&-> a1-2 1)) + (set! v1-7 (&-> v1-7 1)) + (+! a0-6 1) + ) + (set! (-> v1-7 0) (the-as uint 0)) + ) + 0 + ) + ) + ) + (else + (internal-draw-debug-text-3d arg1 arg2 arg3 arg4 (cond + (arg5 + (empty) + arg5 + ) + (else + (new 'static 'vector2h) + ) + ) + ) + ) + ) + ) + #f + ) + +(defun-debug add-debug-sphere-with-transform ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 meters) (arg4 matrix) (arg5 rgba)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (.lvf vf5 (&-> arg2 quad)) + (.lvf vf1 (&-> arg4 rvec quad)) + (.lvf vf2 (&-> arg4 uvec quad)) + (.lvf vf3 (&-> arg4 fvec quad)) + (.lvf vf4 (&-> arg4 trans quad)) + (.mul.w.vf acc vf4 vf0) + (.add.mul.x.vf acc vf1 vf5 acc) + (.add.mul.y.vf acc vf2 vf5 acc) + (.add.mul.z.vf vf5 vf3 vf5 acc) + (let ((a2-1 (new 'stack-no-clear 'vector))) + (.svf (&-> a2-1 quad) vf5) + (add-debug-sphere arg0 arg1 a2-1 arg3 arg5) + ) + ) + #f + ) + ) + +(defun-debug add-debug-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 meters) (arg4 rgba)) + (if (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (add-debug-sphere-from-table arg1 arg2 arg3 arg4 6) + ) + #f + ) + +(defun-debug add-debug-text-sphere ((enable symbol) (bucket bucket-id) (pos vector) (radius meters) (text string) (color rgba)) + (add-debug-sphere enable bucket pos radius color) + (add-debug-text-3d enable bucket text pos (font-color default) (the-as vector2h #f)) + #f + ) + +(defun-debug add-debug-spheres ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array vector)) (arg3 int) (arg4 rgba)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (let ((s4-0 (-> arg2 0))) + (countdown (s3-0 arg3) + (add-debug-sphere #t arg1 s4-0 (-> s4-0 w) arg4) + (&+! s4-0 16) + ) + ) + ) + #f + ) + +(defun-debug add-debug-line-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 float) (arg5 rgba)) + (b! (not arg0) cfg-8 :delay (nop!)) + (let* ((sv-16 arg1) + (sv-24 arg2) + (sv-28 arg3) + (sv-32 arg4) + (sv-36 arg5) + (sv-112 (new 'stack-no-clear 'matrix)) + (sv-116 (vector-length sv-28)) + ) + (let ((gp-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (vector-normalize-copy! gp-0 sv-28 1.0) + (vector-reset! s5-0) + (if (< (square (-> gp-0 y)) (square (-> gp-0 z))) + (set! (-> s5-0 y) -1.0) + (set! (-> s5-0 z) -1.0) + ) + (forward-down->inv-matrix sv-112 gp-0 s5-0) + ) + (set! (-> sv-112 trans quad) (-> sv-24 quad)) + (set! (-> sv-112 trans w) 1.0) + (let ((gp-1 (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.5877 0.951 0.951)) + (new 'static 'vector :data (new 'static 'array float 4 0.5877 0.0 -0.5877 -0.951)) + (new 'static 'vector :data (new 'static 'array float 4 -0.951 -0.5878 0.0 0.0)) + ) + ) + (s5-1 (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 1.0 0.809 0.3089 -0.3088)) + (new 'static 'vector :data (new 'static 'array float 4 -0.809 -1.0 -0.809 -0.309)) + (new 'static 'vector :data (new 'static 'array float 4 0.3089 0.8089 0.0 0.0)) + ) + ) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s1-0 z) 0.0) + (set! (-> s1-0 w) 1.0) + (set! (-> s1-0 x) (* sv-32 (-> s5-1 2 y))) + (set! (-> s1-0 y) (* sv-32 (-> gp-1 2 y))) + (vector-matrix*! s3-0 s1-0 sv-112) + (dotimes (s0-0 10) + (set! (-> s4-0 quad) (-> s3-0 quad)) + (set! (-> s1-0 x) (* sv-32 (-> (&-> s5-1 0 data s0-0) 0))) + (set! (-> s1-0 y) (* sv-32 (-> (&-> gp-1 0 data s0-0) 0))) + (vector-matrix*! s3-0 s1-0 sv-112) + (add-debug-line #t sv-16 s4-0 s3-0 sv-36 #f (the-as rgba -1)) + (vector+float*! s2-0 s3-0 (-> sv-112 fvec) sv-116) + (add-debug-line #t sv-16 s3-0 s2-0 sv-36 #f (the-as rgba -1)) + (vector+float*! s4-0 s4-0 (-> sv-112 fvec) sv-116) + (add-debug-line #t sv-16 s4-0 s2-0 sv-36 #f (the-as rgba -1)) + ) + ) + ) + (label cfg-8) + 0 + (none) + ) + +(defun-debug add-debug-circle ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 rgba) (arg5 matrix)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + "note: you may pass #f for orientation" + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((f30-0 0.0) + (s1-0 (new-stack-vector0)) + (s0-0 (new-stack-vector0)) + (sv-48 0) + ) + (while (< sv-48 12) + (let ((sv-64 s1-0)) + (set! (-> sv-64 x) (* arg3 (cos f30-0))) + (set! (-> sv-64 y) 0.0) + (set! (-> sv-64 z) (* arg3 (sin f30-0))) + (set! (-> sv-64 w) 1.0) + ) + (set! f30-0 (+ 5461.3335 f30-0)) + (let ((sv-80 s0-0)) + (set! (-> sv-80 x) (* arg3 (cos f30-0))) + (set! (-> sv-80 y) 0.0) + (set! (-> sv-80 z) (* arg3 (sin f30-0))) + (set! (-> sv-80 w) 1.0) + ) + (when arg5 + (vector-matrix*! s1-0 s1-0 arg5) + (vector-matrix*! s0-0 s0-0 arg5) + ) + (let ((a1-3 s1-0)) + (let ((v1-17 s1-0) + (a0-7 arg2) + ) + (.lvf vf4 (&-> v1-17 quad)) + (.lvf vf5 (&-> a0-7 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-3 quad) vf6) + ) + (let ((a1-4 s0-0)) + (let ((v1-18 s0-0) + (a0-8 arg2) + ) + (.lvf vf4 (&-> v1-18 quad)) + (.lvf vf5 (&-> a0-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (add-debug-line #t arg1 s1-0 s0-0 arg4 #f (the-as rgba -1)) + (+! sv-48 1) + ) + ) + #f + ) + ) + +(defun-debug add-debug-vector ((enable symbol) (bucket bucket-id) (base vector) (dir vector) (len-scale meters) (color rgba)) + (if (not (or enable *display-capture-mode*)) + (return #f) + ) + (let ((v1-3 (new-stack-vector0))) + (set! (-> v1-3 x) (+ (-> base x) (* (-> dir x) len-scale))) + (set! (-> v1-3 y) (+ (-> base y) (* (-> dir y) len-scale))) + (set! (-> v1-3 z) (+ (-> base z) (* (-> dir z) len-scale))) + (add-debug-line #t bucket base v1-3 color #f (the-as rgba -1)) + ) + #f + ) + +(defun-debug add-debug-matrix ((arg0 symbol) (arg1 bucket-id) (arg2 matrix) (arg3 meters)) + (add-debug-vector arg0 arg1 (-> arg2 trans) (-> arg2 rvec) arg3 (new 'static 'rgba :r #xff :a #x80)) + (add-debug-vector arg0 arg1 (-> arg2 trans) (-> arg2 uvec) arg3 (new 'static 'rgba :g #xff :a #x80)) + (add-debug-vector arg0 arg1 (-> arg2 trans) (-> arg2 fvec) arg3 (new 'static 'rgba :b #xff :a #x80)) + arg2 + ) + +(defun-debug add-debug-rot-matrix ((arg0 symbol) (arg1 bucket-id) (arg2 matrix) (arg3 vector)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 rvec) (meters 2) (new 'static 'rgba :r #xff :a #x80)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 uvec) (meters 2) (new 'static 'rgba :g #xff :a #x80)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 fvec) (meters 2) (new 'static 'rgba :b #xff :a #x80)) + arg2 + ) + +(defun-debug add-debug-quaternion ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 quaternion)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (let ((a2-1 (quaternion->matrix (new 'stack-no-clear 'matrix) arg3))) + (add-debug-rot-matrix arg0 arg1 a2-1 arg2) + ) + ) + 0 + (none) + ) + +(defun-debug add-debug-cspace ((enable symbol) (bucket bucket-id) (cs cspace)) + (add-debug-matrix enable bucket (-> cs bone transform) (meters 2)) + cs + ) + +;; ERROR: Stack slot load at 32 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 32 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 32 mismatch: defined as size 4, got size 16 +(defun-debug add-debug-yrot-vector ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 float) (arg5 rgba)) + (let ((sv-32 arg3) + (s0-0 arg4) + (s3-0 arg5) + ) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s1-0 (new-stack-vector0))) + (set-vector! s1-0 (+ (-> arg2 x) (* (sin sv-32) s0-0)) (-> arg2 y) (+ (-> arg2 z) (* (cos sv-32) s0-0)) 1.0) + (add-debug-line arg0 arg1 s1-0 arg2 s3-0 #f (the-as rgba -1)) + ) + ) + #f + ) + +(defun-debug add-debug-arc ((arg0 symbol) + (arg1 bucket-id) + (arg2 vector) + (arg3 float) + (arg4 float) + (arg5 float) + (arg6 rgba) + (arg7 matrix) + ) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + "note: you may pass #f for orientation" + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((f30-0 arg3) + (sv-48 (new 'stack-no-clear 'vector)) + ) + (set! (-> sv-48 quad) (the-as uint128 0)) + (let ((sv-64 (new 'stack-no-clear 'vector))) + (set! (-> sv-64 quad) (the-as uint128 0)) + (let ((sv-80 0)) + (while (< sv-80 12) + (let ((sv-96 sv-48)) + (set! (-> sv-96 x) (* arg5 (sin f30-0))) + (set! (-> sv-96 y) 0.0) + (set! (-> sv-96 z) (* arg5 (cos f30-0))) + (set! (-> sv-96 w) 1.0) + ) + (+! f30-0 (the float (/ (the int (- arg4 arg3)) 12))) + (let ((sv-112 sv-64)) + (set! (-> sv-112 x) (* arg5 (sin f30-0))) + (set! (-> sv-112 y) 0.0) + (set! (-> sv-112 z) (* arg5 (cos f30-0))) + (set! (-> sv-112 w) 1.0) + ) + (when arg7 + (vector-matrix*! sv-48 sv-48 arg7) + (vector-matrix*! sv-64 sv-64 arg7) + ) + (let ((a1-3 sv-48)) + (let ((v1-24 sv-48) + (a0-8 arg2) + ) + (.lvf vf4 (&-> v1-24 quad)) + (.lvf vf5 (&-> a0-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-3 quad) vf6) + ) + (let ((a1-4 sv-64)) + (let ((v1-25 sv-64) + (a0-9 arg2) + ) + (.lvf vf4 (&-> v1-25 quad)) + (.lvf vf5 (&-> a0-9 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (add-debug-line #t arg1 sv-48 sv-64 arg6 #f (the-as rgba -1)) + (cond + ((zero? sv-80) + (add-debug-line #t arg1 sv-48 arg2 arg6 #f (the-as rgba -1)) + ) + ((= sv-80 11) + (add-debug-line #t arg1 sv-64 arg2 arg6 #f (the-as rgba -1)) + ) + ) + (+! sv-80 1) + ) + ) + ) + ) + #f + ) + ) + +(defun-debug add-debug-curve ((arg0 symbol) + (arg1 bucket-id) + (arg2 (inline-array vector)) + (arg3 int) + (arg4 (pointer float)) + (arg5 int) + (arg6 rgba) + ) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s0-0 (new-stack-vector0)) + (sv-48 (new 'stack-no-clear 'vector)) + ) + (set! (-> sv-48 quad) (the-as uint128 0)) + (let ((sv-64 (* arg3 4))) + (curve-evaluate! sv-48 (-> arg4 0) arg2 arg3 arg4 arg5) + (let ((sv-80 0)) + (while (< sv-80 sv-64) + (set! (-> s0-0 quad) (-> sv-48 quad)) + (curve-evaluate! sv-48 (/ (the float (+ sv-80 1)) (the float sv-64)) arg2 arg3 arg4 arg5) + (add-debug-line #t arg1 s0-0 sv-48 arg6 #f (the-as rgba -1)) + (+! sv-80 1) + ) + ) + ) + ) + #f + ) + +(defun-debug add-debug-curve2 ((arg0 symbol) (arg1 bucket-id) (arg2 curve) (arg3 rgba) (arg4 symbol)) + (if (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (add-debug-curve #t arg1 (-> arg2 cverts) (-> arg2 num-cverts) (-> arg2 knots) (-> arg2 num-knots) arg3) + ) + #f + ) + +(defun-debug add-debug-points ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array vector)) (arg3 int) (arg4 rgba) (arg5 float) (arg6 int)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (dotimes (s0-0 arg3) + (let ((sv-96 (new 'stack-no-clear 'vector))) + (set! (-> sv-96 quad) (the-as uint128 0)) + (set! (-> sv-96 quad) (-> arg2 s0-0 quad)) + (if (!= arg5 0.0) + (set! (-> sv-96 y) arg5) + ) + (let ((sv-32 add-debug-text-3d) + (sv-48 #t) + (sv-64 arg1) + ) + (format (clear *temp-string*) "~d" s0-0) + (sv-32 sv-48 sv-64 *temp-string* sv-96 (font-color white) (the-as vector2h #f)) + ) + (add-debug-x #t arg1 sv-96 (if (= s0-0 arg6) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + (the-as rgba arg4) + ) + ) + ) + ) + ) + #f + ) + +(defun-debug debug-percent-bar ((arg0 symbol) (arg1 bucket-id) (arg2 int) (arg3 int) (arg4 float) (arg5 rgba) (arg6 int) (arg7 int)) + (let ((sv-16 arg3) + (sv-32 arg4) + (s3-0 arg5) + (s1-0 arg6) + (s2-0 arg7) + ) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (with-dma-buffer-add-bucket ((s0-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg1 + ) + (draw-sprite2d-xy s0-0 arg2 sv-16 s1-0 s2-0 (new 'static 'rgba :a #x40) #x3fffff) + (draw-sprite2d-xy s0-0 arg2 (+ sv-16 2) (the int (* sv-32 (the float s1-0))) (+ s2-0 -4) s3-0 #x3fffff) + ) + ) + #f + ) + +(defun-debug add-debug-light ((arg0 symbol) (arg1 bucket-id) (arg2 light) (arg3 vector) (arg4 string)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (when (!= (-> arg2 extra x) 0.0) + (add-debug-vector + arg0 + arg1 + arg3 + (-> arg2 direction) + (meters 3) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (let ((s2-0 (new-stack-vector0))) + (let ((v1-4 (-> arg2 direction))) + (let ((a0-3 (* 12288.0 (-> arg2 extra x)))) + (.mov vf7 a0-3) + ) + (.lvf vf5 (&-> v1-4 quad)) + ) + (.lvf vf4 (&-> arg3 quad)) + (.add.x.vf.w vf6 vf0 vf0) + (.mul.x.vf.xyz acc vf5 vf7) + (.add.mul.w.vf.xyz vf6 vf4 vf0 acc) + (.svf (&-> s2-0 quad) vf6) + (let ((s1-1 (logior (logior (logior (shr (shl (the int (* 128.0 (-> arg2 color w))) 56) 32) + (shr (shl (the int (* 128.0 (-> arg2 color z))) 56) 40) + ) + (shr (shl (the int (* 128.0 (-> arg2 color y))) 56) 48) + ) + (shr (shl (the int (* 128.0 (-> arg2 color x))) 56) 56) + ) + ) + ) + (format (clear *temp-string*) "~S ~,,2f" arg4 (-> arg2 extra x)) + (let ((t0-2 *temp-string*)) + (add-debug-text-sphere arg0 arg1 s2-0 (* 2048.0 (-> arg2 extra x)) t0-2 (the-as rgba s1-1)) + ) + ) + ) + ) + #f + ) + ) + +(defun-debug add-debug-lights ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array light)) (arg3 vector)) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (add-debug-light arg0 arg1 (-> arg2 0) arg3 "dir0") + (add-debug-light arg0 arg1 (-> arg2 1) arg3 "dir1") + (add-debug-light arg0 arg1 (-> arg2 2) arg3 "dir2") + (add-debug-light arg0 arg1 (-> arg2 3) arg3 "ambi") + #f + ) + +(defun-debug drawable-frag-count ((arg0 drawable)) + (let ((gp-0 0)) + (cond + ((not arg0) + ) + ((type? arg0 drawable-group) + (dotimes (s4-0 (-> (the-as drawable-group arg0) length)) + (+! gp-0 (drawable-frag-count (-> (the-as drawable-group arg0) data s4-0))) + ) + ) + (else + (+! gp-0 1) + ) + ) + gp-0 + ) + ) + + +(defun-debug history-init ((arg0 pos-history) (arg1 int)) + (set! (-> arg0 num-points) arg1) + (set! (-> arg0 points) (the-as (inline-array vector) #f)) + arg0 + ) + +(defun-debug history-draw-and-update ((arg0 pos-history) (arg1 symbol) (arg2 vector)) + (if (and arg1 (not (-> arg0 points))) + (set! (-> arg0 points) (the-as (inline-array vector) (malloc 'debug (* (-> arg0 num-points) 16)))) + ) + (when (-> arg0 points) + (set! (-> arg0 points (-> arg0 h-first) quad) (-> arg2 quad)) + (+! (-> arg0 h-first) 1) + (when (>= (-> arg0 h-first) (-> arg0 num-points)) + (set! (-> arg0 h-first) 0) + 0 + ) + ) + (when (and arg1 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (dotimes (s5-1 (+ (-> arg0 num-points) -1)) + (if (!= (+ s5-1 1) (-> arg0 h-first)) + (add-debug-line + #t + (bucket-id bucket785) + (-> arg0 points s5-1) + (-> arg0 points (+ s5-1 1)) + (new 'static 'rgba :r #x80 :g #xc0 :b #x80 :a #x80) + #f + (the-as rgba -1) + ) + ) + ) + ) + #f + ) + +(defun-debug display-file-info () + (when (and *display-file-info* (!= *master-mode* 'menu)) + (dotimes (gp-0 (-> *level* length)) + (let ((v1-7 (-> *level* level gp-0))) + (when (= (-> v1-7 status) 'active) + (let ((s5-0 (-> v1-7 bsp))) + (format *stdcon* "file name: ~S~%" (-> s5-0 info file-name)) + (format *stdcon* "version: ~D.~D~%" (-> s5-0 info major-version) (-> s5-0 info minor-version)) + (format *stdcon* "maya file: ~S~%" (-> s5-0 info maya-file-name)) + (format *stdcon* "mdb file: ~S~%" (-> s5-0 info mdb-file-name)) + (format *stdcon* "~S" (-> s5-0 info tool-debug)) + ) + ) + ) + ) + ) + 0 + ) + +(defun-debug add-debug-cursor ((arg0 symbol) (arg1 bucket-id) (arg2 int) (arg3 int) (arg4 mouse-buttons)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf)) + arg1 + ) + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (let ((v1-10 arg4)) + (draw-string-xy + "X" + s4-0 + (+ arg2 -5) + (+ arg3 -4) + (cond + ((= v1-10 (mouse-buttons left)) + (font-color red) + ) + ((= v1-10 (mouse-buttons right)) + (font-color yellow) + ) + ((= v1-10 (mouse-buttons middle)) + (font-color green) + ) + (else + (font-color default) + ) + ) + (font-flags shadow kerning) + ) + ) + ) + ) + 0 + ) + +(when *debug-segment* +(define *boundary-polygon* (the-as (inline-array sky-vertex) (malloc 'debug 768))) + +) +(def-mips2c init-boundary-regs (function none)) + +;; WARN: Return type mismatch pointer vs none. +(defun-debug add-boundary-shader ((arg0 texture-id) (arg1 dma-buffer)) + (let ((a1-1 (lookup-texture-by-id arg0))) + (when a1-1 + (let* ((v1-0 arg1) + (a0-1 (the-as object (-> v1-0 base))) + ) + (set! (-> (the-as gs-gif-tag a0-1) tag) (new 'static 'gif-tag64 :nloop #x1 :nreg #x5)) + (set! (-> (the-as gs-gif-tag a0-1) regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + ) + ) + (set! (-> v1-0 base) (&+ (the-as pointer a0-1) 16)) + ) + (let ((s5-0 (the-as adgif-shader (-> arg1 base)))) + (adgif-shader<-texture-simple! s5-0 a1-1) + (set! (-> s5-0 alpha) (new 'static 'gs-miptbp :tbp1 #x44)) + (set! (-> s5-0 tex0 tfx) 0) + (set! (-> s5-0 tex1 mmag) 0) + (set! (-> s5-0 clamp) (new 'static 'gs-clamp)) + ) + 0 + (&+! (-> arg1 base) 80) + ) + ) + (none) + ) + +(def-mips2c draw-boundary-polygon function) + +(def-mips2c render-boundary-quad function) + +(def-mips2c render-boundary-tri (function sky-vertex dma-buffer none)) + +;; WARN: Return type mismatch symbol vs none. +(defun-debug add-debug-bound-internal ((arg0 dma-buffer) (arg1 (inline-array vector)) (arg2 int) (arg3 rgba) (arg4 rgba) (arg5 int)) + (rlet ((vf27 :class vf)) + (cond + ((nonzero? arg5) + (set-vector! + (-> *boundary-polygon* 0 col) + (the float (-> arg3 r)) + (the float (-> arg3 g)) + (the float (-> arg3 b)) + (the float (-> arg3 a)) + ) + (set-vector! + (-> *boundary-polygon* 1 col) + (the float (-> arg4 r)) + (the float (-> arg4 g)) + (the float (-> arg4 b)) + (the float (-> arg4 a)) + ) + ) + (else + (set-vector! + (-> *boundary-polygon* 0 col) + (the float (-> arg3 r)) + (the float (-> arg3 g)) + (the float (-> arg3 b)) + (the float (shr (-> arg3 a) 1)) + ) + (set-vector! + (-> *boundary-polygon* 1 col) + (the float (-> arg4 r)) + (the float (-> arg4 g)) + (the float (-> arg4 b)) + (the float (shr (-> arg4 a) 1)) + ) + ) + ) + (init-boundary-regs) + (.lvf vf27 (&-> *sky-work* giftag-clouds quad)) + (let ((s3-0 0) + (s2-0 (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 1.0 8.0 1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8.0 1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 1.0 1.0)) + ) + ) + ) + (while (< s3-0 (+ arg2 -2)) + (cond + ((not (logtest? s3-0 1)) + (dotimes (v1-10 3) + (set! (-> *boundary-polygon* v1-10 pos quad) (-> arg1 (+ s3-0 v1-10) quad)) + (set! (-> *boundary-polygon* v1-10 stq quad) (-> s2-0 (+ s3-0 v1-10) quad)) + ) + ) + (else + (set! (-> *boundary-polygon* 0 pos quad) (-> arg1 (+ s3-0 1) quad)) + (set! (-> *boundary-polygon* 1 pos quad) (-> arg1 s3-0 quad)) + (set! (-> *boundary-polygon* 2 pos quad) (-> arg1 (+ s3-0 2) quad)) + (set! (-> *boundary-polygon* 0 stq quad) (-> s2-0 (+ s3-0 1) quad)) + (set! (-> *boundary-polygon* 1 stq quad) (-> s2-0 s3-0 quad)) + (set! (-> *boundary-polygon* 2 stq quad) (-> s2-0 (+ s3-0 2) quad)) + ) + ) + (render-boundary-tri (-> *boundary-polygon* 0) arg0) + (+! s3-0 1) + ) + ) + (none) + ) + ) + +;; WARN: Function add-debug-bound has a return type of none, but the expression builder found a return statement. +(defun-debug add-debug-bound ((arg0 bucket-id) (arg1 (inline-array vector)) (arg2 int) (arg3 rgba) (arg4 rgba) (arg5 int)) + (let ((sv-32 arg4) + (s1-0 arg5) + ) + (if (< arg2 3) + (return 0) + ) + (with-dma-buffer-add-bucket ((s2-0 (-> *display* frames (-> *display* on-screen) global-buf)) + arg0 + ) + (let* ((v1-7 *viewport-array*) + (v1-8 (-> v1-7 data (-> v1-7 current-viewport-index))) + ) + (dma-buffer-add-gs-set s2-0 + (zbuf-1 (-> v1-8 zbuf-on)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + ) + ) + (let ((sv-16 (the-as dma-packet (-> s2-0 base)))) + (&+! (-> s2-0 base) 16) + (add-boundary-shader (new 'static 'texture-id :index #x3 :page #x1) s2-0) + (add-debug-bound-internal s2-0 arg1 arg2 arg3 sv-32 s1-0) + (close-sky-buffer s2-0) + (let ((v1-22 (/ (+ (- -16 (the-as int sv-16)) (the-as int (-> s2-0 base))) 16))) + (set! (-> sv-16 dma) (new 'static 'dma-tag :id (dma-tag-id cnt) :qwc v1-22)) + (set! (-> sv-16 vif0) (new 'static 'vif-tag)) + (set! (-> sv-16 vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1 :imm v1-22)) + ) + ) + (let* ((v1-26 *viewport-array*) + (v1-27 (-> v1-26 data (-> v1-26 current-viewport-index))) + ) + (dma-buffer-add-gs-set s2-0 + (zbuf-1 (-> v1-27 zbuf-on)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + ) + ) + (let ((s1-1 (if (= s1-0 1) + (the-as int (the-as uint #x80ffffff)) + #x60606060 + ) + ) + (s0-1 (/ arg2 4)) + ) + (add-debug-line #t arg0 (-> arg1 0) (-> arg1 1) (the-as rgba s1-1) #f (the-as rgba -1)) + (add-debug-line #t arg0 (-> arg1 0) (-> arg1 2) (the-as rgba s1-1) #f (the-as rgba -1)) + (add-debug-line #t arg0 (-> arg1 (+ arg2 -1)) (-> arg1 (+ arg2 -2)) (the-as rgba s1-1) #f (the-as rgba -1)) + (let ((sv-48 0)) + (while (< sv-48 s0-1) + (let* ((a2-15 (+ (* sv-48 2) 1)) + (v1-43 (+ a2-15 2)) + (sv-64 (+ a2-15 1)) + (sv-80 (+ sv-64 2)) + ) + (if (< sv-64 arg2) + (add-debug-line #t arg0 (-> arg1 a2-15) (-> arg1 v1-43) (the-as rgba s1-1) #f (the-as rgba -1)) + ) + (if (< sv-80 arg2) + (add-debug-line #t arg0 (-> arg1 sv-64) (-> arg1 sv-80) (the-as rgba s1-1) #f (the-as rgba -1)) + ) + ) + (+! sv-48 1) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 a1, Count] +(defun-debug cpu-delay ((arg0 uint)) + (local-vars (v1-2 int) (a1-0 int) (a1-1 int)) + 0 + 0 + (.mfc0 v1-2 Count) + (until (>= (the-as uint a1-1) arg0) + (.mfc0 a1-0 Count) + (nop!) + (set! a1-1 (- a1-0 v1-2)) + (nop!) + ) + 0 + (none) + ) + +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 a0, Count] +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +(defun-debug qword-read-time ((arg0 (pointer uint128)) (arg1 int)) + (local-vars (v1-1 int) (a0-1 int)) + (let ((v1-0 (shr arg1 2)) + (a1-1 arg0) + ) + (.mfc0 a0-1 Count) + (until (zero? v1-0) + (-> a1-1 0) + (+! v1-0 -1) + (-> a1-1 1) + (nop!) + (-> a1-1 2) + (nop!) + (-> a1-1 3) + (set! a1-1 (&-> a1-1 4)) + ) + ) + (.mfc0 v1-1 Count) + (- v1-1 a0-1) + ) diff --git a/goal_src/jakx/engine/debug/menu.gc b/goal_src/jakx/engine/debug/menu.gc index 713d141a93..9cfd456d4f 100644 --- a/goal_src/jakx/engine/debug/menu.gc +++ b/goal_src/jakx/engine/debug/menu.gc @@ -5,5 +5,1435 @@ ;; name in dgo: menu ;; dgos: ENGINE, GAME +;; +++debug-menu-msg +(defenum debug-menu-msg + :type int32 + (activate 1) + (deactivate 2) + (update 3) + (press 4) + ) +;; ---debug-menu-msg + +;; +++debug-menu-dest +(defenum debug-menu-dest + :type int32 + (activation 0) + (root 1) + (open-menus 2) + (current-selection 3) + ) +;; ---debug-menu-dest + +(declare-type debug-menu-node basic) +(declare-type debug-menu debug-menu-node) +(declare-type debug-menu-item debug-menu-node) + +(define-extern debug-menu-context-send-msg (function debug-menu-context debug-menu-msg debug-menu-dest debug-menu-context)) +(define-extern debug-menu-make-from-template (function debug-menu-context pair debug-menu-node)) +(define-extern debug-menu-item-send-msg (function debug-menu-item debug-menu-msg debug-menu-item)) +(define-extern debug-menu-send-msg (function debug-menu debug-menu-msg symbol debug-menu)) + ;; DECOMP BEGINS +;; this file is debug only +(declare-file (debug)) + +(deftype debug-menu-context (basic) + ((is-active symbol) + (sel-length int32) + (sel-menu debug-menu 8) + (root-menu debug-menu) + (joypad-func (function basic int none)) + (joypad-item debug-menu-item) + (font font-context) + (is-hidden symbol) + (joypad-number int32) + ) + (:methods + (new (symbol type) _type_) + ) + ) + + +(defmethod new debug-menu-context ((allocation symbol) (type-to-make type)) + (let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> gp-0 is-active) #f) + (set! (-> gp-0 is-hidden) #f) + (set! (-> gp-0 sel-length) 0) + (set! (-> gp-0 root-menu) #f) + (set! (-> gp-0 joypad-func) #f) + (set! (-> gp-0 joypad-item) #f) + (set! (-> gp-0 font) (new + 'debug + 'font-context + *font-default-matrix* + 0 + 0 + 8396850.0 + (font-color default) + (font-flags shadow kerning) + ) + ) + (set! (-> gp-0 joypad-number) 0) + gp-0 + ) + ) + +(deftype debug-menu-node (basic) + ((name string) + (parent debug-menu) + (refresh-delay int32) + (refresh-ctr int32) + ) + ) + + +(defmethod print ((this debug-menu-node)) + (format #t "#<~A ~A @ #x~X>" (-> this type) (-> this name) this) + this + ) + +(deftype debug-menu (debug-menu-node) + ((context debug-menu-context) + (selected-item debug-menu-item) + (pix-width int32) + (pix-height int32) + (items pair) + ) + (:methods + (new (symbol type debug-menu-context string) _type_) + ) + ) + + +(defmethod new debug-menu ((allocation symbol) (type-to-make type) (arg0 debug-menu-context) (arg1 string)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 context) arg0) + (set! (-> v0-0 name) arg1) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 selected-item) #f) + (set! (-> v0-0 items) '()) + v0-0 + ) + ) + +(deftype debug-menu-item (debug-menu-node) + ((id int32) + ) + ) + + +(deftype debug-menu-item-submenu (debug-menu-item) + ((submenu debug-menu) + ) + (:methods + (new (symbol type string debug-menu) _type_) + ) + ) + + +(defmethod new debug-menu-item-submenu ((allocation symbol) (type-to-make type) (arg0 string) (arg1 debug-menu)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 name) arg0) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 refresh-delay) 0) + (set! (-> v0-0 refresh-ctr) (-> v0-0 refresh-delay)) + (set! (-> v0-0 submenu) arg1) + (set! (-> v0-0 submenu parent) (the-as debug-menu v0-0)) + v0-0 + ) + ) + +(deftype debug-menu-item-function (debug-menu-item) + ((activate-func (function object object)) + (hilite-timer int8) + ) + (:methods + (new (symbol type string object (function object object)) _type_) + ) + ) + + +(defmethod new debug-menu-item-function ((allocation symbol) (type-to-make type) (arg0 string) (arg1 object) (arg2 (function object object))) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 name) arg0) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 refresh-delay) 0) + (set! (-> v0-0 refresh-ctr) (-> v0-0 refresh-delay)) + (set! (-> v0-0 id) (the-as int arg1)) + (set! (-> v0-0 activate-func) arg2) + (set! (-> v0-0 hilite-timer) 0) + v0-0 + ) + ) + +(deftype debug-menu-item-flag (debug-menu-item) + ((activate-func (function object debug-menu-msg object)) + (is-on symbol) + ) + (:methods + (new (symbol type string object (function object debug-menu-msg object)) _type_) + ) + ) + + +(defmethod new debug-menu-item-flag ((allocation symbol) + (type-to-make type) + (arg0 string) + (arg1 object) + (arg2 (function object debug-menu-msg object)) + ) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 name) arg0) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 refresh-delay) 23) + (set! (-> v0-0 refresh-ctr) (-> v0-0 refresh-delay)) + (set! (-> v0-0 id) (the-as int arg1)) + (set! (-> v0-0 activate-func) arg2) + (set! (-> v0-0 is-on) #f) + v0-0 + ) + ) + +(deftype debug-menu-item-var (debug-menu-item) + ((display-str string) + (grabbed-joypad-p symbol) + (float-p symbol) + (range-p symbol) + (show-len int32) + (inc-delay int32) + (inc-delay-ctr int32) + (step-delay-ctr int32) + (inc-dir int32) + (fval float) + (fundo-val float) + (frange-min float) + (frange-max float) + (fstart-inc float) + (fstep float) + (fprecision int32) + (factivate-func (function int debug-menu-msg float float float)) + (ival int32 :overlay-at fval) + (iundo-val int32 :overlay-at fundo-val) + (irange-min int32 :overlay-at frange-min) + (irange-max int32 :overlay-at frange-max) + (istart-inc int32 :overlay-at fstart-inc) + (istep int32 :overlay-at fstep) + (ihex-p symbol) + (iactivate-func (function int debug-menu-msg int int int) :overlay-at factivate-func) + (ifloat-p symbol) + ) + (:methods + (new (symbol type string int int) _type_) + ) + ) + + +(defun debug-menu-item-var-update-display-str ((arg0 debug-menu-item-var)) + (cond + ((-> arg0 float-p) + (format (clear (-> arg0 display-str)) "~f" (-> arg0 fval)) + ) + ((-> arg0 ihex-p) + (format (clear (-> arg0 display-str)) "x~X" (-> arg0 fval)) + ) + ((-> arg0 ifloat-p) + (cond + ((and (< (the-as int (-> arg0 fval)) 0) (< -100 (the-as int (-> arg0 fval)))) + (let ((s5-2 format) + (a0-8 (clear (-> arg0 display-str))) + (a1-2 "-0.~1d") + (v1-8 (abs (the-as int (-> arg0 fval)))) + ) + (s5-2 a0-8 a1-2 (/ (mod v1-8 100) 10)) + ) + ) + (else + (let ((s5-3 format) + (a0-10 (clear (-> arg0 display-str))) + (a1-3 "~2d.~1d") + (a2-6 (/ (the-as int (-> arg0 fval)) 100)) + (v1-12 (abs (the-as int (-> arg0 fval)))) + ) + (s5-3 a0-10 a1-3 a2-6 (/ (mod v1-12 100) 10)) + ) + ) + ) + ) + (else + (format (clear (-> arg0 display-str)) "~D" (-> arg0 fval)) + ) + ) + arg0 + ) + +(defun debug-menu-item-var-make-int ((arg0 debug-menu-item-var) + (arg1 (function int debug-menu-msg int int int)) + (arg2 int) + (arg3 symbol) + (arg4 int) + (arg5 int) + (arg6 symbol) + ) + (set! (-> arg0 float-p) #f) + (set! (-> arg0 range-p) arg3) + (set! (-> arg0 frange-min) (the-as float arg4)) + (set! (-> arg0 frange-max) (the-as float arg5)) + (set! (-> arg0 fstart-inc) (the-as float arg2)) + (set! (-> arg0 fstep) (the-as float arg2)) + (set! (-> arg0 ihex-p) arg6) + (set! (-> arg0 factivate-func) (the-as (function int debug-menu-msg float float float) arg1)) + (cond + (arg3 + (set! (-> arg0 fval) (the-as float arg4)) + ) + (else + (set! (-> arg0 fval) 0.0) + 0 + ) + ) + (if arg1 + (set! (-> arg0 fval) + (the-as + float + (arg1 (-> arg0 id) (debug-menu-msg update) (the-as int (-> arg0 fval)) (the-as int (-> arg0 fval))) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + arg0 + ) + +(defun debug-menu-item-var-make-float ((arg0 debug-menu-item-var) + (arg1 (function int debug-menu-msg float float float)) + (arg2 float) + (arg3 symbol) + (arg4 float) + (arg5 float) + (arg6 int) + ) + (set! (-> arg0 float-p) #t) + (set! (-> arg0 range-p) arg3) + (set! (-> arg0 frange-min) arg4) + (set! (-> arg0 frange-max) arg5) + (set! (-> arg0 fstart-inc) arg2) + (set! (-> arg0 fstep) arg2) + (set! (-> arg0 fprecision) arg6) + (set! (-> arg0 factivate-func) arg1) + (if arg3 + (set! (-> arg0 fval) arg4) + (set! (-> arg0 fval) 0.0) + ) + (if arg1 + (set! (-> arg0 fval) + (the float (the-as int (arg1 (-> arg0 id) (debug-menu-msg update) (-> arg0 fval) (-> arg0 fval)))) + ) + ) + (debug-menu-item-var-update-display-str arg0) + arg0 + ) + +(defmethod new debug-menu-item-var ((allocation symbol) (type-to-make type) (arg0 string) (arg1 int) (arg2 int)) + (let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (let ((v1-2 (/ arg2 8))) + (set! (-> gp-0 name) arg0) + (set! (-> gp-0 parent) #f) + (set! (-> gp-0 refresh-delay) 31) + (set! (-> gp-0 refresh-ctr) (-> gp-0 refresh-delay)) + (set! (-> gp-0 id) arg1) + (set! v1-2 (cond + ((< 3 v1-2) + (empty) + v1-2 + ) + (else + 3 + ) + ) + ) + (set! (-> gp-0 show-len) v1-2) + ) + (set! (-> gp-0 grabbed-joypad-p) #f) + (set! (-> gp-0 ifloat-p) #f) + (set! (-> gp-0 display-str) (new 'debug 'string 64 (the-as string #f))) + (debug-menu-item-var-make-int gp-0 (the-as (function int debug-menu-msg int int int) #f) 1 #t 0 0 #f) + gp-0 + ) + ) + +(defun debug-menu-context-grab-joypad ((arg0 debug-menu-context) (arg1 basic) (arg2 (function basic int none))) + (cond + ((-> arg0 joypad-func) + #f + ) + (else + (set! (-> arg0 joypad-func) arg2) + (set! (-> arg0 joypad-item) (the-as debug-menu-item arg1)) + #t + ) + ) + ) + +(defun debug-menu-context-release-joypad ((arg0 debug-menu-context)) + (set! (-> arg0 joypad-func) #f) + (set! (-> arg0 joypad-item) #f) + #f + ) + +(defun debug-menu-item-get-max-width ((arg0 debug-menu-item) (arg1 debug-menu)) + (local-vars (v0-1 int)) + 0 + (cond + ((= (-> arg0 type) debug-menu-item-submenu) + (set! v0-1 + (+ (the int + (-> (get-string-length (-> (the-as debug-menu-item-submenu arg0) name) (-> arg1 context font)) length) + ) + 16 + ) + ) + ) + ((= (-> arg0 type) debug-menu-item-var) + (set! v0-1 + (the int + (-> (get-string-length (-> (the-as debug-menu-item-var arg0) display-str) (-> arg1 context font)) length) + ) + ) + ) + (else + (set! v0-1 (+ (the int (-> (get-string-length (-> arg0 name) (-> arg1 context font)) length)) 6)) + ) + ) + v0-1 + ) + +(defun debug-menu-context-default-selection ((arg0 debug-menu-context) (arg1 symbol)) + (when (or (zero? (-> arg0 sel-length)) (not arg1)) + (let ((s5-0 (-> arg0 root-menu))) + (when (and s5-0 (not (null? (-> s5-0 items)))) + (let ((s4-0 (-> arg0 is-active))) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg0 sel-length) 1) + (set! (-> arg0 sel-menu 0) s5-0) + (set! (-> s5-0 selected-item) (the-as debug-menu-item (-> s5-0 items car))) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + ) + ) + ) + arg0 + ) + +(defun debug-menu-rebuild ((arg0 debug-menu)) + (let ((s4-0 0) + (s5-0 0) + ) + (let* ((s3-0 (-> arg0 items)) + (a0-1 (car s3-0)) + ) + (while (not (null? s3-0)) + (+! s5-0 1) + (set! (-> (the-as debug-menu-item a0-1) parent) arg0) + (set! s4-0 (max s4-0 (debug-menu-item-get-max-width (the-as debug-menu-item a0-1) arg0))) + (set! s3-0 (cdr s3-0)) + (set! a0-1 (car s3-0)) + ) + ) + (set! (-> arg0 pix-width) (+ s4-0 18)) + (set! (-> arg0 pix-height) (+ (* 15 s5-0) 10)) + ) + (let ((a0-2 (-> arg0 context))) + (debug-menu-context-default-selection a0-2 #t) + ) + arg0 + ) + +(defun debug-menu-context-set-root-menu ((arg0 debug-menu-context) (arg1 debug-menu)) + (let ((s4-0 (-> arg0 is-active))) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg0 root-menu) arg1) + (debug-menu-context-default-selection arg0 #f) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + arg0 + ) + +(defun debug-menu-append-item ((arg0 debug-menu) (arg1 debug-menu-node)) + (let* ((gp-0 (-> arg0 context)) + (s4-0 (-> gp-0 is-active)) + ) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg1 parent) arg0) + (set! (-> arg0 items) (the-as pair (append! (-> arg0 items) (cons arg1 '())))) + (debug-menu-rebuild arg0) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + arg1 + ) + +(defun debug-menu-remove-all-items ((arg0 debug-menu)) + (let* ((gp-0 (-> arg0 context)) + (s4-0 (-> gp-0 is-active)) + ) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg0 items) '()) + (set! (-> arg0 selected-item) #f) + (debug-menu-rebuild arg0) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + arg0 + ) + +;; WARN: Return type mismatch object vs function. +(defun debug-menu-func-decode ((arg0 object)) + (let ((v1-2 (rtype-of arg0))) + (the-as function (cond + ((or (= v1-2 symbol) (= v1-2 type)) + (-> (the-as symbol arg0) value) + ) + ((= v1-2 function) + arg0 + ) + (else + nothing + ) + ) + ) + ) + ) + +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +(defun debug-menu-make-from-template ((arg0 debug-menu-context) (arg1 pair)) + (local-vars (s4-0 debug-menu-node)) + (when (or (not arg1) (null? arg1)) + (set! s4-0 (the-as debug-menu-node #f)) + (goto cfg-39) + ) + (let ((s5-0 (car arg1)) + (s4-1 (car (cdr arg1))) + ) + (cond + ((= s5-0 'menu) + (let ((s5-1 (new 'debug 'debug-menu arg0 (the-as string s4-1)))) + (set! s4-0 (new 'debug 'debug-menu-item-submenu (the-as string s4-1) s5-1)) + (let* ((gp-1 (cdr (cdr arg1))) + (a1-3 (car gp-1)) + ) + (while (not (null? gp-1)) + (let ((a1-4 (debug-menu-make-from-template arg0 (the-as pair a1-3)))) + (if a1-4 + (debug-menu-append-item s5-1 a1-4) + ) + ) + (set! gp-1 (cdr gp-1)) + (set! a1-3 (car gp-1)) + ) + ) + ) + ) + ((= s5-0 'main-menu) + (set! s4-0 (new 'debug 'debug-menu arg0 (the-as string s4-1))) + (let* ((gp-2 (cdr (cdr arg1))) + (a1-6 (car gp-2)) + ) + (while (not (null? gp-2)) + (let ((a1-7 (debug-menu-make-from-template arg0 (the-as pair a1-6)))) + (if a1-7 + (debug-menu-append-item (the-as debug-menu s4-0) a1-7) + ) + ) + (set! gp-2 (cdr gp-2)) + (set! a1-6 (car gp-2)) + ) + ) + (debug-menu-context-set-root-menu arg0 (the-as debug-menu s4-0)) + ) + (else + (set! s4-0 + (cond + ((= s5-0 'flag) + (new + 'debug + 'debug-menu-item-flag + (the-as string s4-1) + (car (cdr (cdr arg1))) + (the-as (function object debug-menu-msg object) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + ) + ) + ((or (= s5-0 0) (= s5-0 'function)) + (new + 'debug + 'debug-menu-item-function + (the-as string s4-1) + (car (cdr (cdr arg1))) + (the-as (function object object) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + ) + ) + ((= s5-0 'var) + (new + 'debug + 'debug-menu-item-var + (the-as string s4-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (car (cdr (cdr (cdr arg1))))) + ) + ) + ((or (= s5-0 'int-var) (= s5-0 'int-var-gat1) (= s5-0 'hex-var)) + (set! s4-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s4-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (debug-menu-item-var-make-int + (the-as debug-menu-item-var s4-0) + (the-as (function int debug-menu-msg int int int) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + (command-get-int (ref arg1 5) 0) + (the-as symbol (ref arg1 6)) + (command-get-int (ref arg1 7) 0) + (command-get-int (ref arg1 8) 0) + (= s5-0 'hex-var) + ) + s4-0 + ) + ((= s5-0 'float-var) + (set! s4-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s4-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (debug-menu-item-var-make-float + (the-as debug-menu-item-var s4-0) + (the-as (function int debug-menu-msg float float float) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + (command-get-float (ref arg1 5) 0.0) + (the-as symbol (ref arg1 6)) + (command-get-float (ref arg1 7) 0.0) + (command-get-float (ref arg1 8) 0.0) + (command-get-int (ref arg1 9) 0) + ) + s4-0 + ) + (else + (the-as debug-menu-node #f) + ) + ) + ) + ) + ) + ) + (label cfg-39) + s4-0 + ) + +;; WARN: Return type mismatch object vs debug-menu. +(defun debug-menu-find-from-template ((arg0 debug-menu-context) (arg1 pair)) + (let ((s5-0 (the-as object (-> arg0 root-menu)))) + (while (begin (label cfg-12) (and s5-0 (type? s5-0 debug-menu) (not (null? arg1)))) + (let ((s3-0 (-> (the-as debug-menu s5-0) items)) + (s5-1 (car arg1)) + ) + (set! arg1 (cdr arg1)) + (let ((s4-0 (car s3-0))) + (while (not (null? s3-0)) + (when (string= (the-as string s5-1) (-> (the-as debug-menu-item s4-0) name)) + (if (type? s4-0 debug-menu-item-submenu) + (set! s5-0 (-> (the-as debug-menu-item-submenu s4-0) submenu)) + (set! s5-0 s4-0) + ) + (goto cfg-12) + ) + (set! s3-0 (cdr s3-0)) + (set! s4-0 (car s3-0)) + ) + ) + ) + (set! s5-0 #f) + (goto cfg-19) + ) + (label cfg-19) + (the-as debug-menu s5-0) + ) + ) + +(defun debug-menu-item-submenu-render ((arg0 debug-menu-item-submenu) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((s5-0 (-> arg0 parent context font))) + (let ((v1-2 s5-0) + (a0-1 arg2) + ) + (set! (-> v1-2 origin x) (the float arg1)) + (set! (-> v1-2 origin y) (the float a0-1)) + ) + (set! (-> s5-0 color) (cond + ((zero? arg3) + (font-color menu) + ) + (arg4 + (font-color menu-selected-parent) + ) + (else + (font-color menu-parent) + ) + ) + ) + (with-dma-buffer-add-bucket ((s3-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string-adv (-> arg0 name) s3-0 s5-0) + (draw-string-adv "..." s3-0 s5-0) + ) + ) + arg0 + ) + +(defun debug-menu-item-function-render ((arg0 debug-menu-item-function) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((v1-2 (-> arg0 parent context font))) + (let ((a0-1 v1-2) + (a1-1 arg2) + ) + (set! (-> a0-1 origin x) (the float arg1)) + (set! (-> a0-1 origin y) (the float a1-1)) + ) + (set! (-> v1-2 color) (the-as font-color (cond + ((> (-> arg0 hilite-timer) 0) + (+! (-> arg0 hilite-timer) -1) + 10 + ) + ((< (-> arg0 hilite-timer) 0) + (+! (-> arg0 hilite-timer) 1) + 14 + ) + ((nonzero? arg3) + 13 + ) + (else + 12 + ) + ) + ) + ) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string (-> arg0 name) s4-0 v1-2) + ) + ) + arg0 + ) + +(defun debug-menu-item-flag-render ((arg0 debug-menu-item-flag) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((v1-2 (-> arg0 parent context font))) + (let ((a0-1 v1-2) + (a1-1 arg2) + ) + (set! (-> a0-1 origin x) (the float arg1)) + (set! (-> a0-1 origin y) (the float a1-1)) + ) + (set! (-> v1-2 color) (cond + ((= (-> arg0 is-on) 'invalid) + (font-color menu-invalid) + ) + ((-> arg0 is-on) + (if (zero? arg3) + (font-color menu-flag-on) + (font-color menu-flag-on-parent) + ) + ) + ((zero? arg3) + (font-color menu-flag-off) + ) + (else + (font-color menu-flag-off-parent) + ) + ) + ) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string (-> arg0 name) s4-0 v1-2) + ) + ) + arg0 + ) + +(defun debug-menu-item-var-render ((arg0 debug-menu-item-var) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((s5-0 (-> arg0 parent context font))) + (let ((v1-2 s5-0) + (a0-1 arg2) + ) + (set! (-> v1-2 origin x) (the float arg1)) + (set! (-> v1-2 origin y) (the float a0-1)) + ) + (set! (-> s5-0 color) (cond + ((zero? arg3) + (if (-> arg0 grabbed-joypad-p) + (font-color menu-selected) + (font-color menu) + ) + ) + (arg4 + (font-color menu-selected-parent) + ) + (else + (font-color menu-parent) + ) + ) + ) + (with-dma-buffer-add-bucket ((s1-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string-adv (-> arg0 name) s1-0 s5-0) + (draw-string-adv ":" s1-0 s5-0) + (cond + ((>= (-> arg0 show-len) (length (-> arg0 display-str))) + (draw-string (-> arg0 display-str) s1-0 s5-0) + ) + (else + (draw-string "..." s1-0 s5-0) + (set! arg4 (and (zero? arg3) arg4)) + (when arg4 + (set-origin! s5-0 20 379) + (draw-string-adv (-> arg0 name) s1-0 s5-0) + (draw-string-adv ":" s1-0 s5-0) + (draw-string (-> arg0 display-str) s1-0 s5-0) + ) + ) + ) + ) + ) + arg0 + ) + +(defun debug-menu-item-render ((arg0 debug-menu-item) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (when (> (-> arg0 refresh-delay) 0) + (+! (-> arg0 refresh-ctr) -1) + (when (<= (-> arg0 refresh-ctr) 0) + (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) + (debug-menu-item-send-msg arg0 (debug-menu-msg update)) + ) + ) + (cond + ((= (-> arg0 type) debug-menu-item-submenu) + (debug-menu-item-submenu-render (the-as debug-menu-item-submenu arg0) arg1 arg2 arg3 arg4) + ) + ((= (-> arg0 type) debug-menu-item-function) + (debug-menu-item-function-render (the-as debug-menu-item-function arg0) arg1 arg2 arg3 arg4) + ) + ((= (-> arg0 type) debug-menu-item-flag) + (debug-menu-item-flag-render (the-as debug-menu-item-flag arg0) arg1 arg2 arg3 arg4) + ) + ((= (-> arg0 type) debug-menu-item-var) + (debug-menu-item-var-render (the-as debug-menu-item-var arg0) arg1 arg2 arg3 arg4) + ) + (else + (format 0 "ERROR: Found unknown item type!~%") + ) + ) + arg0 + ) + +(defun debug-menu-render ((arg0 debug-menu) (arg1 int) (arg2 int) (arg3 debug-menu-node) (arg4 int)) + (let ((v1-0 0)) + (let* ((a0-1 (-> arg0 items)) + (a1-1 (car a0-1)) + ) + (while (not (null? a0-1)) + (if (= a1-1 arg3) + (goto cfg-7) + ) + (+! v1-0 1) + (set! a0-1 (cdr a0-1)) + (set! a1-1 (car a0-1)) + ) + ) + (label cfg-7) + (if (< 16 v1-0) + (set! arg2 (- arg2 (* 15 (+ v1-0 -16)))) + ) + ) + (with-dma-buffer-add-bucket ((s0-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-sprite2d-xy + s0-0 + arg1 + arg2 + (-> arg0 pix-width) + (-> arg0 pix-height) + (new 'static 'rgba :a #x40) + #x3fffff + ) + ) + (let* ((s3-1 (+ arg1 3)) + (s2-1 (+ arg2 5)) + (s1-1 (-> arg0 items)) + (s0-1 (car s1-1)) + ) + (while (not (null? s1-1)) + (when (= s0-1 arg3) + (set! (-> arg0 context font color) (if (nonzero? arg4) + (font-color menu-parent) + (font-color menu) + ) + ) + (set-origin! (-> arg0 context font) s3-1 s2-1) + (let* ((sv-16 (-> *display* frames (-> *display* on-screen) debug-buf)) + (sv-32 (-> sv-16 base)) + ) + (draw-string ">" sv-16 (-> arg0 context font)) + (let ((a3-3 (-> sv-16 base))) + (when (!= sv-32 a3-3) + (let ((v1-33 (the-as object (-> sv-16 base)))) + (set! (-> (the-as dma-packet v1-33) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-33) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-33) vif1) (new 'static 'vif-tag)) + (set! (-> sv-16 base) (the-as pointer (&+ (the-as dma-packet v1-33) 16))) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (bucket-id bucket795) + sv-32 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + ) + ) + (debug-menu-item-render (the-as debug-menu-item s0-1) (+ s3-1 12) s2-1 arg4 (= s0-1 arg3)) + (+! s2-1 15) + (set! s1-1 (cdr s1-1)) + (set! s0-1 (car s1-1)) + ) + ) + arg0 + ) + +(defun debug-menu-context-render ((arg0 debug-menu-context)) + (let ((s4-0 6)) + (dotimes (s5-0 (-> arg0 sel-length)) + (let ((s3-0 (-> arg0 sel-menu s5-0))) + (let ((a3-0 (-> s3-0 selected-item))) + (debug-menu-render s3-0 s4-0 52 a3-0 (+ (- -1 s5-0) (-> arg0 sel-length))) + ) + (set! s4-0 (+ s4-0 3 (-> s3-0 pix-width))) + ) + ) + ) + arg0 + ) + +(defun debug-menu-context-select-next-or-prev-item ((arg0 debug-menu-context) (arg1 int)) + (local-vars (v1-6 object)) + (let ((s5-0 (-> arg0 sel-menu (+ (-> arg0 sel-length) -1)))) + (let ((a2-0 (-> s5-0 selected-item)) + (a0-1 '()) + (v1-4 '()) + ) + (let ((a3-0 (-> s5-0 items))) + (while (not (null? a3-0)) + (when (= (car a3-0) a2-0) + (set! v1-4 a3-0) + (goto cfg-7) + ) + (set! a0-1 a3-0) + (set! a3-0 (cdr a3-0)) + ) + ) + (label cfg-7) + (when (null? v1-4) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-19) + ) + (cond + ((>= arg1 0) + (if (null? (cdr v1-4)) + (set! v1-6 (car (-> s5-0 items))) + (set! v1-6 (car (cdr v1-4))) + ) + ) + ((null? a0-1) + (set! v1-6 (car (last (-> s5-0 items)))) + ) + (else + (set! v1-6 (car a0-1)) + ) + ) + ) + (set! (-> s5-0 selected-item) (the-as debug-menu-item v1-6)) + ) + (label cfg-19) + arg0 + ) + +(defun debug-menu-context-select-new-item ((arg0 debug-menu-context) (arg1 int)) + (let* ((a2-0 (-> arg0 sel-menu (+ (-> arg0 sel-length) -1))) + (a1-1 (-> a2-0 selected-item)) + (a0-1 0) + (v1-4 -1) + ) + (let ((a2-1 (-> a2-0 items))) + (while (not (null? a2-1)) + (if (= (car a2-1) a1-1) + (set! v1-4 a0-1) + ) + (set! a2-1 (cdr a2-1)) + (+! a0-1 1) + ) + ) + (when (= v1-4 -1) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-25) + ) + (cond + ((>= arg1 0) + (cond + ((= v1-4 (+ a0-1 -1)) + (set! arg1 1) + ) + ((>= (+ v1-4 arg1) a0-1) + (set! arg1 (+ (- -1 v1-4) a0-1)) + ) + ) + (dotimes (s4-0 arg1) + (debug-menu-context-select-next-or-prev-item arg0 1) + ) + ) + (else + (cond + ((zero? v1-4) + (set! arg1 -1) + ) + ((< (+ v1-4 arg1) 0) + (set! arg1 (- v1-4)) + ) + ) + (dotimes (s4-1 (- arg1)) + (debug-menu-context-select-next-or-prev-item arg0 -1) + ) + ) + ) + ) + (label cfg-25) + arg0 + ) + +(defun debug-menu-context-open-submenu ((arg0 debug-menu-context) (arg1 debug-menu)) + (let ((v1-0 (-> arg0 sel-length))) + (when (>= v1-0 8) + (format 0 "ERROR: Trying to exceed maximum menu depth!") + (return arg1) + ) + (when (null? (-> arg1 items)) + (format 0 "ERROR: Submenu has no items!") + (return arg1) + ) + (set! (-> arg0 sel-menu v1-0) arg1) + (if (not (-> arg1 selected-item)) + (set! (-> arg1 selected-item) (the-as debug-menu-item (-> arg1 items car))) + ) + (set! (-> arg0 sel-length) (+ v1-0 1)) + ) + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest current-selection)) + ) + +(defun debug-menu-context-close-submenu ((arg0 debug-menu-context)) + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest current-selection)) + (if (< 1 (-> arg0 sel-length)) + (+! (-> arg0 sel-length) -1) + ) + arg0 + ) + +(defun debug-menu-item-submenu-msg ((arg0 debug-menu-item-submenu) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (let ((a0-1 (-> arg0 parent context))) + (debug-menu-context-open-submenu a0-1 (-> arg0 submenu)) + ) + ) + arg0 + ) + +(defun debug-menu-item-function-msg ((arg0 debug-menu-item-function) (arg1 debug-menu-msg)) + (cond + ((= arg1 (debug-menu-msg press)) + (cond + ((-> arg0 activate-func) + (if ((-> arg0 activate-func) (-> arg0 id)) + (set! (-> arg0 hilite-timer) 6) + (set! (-> arg0 hilite-timer) -6) + ) + ) + (else + (set! (-> arg0 hilite-timer) -6) + ) + ) + ) + ((= arg1 (debug-menu-msg deactivate)) + (set! (-> arg0 hilite-timer) 0) + 0 + ) + ) + arg0 + ) + +(defun debug-menu-item-flag-msg ((arg0 debug-menu-item-flag) (arg1 debug-menu-msg)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (-> arg0 activate-func) + (set! (-> arg0 is-on) (the-as symbol ((-> arg0 activate-func) (-> arg0 id) (debug-menu-msg press)))) + ) + (let ((a0-2 (-> arg0 parent context))) + (debug-menu-context-send-msg a0-2 (debug-menu-msg update) (debug-menu-dest open-menus)) + ) + ) + ((or (= arg1 (debug-menu-msg update)) (= arg1 (debug-menu-msg activate))) + (if (-> arg0 activate-func) + (set! (-> arg0 is-on) (the-as symbol ((-> arg0 activate-func) (-> arg0 id) (debug-menu-msg update)))) + ) + (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) + ) + ) + arg0 + ) + +(defun debug-menu-item-var-joypad-handler ((arg0 debug-menu-item-var) (arg1 int)) + (cond + ((not (cpad-hold? arg1 x)) + (let ((a0-2 (-> arg0 parent context))) + (debug-menu-context-release-joypad a0-2) + ) + (set! (-> arg0 grabbed-joypad-p) #f) + (when (cpad-pressed? arg1 square) + (cond + ((-> arg0 float-p) + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) (-> arg0 fundo-val) (-> arg0 fval)) + ) + ) + ) + (else + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) (-> arg0 fundo-val) (-> arg0 fval)) + ) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + ) + (let ((a0-7 (-> arg0 parent context))) + (debug-menu-context-send-msg a0-7 (debug-menu-msg update) (debug-menu-dest open-menus)) + ) + ) + ((or (cpad-hold? arg1 right) (cpad-hold? arg1 left) (cpad-hold? arg1 down) (cpad-hold? arg1 up)) + (let ((v1-45 (cond + ((cpad-hold? arg1 right) + 10 + ) + ((cpad-hold? arg1 up) + 1 + ) + ((cpad-hold? arg1 down) + -1 + ) + (else + -10 + ) + ) + ) + ) + (when (!= v1-45 (-> arg0 inc-dir)) + (set! (-> arg0 inc-dir) v1-45) + (set! (-> arg0 inc-delay) 15) + (set! (-> arg0 inc-delay-ctr) 0) + (set! (-> arg0 step-delay-ctr) 30) + (set! (-> arg0 fstep) (-> arg0 fstart-inc)) + (set! (-> arg0 fstep) (-> arg0 fstart-inc)) + ) + ) + (cond + ((<= (-> arg0 inc-delay-ctr) 0) + (if (> (-> arg0 inc-delay) 0) + (+! (-> arg0 inc-delay) -1) + ) + (when (zero? (-> arg0 inc-delay)) + (cond + ((<= (-> arg0 step-delay-ctr) 0) + (set! (-> arg0 step-delay-ctr) 30) + (cond + ((-> arg0 float-p) + (if (< (-> arg0 fstep) 10000000.0) + (set! (-> arg0 fstep) (* 2.0 (-> arg0 fstep))) + ) + ) + (else + (if (< (the-as int (-> arg0 fstep)) #x989680) + (set! (-> arg0 fstep) (the-as float (* (-> arg0 fstep) 2))) + ) + ) + ) + ) + (else + (+! (-> arg0 step-delay-ctr) -1) + ) + ) + ) + (set! (-> arg0 inc-delay-ctr) (-> arg0 inc-delay)) + (cond + ((-> arg0 float-p) + (when (-> arg0 factivate-func) + (let ((f0-8 (+ (-> arg0 fval) (* (the float (-> arg0 inc-dir)) (-> arg0 fstep))))) + (if (-> arg0 range-p) + (set! f0-8 (fmin (fmax f0-8 (-> arg0 frange-min)) (-> arg0 frange-max))) + ) + (set! (-> arg0 fval) ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) f0-8 (-> arg0 fval))) + ) + ) + ) + (else + (when (-> arg0 factivate-func) + (let ((a2-4 (+ (the-as int (-> arg0 fval)) (* (-> arg0 inc-dir) (the-as int (-> arg0 fstep)))))) + (if (-> arg0 range-p) + (set! a2-4 (min (max a2-4 (the-as int (-> arg0 frange-min))) (the-as int (-> arg0 frange-max)))) + ) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) (the-as float a2-4) (-> arg0 fval)) + ) + ) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + (let ((a0-29 (-> arg0 parent context))) + (debug-menu-context-send-msg a0-29 (debug-menu-msg update) (debug-menu-dest current-selection)) + ) + ) + (else + (+! (-> arg0 inc-delay-ctr) -1) + ) + ) + ) + (else + (set! (-> arg0 inc-dir) 0) + 0 + ) + ) + arg0 + ) + +(defun debug-menu-item-var-msg ((arg0 debug-menu-item-var) (arg1 debug-menu-msg)) + (cond + ((= arg1 (debug-menu-msg deactivate)) + (when (-> arg0 grabbed-joypad-p) + (let ((a0-1 (-> arg0 parent context))) + (debug-menu-context-release-joypad a0-1) + ) + (set! (-> arg0 grabbed-joypad-p) #f) + ) + ) + ((= arg1 (debug-menu-msg press)) + (when (not (-> arg0 grabbed-joypad-p)) + (let ((a0-2 (-> arg0 parent context))) + (when (debug-menu-context-grab-joypad + a0-2 + arg0 + (the-as (function basic int none) debug-menu-item-var-joypad-handler) + ) + (set! (-> arg0 grabbed-joypad-p) #t) + (set! (-> arg0 fundo-val) (-> arg0 fval)) + (set! (-> arg0 fundo-val) (-> arg0 fval)) + (set! (-> arg0 inc-dir) 0) + 0 + ) + ) + ) + ) + ((or (= arg1 (debug-menu-msg update)) (= arg1 (debug-menu-msg activate))) + (cond + ((-> arg0 float-p) + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg update) (-> arg0 fval) (-> arg0 fval)) + ) + ) + ) + (else + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg update) (-> arg0 fval) (-> arg0 fval)) + ) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) + ) + ) + arg0 + ) + +(defun debug-menu-item-send-msg ((arg0 debug-menu-item) (arg1 debug-menu-msg)) + (cond + ((= (-> arg0 type) debug-menu-item-submenu) + (debug-menu-item-submenu-msg (the-as debug-menu-item-submenu arg0) arg1) + ) + ((= (-> arg0 type) debug-menu-item-function) + (debug-menu-item-function-msg (the-as debug-menu-item-function arg0) arg1) + ) + ((= (-> arg0 type) debug-menu-item-flag) + (debug-menu-item-flag-msg (the-as debug-menu-item-flag arg0) arg1) + ) + ((= (-> arg0 type) debug-menu-item-var) + (debug-menu-item-var-msg (the-as debug-menu-item-var arg0) arg1) + ) + (else + (format 0 "ERROR: Found unknown item type!~%") + ) + ) + arg0 + ) + +(defun debug-menu-send-msg ((arg0 debug-menu) (arg1 debug-menu-msg) (arg2 symbol)) + (let* ((s3-0 (-> arg0 items)) + (s2-0 (car s3-0)) + ) + (while (not (null? s3-0)) + (debug-menu-item-send-msg (the-as debug-menu-item s2-0) arg1) + (if (and arg2 (= (-> (the-as debug-menu-item s2-0) type) debug-menu-item-submenu)) + (debug-menu-send-msg (-> (the-as debug-menu-item-submenu s2-0) submenu) arg1 #t) + ) + (set! s3-0 (cdr s3-0)) + (set! s2-0 (car s3-0)) + ) + ) + arg0 + ) + +(defun debug-menu-context-send-msg ((arg0 debug-menu-context) (arg1 debug-menu-msg) (arg2 debug-menu-dest)) + (cond + ((= arg2 (debug-menu-dest root)) + (debug-menu-send-msg (-> arg0 root-menu) arg1 #t) + ) + ((= arg2 (debug-menu-dest open-menus)) + (when (-> arg0 is-active) + (dotimes (s4-0 (-> arg0 sel-length)) + (let ((a0-2 (-> arg0 sel-menu s4-0))) + (debug-menu-send-msg a0-2 arg1 #f) + ) + ) + ) + ) + ((= arg2 (debug-menu-dest current-selection)) + (when (-> arg0 is-active) + (if (nonzero? (-> arg0 sel-length)) + (debug-menu-send-msg (-> arg0 sel-menu (+ (-> arg0 sel-length) -1)) arg1 #f) + ) + ) + ) + ((= arg2 (debug-menu-dest activation)) + (cond + ((= arg1 (debug-menu-msg activate)) + (when (not (-> arg0 is-active)) + (set! (-> arg0 is-active) #t) + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest open-menus)) + ) + ) + ((= arg1 (debug-menu-msg deactivate)) + (when (-> arg0 is-active) + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest open-menus)) + (set! (-> arg0 is-active) #f) + ) + ) + ) + ) + ) + arg0 + ) + +(defun debug-menu-context-activate-selection ((arg0 debug-menu-context)) + (let ((a0-1 (-> arg0 sel-menu (+ (-> arg0 sel-length) -1) selected-item))) + (debug-menu-item-send-msg a0-1 (debug-menu-msg press)) + ) + arg0 + ) + +(defun debug-menus-default-joypad-func ((arg0 debug-menu-context)) + (cond + ((cpad-pressed? (-> arg0 joypad-number) square) + (cond + ((< 1 (-> arg0 sel-length)) + (debug-menu-context-close-submenu arg0) + ) + (else + ) + ) + ) + ((cpad-pressed? (-> arg0 joypad-number) x) + (debug-menu-context-activate-selection arg0) + ) + ((cpad-pressed? (-> arg0 joypad-number) up) + (debug-menu-context-select-new-item arg0 -1) + ) + ((cpad-pressed? (-> arg0 joypad-number) down) + (debug-menu-context-select-new-item arg0 1) + ) + ((cpad-pressed? (-> arg0 joypad-number) left) + (debug-menu-context-select-new-item arg0 -5) + ) + ((cpad-pressed? (-> arg0 joypad-number) right) + (debug-menu-context-select-new-item arg0 5) + ) + ) + arg0 + ) + +(defun debug-menus-active ((arg0 debug-menu-context)) + (when (not (-> arg0 is-hidden)) + (if (-> arg0 joypad-func) + ((-> arg0 joypad-func) (-> arg0 joypad-item) (-> arg0 joypad-number)) + (debug-menus-default-joypad-func arg0) + ) + (debug-menu-context-render arg0) + ) + arg0 + ) + +(defun debug-menus-handler ((arg0 debug-menu-context)) + (if (-> arg0 is-active) + (debug-menus-active arg0) + ) + arg0 + ) diff --git a/goal_src/jakx/engine/debug/nav-mesh-editor-h.gc b/goal_src/jakx/engine/debug/nav-mesh-editor-h.gc index 79bef41b34..4f0c6dc2fb 100644 --- a/goal_src/jakx/engine/debug/nav-mesh-editor-h.gc +++ b/goal_src/jakx/engine/debug/nav-mesh-editor-h.gc @@ -5,5 +5,274 @@ ;; name in dgo: nav-mesh-editor-h ;; dgos: ENGINE, GAME +;; +++nav-mesh-poly-flag +(defenum nav-mesh-poly-flag + :type uint32 + :bitfield #t + (gap 0) + (off 1) + (nmpf2 2) + (user0 3) + ) +;; ---nav-mesh-poly-flag + +;; +++nav-mesh-editable-flag +(defenum nav-mesh-editable-flag + :type uint32 + :bitfield #t + (nmef0 0) + ) +;; ---nav-mesh-editable-flag + ;; DECOMP BEGINS +;; this file is debug only +(declare-file (debug)) + +(deftype vector-array (inline-array-class) + ((data vector :inline :dynamic) + ) + ) + + +(set! (-> vector-array heap-base) (the-as uint 16)) + +(deftype int16-array (inline-array-class) + ((data int16 :dynamic) + ) + ) + + +(set! (-> int16-array heap-base) (the-as uint 2)) + +(deftype nav-mesh-poly (structure) + ((poly-id uint32) + (flags nav-mesh-poly-flag) + (index int16-array) + (insert-pos uint32) + ) + (:methods + (new (symbol type) _type_) + (init-fields! (_type_) none) + (nav-mesh-poly-method-10 () none) + (nav-mesh-poly-method-11 () none) + (nav-mesh-poly-method-12 () none) + (nav-mesh-poly-method-13 () none) + (nav-mesh-poly-method-14 () none) + ) + ) + + +(deftype nav-mesh-poly-array (inline-array-class) + ((data nav-mesh-poly :inline :dynamic) + ) + ) + + +(set! (-> nav-mesh-poly-array heap-base) (the-as uint 16)) + +(defmethod init-fields! ((this nav-mesh-poly)) + (set! (-> this index) (new 'debug 'int16-array 512)) + (set! (-> this index length) 0) + (set! (-> this insert-pos) (the-as uint 0)) + 0 + (none) + ) + +;; WARN: Return type mismatch object vs nav-mesh-poly. +(defmethod new nav-mesh-poly ((allocation symbol) (type-to-make type)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + (let ((gp-0 (the-as object (t9-0 allocation v1-1)))) + (when (zero? (the-as structure gp-0)) + (set! gp-0 0) + (goto cfg-4) + ) + ((method-of-type nav-mesh-poly init-fields!) (the-as nav-mesh-poly gp-0)) + (label cfg-4) + (the-as nav-mesh-poly gp-0) + ) + ) + ) + +(deftype nav-mesh-tri-quad (structure) + ((indices uint32 4) + (poly uint32) + ) + ) + + +(deftype nav-mesh-tri-quad-array (inline-array-class) + ((data nav-mesh-tri-quad :dynamic) + ) + ) + + +(set! (-> nav-mesh-tri-quad-array heap-base) (the-as uint 32)) + +(deftype nav-mesh-editable (structure) + ((flags nav-mesh-editable-flag) + (verts vector-array) + (tris nav-mesh-tri-quad-array) + (quads nav-mesh-tri-quad-array) + (navmesh-id uint32) + (idx uint32) + (level-name symbol) + (level-id uint32) + (polys nav-mesh-poly-array) + (selected-poly uint32) + ) + (:methods + (new (symbol type) _type_) + (init-fields! (_type_) none) + (nav-mesh-editable-method-10 () none) + (nav-mesh-editable-method-11 () none) + (nav-mesh-editable-method-12 () none) + (nav-mesh-editable-method-13 () none) + (nav-mesh-editable-method-14 () none) + (nav-mesh-editable-method-15 () none) + (nav-mesh-editable-method-16 () none) + (nav-mesh-editable-method-17 () none) + (nav-mesh-editable-method-18 () none) + ) + ) + + +(deftype nav-mesh-editable-array (inline-array-class) + ((data nav-mesh-editable :dynamic) + ) + ) + + +(set! (-> nav-mesh-editable-array heap-base) (the-as uint 48)) + +(defmethod init-fields! ((this nav-mesh-editable)) + (set! (-> this verts) (new 'debug 'vector-array 1024)) + (set! (-> this verts length) 0) + (set! (-> this tris) (new 'debug 'nav-mesh-tri-quad-array 512)) + (set! (-> this tris length) 0) + (set! (-> this quads) (new 'debug 'nav-mesh-tri-quad-array 512)) + (set! (-> this quads length) 0) + (set! (-> this polys) (new 'debug 'nav-mesh-poly-array 92)) + (dotimes (s5-0 (-> this polys length)) + (init-fields! (-> this polys data s5-0)) + (set! (-> this polys data s5-0 poly-id) (the-as uint s5-0)) + ) + (set! (-> this navmesh-id) (the-as uint 0)) + (logior! (-> this flags) (nav-mesh-editable-flag nmef0)) + 0 + (none) + ) + +;; WARN: Return type mismatch object vs nav-mesh-editable. +(defmethod new nav-mesh-editable ((allocation symbol) (type-to-make type)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + (let ((gp-0 (the-as object (t9-0 allocation v1-1)))) + (when (zero? (the-as structure gp-0)) + (set! gp-0 0) + (goto cfg-4) + ) + ((method-of-type nav-mesh-editable init-fields!) (the-as nav-mesh-editable gp-0)) + (label cfg-4) + (the-as nav-mesh-editable gp-0) + ) + ) + ) + +(deftype nav-mesh-editor-undo (structure) + ((current-nav-mesh nav-mesh-editable) + (selected-poly uint32) + (index int16-array) + (insert-pos uint32) + (verts vector-array) + ) + (:methods + (new (symbol type) _type_) + (init-fields! (_type_) none) + ) + ) + + +(deftype nav-mesh-editor-undo-array (inline-array-class) + ((data nav-mesh-editor-undo :dynamic) + ) + ) + + +(set! (-> nav-mesh-editor-undo-array heap-base) (the-as uint 32)) + +(defmethod init-fields! ((this nav-mesh-editor-undo)) + (set! (-> this index) (new 'debug 'int16-array 2048)) + (set! (-> this verts) (new 'debug 'vector-array 1024)) + 0 + (none) + ) + +;; WARN: Return type mismatch object vs nav-mesh-editor-undo. +(defmethod new nav-mesh-editor-undo ((allocation symbol) (type-to-make type)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + (let ((gp-0 (the-as object (t9-0 allocation v1-1)))) + (when (zero? (the-as structure gp-0)) + (set! gp-0 0) + (goto cfg-4) + ) + ((method-of-type nav-mesh-editor-undo init-fields!) (the-as nav-mesh-editor-undo gp-0)) + (label cfg-4) + (the-as nav-mesh-editor-undo gp-0) + ) + ) + ) + +(deftype nav-mesh-editor (process-drawable) + ((close-menu-time uint64) + (external-cam-mode symbol) + (mouse-pressed uint64) + (mouse-screen-pos vector :inline) + (mouse-pos vector :inline) + (mouse-end vector :inline) + (mouse-hit vector :inline) + (mouse-hit-pick vector :inline) + (mouse-snap vector :inline) + (mouse-normal vector :inline) + (mouse-collide basic) + (mouse-tumble-dist float) + (mouse-tumble vector :inline) + (manipulator-pos vector :inline) + (manipulator-back-pos vector :inline) + (lock-action basic) + (mouse-action uint32) + (mouse-action-pos-ref vector :inline) + (nav-meshes nav-mesh-editable-array) + (current-nav-mesh nav-mesh-editable) + (manipulator manipulator :inline) + (level-name string) + (level-id uint32) + (undo-min uint32) + (undo-id uint32) + (undo-max uint32) + (undos nav-mesh-editor-undo-array) + (hide-unselected symbol) + (allow-snap symbol) + ) + (:methods + (nav-mesh-editor-method-50 () none) + (nav-mesh-editor-method-51 () none) + (nav-mesh-editor-method-52 () none) + (nav-mesh-editor-method-53 () none) + (nav-mesh-editor-method-54 () none) + (nav-mesh-editor-method-55 () none) + (nav-mesh-editor-method-56 () none) + (nav-mesh-editor-method-57 () none) + ) + ) + + +(define *nav-mesh-editor* (the-as (pointer nav-mesh-editor) #f)) diff --git a/goal_src/jakx/engine/debug/nav/mysql-nav-graph.gc b/goal_src/jakx/engine/debug/nav/mysql-nav-graph.gc index 10f4cdea9f..33212d5840 100644 --- a/goal_src/jakx/engine/debug/nav/mysql-nav-graph.gc +++ b/goal_src/jakx/engine/debug/nav/mysql-nav-graph.gc @@ -5,5 +5,58 @@ ;; name in dgo: mysql-nav-graph ;; dgos: ENGINE, GAME +;; +++nav-branch-clock-type +(defenum nav-branch-clock-type + :type uint8 + (no-clock 0) + (clock2 1) + (clock3 2) + (clock4 3) + ) +;; ---nav-branch-clock-type + +;; +++nav-branch-clock-mask +(defenum nav-branch-clock-mask + :type uint8 + :bitfield #t + (phase-1 0) + (phase-1a 1) + (phase-2 2) + (phase-2a 3) + (phase-3 4) + (phase-3a 5) + (phase-4 6) + (phase-4a 7) + ) +;; ---nav-branch-clock-mask + +;; +++nav-branch-flags +(defenum nav-branch-flags + :bitfield #t + :type uint8 + (nabflags-0) + (nabflags-1) + (nabflags-2) + (nabflags-3) + (nabflags-4) + (nabflags-5) + (nabflags-6) + (nabflags-7) + ) +;; ---nav-branch-flags + +;; +++nav-node-flag-byte +(defenum nav-node-flag-byte + "The same as [[nav-node-flag]] but more compact" + :type uint8 + :bitfield #t + (visited 0) + (blocked 1) + (pedestrian 2) + (selected 3) + (hidden 4) + ) +;; ---nav-node-flag-byte + ;; DECOMP BEGINS diff --git a/goal_src/jakx/engine/draw/draw-node.gc b/goal_src/jakx/engine/draw/draw-node.gc index 6e1db172bf..b106570e8d 100644 --- a/goal_src/jakx/engine/draw/draw-node.gc +++ b/goal_src/jakx/engine/draw/draw-node.gc @@ -7,3 +7,40 @@ ;; DECOMP BEGINS +(defmethod collect-regions ((this draw-node) (arg0 sphere) (arg1 int) (arg2 region-prim-list)) + "Fill the region-prim-list with regions that intersect the sphere." + (dotimes (s2-0 arg1) + (if (spheres-overlap? arg0 (the-as sphere (-> this bsphere))) + (collect-regions (-> this child) arg0 (the-as int (-> this child-count)) arg2) + ) + (&+! this 32) + ) + 0 + (none) + ) + + +(defmethod mem-usage ((this drawable-inline-array-node) (usage memory-usage-block) (flags int)) + (set! (-> usage length) (max 64 (-> usage length))) + (set! (-> usage data 63 name) "draw-node") + (+! (-> usage data 63 count) (-> this length)) + (let ((v1-6 (asize-of this))) + (+! (-> usage data 63 used) v1-6) + (+! (-> usage data 63 total) (logand -16 (+ v1-6 15))) + ) + this + ) + +;; WARN: Return type mismatch uint vs int. +(defmethod asize-of ((this drawable-inline-array-node)) + (the-as int (+ (-> drawable-inline-array-node size) (* (+ (-> this length) -1) 32))) + ) + +(defmethod collect-regions ((this drawable-inline-array-node) (arg0 sphere) (arg1 int) (arg2 region-prim-list)) + "Fill the region-prim-list with regions that intersect the sphere." + (collect-regions (the-as draw-node (-> this data)) arg0 (-> this length) arg2) + 0 + (none) + ) + +;; ERROR: function was not converted to expressions. Cannot decompile. diff --git a/goal_src/jakx/engine/draw/drawable-group.gc b/goal_src/jakx/engine/draw/drawable-group.gc index afb8926b22..64ebd3c21c 100644 --- a/goal_src/jakx/engine/draw/drawable-group.gc +++ b/goal_src/jakx/engine/draw/drawable-group.gc @@ -7,3 +7,98 @@ ;; DECOMP BEGINS +(defmethod new drawable-group ((allocation symbol) (type-to-make type) (arg0 int)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (+ (-> type-to-make size) (* arg0 4)))))) + (set! (-> v0-0 length) arg0) + v0-0 + ) + ) + +(defmethod print ((this drawable-group)) + (format #t "#<~A @ #x~X [~D]" (-> this type) this (-> this length)) + (dotimes (s5-0 (-> this length)) + (format #t " ~A" (-> this data s5-0)) + ) + (format #t ">") + this + ) + +(defmethod length ((this drawable-group)) + (-> this length) + ) + +;; WARN: Return type mismatch uint vs int. +(defmethod asize-of ((this drawable-group)) + (the-as int (+ (-> drawable-group size) (* (-> this length) 4))) + ) + +(defmethod mem-usage ((this drawable-group) (usage memory-usage-block) (flags int)) + (set! (-> usage length) (max 1 (-> usage length))) + (set! (-> usage data 0 name) "drawable-group") + (+! (-> usage data 0 count) 1) + (let ((v1-6 (asize-of this))) + (+! (-> usage data 0 used) v1-6) + (+! (-> usage data 0 total) (logand -16 (+ v1-6 15))) + ) + (dotimes (s3-0 (-> this length)) + (mem-usage (-> this data s3-0) usage flags) + ) + this + ) + +(defmethod login ((this drawable-group)) + "Initialize the object after it is loaded." + (dotimes (s5-0 (-> this length)) + (login (-> this data s5-0)) + ) + this + ) + +(defmethod draw ((this drawable-group)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (when (vis-cull (-> this id)) + (when (sphere-cull (-> this bsphere)) + (dotimes (s5-0 (-> this length)) + (draw (-> this data s5-0)) + ) + ) + ) + 0 + (none) + ) + +(defmethod collect-stats ((this drawable-group)) + "Collect triangle/perf statistics for rendering. + This is only called when viewing stats. + The vis-bits and culling registers are loaded during this time." + (when (vis-cull (-> this id)) + (when (sphere-cull (-> this bsphere)) + (dotimes (s5-0 (-> this length)) + (collect-stats (-> this data s5-0)) + ) + ) + ) + 0 + (none) + ) + +(defmethod debug-draw ((this drawable-group)) + "Debug-draw a drawable and its children. Typically uses the debug-draw functions." + (when (vis-cull (-> this id)) + (when (sphere-cull (-> this bsphere)) + (dotimes (s5-0 (-> this length)) + (debug-draw (-> this data s5-0)) + ) + ) + ) + 0 + (none) + ) + +(defmethod unpack-vis ((this drawable-group) (arg0 (pointer int8)) (arg1 (pointer int8))) + (dotimes (s4-0 (-> this length)) + (set! arg1 (unpack-vis (-> this data s4-0) arg0 arg1)) + ) + arg1 + ) diff --git a/goal_src/jakx/engine/draw/drawable-inline-array.gc b/goal_src/jakx/engine/draw/drawable-inline-array.gc index 105eb5ae6d..9ccbffd2dd 100644 --- a/goal_src/jakx/engine/draw/drawable-inline-array.gc +++ b/goal_src/jakx/engine/draw/drawable-inline-array.gc @@ -7,3 +7,32 @@ ;; DECOMP BEGINS +(defmethod length ((this drawable-inline-array)) + (-> this length) + ) + +(defmethod login ((this drawable-inline-array)) + "Initialize the object after it is loaded." + this + ) + +(defmethod draw ((this drawable-inline-array)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + 0 + (none) + ) + +(defmethod collect-stats ((this drawable-inline-array)) + "Collect triangle/perf statistics for rendering. + This is only called when viewing stats. + The vis-bits and culling registers are loaded during this time." + 0 + (none) + ) + +(defmethod debug-draw ((this drawable-inline-array)) + "Debug-draw a drawable and its children. Typically uses the debug-draw functions." + 0 + (none) + ) diff --git a/goal_src/jakx/engine/draw/drawable-tree.gc b/goal_src/jakx/engine/draw/drawable-tree.gc index 8cd078b061..92b47a0f84 100644 --- a/goal_src/jakx/engine/draw/drawable-tree.gc +++ b/goal_src/jakx/engine/draw/drawable-tree.gc @@ -7,3 +7,90 @@ ;; DECOMP BEGINS +(defmethod draw ((this drawable-tree-array)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (case (-> *level* draw-level *draw-index* display?) + (('special #f) + ) + (else + (dotimes (s5-0 (-> this length)) + (draw (-> this trees s5-0)) + ) + ) + ) + 0 + (none) + ) + +(defmethod collect-stats ((this drawable-tree-array)) + "Collect triangle/perf statistics for rendering. + This is only called when viewing stats. + The vis-bits and culling registers are loaded during this time." + (dotimes (s5-0 (-> this length)) + (collect-stats (-> this trees s5-0)) + ) + 0 + (none) + ) + +(defmethod debug-draw ((this drawable-tree-array)) + "Debug-draw a drawable and its children. Typically uses the debug-draw functions." + (dotimes (s5-0 (-> this length)) + (debug-draw (-> this trees s5-0)) + ) + 0 + (none) + ) + +(defmethod unpack-vis ((this drawable-tree) (arg0 (pointer int8)) (arg1 (pointer int8))) + (local-vars (t5-1 uint)) + (let* ((v1-0 (the-as drawable-inline-array-node (-> this data 0))) + (a3-1 (/ (-> v1-0 data 0 id) 8)) + (t0-0 (-> v1-0 length)) + (v1-1 (&+ arg0 a3-1)) + (a3-3 (/ (+ t0-0 7) 8)) + ) + (dotimes (t0-1 a3-3) + (let ((t1-0 (-> arg1 0))) + (set! arg1 (&-> arg1 1)) + (set! (-> v1-1 0) t1-0) + ) + (set! v1-1 (&-> v1-1 1)) + ) + ) + (let ((v1-5 (+ (-> this length) -1))) + (when (nonzero? v1-5) + (dotimes (a3-5 v1-5) + (let* ((t0-4 (-> this data a3-5)) + (t2-0 (the-as drawable-inline-array-node (-> this data (+ a3-5 1)))) + (t1-5 (/ (-> (the-as drawable-inline-array-node t0-4) data 0 id) 8)) + (t2-2 (/ (-> t2-0 data 0 id) 8)) + (t0-5 (-> (the-as drawable-inline-array-node t0-4) length)) + (t1-6 (&+ arg0 t1-5)) + (t2-3 (the-as object (&+ arg0 t2-2))) + ) + (loop + (let ((t3-0 (-> t1-6 0))) + (set! t1-6 (&-> t1-6 1)) + (let ((t4-0 128)) + (label cfg-7) + (b! (not (logtest? t3-0 t4-0)) cfg-9 :delay (set! t5-1 (the-as uint (-> arg1 0)))) + (set! arg1 (&-> arg1 1)) + (set! (-> (the-as (pointer int8) t2-3) 0) (the-as int t5-1)) + (label cfg-9) + (+! t0-5 -1) + (b! (zero? t0-5) cfg-12 :delay (shift-arith-right-32 t4-0 t4-0 1)) + (b! (nonzero? (the-as uint t4-0)) cfg-7 :delay (set! t2-3 (&-> (the-as (pointer int8) t2-3) 1))) + ) + ) + ) + ) + (label cfg-12) + (nop!) + 0 + ) + ) + ) + arg1 + ) diff --git a/goal_src/jakx/engine/draw/drawable.gc b/goal_src/jakx/engine/draw/drawable.gc index 4e9c7113cc..b6311e8025 100644 --- a/goal_src/jakx/engine/draw/drawable.gc +++ b/goal_src/jakx/engine/draw/drawable.gc @@ -7,3 +7,4 @@ ;; DECOMP BEGINS +(define-extern calc-particle-directional-color (function (pointer float) vu-lights vector none)) \ No newline at end of file diff --git a/goal_src/jakx/engine/entity/actor-link-h.gc b/goal_src/jakx/engine/entity/actor-link-h.gc index ab63ea419d..a1658e6528 100644 --- a/goal_src/jakx/engine/entity/actor-link-h.gc +++ b/goal_src/jakx/engine/entity/actor-link-h.gc @@ -7,4 +7,362 @@ ;; DECOMP BEGINS -(define-extern entity-actor-lookup (function res-lump symbol int entity-actor)) \ No newline at end of file +;; WARN: Return type mismatch entity vs entity-actor. +(defun entity-actor-lookup ((arg0 res-lump) (arg1 symbol) (arg2 int)) + (let* ((sv-16 (new 'static 'res-tag)) + (v1-1 (res-lump-data arg0 arg1 pointer :tag-ptr (& sv-16))) + ) + (the-as + entity-actor + (when (and v1-1 (< arg2 (the-as int (-> sv-16 elt-count)))) + (if (= (-> sv-16 elt-type) string) + (entity-by-name (the-as string (-> (the-as (pointer uint32) (&+ v1-1 (* arg2 4)))))) + (entity-by-aid (-> (the-as (pointer uint32) (&+ v1-1 (* arg2 4))))) + ) + ) + ) + ) + ) + +;; WARN: Check prologue - tricky store of r0 +(defun entity-actor-count ((arg0 res-lump) (arg1 symbol)) + (let ((sv-16 (new 'static 'res-tag))) + (if (res-lump-data arg0 arg1 pointer :tag-ptr (& sv-16)) + (the-as int (-> sv-16 elt-count)) + 0 + ) + ) + ) + +(deftype actor-link-info (basic) + "A linked list of actors. + +Actors allocate this on their process heap if they have a +`next-actor` or `prev-actor` defined in their lump +and use it for entity lookups." + ((process process) + (next entity-actor) + (prev entity-actor) + ) + (:methods + (new (symbol type process symbol) _type_) + (get-matching-actor-type-mask (_type_ type) int) + (actor-count-before (_type_) int) + (link-to-next-and-prev-actor (_type_) actor-link-info) + (get-next (_type_) entity-actor) + (get-prev (_type_) entity-actor) + (get-next-process (_type_) process) + (get-prev-process (_type_) process) + (apply-function-forward (_type_ (function entity-actor object object) object) int) + (apply-function-reverse (_type_ (function entity-actor object object) object) int) + (apply-all (_type_ (function entity-actor object object) object) int) + (send-to-all (_type_ symbol) none) + (send-to-all-after (_type_ symbol) object) + (send-to-all-before (_type_ symbol) object) + (send-to-next-and-prev (_type_ symbol) none) + (send-to-next (_type_ symbol) none) + (send-to-prev (_type_ symbol) none) + (actor-count (_type_) int) + ) + ) + + +(defmethod next-actor ((this entity-actor)) + (entity-actor-lookup this 'next-actor 0) + ) + +(defmethod prev-actor ((this entity-actor)) + (entity-actor-lookup this 'prev-actor 0) + ) + +(defmethod new actor-link-info ((allocation symbol) (type-to-make type) (arg0 process) (arg1 symbol)) + (let* ((a0-1 (-> arg0 entity)) + (s4-0 (entity-actor-lookup a0-1 'next-actor 0)) + (a0-2 (-> arg0 entity)) + (s3-0 (entity-actor-lookup a0-2 'prev-actor 0)) + ) + (when (or (not arg1) s4-0 s3-0) + (let ((v0-2 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-2 process) arg0) + (set! (-> v0-2 next) s4-0) + (set! (-> v0-2 prev) s3-0) + v0-2 + ) + ) + ) + ) + +(defmethod get-next ((this actor-link-info)) + (-> this next) + ) + +(defmethod get-prev ((this actor-link-info)) + (-> this prev) + ) + +;; WARN: Return type mismatch basic vs process. +(defmethod get-next-process ((this actor-link-info)) + (the-as process (and (-> this next) (-> this next extra process))) + ) + +;; WARN: Return type mismatch basic vs process. +(defmethod get-prev-process ((this actor-link-info)) + (the-as process (and (-> this prev) (-> this prev extra process))) + ) + +(defmethod link-to-next-and-prev-actor ((this actor-link-info)) + (let ((a0-1 (-> this process entity))) + (set! (-> this next) (entity-actor-lookup a0-1 'next-actor 0)) + ) + (let ((a0-2 (-> this process entity))) + (set! (-> this prev) (entity-actor-lookup a0-2 'prev-actor 0)) + ) + this + ) + +(defmethod apply-function-forward ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object)) + (let ((s3-0 (-> this next))) + (while s3-0 + (if (arg0 s3-0 arg1) + (return (the-as int #f)) + ) + (set! s3-0 (entity-actor-lookup s3-0 'next-actor 0)) + ) + ) + 0 + ) + +(defmethod apply-function-reverse ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object)) + (let ((s3-0 (-> this prev))) + (while s3-0 + (if (arg0 s3-0 arg1) + (return (the-as int #f)) + ) + (set! s3-0 (entity-actor-lookup s3-0 'prev-actor 0)) + ) + ) + 0 + ) + +(defmethod apply-all ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object)) + (let ((s4-0 (-> this process entity))) + (while (let ((a0-2 s4-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + (while s4-0 + (if (arg0 s4-0 arg1) + (return (the-as int #f)) + ) + (let ((a0-4 s4-0)) + (set! s4-0 (entity-actor-lookup a0-4 'next-actor 0)) + ) + ) + ) + 0 + ) + +(defmethod send-to-all-after ((this actor-link-info) (arg0 symbol)) + (with-pp + (let ((s4-0 (-> this next)) + (s5-0 (the-as object #f)) + ) + (while s4-0 + (let ((a0-1 (-> s4-0 extra process))) + (when a0-1 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) (process->ppointer pp)) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) arg0) + (set! s5-0 (or (send-event-function a0-1 a1-1) s5-0)) + ) + ) + ) + (set! s4-0 (entity-actor-lookup s4-0 'next-actor 0)) + ) + s5-0 + ) + ) + ) + +(defmethod send-to-all-before ((this actor-link-info) (arg0 symbol)) + (with-pp + (let ((s4-0 (-> this prev)) + (s5-0 (the-as object #f)) + ) + (while s4-0 + (let ((a0-1 (-> s4-0 extra process))) + (when a0-1 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) (process->ppointer pp)) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) arg0) + (set! s5-0 (or (send-event-function a0-1 a1-1) s5-0)) + ) + ) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + s5-0 + ) + ) + ) + +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-next ((this actor-link-info) (arg0 symbol)) + (let ((a0-1 (-> this next))) + (when a0-1 + (let ((a0-2 (-> a0-1 extra process))) + (if a0-2 + (send-event a0-2 arg0) + ) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-prev ((this actor-link-info) (arg0 symbol)) + (let ((a0-1 (-> this prev))) + (when a0-1 + (let ((a0-2 (-> a0-1 extra process))) + (if a0-2 + (send-event a0-2 arg0) + ) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-next-and-prev ((this actor-link-info) (arg0 symbol)) + (send-to-next this arg0) + (send-to-prev this arg0) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-all ((this actor-link-info) (arg0 symbol)) + (send-to-all-after this arg0) + (send-to-all-before this arg0) + (none) + ) + +(defmethod actor-count ((this actor-link-info)) + (let ((s5-0 (-> this process entity)) + (gp-0 0) + ) + (while (let ((a0-2 s5-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s5-0 (entity-actor-lookup s5-0 'prev-actor 0)) + ) + (while s5-0 + (+! gp-0 1) + (let ((a0-3 s5-0)) + (set! s5-0 (entity-actor-lookup a0-3 'next-actor 0)) + ) + ) + gp-0 + ) + ) + +(defmethod get-matching-actor-type-mask ((this actor-link-info) (arg0 type)) + (let ((s3-0 (-> this process entity)) + (s5-0 0) + ) + (let ((s4-0 1)) + (while (let ((a0-2 s3-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s3-0 (entity-actor-lookup s3-0 'prev-actor 0)) + ) + (while s3-0 + (if (= (-> s3-0 etype) arg0) + (set! s5-0 (logior s5-0 s4-0)) + ) + (let ((a0-3 s3-0)) + (set! s3-0 (entity-actor-lookup a0-3 'next-actor 0)) + ) + (set! s4-0 (* s4-0 2)) + ) + ) + s5-0 + ) + ) + +(defmethod actor-count-before ((this actor-link-info)) + (let* ((s5-0 (-> this process entity)) + (s4-0 s5-0) + (gp-0 0) + ) + (while (let ((a0-2 s4-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + (while (!= s4-0 s5-0) + (+! gp-0 1) + (let ((a0-3 s4-0)) + (set! s4-0 (entity-actor-lookup a0-3 'next-actor 0)) + ) + ) + gp-0 + ) + ) + +(defun actor-link-subtask-complete-hook ((arg0 entity-actor) (arg1 (pointer symbol))) + (cond + ((logtest? (-> arg0 extra perm status) (entity-perm-status subtask-complete)) + (set! (-> arg1 0) #t) + #f + ) + (else + (set! (-> arg1 0) #f) + #t + ) + ) + ) + +(defun actor-link-subtask-incomplete-count-hook ((arg0 entity-actor) (arg1 (pointer uint64))) + (cond + ((logtest? (-> arg0 extra perm status) (entity-perm-status subtask-complete)) + #f + ) + (else + (+! (-> arg1 0) 1) + #f + ) + ) + ) + +(defun actor-link-dead-hook ((arg0 entity-actor) (arg1 (pointer symbol))) + (cond + ((logtest? (-> arg0 extra perm status) (entity-perm-status dead)) + (set! (-> arg1 0) #t) + #f + ) + (else + (set! (-> arg1 0) #f) + #t + ) + ) + ) + +(defun alt-actor-list-subtask-incomplete-count ((arg0 process-drawable)) + (let ((s4-0 (entity-actor-count (-> arg0 entity) 'alt-actor)) + (gp-0 0) + ) + (dotimes (s3-0 s4-0) + (let ((a0-3 (entity-actor-lookup (-> arg0 entity) 'alt-actor s3-0))) + (if (or (not a0-3) (not (logtest? (-> a0-3 extra perm status) (entity-perm-status subtask-complete)))) + (+! gp-0 1) + ) + ) + ) + gp-0 + ) + ) diff --git a/goal_src/jakx/engine/entity/entity-h.gc b/goal_src/jakx/engine/entity/entity-h.gc index 37ddf79759..b30a7faafd 100644 --- a/goal_src/jakx/engine/entity/entity-h.gc +++ b/goal_src/jakx/engine/entity/entity-h.gc @@ -31,6 +31,9 @@ (declare-type race-mesh basic) (declare-type nav-poly structure) +(define-extern entity-by-name (function string entity)) +(define-extern entity-by-aid (function uint entity)) + ;; DECOMP BEGINS (define *generate-actor-vis* #f) @@ -146,9 +149,9 @@ that gets accessed by the accompanying process." (deftype entity-actor (entity) "Child class of [[entity]] used to spawn [[process-drawable]] actors." - ((etype type :offset 56) + ((etype type :offset 60) (task game-task) - (kill-mask task-mask :overlay-at unknown) + (kill-mask task-mask :offset 56) (vis-id int16) (quat quaternion :inline) ) diff --git a/goal_src/jakx/engine/entity/entity-table.gc b/goal_src/jakx/engine/entity/entity-table.gc index d16ce541e7..45e79f8fa6 100644 --- a/goal_src/jakx/engine/entity/entity-table.gc +++ b/goal_src/jakx/engine/entity/entity-table.gc @@ -7,3 +7,48 @@ ;; DECOMP BEGINS +(define *entity-info* + (new 'static 'boxed-array :type entity-info + (new 'static 'entity-info + :ptype (type-ref bubbles-path :method-count 56) + :pool '*16k-dead-pool* + :heap-size #x8000 + ) + (new 'static 'entity-info :ptype 'veger-npc :pool '*16k-dead-pool* :heap-size #x10000) + (new 'static 'entity-info :ptype 'seem-npc :pool '*16k-dead-pool* :heap-size #x20000) + (new 'static 'entity-info :ptype 'kleever-npc :pool '*16k-dead-pool* :heap-size #x18000) + (new 'static 'entity-info :ptype 'damus-npc :pool '*16k-dead-pool* :heap-size #x10000) + (new 'static 'entity-info + :ptype (type-ref nav-graph :method-count 45) + :pool '*16k-dead-pool* + :heap-size #x4000 + ) + ) + ) + +;; WARN: Return type mismatch basic vs entity-info. +(defun entity-info-lookup ((arg0 type)) + (the-as entity-info (cond + ((nonzero? (-> arg0 method-table 13)) + (-> arg0 method-table 13) + ) + (else + (let ((v1-1 *entity-info*)) + (dotimes (a1-0 (-> v1-1 length)) + (let ((a2-3 (-> v1-1 a1-0 ptype))) + (when (if (logtest? (the-as int a2-3) 1) + (= (-> arg0 symbol) a2-3) + (= arg0 a2-3) + ) + (set! (-> arg0 method-table 13) (the-as function (-> v1-1 a1-0))) + (return (the-as entity-info (-> v1-1 a1-0))) + ) + ) + ) + ) + (set! (-> arg0 method-table 13) #f) + (the-as basic #f) + ) + ) + ) + ) diff --git a/goal_src/jakx/engine/game/game-info-h.gc b/goal_src/jakx/engine/game/game-info-h.gc index fe2126e075..17f50c738b 100644 --- a/goal_src/jakx/engine/game/game-info-h.gc +++ b/goal_src/jakx/engine/game/game-info-h.gc @@ -62,9 +62,399 @@ ) ;; ---pickup-type +;; +++highscore-flags +(defenum highscore-flags + :bitfield #t + :type uint8 + (time) + (hf1 1) + (hf2 2) + (hf3 3) + (hf4 4) + (hf5 5) + (hf6 6) + (hf7 7) + ) +;; ---highscore-flags + +;; +++continue-flags +(defenum continue-flags + :type uint32 + :bitfield #t + ;(continue-flag-0 0) + (scene-wait 1) + (change-continue 2) + (no-auto 3) + (no-blackout 4) + (game-start 5) + (grab) + (warp-gate 7) + (demo 8) + (intro 9) + (hero-mode 10) + (darkjak) + (title 12) + (title-movie 13) + (continue-flag-14 14) + (copy-entity-pos 15) + (test) + (nothing-apparently 17) + (race 18) + (credits) + (indax) + (mech) + (continue-flag-22 22) + (flut 23) + (flut-racer 24) + (vehicle 25) + (vehicle-movie 26) + (indax-hang 27) + (flut-fight 28) + (htorpedo 29) + (vehicle-scorpion 30) + (lightjak 31) + ) +;; ---continue-flags + +(declare-type entity-perm-array inline-array-class) +(declare-type game-save basic) +(declare-type entity-perm structure) +(declare-type game-info basic) + +(define-extern *game-info* game-info) + ;; DECOMP BEGINS +(deftype game-bank (basic) + ((life-max-default float) + (life-start-default float) + (life-single-inc float) + (money-task-inc float) + (money-oracle-inc float) + ) + ) + + +(define *GAME-bank* (new 'static 'game-bank + :life-max-default 99.0 + :life-start-default 5.0 + :life-single-inc 1.0 + :money-task-inc 90.0 + :money-oracle-inc 120.0 + ) + ) + (deftype actor-id (uint32) () - :flag-assert #x900000004 - ) \ No newline at end of file + ) + +(deftype highscore-info (structure) + ((flags highscore-flags) + ) + ) + + +(deftype level-buffer-state (structure) + ((name symbol) + (display? symbol) + (force-vis? symbol) + (force-inside? symbol) + (slot int32) + (force-reload basic) + ) + :allow-misaligned + ) + + +(deftype level-buffer-state-small (structure) + ((name symbol) + (display? symbol) + ) + :pack-me + ) + + +(deftype level-buffer-state-split (structure) + ((name basic) + (display? symbol 2) + ) + :pack-me + ) + + +(deftype load-state (basic) + ((want level-buffer-state 18 :inline) + (want-exp level-buffer-state 18 :inline) + (want-split level-buffer-state-split 18 :inline) + (target level-buffer-state 18 :inline) + (want-sound sound-bank-state 7 :inline) + (target-sound sound-bank-state 7 :inline) + (vis-nick symbol) + (command-list pair) + (object-name string 256) + (object-status basic 256) + (update-callback (function load-state object)) + ) + (:methods + (new (symbol type) _type_) + (load-state-method-9 () none) + (load-state-method-10 () none) + (load-state-method-11 () none) + (load-state-method-12 () none) + (load-state-method-13 () none) + (load-state-method-14 () none) + (load-state-method-15 () none) + (load-state-method-16 () none) + (load-state-method-17 () none) + (load-state-method-18 () none) + (load-state-method-19 () none) + (load-state-method-20 () none) + (load-state-method-21 () none) + (load-state-method-22 () none) + (load-state-method-23 () none) + (load-state-method-24 () none) + (load-state-method-25 () none) + (load-state-method-26 () none) + ) + ) + + +;; WARN: Return type mismatch none vs load-state. +(defmethod new load-state ((allocation symbol) (type-to-make type)) + (let ((a0-1 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> a0-1 update-callback) #f) + (the-as load-state ((method-of-object a0-1 load-state-method-9))) + ) + ) + +(deftype continue-point (basic) + ((name string) + (level symbol) + (flags continue-flags) + (trans vector :inline) + (velocity vector :inline) + (camera-trans vector :inline) + (quat vector4h :inline) + (camera-rot int16 9) + (on-goto object) + (vis-nick symbol) + (vehicle-type uint8) + (want-count int8) + (want (inline-array level-buffer-state-small)) + (want-sound symbol 1) + ) + (:methods + (continue-point-method-9 () none) + (continue-point-method-10 () none) + (continue-point-method-11 () none) + ) + ) + + +(deftype game-info-player (structure) + ((current-continue continue-point) + (last-continue continue-point) + (vehicle handle) + (cash float) + (camera-inside-view symbol) + (last-selected-vehicle uint8) + ) + ) + + +(define *static-continues* + (new 'static 'boxed-array :type continue-point + (new 'static 'continue-point :want (new 'static 'inline-array level-buffer-state-small 16 + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + ) + ) + (new 'static 'continue-point :want (new 'static 'inline-array level-buffer-state-small 16 + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + ) + ) + ) + ) + +(defun continue-point-copy! ((arg0 continue-point) (arg1 continue-point)) + (let ((s4-0 (-> arg0 want))) + (mem-copy! (&-> arg0 type) (&-> arg1 type) 112) + (set! (-> arg0 want) s4-0) + ) + (mem-copy! (the-as pointer (-> arg0 want)) (the-as pointer (-> arg1 want)) 128) + 0 + (none) + ) + +(deftype game-info (basic) + ((mode symbol) + (save-name string) + (player-info game-info-player 2 :inline) + (car-info car-info-array :inline) + (features uint64) + (debug-features uint64) + (old-features uint64) + (items uint64) + (debug-items uint64) + (old-items uint64) + (secrets uint64) + (purchase-secrets uint64) + (vehicles uint64) + (debug-vehicles uint64) + (old-vehicles uint64) + (health-bar float) + (health-bar-owner uint64) + (attack-id uint32) + (perm-list entity-perm-array) + (game-info-pad1 int32 3) + (task-node-commands (array game-task-node-command)) + (task-counter uint32) + (game-info-pad2 int32 1) + (level-opened uint8 32) + (total-deaths int32) + (continue-deaths int32) + (task-deaths int32) + (total-trys int32) + (game-start-time uint64) + (continue-time uint64) + (death-time uint64) + (hit-time uint64) + (task-pickup-time uint64) + (stop-watch-start uint64) + (stop-watch-stop uint64) + (blackout-time uint64) + (letterbox-time uint64) + (hint-play-time uint64) + (display-text-time uint64) + (display-text-handle uint64) + (death-movie-tick int32) + (want-auto-save symbol) + (auto-save-proc uint64) + (auto-save-status mc-status-code) + (auto-save-card int32) + (auto-save-which int32) + (auto-save-count int32) + (pov-camera-handle uint64) + (other-camera-handle uint64) + (controller handle 2) + (bot-health float 3) + (demo-state uint32) + (distance float) + (kiosk-timeout uint64) + (pause-start-time uint64) + (game-score (array float)) + (goal float) + (miss float) + (miss-max float) + (health-bar-vehicle float) + (pause-menu uint64) + (current-vehicle uint8) + (collision-damage-multiplier float) + (traction-multiplier float) + (turbo-factor float) + (turbo-disabled int8) + (turbo-last-disabled int32) + (fragile-vehicle basic) + (music-data uint32 4) + (music-info uint32 :overlay-at (-> music-data 0)) + (playing-grand-prix? symbol :overlay-at (-> music-data 3)) + (grand-prix-index uint32) + (collision-vs-rbody-damage-multiplier float) + (global-speed-factor float) + (this-race-grand-prix-score uint32 23) + (cumulative-grand-prix-score uint32 23) + (driver-info uint64) + (driver-unlock uint32 :overlay-at driver-info) + (driver-award uint32 :offset 1700) + ) + (:methods + (game-info-method-9 () none) + (game-info-method-10 () none) + (game-info-method-11 () none) + (game-info-method-12 () none) + (game-info-method-13 () none) + (game-info-method-14 () none) + (game-info-method-15 () none) + (game-info-method-16 () none) + (debug-inspect (_type_ symbol) _type_) + (game-info-method-18 () none) + (game-info-method-19 () none) + (game-info-method-20 () none) + (game-info-method-21 () none) + (game-info-method-22 () none) + (game-info-method-23 () none) + (game-info-method-24 () none) + (game-info-method-25 () none) + (get-next-attack-id! (_type_) uint) + (game-info-method-27 () none) + (game-info-method-28 () none) + (game-info-method-29 () none) + (game-info-method-30 () none) + ) + ) + + +(defmethod get-next-attack-id! ((this game-info)) + (let ((v0-0 (+ (-> this attack-id) 1))) + (set! (-> this attack-id) v0-0) + v0-0 + ) + ) + +(when (or (not *game-info*) (zero? *game-info*)) + (let ((gp-0 (new 'static 'game-info :mode 'debug :turbo-disabled -1))) + (set! (-> gp-0 save-name) (new 'global 'string 32 (the-as string #f))) + (set! (-> gp-0 driver-unlock) (the-as uint -1)) + (dotimes (v1-19 2) + (set! (-> gp-0 player-info v1-19 current-continue) #f) + (set! (-> gp-0 player-info v1-19 last-continue) #f) + ) + (set! (-> gp-0 driver-unlock) (the-as uint -1)) + (set! *game-info* gp-0) + ) + ) + +(define *use-menu2* #t) + +(define *lobby-adv-selected-cup* 0) + +(define *lobby-adv-selected-map* 0) + +(define *lobby-adv-selected-venue* #f) + +(define *lobby-adv-selected-level* #f) + +(define *lobby-adv-previous-score* 0) + +(define *lobby-adv-cup* -1) + +(define *lobby-adv-selected-task* 0) diff --git a/goal_src/jakx/engine/game/main-h.gc b/goal_src/jakx/engine/game/main-h.gc index b42a12abab..742c1720de 100644 --- a/goal_src/jakx/engine/game/main-h.gc +++ b/goal_src/jakx/engine/game/main-h.gc @@ -6,6 +6,15 @@ ;; dgos: ENGINE, GAME (declare-type debug-menu-context basic) +(define-extern movie? (function symbol)) +(define-extern paused? (function symbol)) +(define-extern demo? (function symbol)) +(define-extern kiosk? (function symbol)) +(define-extern scene-select? (function symbol)) +(define-extern set-blackout-frames (function time-frame none)) +(define-extern set-master-mode (function symbol none)) +(define-extern on (function symbol process)) +(define-extern toggle-pause (function int)) ;; +++collide-spec (defenum collide-spec @@ -128,7 +137,8 @@ :type int64 (desertb-race-record 0) (rs1 1) - (desrally-record 2) + (eightb-start 2) + (kras-wide-start 3) ) ;; ---race-selection @@ -5971,7 +5981,7 @@ (define *race-record-path* #f) -(define *select-race* (race-selection desrally-record)) +(define *select-race* (race-selection eightb-start)) (define *select-race-path* 0) diff --git a/goal_src/jakx/engine/game/settings-h.gc b/goal_src/jakx/engine/game/settings-h.gc index 9249644d87..6318b416d5 100644 --- a/goal_src/jakx/engine/game/settings-h.gc +++ b/goal_src/jakx/engine/game/settings-h.gc @@ -341,11 +341,11 @@ (death-info resetter-spec) (quit-info resetter-spec) (extra-bank-count uint32) - (extra-bank pair 3) + (extra-bank pair 3) (borrow-count uint32) - (borrow pair 3) + (borrow pair 3) (exclusive-task-count uint32) - (exclusive-task int32 3) + (exclusive-task int32 3) (level-trans-time int32) (unknown-usd-19 int32) (unknown-usd-20 int32) @@ -364,12 +364,14 @@ (unknown-usd-31 int32) (unknown-usd-32 int32) (borrow-city-count uint32) - (borrow-city pair 3) - (unknown-usd-33 int32 28) + (borrow-city pair 3) + (unknown-usd-33 int32 28) (audio-language uint8) - (unknown-usd-34 int32 11) + (unknown-usd-34 int32 11) (special-volume float) - (unknown-usd-35 int32 17) + (unknown-usd-35 int32 17) + (unknown-uint32-1 uint32 :overlay-at (-> unknown-usd-35 11)) + (unknown-float float :overlay-at (-> unknown-usd-35 13)) ) (:methods (user-setting-data-method-9 () none) @@ -466,36 +468,33 @@ (deftype setting-control (basic) - ((user-current user-setting-data :inline :offset-assert 16) - (user-target user-setting-data :inline :offset-assert 800) - (user-default user-setting-data :inline :offset-assert 1584) - (cam-settings cam-setting-state 4 :inline :offset-assert 2368) - (engine engine :offset-assert 7168) ;; guessed by decompiler - (engine-pers engine-pers :offset-assert 7172) ;; guessed by decompiler - (engine-hi engine :offset-assert 7176) ;; guessed by decompiler - (cam-engines engine-group 4 :offset-assert 7180) + ((user-current user-setting-data :inline) + (user-target user-setting-data :inline) + (user-default user-setting-data :inline) + (cam-settings cam-setting-state 4 :inline) + (engine engine) + (engine-pers engine-pers) + (engine-hi engine) + (cam-engines engine-group 4) ) - :method-count-assert 25 - :size-assert #x1c1c - :flag-assert #x1900001c1c (:methods - (new (symbol type int) _type_) ;; 0 - (setting-control-method-9 () none) ;; 9 ;; (add-setting (_type_ process symbol object object object) connection) - (setting-control-method-10 () none) ;; 10 ;; (persist-with-delay (_type_ symbol time-frame symbol symbol float int) none) - (setting-control-method-11 () none) ;; 11 ;; (set-setting (_type_ process symbol object object object) connection) - (setting-control-method-12 () none) ;; 12 ;; (remove-setting (_type_ process symbol) none) - (setting-control-method-13 () none) ;; 13 ;; (kill-persister (_type_ engine-pers object) none) - (setting-control-method-14 (_type_ symbol int symbol symbol float int) none) ;; 14 ;; (setting-control-method-14 (_type_ object) connectable) - (setting-control-method-15 () none) ;; 15 ;; (get-setting (_type_ object) connectable) - (setting-control-method-16 () none) ;; 16 ;; (remove-setting-by-arg0 (_type_ object) none) - (setting-control-method-17 () none) ;; 17 ;; (set-setting-by-param (_type_ symbol object object object) connection) - (setting-control-method-18 () none) ;; 18 ;; (apply-settings (_type_) user-setting-data) - (setting-control-method-19 () none) ;; 19 ;; (update (_type_) user-setting-data) - (setting-control-method-20 () none) ;; 20 - (setting-control-method-21 () none) ;; 21 - (setting-control-method-22 () none) ;; 22 - (setting-control-method-23 () none) ;; 23 - (setting-control-method-24 () none) ;; 24 + (new (symbol type int) _type_) + (setting-control-method-9 () none) + (setting-control-method-10 () none) + (setting-control-method-11 () none) + (setting-control-method-12 () none) + (setting-control-method-13 () none) + (setting-control-method-14 (_type_ symbol int symbol symbol float int) none) + (setting-control-method-15 () none) + (setting-control-method-16 () none) + (setting-control-method-17 () none) + (setting-control-method-18 () none) + (setting-control-method-19 () none) + (setting-control-method-20 () none) + (setting-control-method-21 () none) + (setting-control-method-22 () none) + (setting-control-method-23 () none) + (setting-control-method-24 () none) ) ) diff --git a/goal_src/jakx/engine/geometry/vol-h.gc b/goal_src/jakx/engine/geometry/vol-h.gc index 7759fea9a1..7df0f5576f 100644 --- a/goal_src/jakx/engine/geometry/vol-h.gc +++ b/goal_src/jakx/engine/geometry/vol-h.gc @@ -5,5 +5,112 @@ ;; name in dgo: vol-h ;; dgos: ENGINE, GAME +;; +++vol-flags +(defenum vol-flags + :bitfield #t + :type uint32 + (display?) + (vol-flags-1) + ) +;; ---vol-flags + ;; DECOMP BEGINS +(deftype plane-volume (structure) + ((volume-type symbol) + (point-count int16) + (normal-count int16) + (first-point (pointer vector)) + (first-normal (pointer vector)) + (num-planes int32) + (plane (inline-array plane)) + ) + :pack-me + (:methods + (plane-volume-method-9 (_type_ symbol vector-array vector-array) plane-volume) + (debug-draw (_type_) none) + (point-in-vol? (_type_ vector float) symbol) + ) + ) + + +(deftype vol-control (basic) + ((flags vol-flags) + (process process-drawable) + (pos-vol-count int32) + (pos-vol plane-volume 32 :inline) + (neg-vol-count int32) + (neg-vol plane-volume 32 :inline) + (debug-point vector-array) + (debug-normal vector-array) + ) + (:methods + (new (symbol type process-drawable) _type_) + (debug-draw (_type_) none) + (vol-control-method-10 (_type_ plane) symbol) + (should-display? (_type_) symbol) + ) + ) + + +;; WARN: Return type mismatch object vs vol-control. +(defmethod new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable)) + (let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size)))))) + (when (zero? (the-as vol-control gp-0)) + (go process-drawable-art-error "memory") + (set! gp-0 0) + (goto cfg-13) + ) + (set! (-> (the-as vol-control gp-0) process) arg0) + (let* ((s5-1 (-> (the-as vol-control gp-0) process entity)) + (s4-0 (-> ((method-of-type res-lump lookup-tag-idx) s5-1 'vol 'base -1000000000.0) lo)) + ) + (when (>= (the-as int s4-0) 0) + (let ((s3-0 (the-as int s4-0)) + (s2-0 (-> s5-1 tag s4-0)) + ) + 0 + (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) + (let ((v1-12 (make-property-data s5-1 0.0 (the-as res-tag-pair s3-0) (the-as pointer #f))) + (a0-8 (-> (the-as vol-control gp-0) pos-vol (-> (the-as vol-control gp-0) pos-vol-count))) + ) + (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) + (set! (-> a0-8 plane) (the-as (inline-array plane) v1-12)) + ) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) + (+! s3-0 1) + (set! s2-0 (-> s5-1 tag s3-0)) + ) + ) + ) + ) + (let* ((s5-2 (-> (the-as vol-control gp-0) process entity)) + (s4-1 (-> ((method-of-type res-lump lookup-tag-idx) s5-2 'cutoutvol 'base -1000000000.0) lo)) + ) + (when (>= (the-as int s4-1) 0) + (let ((s3-1 (the-as int s4-1)) + (s2-1 (-> s5-2 tag s4-1)) + ) + 0 + (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) + (let ((v1-31 (make-property-data s5-2 0.0 (the-as res-tag-pair s3-1) (the-as pointer #f))) + (a0-19 (-> (the-as vol-control gp-0) neg-vol (-> (the-as vol-control gp-0) neg-vol-count))) + ) + (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) + (set! (-> a0-19 plane) (the-as (inline-array plane) v1-31)) + ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) + (+! s3-1 1) + (set! s2-1 (-> s5-2 tag s3-1)) + ) + ) + ) + ) + (label cfg-13) + (the-as vol-control gp-0) + ) + ) + +(defmethod should-display? ((this vol-control)) + (and *display-vol-marks* (logtest? (-> this flags) (vol-flags display?))) + ) diff --git a/goal_src/jakx/engine/geometry/vol.gc b/goal_src/jakx/engine/geometry/vol.gc index dbe123c5ab..6769d62777 100644 --- a/goal_src/jakx/engine/geometry/vol.gc +++ b/goal_src/jakx/engine/geometry/vol.gc @@ -7,3 +7,279 @@ ;; DECOMP BEGINS +(defun plane-volume-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector)) + (let ((f0-1 (vector-dot arg1 arg0)) + (f1-1 (vector-dot arg2 arg0)) + ) + (if (< 0.00001 (fabs f1-1)) + (/ (- (-> arg0 w) f0-1) f1-1) + 409600000.0 + ) + ) + ) + +(defmethod plane-volume-method-9 ((this plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (set! (-> this volume-type) arg0) + (set! (-> this point-count) 0) + (set! (-> this first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length)))) + (set! (-> this normal-count) 0) + (set! (-> this first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length)))) + (dotimes (s3-0 (-> this num-planes)) + (let ((sv-176 (new 'stack-no-clear 'vector))) + (set! (-> sv-176 quad) (the-as uint128 0)) + (let ((sv-192 (new 'stack-no-clear 'vector))) + (set! (-> sv-192 quad) (the-as uint128 0)) + (let ((sv-208 (new 'stack-no-clear 'vector))) + (set! (-> sv-208 quad) (the-as uint128 0)) + (let ((sv-224 (new 'stack-no-clear 'vector))) + (set! (-> sv-224 quad) (the-as uint128 0)) + 0.0 + 0.0 + 0.0 + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (let ((s1-0 (new-stack-vector0)) + (s0-0 0) + (s2-0 (-> this plane)) + ) + (let ((sv-240 0)) + (while (< sv-240 (-> this num-planes)) + (when (!= s3-0 sv-240) + (vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w)) + (vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0))) + (vector-normalize! sv-192 1.0) + (vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240))) + (vector-normalize! sv-208 1.0) + (let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208))) + (when (!= f0-4 409600000.0) + (vector+float*! sv-224 sv-176 sv-208 f0-4) + (let ((sv-144 (new-stack-vector0)) + (sv-148 (the-as float 0.0)) + (sv-152 0) + ) + (let ((sv-160 (new-stack-vector0))) + (set! (-> sv-144 quad) (-> sv-224 quad)) + (let ((sv-256 0)) + (while (< sv-256 (-> this num-planes)) + (when (and (!= sv-256 s3-0) (!= sv-256 sv-240)) + (let ((f0-6 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192))) + (cond + ((= f0-6 409600000.0) + ) + ((zero? sv-152) + (vector+float*! sv-144 sv-144 sv-192 f0-6) + (set! (-> sv-160 quad) (-> s2-0 sv-256 quad)) + (set! sv-148 (the-as float 8192000.0)) + (set! sv-152 1) + ) + ((begin (vector-float*! sv-224 sv-192 f0-6) (>= (vector-dot sv-224 sv-160) 0.0)) + ) + ((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0) + (when (< (fabs f0-6) (fabs sv-148)) + (set! sv-148 f0-6) + (+! sv-152 1) + ) + ) + (else + (vector+float*! sv-144 sv-144 sv-192 f0-6) + (set! (-> sv-160 quad) (-> s2-0 sv-256 quad)) + (+! sv-152 1) + (set! sv-148 (cond + ((< (fabs f0-6) (fabs sv-148)) + (set! sv-148 (- sv-148 f0-6)) + sv-148 + ) + (else + (the-as float 0.0) + ) + ) + ) + ) + ) + ) + ) + (+! sv-256 1) + ) + ) + ) + (cond + ((zero? sv-152) + ) + ((= sv-148 0.0) + ) + (else + (dotimes (v1-75 (-> this num-planes)) + (when (and (!= v1-75 s3-0) (!= v1-75 sv-240)) + (if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-75))) (-> s2-0 v1-75 w))) + (goto cfg-42) + ) + ) + ) + (vector+float*! sv-224 sv-144 sv-192 sv-148) + (cond + ((< (-> arg1 allocated-length) (+ (-> arg1 length) 2)) + (format 0 "ERROR : vol-control #x~X out of volume points~%" this) + ) + (else + (set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad)) + (set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad)) + (+! (-> arg1 length) 2) + (+! (-> this point-count) 2) + ) + ) + (let ((a1-20 s1-0)) + (let ((a0-51 sv-144)) + (.lvf vf4 (&-> s1-0 quad)) + (.lvf vf5 (&-> a0-51 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-20 quad) vf6) + ) + (let ((a1-21 s1-0)) + (let ((a0-52 sv-224)) + (.lvf vf4 (&-> s1-0 quad)) + (.lvf vf5 (&-> a0-52 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-21 quad) vf6) + ) + (+! s0-0 2) + ) + ) + ) + ) + ) + ) + (label cfg-42) + (+! sv-240 1) + ) + ) + (when (nonzero? s0-0) + (vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0))) + (cond + ((< (-> arg2 allocated-length) (+ (-> arg2 length) 2)) + (format 0 "ERROR : vol-control #x~X out of volume normals~%" this) + ) + (else + (set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad)) + (set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad)) + (+! (-> arg2 length) 2) + (set! (-> this normal-count) (+ (-> this normal-count) 2)) + ) + ) + ) + ) + ) + ) + ) + ) + ) + this + ) + ) + +(defmethod debug-draw ((this plane-volume)) + (let* ((v1-0 (-> this volume-type)) + (s5-0 (cond + ((= v1-0 'vol) + (the-as uint #x8000c000) + ) + ((= v1-0 'pvol) + (the-as uint #x80808080) + ) + (else + (the-as uint #x800000c0) + ) + ) + ) + (s4-0 (-> this first-point)) + ) + (dotimes (s3-0 (/ (-> this point-count) 2)) + (add-debug-line + #t + (bucket-id bucket785) + (the-as vector s4-0) + (the-as vector (&-> s4-0 4)) + (the-as rgba s5-0) + #f + (the-as rgba -1) + ) + (set! s4-0 (&-> s4-0 8)) + ) + ) + 0 + (none) + ) + +(defmethod point-in-vol? ((this plane-volume) (arg0 vector) (arg1 float)) + (dotimes (v1-0 (-> this num-planes)) + (if (< arg1 (- (vector-dot arg0 (the-as vector (-> this plane v1-0))) (-> this plane v1-0 w))) + (return #f) + ) + ) + #t + ) + +(defmethod debug-draw ((this vol-control)) + (with-pp + (let ((a0-1 this)) + (when (and (and *display-vol-marks* (logtest? (-> a0-1 flags) (vol-flags display?))) + (logtest? (-> this flags) (vol-flags vol-flags-1)) + ) + (when (zero? (-> this debug-point)) + (let ((s5-0 pp)) + (set! pp (-> this process)) + (let ((s4-0 0)) + (dotimes (v1-8 (-> this pos-vol-count)) + (+! s4-0 (-> this pos-vol v1-8 num-planes)) + ) + (dotimes (v1-11 (-> this neg-vol-count)) + (+! s4-0 (-> this neg-vol v1-11 num-planes)) + ) + (set! (-> this debug-point) (new 'debug 'vector-array (* 10 s4-0))) + (set! (-> this debug-normal) (new 'debug 'vector-array (* 10 s4-0))) + ) + (set! pp s5-0) + ) + (set! (-> this debug-point length) 0) + (set! (-> this debug-normal length) 0) + (dotimes (s5-1 (-> this pos-vol-count)) + (plane-volume-method-9 (-> this pos-vol s5-1) 'vol (-> this debug-point) (-> this debug-normal)) + ) + (dotimes (s5-2 (-> this neg-vol-count)) + (plane-volume-method-9 (-> this neg-vol s5-2) 'vol (-> this debug-point) (-> this debug-normal)) + ) + ) + (dotimes (s5-3 (-> this pos-vol-count)) + (debug-draw (-> this pos-vol s5-3)) + ) + (dotimes (s5-4 (-> this neg-vol-count)) + (debug-draw (-> this neg-vol s5-4)) + ) + ) + ) + 0 + (none) + ) + ) + +(defmethod vol-control-method-10 ((this vol-control) (arg0 plane)) + (dotimes (s4-0 (-> this neg-vol-count)) + (if (point-in-vol? (-> this neg-vol s4-0) arg0 0.0) + (return #f) + ) + ) + (dotimes (s4-1 (-> this pos-vol-count)) + (if (point-in-vol? (-> this pos-vol s4-1) arg0 0.0) + (return #t) + ) + ) + #f + ) diff --git a/goal_src/jakx/engine/gfx/background/tfrag/tfrag-near.gc b/goal_src/jakx/engine/gfx/background/tfrag/tfrag-near.gc index badd36d09e..7cddb5c3a9 100644 --- a/goal_src/jakx/engine/gfx/background/tfrag/tfrag-near.gc +++ b/goal_src/jakx/engine/gfx/background/tfrag/tfrag-near.gc @@ -7,3 +7,68 @@ ;; DECOMP BEGINS +(define tnear-vu1-block (new 'static 'vu-function :length #x398 :qlength #x1cc)) + +;; WARN: Return type mismatch symbol vs none. +(defun-debug tfrag-details ((arg0 tfragment)) + (format 0 "id = ~d~%" (-> arg0 id)) + (format 0 "common:~%") + (let ((s5-0 (-> arg0 dma-qwc 0)) + (s4-0 (-> arg0 dma-common)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-0 s4-0) + (disasm-vif-tag (the-as (pointer vif-tag) s4-0) (the-as int (* s5-0 4)) (the-as symbol 0) #t) + ) + (format 0 "base:~%") + (let ((s5-1 (-> arg0 dma-qwc 1)) + (s4-1 (-> arg0 dma-base)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-1 s4-1) + (disasm-vif-tag (the-as (pointer vif-tag) s4-1) (the-as int (* s5-1 4)) (the-as symbol 0) #t) + ) + (format 0 "level-0:~%") + (let ((s5-2 (-> arg0 dma-qwc 3)) + (s4-2 (-> arg0 dma-qwc-word)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-2 s4-2) + (disasm-vif-tag (the-as (pointer vif-tag) s4-2) (the-as int (* s5-2 4)) (the-as symbol 0) #t) + ) + (format 0 "level-1:~%") + (let ((s5-3 (-> arg0 dma-qwc 2)) + (gp-1 (-> arg0 dma-level-1)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-3 gp-1) + (disasm-vif-tag (the-as (pointer vif-tag) gp-1) (the-as int (* s5-3 4)) (the-as symbol 0) #t) + ) + (none) + ) + +;; WARN: Return type mismatch vector vs none. +(defun-debug clip-restore () + (let ((a0-0 (new-stack-vector0)) + (a1-0 (new-stack-matrix0)) + ) + (set! (-> a0-0 x) 92648.22) + (set! (-> a0-0 y) 238025.03) + (set! (-> a0-0 z) 199836.31) + (set! (-> a0-0 w) 1.0) + (set! (-> a1-0 rvec x) -0.9283) + (set! (-> a1-0 rvec y) 0.0) + (set! (-> a1-0 rvec z) 0.3716) + (set! (-> a1-0 rvec w) 0.0) + (set! (-> a1-0 uvec x) -0.2257) + (set! (-> a1-0 uvec y) 0.7945) + (set! (-> a1-0 uvec z) -0.5637) + (set! (-> a1-0 uvec w) 0.0) + (set! (-> a1-0 fvec x) -0.2952) + (set! (-> a1-0 fvec y) -0.6072) + (set! (-> a1-0 fvec z) -0.7375) + (set! (-> a1-0 fvec w) 0.0) + (set! (-> a1-0 trans x) 0.0) + (set! (-> a1-0 trans y) 0.0) + (set! (-> a1-0 trans z) 0.0) + (set! (-> a1-0 trans w) 1.0) + (debug-set-camera-pos-rot! a0-0 a1-0) + ) + (none) + ) diff --git a/goal_src/jakx/engine/gfx/background/tfrag/tfrag-work.gc b/goal_src/jakx/engine/gfx/background/tfrag/tfrag-work.gc index a3a1e39f75..78b19676e0 100644 --- a/goal_src/jakx/engine/gfx/background/tfrag/tfrag-work.gc +++ b/goal_src/jakx/engine/gfx/background/tfrag/tfrag-work.gc @@ -7,3 +7,36 @@ ;; DECOMP BEGINS +(define *tfrag-work* (new 'static 'tfrag-work + :base-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :level-0-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :common-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :level-1-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x102 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xc000 :cmd (vif-cmd unpack-v4-8)) + ) + :max-fragment #xffff + ) + ) + +(set! (-> *tfrag-work* color-ptr x) (+ 6144 #x70000000)) + +(set! (-> *tfrag-work* color-ptr y) (+ 6144 #x70000000)) + +(set! (-> *tfrag-work* color-ptr z) (+ 6144 #x70000000)) + +(set! (-> *tfrag-work* color-ptr w) (+ 6144 #x70000000)) diff --git a/goal_src/jakx/engine/gfx/font-h.gc b/goal_src/jakx/engine/gfx/font-h.gc index 8b59a6dad5..f7269ee5ba 100644 --- a/goal_src/jakx/engine/gfx/font-h.gc +++ b/goal_src/jakx/engine/gfx/font-h.gc @@ -83,6 +83,7 @@ (declare-type font-context structure) (define-extern draw-string-xy (function string dma-buffer int int font-color font-flags draw-string-result)) +(define-extern draw-string (function string dma-buffer font-context draw-string-result)) ;; DECOMP BEGINS @@ -129,7 +130,7 @@ (:methods (new (symbol type matrix int int float font-color font-flags) _type_) (font-context-method-9 () none) - (font-context-method-10 () none) + (set-origin! (font-context int int) font-context) (font-context-method-11 () none) (font-context-method-12 () none) (set-mat! (_type_ matrix) none) diff --git a/goal_src/jakx/engine/gfx/font.gc b/goal_src/jakx/engine/gfx/font.gc index 967ed71884..0a27aba04d 100644 --- a/goal_src/jakx/engine/gfx/font.gc +++ b/goal_src/jakx/engine/gfx/font.gc @@ -15,3 +15,5 @@ ;; DECOMP BEGINS +(define-extern get-string-length (function string font-context draw-string-result)) +(define-extern draw-string-adv (function string dma-buffer font-context none)) \ No newline at end of file diff --git a/goal_src/jakx/engine/gfx/foreground/debug-foreground.gc b/goal_src/jakx/engine/gfx/foreground/debug-foreground.gc index a0039db3e4..f779eb262b 100644 --- a/goal_src/jakx/engine/gfx/foreground/debug-foreground.gc +++ b/goal_src/jakx/engine/gfx/foreground/debug-foreground.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jakx/engine/gfx/foreground/foreground-h.gc b/goal_src/jakx/engine/gfx/foreground/foreground-h.gc index 18dbbdbe49..4573822ccb 100644 --- a/goal_src/jakx/engine/gfx/foreground/foreground-h.gc +++ b/goal_src/jakx/engine/gfx/foreground/foreground-h.gc @@ -17,6 +17,8 @@ ) ;; ---merc-mode +(define-extern vu-lights<-light-group! (function vu-lights light-group none)) + ;; DECOMP BEGINS (deftype mercneric-chain (structure) diff --git a/goal_src/jakx/engine/gfx/foreground/lights.gc b/goal_src/jakx/engine/gfx/foreground/lights.gc index 74d83f6118..43482596d0 100644 --- a/goal_src/jakx/engine/gfx/foreground/lights.gc +++ b/goal_src/jakx/engine/gfx/foreground/lights.gc @@ -7,3 +7,548 @@ ;; DECOMP BEGINS +(define *light-hash-work* (new 'static 'light-hash-work :ones (new 'static 'vector4w :x 1 :y 1 :z 1))) + +(defun light-slerp ((light-out light) (light-a light) (light-b light) (alpha float)) + (let ((clamped-alpha (fmax 0.0 (fmin 1.0 alpha)))) + (vector-lerp! (-> light-out color) (-> light-a color) (-> light-b color) clamped-alpha) + (vector-deg-slerp (-> light-out direction) (-> light-a direction) (-> light-b direction) clamped-alpha) + (let ((extra-x-a (-> light-a extra x)) + (extra-x-b (-> light-b extra x)) + ) + (set! (-> light-out extra x) (+ extra-x-a (* clamped-alpha (- extra-x-b extra-x-a)))) + ) + ) + light-out + ) + +(defun light-group-slerp ((light-group-out light-group) (light-group-a light-group) (light-group-b light-group) (alpha float)) + (dotimes (group-idx 4) + (light-slerp + (-> light-group-out lights group-idx) + (-> light-group-a lights group-idx) + (-> light-group-b lights group-idx) + alpha + ) + ) + light-group-out + ) + +(defun light-group-process! ((vu-lights vu-lights) (light-group light-group) (vec1 vector) (vec2 vector)) + (rotate-y<-vector+vector vec2 vec1) + (vu-lights<-light-group! vu-lights light-group) + (none) + ) + +(define *default-lights* (new 'global 'vu-lights)) + +(defun vu-lights-default! ((lights vu-lights)) + (set-vector! (-> lights ambient) 0.3 0.3 0.3 1.0) + (set-vector! (-> lights color 0) 1.0 1.0 1.0 1.0) + (set-vector! (-> lights color 1) 0.2 0.2 0.2 1.0) + (set-vector! (-> lights color 2) 0.0 0.0 0.0 1.0) + (set-vector! (-> lights direction 0) 1.0 0.0 0.0 1.0) + (set-vector! (-> lights direction 1) 0.0 1.0 0.0 1.0) + (set-vector! (-> lights direction 2) 0.0 0.0 1.0 1.0) + lights + ) + +;; WARN: Return type mismatch pointer vs none. +(defun-debug init-light-hash () + (when (not *light-hash*) + (set! *light-hash* (new 'loading-level 'light-hash)) + (set! (-> *light-hash* num-lights) (the-as uint 0)) + (set! (-> *light-hash* num-indices) (the-as uint 0)) + (set! (-> *light-hash* num-buckets) (the-as uint 0)) + (set! (-> *light-hash* bucket-array) (the-as (inline-array light-hash-bucket) (malloc 'loading-level 4096))) + (set! (-> *light-hash* index-array) (malloc 'loading-level 8192)) + (set! (-> *light-hash* light-sphere-array) + (the-as (inline-array light-sphere) (malloc 'loading-level #x40000)) + ) + ) + (none) + ) + +(init-light-hash) + +(def-mips2c light-hash-count-items (function light-hash light-sphere none)) + +(def-mips2c light-hash-add-items (function light-hash light-sphere integer object)) + +(defun-debug reset-light-hash ((arg0 light-hash)) + (set! (-> *light-hash* num-lights) (the-as uint 0)) + (set! (-> *light-hash* num-indices) (the-as uint 0)) + (set! (-> *light-hash* num-buckets) (the-as uint 0)) + 0 + (none) + ) + +(defun-debug update-light-hash ((arg0 light-hash)) + (let ((v1-0 (new 'stack-no-clear 'bounding-box)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (let ((f0-0 0.0)) + (set-vector! (-> v1-0 min) 4095996000.0 4095996000.0 4095996000.0 1.0) + (set-vector! (-> v1-0 max) -4095996000.0 -4095996000.0 -4095996000.0 1.0) + (dotimes (a0-3 (the-as int (-> arg0 num-lights))) + (let ((a1-9 (-> arg0 light-sphere-array a0-3))) + (set! (-> v1-0 min x) (fmin (-> v1-0 min x) (- (-> a1-9 bsphere x) (-> a1-9 bsphere w)))) + (set! (-> v1-0 min y) (fmin (-> v1-0 min y) (- (-> a1-9 bsphere y) (-> a1-9 bsphere w)))) + (set! (-> v1-0 min z) (fmin (-> v1-0 min z) (- (-> a1-9 bsphere z) (-> a1-9 bsphere w)))) + (set! (-> v1-0 max x) (fmax (-> v1-0 max x) (+ (-> a1-9 bsphere x) (-> a1-9 bsphere w)))) + (set! (-> v1-0 max y) (fmax (-> v1-0 max y) (+ (-> a1-9 bsphere y) (-> a1-9 bsphere w)))) + (set! (-> v1-0 max z) (fmax (-> v1-0 max z) (+ (-> a1-9 bsphere z) (-> a1-9 bsphere w)))) + (+! f0-0 (-> a1-9 bsphere w)) + ) + ) + (set! (-> arg0 base-trans quad) (-> v1-0 min quad)) + (let ((f0-1 (/ f0-0 (the float (-> arg0 num-lights))))) + (dotimes (a0-8 3) + (set! (-> s5-0 data a0-8) (- (-> v1-0 max data a0-8) (-> v1-0 min data a0-8))) + (set! (-> s4-0 data a0-8) (if (= (-> s5-0 data a0-8) 0.0) + 1.0 + (/ (-> s5-0 data a0-8) (/ f0-1 (the float (-> arg0 num-lights)))) + ) + ) + ) + ) + ) + (let ((f0-5 (cube-root (/ (the float (-> arg0 num-lights)) (* (-> s4-0 x) (-> s4-0 y) (-> s4-0 z)))))) + (set! (-> arg0 dimension-array x) (max 1 (min 16 (the int (+ 0.5 (* f0-5 (-> s4-0 x))))))) + (set! (-> arg0 dimension-array y) (max 1 (min 4 (the int (+ 0.5 (* f0-5 (-> s4-0 y))))))) + (set! (-> arg0 dimension-array z) (max 1 (min 16 (the int (+ 0.5 (* f0-5 (-> s4-0 z))))))) + ) + ) + (set! (-> arg0 bucket-step 0) (the-as uint (* (-> arg0 dimension-array z) (-> arg0 dimension-array x)))) + (set! (-> arg0 bucket-step 1) (the-as uint (-> arg0 dimension-array x))) + (dotimes (v1-13 3) + (set! (-> arg0 axis-scale data v1-13) + (/ (the float (-> arg0 dimension-array data v1-13)) (-> s5-0 data v1-13)) + ) + ) + ) + (set! (-> arg0 num-buckets) + (the-as uint (* (* (-> arg0 dimension-array x) (-> arg0 dimension-array y)) (-> arg0 dimension-array z))) + ) + (dotimes (v1-19 (the-as int (-> arg0 num-buckets))) + (let ((a0-27 + (the-as light-hash-bucket (+ (the-as uint (the-as light-hash-bucket (-> arg0 bucket-array))) (* v1-19 4))) + ) + ) + (set! (-> a0-27 index) (the-as uint 0)) + (set! (-> a0-27 count) (the-as uint 0)) + ) + 0 + ) + (dotimes (s5-1 (the-as int (-> arg0 num-lights))) + (light-hash-count-items arg0 (-> arg0 light-sphere-array s5-1)) + ) + (let ((v1-26 0)) + (dotimes (a0-31 (the-as int (-> arg0 num-buckets))) + (let ((a1-38 + (the-as light-hash-bucket (+ (the-as uint (the-as light-hash-bucket (-> arg0 bucket-array))) (* a0-31 4))) + ) + ) + (set! (-> a1-38 index) (the-as uint v1-26)) + (+! v1-26 (-> a1-38 count)) + (set! (-> a1-38 count) (the-as uint 0)) + ) + 0 + ) + (set! (-> arg0 num-indices) (the-as uint v1-26)) + ) + (dotimes (s5-2 (the-as int (-> arg0 num-lights))) + (light-hash-add-items arg0 (-> arg0 light-sphere-array s5-2) s5-2) + ) + 0 + (none) + ) + +(defun lookup-light-sphere-by-name ((name string) (hash light-hash)) + (when (and hash (nonzero? hash)) + (dotimes (num-lights (the-as int (-> hash num-lights))) + (let ((light (-> hash light-sphere-array num-lights))) + (if (string= name (-> light name)) + (return light) + ) + ) + ) + ) + (the-as light-sphere #f) + ) + +(def-mips2c light-hash-get-bucket-index (function light-hash vector int)) + +(def-mips2c add-light-sphere-to-light-group (function object object object object object)) + +(defun light-merge! ((out light-group) (other light-group)) + (local-vars + (v1-0 float) + (v1-1 float) + (v1-3 float) + (v1-5 float) + (a1-1 float) + (a1-3 float) + (a2-0 float) + (a2-2 float) + (a2-4 float) + (a3-0 float) + (f6-0 float) + ) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf12 :class vf) + (vf13 :class vf) + (vf14 :class vf) + (vf15 :class vf) + (vf16 :class vf) + (vf17 :class vf) + (vf2 :class vf) + (vf22 :class vf) + (vf23 :class vf) + (vf24 :class vf) + (vf25 :class vf) + (vf26 :class vf) + (vf27 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (nop!) + (.max.w.vf vf1 vf0 vf0) + (.lvf vf3 (&-> out dir0 color quad)) + (nop!) + (.lvf vf4 (&-> out dir1 color quad)) + (nop!) + (.lvf vf5 (&-> out dir2 color quad)) + (nop!) + (.lvf vf15 (&-> out dir0 extra quad)) + (nop!) + (.lvf vf16 (&-> out dir1 extra quad)) + (nop!) + (.lvf vf17 (&-> out dir2 extra quad)) + (nop!) + (.lvf vf25 (&-> out dir0 direction quad)) + (.mul.x.vf vf3 vf3 vf15) + (.lvf vf26 (&-> out dir1 direction quad)) + (.mul.x.vf vf4 vf4 vf16) + (.lvf vf27 (&-> out dir2 direction quad)) + (.mul.x.vf vf5 vf5 vf17) + (.mov v1-0 vf1) + (.mul.x.vf vf25 vf25 vf15) + (let ((f1-0 v1-0)) + (.mul.x.vf vf26 vf26 vf16) + (.lvf vf6 (&-> other dir0 direction quad)) + (.mul.x.vf vf27 vf27 vf17) + (.lvf vf2 (&-> other dir0 color quad)) + (nop!) + (.lvf vf23 (&-> other dir0 extra quad)) + (nop!) + (.mov a2-0 vf15) + (nop!) + (.mov a3-0 vf16) + (nop!) + (.mov v1-1 vf17) + (nop!) + (let ((a2-1 (shl (the-as int a2-0) 32))) + (nop!) + (let ((a3-1 (shl (the-as int a3-0) 32))) + (nop!) + (let ((v1-2 (shl (the-as int v1-1) 32))) + (b! (zero? a2-1) cfg-9 :delay (set! f6-0 (-> other dir0 extra x))) + (b! (zero? a3-1) cfg-10 :delay (nop!)) + (b! (zero? v1-2) cfg-11 :delay (nop!)) + ) + ) + ) + (.mul.x.vf acc vf15 vf15) + (nop!) + (.add.mul.x.vf acc vf16 vf16 acc) + (nop!) + (.add.mul.x.vf vf22 vf17 vf17 acc) + (nop!) + (.mul.x.vf vf2 vf2 vf23) + (nop!) + (.mul.x.vf vf6 vf6 vf23) + (nop!) + (nop!) + (.isqrt.vf Q vf0 vf22 :fsf #b11 :ftf #b0) + (nop!) + (.wait.vf) + (.mul.vf vf15 vf15 Q) + (nop!) + (.mul.vf vf16 vf16 Q) + (nop!) + (.mul.vf vf17 vf17 Q) + (nop!) + (.sub.x.vf vf15 vf1 vf15) + (nop!) + (.sub.x.vf vf16 vf1 vf16) + (nop!) + (.sub.x.vf vf17 vf1 vf17) + (nop!) + (.mul.x.vf acc vf1 vf15) + (nop!) + (.add.mul.x.vf acc vf1 vf16 acc) + (nop!) + (.add.mul.x.vf vf22 vf1 vf17 acc) + (nop!) + (nop!) + (.div.vf Q vf0 vf22 :fsf #b11 :ftf #b0) + (nop!) + (.lvf vf12 (&-> out dir0 extra quad)) + (nop!) + (.lvf vf13 (&-> out dir1 extra quad)) + (nop!) + (.lvf vf14 (&-> out dir2 extra quad)) + (nop!) + (.wait.vf) + (.mul.vf vf15 vf15 Q) + (nop!) + (.mul.vf vf16 vf16 Q) + (nop!) + (.mul.vf vf17 vf17 Q) + (nop!) + (.mul.vf acc vf1 vf25) + (.mov a2-2 vf15) + (.add.mul.x.vf vf25 vf6 vf15 acc) + (.mov a1-1 vf16) + (.mul.vf acc vf1 vf26) + (.mov v1-3 vf17) + (.add.mul.x.vf vf26 vf6 vf16 acc) + (let ((a2-3 (shl (the-as int a2-2) 32))) + (.mul.vf acc vf1 vf27) + (let ((a1-2 (shl (the-as int a1-1) 32))) + (.add.mul.x.vf vf27 vf6 vf17 acc) + (let ((v1-4 (shl (the-as int v1-3) 32))) + (.mul.vf acc vf1 vf3) + (nop!) + (.add.mul.x.vf vf3 vf2 vf15 acc) + (nop!) + (.mul.vf acc vf1 vf4) + (nop!) + (.add.mul.x.vf vf4 vf2 vf16 acc) + (nop!) + (.mul.vf acc vf1 vf5) + (nop!) + (.add.mul.x.vf vf5 vf2 vf17 acc) + (nop!) + (b! (zero? a2-3) cfg-5 :delay (nop!)) + (.mul.vf vf24 vf25 vf25) + (nop!) + (.mul.vf vf15 vf15 vf23) + (nop!) + (.mul.x.vf acc vf1 vf24) + (nop!) + (.add.mul.y.vf acc vf1 vf24 acc) + (nop!) + (.add.mul.z.vf vf24 vf1 vf24 acc) + (nop!) + (.isqrt.vf Q vf0 vf24 :fsf #b11 :ftf #b0) + (nop!) + (.add.vf vf15 vf15 vf12) + (nop!) + (nop!) + (.mov a2-4 vf15) + (nop!) + (let ((f10-1 (/ f1-0 a2-4))) + (nop!) + (nop!) + (set! (-> out dir0 extra x) a2-4) + (nop!) + (nop!) + (let ((a2-6 f10-1)) + (.mov vf15 a2-6) + ) + ) + (.mul.x.vf vf3 vf3 vf15) + (nop!) + (nop!) + (.wait.vf) + (.mul.vf vf25 vf25 Q) + (.svf (&-> out dir0 color quad) vf3) + (nop!) + (.svf (&-> out dir0 direction quad) vf25) + (label cfg-5) + (b! (zero? a1-2) cfg-7 :delay (nop!)) + (.mul.vf vf24 vf26 vf26) + (nop!) + (.mul.vf vf16 vf16 vf23) + (nop!) + (.mul.x.vf acc vf1 vf24) + (nop!) + (.add.mul.y.vf acc vf1 vf24 acc) + (nop!) + (.add.mul.z.vf vf24 vf1 vf24 acc) + (nop!) + (.isqrt.vf Q vf0 vf24 :fsf #b11 :ftf #b0) + (nop!) + (.add.vf vf16 vf16 vf13) + (nop!) + (nop!) + (.mov a1-3 vf16) + (nop!) + (let ((f11-1 (/ f1-0 a1-3))) + (nop!) + (nop!) + (set! (-> out dir1 extra x) a1-3) + (nop!) + (nop!) + (let ((a1-5 f11-1)) + (.mov vf16 a1-5) + ) + ) + (.mul.x.vf vf4 vf4 vf16) + (nop!) + (nop!) + (.wait.vf) + (.mul.vf vf26 vf26 Q) + (.svf (&-> out dir1 color quad) vf4) + (nop!) + (.svf (&-> out dir1 direction quad) vf26) + (label cfg-7) + (b! (zero? v1-4) cfg-12 :delay (nop!)) + ) + ) + ) + (.mul.vf vf24 vf27 vf27) + (nop!) + (.mul.vf vf17 vf17 vf23) + (nop!) + (.mul.x.vf acc vf1 vf24) + (nop!) + (.add.mul.y.vf acc vf1 vf24 acc) + (nop!) + (.add.mul.z.vf vf24 vf1 vf24 acc) + (nop!) + (.isqrt.vf Q vf0 vf24 :fsf #b11 :ftf #b0) + (nop!) + (.add.vf vf17 vf17 vf14) + (nop!) + (nop!) + (.mov v1-5 vf17) + (nop!) + (let ((f12-1 (/ f1-0 v1-5))) + (nop!) + (nop!) + (set! (-> out dir2 extra x) v1-5) + (nop!) + (nop!) + (let ((v1-7 f12-1)) + (.mov vf17 v1-7) + ) + ) + ) + (.mul.x.vf vf5 vf5 vf17) + (nop!) + (nop!) + (.wait.vf) + (.mul.vf vf27 vf27 Q) + (.svf (&-> out dir2 color quad) vf5) + (b! #t cfg-12 :delay (.svf (&-> out dir2 direction quad) vf27)) + (label cfg-9) + (nop!) + (.svf (&-> out dir0 direction quad) vf6) + (nop!) + (.svf (&-> out dir0 color quad) vf2) + (b! #t cfg-12 :delay (set! (-> out dir0 extra x) f6-0)) + (label cfg-10) + (nop!) + (.svf (&-> out dir1 direction quad) vf6) + (nop!) + (.svf (&-> out dir1 color quad) vf2) + (b! #t cfg-12 :delay (set! (-> out dir1 extra x) f6-0)) + (label cfg-11) + (nop!) + (.svf (&-> out dir2 direction quad) vf6) + (nop!) + (.svf (&-> out dir2 color quad) vf2) + (nop!) + (set! (-> out dir2 extra x) f6-0) + (label cfg-12) + 0 + (none) + ) + ) + +(defun light-group-scale! ((group light-group) (backup-ptr (pointer light-group)) (scale float)) + (if (!= group backup-ptr) + (mem-copy! (the-as pointer group) backup-ptr 192) + ) + (when (!= scale 1.0) + (dotimes (light-idx 4) + (set! (-> group lights light-idx extra x) (* (-> group lights light-idx extra x) scale)) + ) + ) + 0 + (none) + ) + +(defun light-group-madd! ((group light-group) (backup-ptr (pointer light-group)) (other light-group) (scalar float)) + (if (!= group backup-ptr) + (mem-copy! (the-as pointer group) backup-ptr 192) + ) + (when (!= scalar 0.0) + (let ((new-light (new 'stack 'light)) + (ambi-scaled (* (-> other ambi extra x) scalar)) + ) + (let ((dir0-scaled (* (-> other dir0 extra x) scalar)) + (dir1-scaled (* (-> other dir1 extra x) scalar)) + (dir2-scaled (* (-> other dir2 extra x) scalar)) + ) + (when (!= dir0-scaled 0.0) + (mem-copy! (the-as pointer new-light) (the-as pointer (-> other dir0)) 48) + (set! (-> new-light extra x) dir0-scaled) + (light-merge! group (the-as light-group new-light)) + (set! (-> group dir0 extra y) 0.0) + ) + (when (!= dir1-scaled 0.0) + (mem-copy! (the-as pointer new-light) (the-as pointer (-> other dir1)) 48) + (set! (-> new-light extra x) dir1-scaled) + (light-merge! group (the-as light-group new-light)) + (set! (-> group dir1 extra y) 0.0) + ) + (when (!= dir2-scaled 0.0) + (mem-copy! (the-as pointer new-light) (the-as pointer (-> other dir2)) 48) + (set! (-> new-light extra x) dir2-scaled) + (light-merge! group (the-as light-group new-light)) + (set! (-> group dir2 extra y) 0.0) + ) + ) + (vector4-scale! + (the-as vector4 (-> group ambi color)) + (the-as vector4 (-> group ambi color)) + (-> group ambi extra x) + ) + (vector4-madd! + (the-as vector4 (-> group ambi color)) + (the-as vector4 (-> group ambi color)) + (the-as vector4 (-> other ambi color)) + ambi-scaled + ) + ) + (set! (-> group ambi extra x) 1.0) + ) + 0 + (none) + ) + +(defun light-group-lerp! ((group light-group) (backup-ptr (pointer light-group)) (other light-group) (scalar float)) + (light-group-scale! group backup-ptr (- 1.0 scalar)) + (light-group-madd! group backup-ptr other scalar) + 0 + (none) + ) + +(defun shadow-info-copy! ((dest light-group) (src light-group)) + (dotimes (light-idx 4) + (set! (-> dest lights light-idx extra y) (-> src lights light-idx extra y)) + ) + 0 + (none) + ) diff --git a/goal_src/jakx/engine/gfx/foreground/merc/merc-death.gc b/goal_src/jakx/engine/gfx/foreground/merc/merc-death.gc index dc5cc9db40..2717a933e7 100644 --- a/goal_src/jakx/engine/gfx/foreground/merc/merc-death.gc +++ b/goal_src/jakx/engine/gfx/foreground/merc/merc-death.gc @@ -7,3 +7,145 @@ ;; DECOMP BEGINS +(define *merc-death-globals* (new 'global 'vector)) + +(defun birth-func-death-sparks () + 0 + (none) + ) + +(define death-seed + (new 'static 'death-info :vertex-skip #x8 :timer #xe0 :overlap #xff :effect #x27 :sound "temp-enemy-die") + ) + +(defun start-seed-effect ((arg0 process-drawable) (arg1 vector) (arg2 cspace)) + (let ((v1-0 (-> arg0 draw)) + (a1-1 death-seed) + ) + (set! (-> v1-0 death-vertex-skip) (-> a1-1 vertex-skip)) + (set! (-> v1-0 death-effect) (-> a1-1 effect)) + (set! (-> v1-0 death-timer) (+ (-> a1-1 timer) 1)) + (set! (-> v1-0 death-timer-org) (-> v1-0 death-timer)) + (set! (-> v1-0 death-draw-overlap) (-> a1-1 overlap)) + ) + (send-event + arg0 + 'trans-hook + (lambda :behavior process-drawable () (let ((v0-0 200)) + (set! (-> self draw death-timer) (the-as uint v0-0)) + (the-as time-frame v0-0) + ) + ) + ) + 0 + (none) + ) + +(defpart 39 + :init-specs ((:scale-x (meters 1)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0 196.0) + (:g 196.0 64.0) + (:b 0.0) + (:a 4.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:func 'sparticle-texture-glow-soft) + ) + ) + +(define death-default + (new 'static 'death-info :vertex-skip #xa :timer #x4b :overlap #x4 :effect #x28 :sound "enemy-fizz") + ) + +(define death-warp-in + (new 'static 'death-info :vertex-skip #x96 :timer #x4b :effect #x29 :sound "warpgate-tele") + ) + +(define death-warp-out + (new 'static 'death-info :vertex-skip #x96 :timer #x96 :effect #x29 :sound "warpgate-tele") + ) + +(defun sparticle-texture-glow-soft ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (particle-adgif-callback (-> arg1 adgif) (new 'static 'texture-id :index #x17 :page #x4)) + (set! (-> arg1 sp-func) (the-as (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) 0)) + 0 + (none) + ) + +(defpart 41 + :init-specs ((:scale-x (meters 0.5) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 32.0 32.0) + (:g 32.0 64.0) + (:b 128.0 128.0) + (:a 128.0) + (:scalevel-x (meters 0.02) (meters 0.02)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0 -1.28) + (:friction 0.92 0.02) + (:timer (seconds 1.667)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 glow)) + (:next-time (seconds 0.1) (seconds 0.065)) + (:next-launcher 42) + ) + ) + +(defpart 42 + :init-specs ((:scale-x (meters 0.3) (meters 0.2)) + (:scale-y :copy scale-x) + (:a 64.0 32.0) + (:omega (degrees 0.045) (degrees 0.03375)) + (:vel-x (meters -0.053333335) (meters 0.10666667)) + (:vel-y (meters -0.026666667) (meters 0.093333334)) + (:vel-z (meters -0.053333335) (meters 0.10666667)) + (:scalevel-x (meters -0.001) (meters -0.008)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0) + (:func 'sparticle-motion-blur) + ) + ) + +(defpart 40 + :init-specs ((:scale-x (meters 0.5) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 96.0 150.0) + (:g 32.0 64.0) + (:b 128.0 128.0) + (:a 128.0) + (:scalevel-x (meters 0.02) (meters 0.02)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0 -1.28) + (:friction 0.92 0.02) + (:timer (seconds 1.667)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 glow)) + (:next-time (seconds 0.1) (seconds 0.065)) + (:next-launcher 43) + ) + ) + +(defpart 43 + :init-specs ((:scale-x (meters 0.3) (meters 0.2)) + (:scale-y :copy scale-x) + (:a 64.0 32.0) + (:omega (degrees 0.045) (degrees 0.03375)) + (:vel-x (meters -0.053333335) (meters 0.10666667)) + (:vel-y (meters -0.026666667) (meters 0.093333334)) + (:vel-z (meters -0.053333335) (meters 0.10666667)) + (:scalevel-x (meters -0.001) (meters -0.008)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0) + (:func 'sparticle-motion-blur) + ) + ) + +(defun merc-death-spawn ((arg0 int) (arg1 vector) (arg2 vector)) + (let ((v1-2 (-> *part-id-table* arg0))) + (if (and (nonzero? v1-2) (= (-> v1-2 type) sparticle-launcher)) + (sp-launch-particles-death *sp-particle-system-2d* v1-2 arg1) + ) + ) + 0 + (none) + ) diff --git a/goal_src/jakx/engine/gfx/foreground/ripple.gc b/goal_src/jakx/engine/gfx/foreground/ripple.gc index b72c420e28..6b3771d825 100644 --- a/goal_src/jakx/engine/gfx/foreground/ripple.gc +++ b/goal_src/jakx/engine/gfx/foreground/ripple.gc @@ -7,3 +7,202 @@ ;; DECOMP BEGINS +(deftype ripple-request (structure) + ((waveform ripple-wave) + (effect merc-effect) + ) + :pack-me + ) + + +(deftype ripple-globals (structure) + ((count int32) + (requests ripple-request 16 :inline) + ) + ) + + +(define *ripple-globals* (new 'global 'ripple-globals)) + +(defun ripple-make-request ((arg0 ripple-wave) (arg1 merc-effect)) + (let ((v1-1 (-> *ripple-globals* count)) + (a2-1 (-> *ripple-globals* requests)) + (a3-0 0) + ) + (when (< v1-1 16) + (dotimes (t0-1 v1-1) + (if (= arg1 (-> a2-1 t0-1 effect)) + (set! a3-0 1) + ) + ) + (when (zero? a3-0) + (set! (-> a2-1 v1-1 effect) arg1) + (set! (-> a2-1 v1-1 waveform) arg0) + (+! (-> *ripple-globals* count) 1) + ) + ) + ) + 0 + (none) + ) + +(defun ripple-update-waveform-offs ((arg0 ripple-wave-set) (arg1 clock)) + (let ((f0-1 (the float (- (-> arg1 integral-frame-counter) (the-as int (-> arg0 frame-save)))))) + (when (!= f0-1 0.0) + (dotimes (v1-3 (-> arg0 count)) + (let ((a2-4 (-> arg0 wave v1-3))) + (+! (-> a2-4 offs) (* f0-1 (-> a2-4 delta))) + (set! (-> a2-4 offs) (the float (logand (the int (-> a2-4 offs)) #xffff))) + ) + ) + (set! (-> arg0 frame-save) (the-as uint (-> arg1 integral-frame-counter))) + ) + ) + 0 + (none) + ) + +(def-mips2c ripple-execute-init (function none)) + +(def-mips2c ripple-create-wave-table (function ripple-wave-set int)) + +(def-mips2c ripple-apply-wave-table (function merc-effect symbol)) + +(defun ripple-execute () + (when (-> *ripple-globals* count) + (ripple-execute-init) + (let ((gp-0 0) + (s5-0 (-> *ripple-globals* count)) + (s4-0 (-> *ripple-globals* requests)) + ) + (while (!= gp-0 s5-0) + (when (-> s4-0 gp-0 waveform) + (let ((s3-0 gp-0) + (s2-0 (-> s4-0 gp-0 waveform)) + ) + (ripple-create-wave-table (the-as ripple-wave-set s2-0)) + (while (!= s3-0 s5-0) + (when (= s2-0 (-> s4-0 s3-0 waveform)) + (ripple-apply-wave-table (-> s4-0 s3-0 effect)) + (set! (-> s4-0 s3-0 waveform) #f) + ) + (+! s3-0 1) + ) + ) + ) + (+! gp-0 1) + ) + ) + (set! (-> *ripple-globals* count) 0) + 0 + ) + 0 + (none) + ) + +(def-mips2c ripple-matrix-scale (function merc-effect none)) + +;; WARN: Return type mismatch symbol vs none. +(defun-debug ripple-add-debug-sphere ((arg0 process-drawable) (arg1 vector) (arg2 float) (arg3 float)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((f30-0 (- (quaternion-y-angle (the-as quaternion (-> arg0 root rot))))) + (s5-0 (new-stack-vector0)) + ) + (let ((f28-0 (+ (-> arg1 x) (* arg2 (-> arg1 z)))) + (f26-0 (+ (-> arg1 y) (* arg3 (-> arg1 z)))) + ) + (set! (-> s5-0 x) (- (* f28-0 (cos f30-0)) (* f26-0 (sin f30-0)))) + (set! (-> s5-0 y) 0.0) + (set! (-> s5-0 z) (+ (* f26-0 (cos f30-0)) (* f28-0 (sin f30-0)))) + ) + (set! (-> s5-0 w) 0.0) + (let ((a0-6 s5-0)) + (let ((v1-1 s5-0) + (a1-2 (-> arg0 root trans)) + ) + (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a1-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-6 quad) vf6) + ) + (add-debug-sphere #t (bucket-id bucket793) s5-0 (meters 0.5) (new 'static 'rgba :r #xff :g #xff :a #x80)) + ) + (none) + ) + ) + +(defun ripple-slow-add-sine-waves ((arg0 ripple-wave-set) (arg1 float) (arg2 float)) + (let ((f30-0 0.0)) + (dotimes (s3-0 (-> arg0 count)) + (let* ((v1-3 (-> arg0 wave s3-0)) + (f0-2 (+ (-> v1-3 offs) (* arg1 (-> v1-3 xmul)) (* arg2 (-> v1-3 zmul)))) + ) + (+! f30-0 (* (-> v1-3 scale) (cos f0-2))) + ) + ) + (fmax -127.0 (fmin 127.0 f30-0)) + ) + ) + +(defun ripple-find-height ((arg0 process-drawable) (arg1 int) (arg2 vector)) + (let ((f30-0 (-> arg0 root trans y)) + (sv-16 (-> arg0 draw)) + ) + (if (or (zero? sv-16) (not (-> sv-16 ripple))) + (return f30-0) + ) + (let ((v1-11 (-> sv-16 lod-set lod (-> sv-16 cur-lod) geo effect))) + (if (not (logtest? (-> v1-11 0 effect-bits) (effect-bits ripple))) + (return f30-0) + ) + (let* ((v1-12 (-> v1-11 0 extra-info)) + (s4-0 (the-as mei-ripple (+ (the-as uint v1-12) (* (-> v1-12 ripple-offset) 16)))) + (gp-0 (-> sv-16 ripple)) + (s5-0 (-> gp-0 waveform)) + ) + (if (not (-> gp-0 waveform)) + (return f30-0) + ) + (if (not (-> s5-0 converted)) + (return f30-0) + ) + (let* ((f28-0 (- (-> arg2 x) (-> arg0 root trans x))) + (f26-0 (- (-> arg2 z) (-> arg0 root trans z))) + (f22-0 (+ (quaternion-y-angle (the-as quaternion (-> arg0 root rot))) (-> s4-0 angle))) + (f24-0 (cos f22-0)) + (f1-3 (sin f22-0)) + (f0-4 (- (* f28-0 f24-0) (* f26-0 f1-3))) + (f1-5 (+ (* f26-0 f24-0) (* f28-0 f1-3))) + (f2-3 (/ 1.0 (-> s4-0 grid-size))) + (f28-1 (* f2-3 (- f0-4 (-> s4-0 x-base)))) + (f26-1 (* f2-3 (- f1-5 (-> s4-0 z-base)))) + ) + (ripple-update-waveform-offs s5-0 (-> *display* bg-clock)) + (let* ((f22-1 (the float (the int f28-1))) + (f24-1 (the float (the int f26-1))) + (f20-0 (ripple-slow-add-sine-waves s5-0 f22-1 f24-1)) + (sv-32 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) f24-1)) + (sv-48 (ripple-slow-add-sine-waves s5-0 f22-1 (+ 1.0 f24-1))) + (f1-6 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) (+ 1.0 f24-1))) + (f0-22 (+ f20-0 (* (- f28-1 f22-1) (- sv-32 f20-0)))) + (f1-9 (+ sv-48 (* (- f28-1 f22-1) (- f1-6 sv-48)))) + (f1-12 (+ f0-22 (* (- f26-1 f24-1) (- f1-9 f0-22)))) + (f0-23 (-> gp-0 faded-scale)) + ) + (if (< f0-23 0.0) + (set! f0-23 (-> gp-0 global-scale)) + ) + (+ f30-0 (* (/ f1-12 128) f0-23)) + ) + ) + ) + ) + ) + ) diff --git a/goal_src/jakx/engine/gfx/generic/lightning/lightning-new-h.gc b/goal_src/jakx/engine/gfx/generic/lightning/lightning-new-h.gc index 15c8e991b6..6bb5924ca9 100644 --- a/goal_src/jakx/engine/gfx/generic/lightning/lightning-new-h.gc +++ b/goal_src/jakx/engine/gfx/generic/lightning/lightning-new-h.gc @@ -7,3 +7,136 @@ ;; DECOMP BEGINS +(deftype lightning-appearance (structure) + ((base-alpha float) + (width-range-start float) + (width-range-end float) + (tex-id uint32) + (blend-mode uint64) + (fade-time uint64) + (regenerate-time-start uint64) + (regenerate-time-end uint64) + (alpha-1-curve curve2d-fast) + (alpha-1-mode uint64) + (alpha-1-repeat-dist float) + (alpha-2-curve curve2d-fast) + (alpha-2-mode uint64) + (alpha-2-repeat-dist float) + (width-curve curve2d-fast) + (width-mode uint64) + (width-repeat-dist float) + (uv-repeat-dist float) + (uv-shift? symbol) + (uv-shift-speed uint64) + (use-sprite-bucket? symbol) + (use-accurate-interp? symbol) + ) + ) + + +(deftype lightning-span-internal (structure) + ((index int16) + (span-flags uint8) + (num-inner-points int8) + ) + :pack-me + ) + + +(deftype lightning-span (structure) + ((random-offset-size-start float) + (inner-random-offset-size float) + ) + :pack-me + ) + + +(deftype lightning-spans-array (inline-array-class) + ((data lightning-span :inline :dynamic) + ) + ) + + +(set! (-> lightning-spans-array heap-base) (the-as uint 8)) + +(deftype lightning-spans-internal-array (inline-array-class) + ((data lightning-span-internal :inline :dynamic) + ) + ) + + +(set! (-> lightning-spans-internal-array heap-base) (the-as uint 4)) + +(deftype tex-u-holder (structure) + ((uu float) + (last-dist float) + ) + ) + + +(deftype lightning-bolt (basic) + ((current-points vector-array) + (desired-points vector-array) + (span-pts-start vector-array) + (spans lightning-spans-array) + (spans-internal lightning-spans-internal-array) + (strip1 prim-strip) + (strip2 prim-strip) + (inner-point-travel-time uint64) + (start-fade-time uint64) + (new-inner-point-generate-time uint64) + (last-generate-time uint64) + (base-width float) + (current-uv-shift float) + (current-fade-scalar float) + (fractal-reduction float) + (appearance lightning-appearance) + (fade-mode uint64) + (generate-mode uint64) + (snap-inner-points? symbol) + (span-data int8 2) + (num-active-spans int8 :overlay-at (-> span-data 0)) + (num-spans int8 :overlay-at (-> span-data 1)) + (base-color rgba) + ) + (:methods + (init! (_type_ int int lightning-appearance) none) + (reset-spans! (_type_) none) + (lightning-bolt-method-11 (_type_) none) + (lightning-bolt-method-12 (_type_) none) + (lightning-bolt-method-13 (_type_ int) none) + (lightning-bolt-method-14 (_type_) int) + (lightning-bolt-method-15 (_type_ object int lightning-span-internal) none) + (lightning-bolt-method-16 (_type_ vector float float vector matrix) none) + (lightning-bolt-method-17 (_type_ uint float float curve2d-fast float) float) + (lightning-bolt-method-18 (_type_ prim-strip vector rgba float float) none) + (lightning-bolt-method-19 (_type_ vector int int matrix float float) none) + (lightning-bolt-method-20 (_type_ int lightning-span-internal) vector) + (lightning-bolt-method-21 (_type_ int int float) none) + (lightning-bolt-method-22 (_type_) none) + ) + ) + + +(deftype lightning-new-tracker (process) + ((bolt lightning-bolt) + (lifetime uint64) + (state-time uint64) + ) + (:state-methods + active + die + ) + ) + + +(deftype lightning-tracker-init-params (structure) + ((appearance lightning-appearance) + (start-pt vector :inline) + (end-pt vector :inline) + (lifetime uint64) + (num-inner-points int8) + (inner-random-offset-size float) + (random-offset-size-start float) + ) + ) diff --git a/goal_src/jakx/engine/gfx/generic/lightning/lightning-new.gc b/goal_src/jakx/engine/gfx/generic/lightning/lightning-new.gc index 8632bbfaf3..21ac3064fa 100644 --- a/goal_src/jakx/engine/gfx/generic/lightning/lightning-new.gc +++ b/goal_src/jakx/engine/gfx/generic/lightning/lightning-new.gc @@ -7,3 +7,891 @@ ;; DECOMP BEGINS +(define *lightning-alpha-additive* (new 'static 'gs-alpha :b #x2 :d #x1)) + +(define *lightning-alpha-blend* (new 'static 'gs-alpha :b #x1 :d #x1)) + +(define *lightning-alpha-subtractive* (new 'static 'gs-alpha :a #x2 :d #x1)) + +(defmethod init! ((this lightning-bolt) (arg0 int) (arg1 int) (arg2 lightning-appearance)) + (set! (-> this num-spans) arg0) + (set! (-> this spans) (new 'process 'lightning-spans-array arg0)) + (set! (-> this num-active-spans) 0) + (set! (-> this span-pts-start) (new 'process 'vector-array arg0)) + (let ((s3-0 (* arg1 arg0))) + (let ((s2-1 (+ (* arg1 (+ arg0 -1)) 1))) + (set! (-> this current-points) (new 'process 'vector-array s2-1)) + (set! (-> this desired-points) (new 'process 'vector-array s2-1)) + ) + (let ((f30-0 (* 2.0 (the float s3-0)))) + (set! (-> this strip1) + (new 'process 'prim-strip (the int f30-0) (new 'static 'texture-id :index #x3 :page #x1) (the-as string #f)) + ) + (set! (-> this strip2) + (new 'process 'prim-strip (the int f30-0) (new 'static 'texture-id :index #x3 :page #x1) (the-as string #f)) + ) + ) + ) + (set! (-> this appearance) arg2) + (set! (-> this spans-internal) (new 'process 'lightning-spans-internal-array arg0)) + (set! (-> this current-uv-shift) 0.0) + (set! (-> this strip1 clamp) (new 'static 'gs-clamp)) + (set! (-> this strip2 clamp) (new 'static 'gs-clamp)) + (set! (-> this new-inner-point-generate-time) + (the-as + uint + (rand-vu-int-range + (the-as int (-> this appearance regenerate-time-start)) + (the-as int (-> this appearance regenerate-time-end)) + ) + ) + ) + (set! (-> this base-width) + (rand-vu-float-range (-> this appearance width-range-start) (-> this appearance width-range-end)) + ) + (set! (-> this fade-mode) (the-as uint 0)) + (set! (-> this current-fade-scalar) 1.0) + (when (-> this appearance uv-shift?) + (let* ((v1-22 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-23 (the-as number (logior #x3f800000 v1-22))) + ) + (set! (-> this current-uv-shift) (+ -1.0 (the-as float v1-23))) + ) + ) + (let ((v1-26 (the-as number 0))) + (while (< (the-as int v1-26) (-> this num-spans)) + (logand! (-> this spans-internal data (the-as int v1-26) span-flags) -2) + (set! (-> this spans-internal data (the-as int v1-26) index) (the-as int v1-26)) + (set! v1-26 (+ (the-as int v1-26) 1)) + ) + ) + (set! (-> this base-color) *color-gray*) + 0 + (none) + ) + +(defmethod reset-spans! ((this lightning-bolt)) + (set! (-> this num-active-spans) 0) + 0 + (none) + ) + +(defmethod lightning-bolt-method-20 ((this lightning-bolt) (arg0 int) (arg1 lightning-span-internal)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let* ((f30-0 -0.5) + (v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-3 (the-as number (logior #x3f800000 v1-2))) + ) + (set! (-> s3-0 x) (+ f30-0 (+ -1.0 (the-as float v1-3)))) + ) + (let* ((f30-1 -0.5) + (v1-7 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-8 (the-as number (logior #x3f800000 v1-7))) + ) + (set! (-> s3-0 y) (+ f30-1 (+ -1.0 (the-as float v1-8)))) + ) + (set! (-> s3-0 z) (the float (-> arg1 index))) + (set! (-> s3-0 w) 1.0) + (set! (-> this desired-points data arg0 quad) (-> s3-0 quad)) + ) + (set! (-> this current-points data arg0 z) (the float (-> arg1 index))) + (-> this desired-points data arg0) + ) + +(defmethod lightning-bolt-method-21 ((this lightning-bolt) (arg0 int) (arg1 int) (arg2 float)) + (let ((v1-0 (-> this desired-points))) + (when (< 1 (- arg1 arg0)) + (let ((sv-16 (/ (+ arg0 arg1) 2))) + (let ((sv-24 (-> v1-0 data arg0)) + (sv-28 (-> v1-0 data arg1)) + (sv-32 (the-as float 1.0)) + ) + (set! sv-32 (-> sv-28 z)) + (let ((s2-0 (-> v1-0 data sv-16))) + (let* ((f30-0 (* 0.5 (+ (-> sv-24 x) (-> sv-28 x)))) + (f28-0 arg2) + (f26-0 -0.5) + (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-7 (the-as number (logior #x3f800000 v1-6))) + ) + (set! (-> s2-0 x) (+ f30-0 (* f28-0 (+ f26-0 (+ -1.0 (the-as float v1-7)))))) + ) + (let* ((f30-1 (* 0.5 (+ (-> sv-24 y) (-> sv-28 y)))) + (f28-1 arg2) + (f26-1 -0.5) + (v1-14 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-15 (the-as number (logior #x3f800000 v1-14))) + ) + (set! (-> s2-0 y) (+ f30-1 (* f28-1 (+ f26-1 (+ -1.0 (the-as float v1-15)))))) + ) + (set! (-> s2-0 z) (lerp (-> sv-24 z) sv-32 0.5)) + ) + ) + (lightning-bolt-method-21 this arg0 sv-16 (* arg2 (-> this fractal-reduction))) + (lightning-bolt-method-21 this sv-16 arg1 (* arg2 (-> this fractal-reduction))) + ) + ) + ) + 0 + (none) + ) + +(defmethod lightning-bolt-method-15 ((this lightning-bolt) (arg0 object) (arg1 int) (arg2 lightning-span-internal)) + (let ((v1-0 (-> this generate-mode))) + (cond + ((zero? v1-0) + (let ((f30-0 (the float (-> arg2 index))) + (f28-0 (the float (+ (-> arg2 index) 1))) + (f26-0 (/ 1.0 (the float (+ (-> arg2 num-inner-points) 1)))) + ) + 0.0 + (let ((f24-0 (+ 0.0 f26-0))) + (dotimes (s3-0 (-> arg2 num-inner-points)) + (let ((f22-0 (lerp f30-0 f28-0 f24-0))) + (let ((s2-0 (-> this desired-points data (+ s3-0 1 arg1)))) + (let* ((f20-0 -0.5) + (v1-13 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-14 (the-as number (logior #x3f800000 v1-13))) + ) + (set! (-> s2-0 x) (+ f20-0 (+ -1.0 (the-as float v1-14)))) + ) + (let* ((f20-1 -0.5) + (v1-18 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-19 (the-as number (logior #x3f800000 v1-18))) + ) + (set! (-> s2-0 y) (+ f20-1 (+ -1.0 (the-as float v1-19)))) + ) + (set! (-> s2-0 z) f22-0) + (set! (-> s2-0 w) 1.0) + ) + (set! (-> this current-points data (+ s3-0 1 arg1) z) f22-0) + ) + (+! f24-0 f26-0) + ) + ) + ) + ) + ((= v1-0 1) + (lightning-bolt-method-21 this arg1 (+ (-> arg2 num-inner-points) 1 arg1) 1.0) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch uint vs int. +(defmethod lightning-bolt-method-14 ((this lightning-bolt)) + (the-as int (-> this fade-mode)) + ) + +(defmethod lightning-bolt-method-13 ((this lightning-bolt) (arg0 int)) + (when (!= (-> this fade-mode) arg0) + (let ((v1-1 arg0)) + (cond + ((zero? v1-1) + (set! (-> this current-fade-scalar) 1.0) + (set! (-> this start-fade-time) (the-as uint (current-time))) + ) + ((= v1-1 2) + (set! (-> this start-fade-time) (the-as uint (current-time))) + (set! (-> this current-fade-scalar) 1.0) + ) + ((= v1-1 1) + (set! (-> this current-fade-scalar) 0.0) + (set! (-> this start-fade-time) (the-as uint (current-time))) + ) + ((= v1-1 3) + (dotimes (v1-12 (-> this num-spans)) + (logand! (-> this spans-internal data v1-12 span-flags) -2) + ) + ) + ) + ) + (set! (-> this fade-mode) (the-as uint arg0)) + ) + (none) + ) + +;; WARN: Function (method 11 lightning-bolt) has a return type of none, but the expression builder found a return statement. +(defmethod lightning-bolt-method-11 ((this lightning-bolt)) + (with-pp + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (case (-> this fade-mode) + ((2) + (let* ((f1-2 (/ (the float (- (current-time) (the-as int (-> this start-fade-time)))) + (the float (-> this appearance fade-time)) + ) + ) + (f0-3 (fmax 0.0 (fmin 1.0 f1-2))) + ) + (set! (-> this current-fade-scalar) (lerp 1.0 0.0 f0-3)) + ) + (if (>= 0.0 (-> this current-fade-scalar)) + (lightning-bolt-method-13 this 3) + ) + ) + ((1) + (let* ((f1-7 (/ (the float (- (current-time) (the-as int (-> this start-fade-time)))) + (the float (-> this appearance fade-time)) + ) + ) + (f0-9 (fmax 0.0 (fmin 1.0 f1-7))) + ) + (set! (-> this current-fade-scalar) (lerp 0.0 1.0 f0-9)) + ) + (if (>= (-> this current-fade-scalar) 1.0) + (lightning-bolt-method-13 this 0) + ) + ) + ) + (if (= (-> this fade-mode) 3) + (return 0) + ) + (if (zero? (-> this fade-mode)) + (set! (-> this current-fade-scalar) 1.0) + ) + (set! (-> this num-active-spans) (min (-> this num-active-spans) (+ (-> this num-spans) -1))) + (let ((v1-31 (-> this num-active-spans)) + (a0-14 (+ (-> this num-spans) -1)) + ) + (while (>= a0-14 v1-31) + (let ((a1-6 (-> this spans-internal data v1-31))) + (logand! (-> a1-6 span-flags) -2) + ) + (+! v1-31 1) + ) + ) + (let ((v1-37 (time-elapsed? + (the-as int (-> this last-generate-time)) + (the-as time-frame (-> this new-inner-point-generate-time)) + ) + ) + ) + (dotimes (a0-17 (-> this num-active-spans)) + (-> this spans data a0-17) + (let ((a1-12 (-> this spans-internal data a0-17))) + (if (or v1-37 (not (logtest? (-> a1-12 span-flags) 1))) + (logior! (-> a1-12 span-flags) 2) + (logand! (-> a1-12 span-flags) -3) + ) + ) + ) + ) + (let ((s5-0 0)) + (dotimes (s4-0 (-> this num-active-spans)) + (-> this spans data s4-0) + (let* ((a2-13 (-> this spans-internal data s4-0)) + (s3-0 (+ (-> a2-13 num-inner-points) 1)) + ) + (when (logtest? (-> a2-13 span-flags) 2) + (when (or (-> this snap-inner-points?) + (and (logtest? (-> a2-13 span-flags) 2) (not (logtest? (-> a2-13 span-flags) 1))) + ) + (dotimes (v1-55 s3-0) + (set! (-> this current-points data (+ v1-55 s5-0) quad) (-> this desired-points data (+ v1-55 s5-0) quad)) + ) + ) + (lightning-bolt-method-20 this s5-0 a2-13) + ) + (+! s5-0 s3-0) + ) + ) + (when (time-elapsed? + (the-as int (-> this last-generate-time)) + (the-as time-frame (-> this new-inner-point-generate-time)) + ) + (lightning-bolt-method-20 this s5-0 (-> this spans-internal data (-> this num-active-spans))) + (if (-> this snap-inner-points?) + (set! (-> this current-points data s5-0 quad) (-> this desired-points data s5-0 quad)) + ) + (set! (-> this last-generate-time) (the-as uint (current-time))) + (set! (-> this new-inner-point-generate-time) + (the-as uint (rand-vu-int-range + (the-as int (-> this appearance regenerate-time-start)) + (the-as int (-> this appearance regenerate-time-end)) + ) + ) + ) + ) + ) + (let ((s5-1 0)) + (dotimes (s4-1 (-> this num-active-spans)) + (let* ((a1-24 (-> this spans data s4-1)) + (a3-5 (-> this spans-internal data s4-1)) + (s3-1 (+ (-> a3-5 num-inner-points) 1)) + ) + (if (logtest? (-> a3-5 span-flags) 2) + (lightning-bolt-method-15 this a1-24 s5-1 a3-5) + ) + (+! s5-1 s3-1) + ) + ) + ) + (let ((s5-2 0)) + (dotimes (s4-2 (+ (-> this num-active-spans) 1)) + (-> this spans data s4-2) + (let* ((v1-102 (-> this spans-internal data s4-2)) + (s3-2 (+ (-> v1-102 num-inner-points) 1)) + ) + (if (= s4-2 (-> this num-active-spans)) + (set! s3-2 1) + ) + (cond + ((not (-> this appearance use-accurate-interp?)) + (let ((a0-49 (the-as int (- (current-time) (-> pp clock old-frame-counter))))) + 0.0 + (if (logtest? (-> v1-102 span-flags) 2) + (set! a0-49 0) + ) + (let* ((f1-12 (/ (the float a0-49) (the float (-> this inner-point-travel-time)))) + (f30-0 (fmax 0.0 (fmin 1.0 f1-12))) + ) + (dotimes (s2-0 s3-2) + (vector-lerp! + (-> this current-points data (+ s2-0 s5-2)) + (-> this current-points data (+ s2-0 s5-2)) + (-> this desired-points data (+ s2-0 s5-2)) + f30-0 + ) + ) + ) + ) + ) + (else + (let ((sv-16 (- (current-time) (- (current-time) (-> pp clock old-frame-counter)))) + (sv-24 (the-as float 0.0)) + (sv-32 (current-time)) + (sv-40 (the-as float 0.0)) + ) + (set! sv-24 (/ (the float (- sv-16 (the-as int (-> this last-generate-time)))) + (the float (-> this inner-point-travel-time)) + ) + ) + (set! sv-40 (/ (the float (- sv-32 (the-as int (-> this last-generate-time)))) + (the float (-> this inner-point-travel-time)) + ) + ) + (set! sv-24 (fmax 0.0 (fmin 1.0 sv-24))) + (set! sv-40 (fmax 0.0 (fmin 1.0 sv-40))) + (let ((f30-1 (- 1.0 sv-24))) + (dotimes (s2-1 s3-2) + (let ((sv-64 (new 'stack-no-clear 'vector)) + (sv-68 (the-as float 0.0)) + ) + (let ((sv-72 (the-as float 0.0))) + ) + (set-vector! + sv-64 + (- (-> this desired-points data (+ s2-1 s5-2) x) (-> this current-points data (+ s2-1 s5-2) x)) + (- (-> this desired-points data (+ s2-1 s5-2) y) (-> this current-points data (+ s2-1 s5-2) y)) + 0.0 + 1.0 + ) + (set! sv-68 (vector-normalize-ret-len! sv-64 1.0)) + (when (< 0.0 f30-1) + (vector-float*! sv-64 sv-64 (* (/ sv-68 f30-1) (- sv-40 sv-24))) + (let ((v1-142 (-> this current-points data (+ s2-1 s5-2)))) + (let ((a1-41 sv-64)) + (.lvf vf4 (&-> (-> this current-points data (+ s2-1 s5-2)) quad)) + (.lvf vf5 (&-> a1-41 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-142 quad) vf6) + ) + (set! (-> this current-points data (+ s2-1 s5-2) z) (-> this desired-points data (+ s2-1 s5-2) z)) + ) + ) + ) + ) + ) + ) + ) + (+! s5-2 s3-2) + ) + ) + ) + (dotimes (v1-155 (-> this num-active-spans)) + (-> this spans data v1-155) + (let ((a0-82 (-> this spans-internal data v1-155))) + (logior! (-> a0-82 span-flags) 1) + ) + ) + (none) + ) + ) + ) + +;; WARN: Return type mismatch vector vs none. +(defmethod lightning-bolt-method-19 ((this lightning-bolt) (arg0 vector) (arg1 int) (arg2 int) (arg3 matrix) (arg4 float) (arg5 float)) + (let ((a1-2 + (vector-! (new 'stack-no-clear 'vector) (-> this current-points data arg2) (-> this current-points data arg1)) + ) + ) + (set! (-> a1-2 x) (* (-> a1-2 x) arg4)) + (set! (-> a1-2 y) (* (-> a1-2 y) arg4)) + (set! (-> a1-2 z) (* (-> a1-2 z) arg5)) + (vector-rotate*! arg0 a1-2 arg3) + ) + (none) + ) + +(defun matrix<-vector-yz2! ((arg0 matrix) (arg1 vector) (arg2 vector)) + (set! (-> arg0 fvec quad) (-> arg1 quad)) + (vector-cross! (-> arg0 rvec) arg2 arg1) + (vector-normalize! (-> arg0 rvec) 1.0) + (vector-cross! (-> arg0 uvec) arg1 (-> arg0 rvec)) + (vector-normalize! (-> arg0 uvec) 1.0) + (set! (-> arg0 rvec w) 1.0) + (set! (-> arg0 uvec w) 1.0) + (set! (-> arg0 fvec w) 1.0) + arg0 + ) + +;; WARN: Return type mismatch number vs none. +;; WARN: Function (method 22 lightning-bolt) has a return type of none, but the expression builder found a return statement. +(defmethod lightning-bolt-method-22 ((this lightning-bolt)) + (with-pp + (set! (-> this strip1 num-verts) (the-as uint 0)) + (set! (-> this strip2 num-verts) (the-as uint 0)) + (set! (-> this strip1 adnops 0 cmds) (gs-reg64 test-1)) + (set! (-> this strip1 data0) + (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest greater-equal)) + ) + (set! (-> this strip2 adnops 0 cmds) (gs-reg64 test-1)) + (set! (-> this strip2 data0) + (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest greater-equal)) + ) + (set! (-> this strip1 adnops 1 cmds) (gs-reg64 alpha-1)) + (set! (-> this strip2 adnops 1 cmds) (gs-reg64 alpha-1)) + (let ((v1-9 (-> this appearance blend-mode))) + (cond + ((= v1-9 1) + (set! (-> this strip1 data1) (the-as gs-test *lightning-alpha-additive*)) + (set! (-> this strip2 data1) (the-as gs-test *lightning-alpha-additive*)) + ) + ((zero? v1-9) + (set! (-> this strip1 data1) (the-as gs-test *lightning-alpha-blend*)) + (set! (-> this strip2 data1) (the-as gs-test *lightning-alpha-blend*)) + ) + ((= v1-9 2) + (set! (-> this strip1 data1) (the-as gs-test *lightning-alpha-subtractive*)) + (set! (-> this strip2 data1) (the-as gs-test *lightning-alpha-subtractive*)) + ) + ) + ) + (set! (-> this strip1 tex-id) (the-as texture-id (-> this appearance tex-id))) + (set! (-> this strip2 tex-id) (the-as texture-id (-> this appearance tex-id))) + (if (= (-> this fade-mode) 3) + (return 0) + ) + (when (-> this appearance uv-shift?) + (let ((f0-2 (/ (the float (- (current-time) (-> pp clock old-frame-counter))) + (the float (-> this appearance uv-shift-speed)) + ) + ) + ) + (+! (-> this current-uv-shift) f0-2) + ) + (let ((f0-4 (-> this current-uv-shift))) + (set! (-> this current-uv-shift) (- f0-4 (the float (the int f0-4)))) + ) + (if (< (-> this current-uv-shift) 1.0) + (+! (-> this current-uv-shift) 1.0) + ) + ) + (none) + ) + ) + +(defun choose-nice-perp ((arg0 vector)) + (if (< (+ (square (-> arg0 x)) (square (-> arg0 z))) 0.01) + *x-vector* + *up-vector* + ) + ) + +;; WARN: Function (method 12 lightning-bolt) has a return type of none, but the expression builder found a return statement. +(defmethod lightning-bolt-method-12 ((this lightning-bolt)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (when (= (-> this fade-mode) 3) + (set! (-> this strip1 num-verts) (the-as uint 0)) + (set! (-> this strip2 num-verts) (the-as uint 0)) + (return 0) + ) + (let ((sv-48 0) + (sv-56 (the-as float 0.0)) + (sv-60 (new 'stack-no-clear 'vector)) + (sv-64 (new 'stack-no-clear 'matrix)) + ) + (lightning-bolt-method-22 this) + (set! (-> sv-60 x) 0.0) + (set! (-> sv-60 y) 0.0) + (dotimes (s5-0 (-> this num-active-spans)) + (let ((sv-96 (-> this spans data s5-0)) + (sv-100 (-> this spans-internal data s5-0)) + (sv-104 (new 'stack-no-clear 'vector)) + ) + (let ((sv-224 (new 'stack-no-clear 'matrix)) + (sv-228 (new 'stack-no-clear 'vector)) + (sv-232 (new 'stack-no-clear 'vector)) + (sv-236 (the-as float 0.0)) + ) + (let ((sv-240 + (vector-! + (new 'stack-no-clear 'vector) + (-> this span-pts-start data (+ s5-0 1)) + (-> this span-pts-start data s5-0) + ) + ) + (sv-244 (the float (-> sv-100 index))) + ) + (vector-normalize! sv-240 1.0) + (set! sv-236 + (vector-vector-distance (-> this span-pts-start data s5-0) (-> this span-pts-start data (+ s5-0 1))) + ) + (matrix<-vector-yz2! sv-224 sv-240 (choose-nice-perp sv-240)) + (let ((f30-0 (-> sv-96 random-offset-size-start))) + (lightning-bolt-method-19 this sv-104 sv-48 (+ sv-48 1) sv-224 f30-0 sv-236) + (set! (-> sv-232 quad) (-> this current-points data sv-48 quad)) + (set! (-> sv-232 x) (* (-> sv-232 x) f30-0)) + (set! (-> sv-232 y) (* (-> sv-232 y) f30-0)) + ) + (set! (-> sv-232 z) (- (-> sv-232 z) sv-244)) + (set! (-> sv-232 z) (* (-> sv-232 z) sv-236)) + (vector-rotate*! sv-228 sv-232 sv-224) + (let ((a0-21 sv-228)) + (let ((v1-43 sv-228) + (a1-13 (-> this span-pts-start data s5-0)) + ) + (.lvf vf4 (&-> v1-43 quad)) + (.lvf vf5 (&-> a1-13 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-21 quad) vf6) + ) + (lightning-bolt-method-16 this sv-228 (vector-length sv-232) sv-56 sv-60 (the-as matrix sv-104)) + (let ((sv-248 (-> sv-96 inner-random-offset-size))) + (dotimes (s4-1 (-> sv-100 num-inner-points)) + (let ((sv-256 (+ sv-48 1 s4-1))) + (lightning-bolt-method-19 this sv-104 (+ sv-256 -1) sv-256 sv-224 sv-248 sv-236) + (set! (-> sv-232 quad) (-> this current-points data sv-256 quad)) + ) + (set! (-> sv-232 x) (* (-> sv-232 x) sv-248)) + (set! (-> sv-232 y) (* (-> sv-232 y) sv-248)) + (set! (-> sv-232 z) (- (-> sv-232 z) sv-244)) + (set! (-> sv-232 z) (* (-> sv-232 z) sv-236)) + (vector-rotate*! sv-228 sv-232 sv-224) + (let ((a0-30 sv-228)) + (let ((v1-63 sv-228) + (a1-20 (-> this span-pts-start data s5-0)) + ) + (.lvf vf4 (&-> v1-63 quad)) + (.lvf vf5 (&-> a1-20 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-30 quad) vf6) + ) + (lightning-bolt-method-16 this sv-228 (vector-length sv-232) sv-56 sv-60 (the-as matrix sv-104)) + ) + ) + ) + (+! sv-56 sv-236) + ) + (set! sv-48 (+ (-> sv-100 num-inner-points) 1 sv-48)) + (set! (-> sv-64 rvec quad) (-> sv-104 quad)) + ) + ) + (let* ((s5-1 (-> this num-active-spans)) + (sv-288 (-> this spans data s5-1)) + (sv-292 (-> this spans-internal data s5-1)) + ) + (let ((sv-296 (new 'stack-no-clear 'vector))) + ) + (let ((sv-416 (new 'stack-no-clear 'matrix)) + (sv-420 (new 'stack-no-clear 'vector)) + ) + (let ((sv-424 (new 'stack-no-clear 'vector))) + (let ((sv-428 (vector-! + (new 'stack-no-clear 'vector) + (-> this span-pts-start data s5-1) + (-> this span-pts-start data (+ s5-1 -1)) + ) + ) + (sv-432 (the float (-> sv-292 index))) + ) + (vector-normalize! sv-428 1.0) + (matrix<-vector-yz2! sv-416 sv-428 (choose-nice-perp sv-428)) + (let ((f0-33 (-> sv-288 random-offset-size-start))) + (set! (-> sv-424 quad) (-> this current-points data sv-48 quad)) + (set! (-> sv-424 x) (* (-> sv-424 x) f0-33)) + (set! (-> sv-424 y) (* (-> sv-424 y) f0-33)) + ) + (set! (-> sv-424 z) (- (-> sv-424 z) sv-432)) + ) + (vector-rotate*! sv-420 sv-424 sv-416) + ) + (let ((a0-49 sv-420)) + (let ((v1-102 sv-420) + (a1-33 (-> this span-pts-start data s5-1)) + ) + (.lvf vf4 (&-> v1-102 quad)) + (.lvf vf5 (&-> a1-33 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-49 quad) vf6) + ) + (lightning-bolt-method-16 this sv-420 0.0 sv-56 sv-60 sv-64) + ) + ) + ) + 0 + (none) + ) + ) + +(defmethod relocate ((this lightning-bolt) (offset int)) + (if (nonzero? (-> this spans)) + (&+! (-> this spans) offset) + ) + (if (nonzero? (-> this strip1)) + (&+! (-> this strip1) offset) + ) + (if (nonzero? (-> this strip2)) + (&+! (-> this strip2) offset) + ) + (dotimes (v1-12 (+ (-> this num-spans) -1)) + ) + (if (nonzero? (-> this spans-internal)) + (&+! (-> this spans-internal) offset) + ) + (if (nonzero? (-> this current-points)) + (&+! (-> this current-points) offset) + ) + (if (nonzero? (-> this desired-points)) + (&+! (-> this desired-points) offset) + ) + (if (nonzero? (-> this span-pts-start)) + (&+! (-> this span-pts-start) offset) + ) + (call-parent-method this offset) + ) + +(defmethod lightning-bolt-method-17 ((this lightning-bolt) (arg0 uint) (arg1 float) (arg2 float) (arg3 curve2d-fast) (arg4 float)) + (if (not arg3) + (return 1.0) + ) + (let ((v1-2 arg0)) + (cond + ((zero? v1-2) + (evaluate arg3 (/ arg2 arg4) (loop-behavior use-default)) + ) + ((= v1-2 1) + (evaluate arg3 arg1 (loop-behavior use-default)) + ) + ((= v1-2 2) + (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-7 (the-as number (logior #x3f800000 v1-6))) + ) + (+ -1.0 (the-as float v1-7)) + ) + ) + (else + 1.0 + ) + ) + ) + ) + +(defmethod lightning-bolt-method-16 ((this lightning-bolt) (arg0 vector) (arg1 float) (arg2 float) (arg3 vector) (arg4 matrix)) + 0.0 + 0.0 + 0.0 + (let ((f28-0 (/ (the float (- (current-time) (the-as int (-> this last-generate-time)))) + (the float (-> this inner-point-travel-time)) + ) + ) + (f30-0 (+ arg2 arg1)) + ) + (math-camera-pos) + (let* ((s2-0 (-> this appearance)) + (f24-0 (* (lightning-bolt-method-17 + this + (-> s2-0 alpha-1-mode) + f28-0 + f30-0 + (-> s2-0 alpha-1-curve) + (-> s2-0 alpha-1-repeat-dist) + ) + (lightning-bolt-method-17 + this + (-> s2-0 alpha-2-mode) + f28-0 + f30-0 + (-> s2-0 alpha-2-curve) + (-> s2-0 alpha-2-repeat-dist) + ) + (-> s2-0 base-alpha) + (-> this current-fade-scalar) + ) + ) + (f22-0 (* (lightning-bolt-method-17 + this + (-> s2-0 width-mode) + f28-0 + f30-0 + (-> s2-0 width-curve) + (-> s2-0 width-repeat-dist) + ) + (-> this base-width) + ) + ) + (f0-14 (/ f30-0 (-> s2-0 uv-repeat-dist))) + (f28-1 (+ (- f0-14 (* (the float (the int (/ f0-14 6.0))) 6.0)) (-> this current-uv-shift))) + ) + (vector-normalize! (-> arg4 rvec) 1.0) + (let* ((a2-4 (-> (camera-matrix) uvec)) + (v1-13 (matrix-f-u-compose (new 'stack-no-clear 'matrix) (-> arg4 rvec) a2-4)) + (f26-1 6.0) + (sv-160 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 rvec) (/ f22-0 2))) + (sv-164 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 rvec) (/ f22-0 -2))) + (sv-168 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 uvec) (/ f22-0 2))) + (sv-172 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 uvec) (/ f22-0 -2))) + (sv-176 (the-as rgba (new 'stack-no-clear 'array 'rgba 1))) + ) + (set! sv-176 (copy-and-set-field (-> this base-color) a (the int (* 128.0 f24-0)))) + (when (< f28-1 (-> arg3 x)) + (let ((s3-1 (new 'stack-no-clear 'vector)) + (s4-1 (new 'stack-no-clear 'vector)) + ) + (let ((f24-1 (/ (- (+ f26-1 f28-1) (-> arg3 x)) f26-1))) + (let ((a1-10 (+ (the-as uint (-> this strip1 data 0 pos)) (* (+ (-> this strip1 num-verts) -2) 32))) + (s2-1 (+ (the-as uint (-> this strip1 data 0 pos)) (* (+ (-> this strip1 num-verts) -1) 32))) + ) + (vector-lerp! s3-1 (the-as vector a1-10) sv-160 f24-1) + (vector-lerp! s4-1 (the-as vector s2-1) sv-164 f24-1) + ) + (lightning-bolt-method-18 this (-> this strip1) s3-1 sv-176 0.0 f26-1) + (lightning-bolt-method-18 this (-> this strip1) s4-1 sv-176 1.0 f26-1) + (lightning-bolt-method-18 this (-> this strip1) s3-1 sv-176 0.0 0.0) + (lightning-bolt-method-18 this (-> this strip1) s4-1 sv-176 1.0 0.0) + (let ((a1-16 (+ (the-as uint (-> this strip2 data 0 pos)) (* (+ (-> this strip2 num-verts) -2) 32))) + (s2-2 (+ (the-as uint (-> this strip2 data 0 pos)) (* (+ (-> this strip2 num-verts) -1) 32))) + ) + (vector-lerp! s3-1 (the-as vector a1-16) sv-168 f24-1) + (vector-lerp! s4-1 (the-as vector s2-2) sv-172 f24-1) + ) + ) + (lightning-bolt-method-18 this (-> this strip2) s3-1 sv-176 1.0 f26-1) + (lightning-bolt-method-18 this (-> this strip2) s4-1 sv-176 0.0 f26-1) + (lightning-bolt-method-18 this (-> this strip2) s3-1 sv-176 1.0 0.0) + (lightning-bolt-method-18 this (-> this strip2) s4-1 sv-176 0.0 0.0) + ) + ) + (lightning-bolt-method-18 this (-> this strip1) sv-160 sv-176 0.0 f28-1) + (lightning-bolt-method-18 this (-> this strip1) sv-164 sv-176 1.0 f28-1) + (lightning-bolt-method-18 this (-> this strip2) sv-168 sv-176 1.0 f28-1) + (lightning-bolt-method-18 this (-> this strip2) sv-172 sv-176 0.0 f28-1) + ) + (set! (-> arg3 y) f30-0) + (set! (-> arg3 x) f28-1) + ) + ) + 0 + (none) + ) + +(defmethod lightning-bolt-method-18 ((this lightning-bolt) (arg0 prim-strip) (arg1 vector) (arg2 rgba) (arg3 float) (arg4 float)) + (when (< (-> arg0 num-verts) (-> arg0 allocated-num-verts)) + (let ((v1-5 (-> arg0 data (-> arg0 num-verts)))) + (set! (-> v1-5 pos quad) (-> arg1 quad)) + (set! (-> v1-5 col) arg2) + (set! (-> v1-5 stq x) arg3) + (set! (-> v1-5 stq y) arg4) + ) + (+! (-> arg0 num-verts) 1) + ) + 0 + (none) + ) + +(defbehavior lightning-new-tracker-init-by-other lightning-new-tracker ((arg0 lightning-tracker-init-params)) + (set! (-> self bolt) (new 'process 'lightning-bolt)) + (init! (-> self bolt) 2 (+ (-> arg0 num-inner-points) 2) (-> arg0 appearance)) + (set! (-> self lifetime) (-> arg0 lifetime)) + (set! (-> self bolt span-pts-start data 0 quad) (-> arg0 start-pt quad)) + (set! (-> self bolt span-pts-start data 1 quad) (-> arg0 end-pt quad)) + (set! (-> self bolt spans-internal data 0 num-inner-points) (-> arg0 num-inner-points)) + (set! (-> self bolt spans data 0 inner-random-offset-size) (-> arg0 inner-random-offset-size)) + (set! (-> self bolt spans data 0 random-offset-size-start) (-> arg0 random-offset-size-start)) + (set! (-> self bolt inner-point-travel-time) (the-as uint 5)) + (set! (-> self bolt snap-inner-points?) #t) + (set! (-> self bolt appearance) (-> arg0 appearance)) + (set! (-> self bolt fractal-reduction) 0.4) + (set! (-> self bolt generate-mode) (the-as uint 1)) + (go-virtual active) + ) + +;; WARN: Return type mismatch process vs lightning-new-tracker. +(defun create-lightning-tracker-new ((arg0 lightning-tracker-init-params)) + (let ((v1-1 (process-spawn lightning-new-tracker arg0 :name "lightning-new-tracker" :stack-size #x8000))) + (if v1-1 + (return (the-as lightning-new-tracker (-> v1-1 0))) + ) + ) + (the-as lightning-new-tracker #f) + ) + +(defmethod relocate ((this lightning-new-tracker) (offset int)) + (if (nonzero? (-> this bolt)) + (&+! (-> this bolt) offset) + ) + (call-parent-method this offset) + ) + +(defstate active (lightning-new-tracker) + :virtual #t + :enter (behavior () + (set! (-> self state-time) (the-as uint (current-time))) + (set! (-> self bolt num-active-spans) 1) + (lightning-bolt-method-13 (-> self bolt) 0) + ) + :trans (behavior () + (if (time-elapsed? (the-as int (-> self state-time)) (the-as time-frame (-> self lifetime))) + (go-virtual die) + ) + (lightning-bolt-method-11 (-> self bolt)) + (lightning-bolt-method-12 (-> self bolt)) + ) + :code sleep-code + ) + +(defstate die (lightning-new-tracker) + :virtual #t + :enter (behavior () + (lightning-bolt-method-13 (-> self bolt) 2) + (set! (-> self state-time) (the-as uint (current-time))) + ) + :trans (behavior () + (lightning-bolt-method-11 (-> self bolt)) + (lightning-bolt-method-12 (-> self bolt)) + ) + :code (behavior () + (until (= (lightning-bolt-method-14 (-> self bolt)) 3) + (suspend) + ) + ) + ) diff --git a/goal_src/jakx/engine/gfx/hw/display.gc b/goal_src/jakx/engine/gfx/hw/display.gc index 0a03da9c3e..509b328454 100644 --- a/goal_src/jakx/engine/gfx/hw/display.gc +++ b/goal_src/jakx/engine/gfx/hw/display.gc @@ -7,3 +7,648 @@ ;; DECOMP BEGINS +(defun get-current-time () + (-> *display* base-clock frame-counter) + ) + +(defun get-integral-current-time () + (-> *display* base-clock integral-frame-counter) + ) + +(defun get-real-current-time () + (-> *display* real-clock frame-counter) + ) + +(defmethod set-time-ratios ((this display) (arg0 float)) + (set! (-> this dog-ratio) (fmin 4.0 arg0)) + (case (get-video-mode) + (('pal) + (set! (-> this time-factor) 6.0) + ) + (else + (set! (-> this time-factor) 5.0) + ) + ) + (-> this dog-ratio) + ) + +(defun set-display ((arg0 display)) + "Allocate and initialize clocks for the display." + (dotimes (s5-0 22) + (set! (-> arg0 clock s5-0) (new 'global 'clock s5-0)) + ) + (set! (-> arg0 base-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 game-clock mask) (process-mask freeze pause menu progress movie)) + (set! (-> arg0 total-game-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 frame-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 target-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 camera-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 entity-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 part-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 bg-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user0-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user1-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user2-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user3-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user4-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user5-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user6-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user7-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user8-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user9-clock mask) (process-mask freeze pause menu progress)) + (set! (-> *listener-process* clock) (-> arg0 real-clock)) + (set! (-> *active-pool* clock) (-> arg0 real-clock)) + (set! (-> *display-pool* clock) (-> arg0 real-clock)) + (set! (-> *mid-pool* clock) (-> arg0 real-clock)) + (+! (-> arg0 real-clock ref-count) 4) + (set! (-> *camera-pool* clock) (-> arg0 camera-clock)) + (+! (-> arg0 camera-clock ref-count) 1) + (set! (-> *target-pool* clock) (-> arg0 target-clock)) + (+! (-> arg0 target-clock ref-count) 1) + (set! (-> *pusher-pool* clock) (-> arg0 entity-clock)) + (set! (-> *locker-pool* clock) (-> arg0 entity-clock)) + (set! (-> *entity-pool* clock) (-> arg0 entity-clock)) + (+! (-> arg0 entity-clock ref-count) 3) + (set! (-> *bg-pool* clock) (-> arg0 bg-clock)) + (+! (-> arg0 bg-clock ref-count) 1) + (set! (-> *default-pool* clock) (-> arg0 base-clock)) + (+! (-> arg0 base-clock ref-count) 1) + (+! (-> *kernel-clock* ref-count) -10) + arg0 + ) + +(defun allocate-dma-buffers ((arg0 display)) + "Allocate the main, debug, and calc dma buffers." + (when (zero? (-> arg0 frames 0 calc-buf)) + (set! (-> arg0 frames 0 calc-buf) (new 'global 'dma-buffer #x4e20)) + (set! (-> arg0 frames 1 calc-buf) (new 'global 'dma-buffer #x4e20)) + (set! (-> arg0 frames 0 global-buf) (new 'global 'dma-buffer #x180000)) + (set! (-> arg0 frames 1 global-buf) (new 'global 'dma-buffer #x180000)) + (set! (-> arg0 default-end-buffer) (new 'global 'dma-buffer 224)) + (set! (-> arg0 init-buffer-zbuf-on) (new 'global 'dma-buffer 224)) + (set! (-> arg0 init-buffer-zbuf-off) (new 'global 'dma-buffer 224)) + (when *debug-segment* + (set! (-> arg0 frames 0 debug-buf) (new 'debug 'dma-buffer #x800000)) + (set! (-> arg0 frames 1 debug-buf) (new 'debug 'dma-buffer #x800000)) + ) + (set! (-> arg0 dma-buffer-overflow) #f) + (set! (-> arg0 mem-reserve-size) (the-as uint 0)) + 0 + ) + arg0 + ) + +;; WARN: Return type mismatch pointer vs none. +(defun draw-sprite2d-xy ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 rgba) (arg6 int)) + (let* ((t2-2 (new 'stack 'draw-context arg1 arg2 arg3 arg4 arg5)) + (a0-3 (max 1792 (min 2304 (+ (-> t2-2 orgx) 1792)))) + (a3-3 (max 1840 (min 2256 (+ (-> t2-2 orgy) 1840)))) + (a1-6 (-> t2-2 width)) + (t1-2 (-> t2-2 height)) + (v1-6 (-> arg0 base)) + ) + (let* ((a2-2 arg0) + (t0-2 (the-as object (-> a2-2 base))) + ) + (set! (-> (the-as dma-packet t0-2) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet t0-2) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet t0-2) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a2-2 base) (&+ (the-as pointer t0-2) 16)) + ) + (let* ((a2-3 arg0) + (t0-4 (the-as object (-> a2-3 base))) + ) + (set! (-> (the-as gs-gif-tag t0-4) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :flg (gif-flag reg-list) :nreg #x4) + ) + (set! (-> (the-as gs-gif-tag t0-4) regs) + (new 'static 'gif-tag-regs :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2) :regs3 (gif-reg-id xyzf2)) + ) + (set! (-> a2-3 base) (&+ (the-as pointer t0-4) 16)) + ) + (let* ((a2-4 arg0) + (t0-6 (-> a2-4 base)) + ) + (set! (-> (the-as (pointer gs-prim) t0-6) 0) (new 'static 'gs-prim :prim (gs-prim-type sprite) :abe #x1)) + (set! (-> (the-as (pointer gs-rgbaq) t0-6) 1) (the-as gs-rgbaq (-> t2-2 color 0))) + (set! (-> (the-as (pointer gs-xyzf) t0-6) 2) (new 'static 'gs-xyzf :x (* a0-3 16) :y (* a3-3 16) :z arg6)) + (set! (-> (the-as (pointer gs-xyzf) t0-6) 3) (new 'static 'gs-xyzf + :x (* (max 1792 (min 2304 (+ a0-3 a1-6))) 16) + :y (* (max 1840 (min 2256 (+ a3-3 t1-2))) 16) + :z arg6 + ) + ) + (set! (-> a2-4 base) (&+ t0-6 32)) + ) + (let ((a0-12 (/ (the-as int (+ (- -16 (the-as int v1-6)) (the-as int (-> arg0 base)))) 16))) + (cond + ((nonzero? a0-12) + (logior! (-> (the-as (pointer uint64) v1-6) 0) (shr (shl a0-12 48) 48)) + (logior! (-> (the-as (pointer uint64) v1-6) 1) (shl (shr (shl a0-12 48) 48) 32)) + ) + (else + (set! (-> arg0 base) v1-6) + ) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch pointer vs none. +(defun draw-sprite2d-xy-absolute ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 rgba) (arg6 int)) + (let ((a1-1 (+ arg1 1792)) + (a2-1 (+ arg2 1840)) + (v1-0 (-> arg0 base)) + ) + (let* ((t3-0 arg0) + (t4-0 (the-as object (-> t3-0 base))) + ) + (set! (-> (the-as dma-packet t4-0) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet t4-0) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet t4-0) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> t3-0 base) (&+ (the-as pointer t4-0) 16)) + ) + (let* ((t3-1 arg0) + (t4-2 (the-as object (-> t3-1 base))) + ) + (set! (-> (the-as gs-gif-tag t4-2) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :flg (gif-flag reg-list) :nreg #x4) + ) + (set! (-> (the-as gs-gif-tag t4-2) regs) + (new 'static 'gif-tag-regs :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2) :regs3 (gif-reg-id xyzf2)) + ) + (set! (-> t3-1 base) (&+ (the-as pointer t4-2) 16)) + ) + (let* ((t3-2 arg0) + (t4-4 (-> t3-2 base)) + ) + (set! (-> (the-as (pointer gs-prim) t4-4) 0) (new 'static 'gs-prim :prim (gs-prim-type sprite) :abe #x1)) + (set! (-> (the-as (pointer gs-rgbaq) t4-4) 1) (the-as gs-rgbaq arg5)) + (set! (-> (the-as (pointer gs-xyzf) t4-4) 2) (new 'static 'gs-xyzf :x (* a1-1 16) :y (* a2-1 16) :z arg6)) + (set! (-> (the-as (pointer gs-xyzf) t4-4) 3) + (new 'static 'gs-xyzf :x (* (+ a1-1 arg3) 16) :y (* (+ a2-1 arg4) 16) :z arg6) + ) + (set! (-> t3-2 base) (&+ t4-4 32)) + ) + (let ((a1-10 (/ (the-as int (+ (- -16 (the-as int v1-0)) (the-as int (-> arg0 base)))) 16))) + (cond + ((nonzero? a1-10) + (set! (-> (the-as (pointer uint64) v1-0) 0) + (logior (-> (the-as (pointer uint64) v1-0)) (shr (shl a1-10 48) 48)) + ) + (logior! (-> (the-as (pointer uint64) v1-0) 1) (shl (shr (shl a1-10 48) 48) 32)) + ) + (else + (set! (-> arg0 base) v1-0) + ) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch pointer vs none. +(defun draw-quad2d ((arg0 dma-buffer) (arg1 draw-context)) + (let ((a3-1 (max 1792 (min 2304 (+ (-> arg1 orgx) 1792)))) + (a2-3 (max 1840 (min 2256 (+ (-> arg1 orgy) 1840)))) + (t3-0 (-> arg1 width)) + (t0-2 (-> arg1 height)) + (v1-4 (-> arg0 base)) + ) + (let* ((t1-0 arg0) + (t2-0 (the-as object (-> t1-0 base))) + ) + (set! (-> (the-as dma-packet t2-0) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet t2-0) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet t2-0) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> t1-0 base) (&+ (the-as pointer t2-0) 16)) + ) + (let* ((t1-1 arg0) + (t2-2 (the-as object (-> t1-1 base))) + ) + (set! (-> (the-as gs-gif-tag t2-2) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :flg (gif-flag reg-list) :nreg #x9) + ) + (set! (-> (the-as gs-gif-tag t2-2) regs) (new 'static 'gif-tag-regs + :regs1 (gif-reg-id rgbaq) + :regs2 (gif-reg-id xyzf2) + :regs3 (gif-reg-id rgbaq) + :regs4 (gif-reg-id xyzf2) + :regs5 (gif-reg-id rgbaq) + :regs6 (gif-reg-id xyzf2) + :regs7 (gif-reg-id rgbaq) + :regs8 (gif-reg-id xyzf2) + ) + ) + (set! (-> t1-1 base) (&+ (the-as pointer t2-2) 16)) + ) + (let* ((t1-2 arg0) + (t2-4 (-> t1-2 base)) + ) + (set! (-> (the-as (pointer gs-prim) t2-4) 0) + (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :abe #x1) + ) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 1) (the-as gs-rgbaq (-> arg1 color 0))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 2) (new 'static 'gs-xyzf :y (* a2-3 16) :x (* a3-1 16))) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 3) (the-as gs-rgbaq (-> arg1 color 1))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 4) + (new 'static 'gs-xyzf :y (* a2-3 16) :x (* (max 1792 (min 2304 (+ a3-1 t3-0))) 16)) + ) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 5) (the-as gs-rgbaq (-> arg1 color 2))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 6) + (new 'static 'gs-xyzf :y (* (max 1840 (min 2256 (+ a2-3 t0-2))) 16) :x (* a3-1 16)) + ) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 7) (the-as gs-rgbaq (-> arg1 color 3))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 8) (new 'static 'gs-xyzf + :y (* (max 1840 (min 2256 (+ a2-3 t0-2))) 16) + :x (* (max 1792 (min 2304 (+ a3-1 t3-0))) 16) + ) + ) + (set! (-> (the-as (pointer uint64) t2-4) 9) (the-as uint 0)) + (set! (-> t1-2 base) (&+ t2-4 80)) + ) + (let ((a1-11 (/ (the-as int (+ (- -16 (the-as int v1-4)) (the-as int (-> arg0 base)))) 16))) + (cond + ((nonzero? a1-11) + (set! (-> (the-as (pointer uint64) v1-4) 0) + (logior (-> (the-as (pointer uint64) v1-4)) (shr (shl a1-11 48) 48)) + ) + (logior! (-> (the-as (pointer uint64) v1-4) 1) (shl (shr (shl a1-11 48) 48) 32)) + ) + (else + (set! (-> arg0 base) v1-4) + ) + ) + ) + ) + (none) + ) + +(defun screen-gradient ((arg0 dma-buffer) (arg1 rgba) (arg2 rgba) (arg3 rgba) (arg4 rgba)) + (let ((a1-2 (new 'stack 'draw-context 0 0 512 (-> *viewport-array* default screen-sy) (new 'static 'rgba)))) + (set! (-> a1-2 color 0) arg1) + (set! (-> a1-2 color 1) arg2) + (set! (-> a1-2 color 2) arg3) + (set! (-> a1-2 color 3) arg4) + (draw-quad2d arg0 a1-2) + ) + (none) + ) + +(defun vif1-handler-debug ((mark-in int)) + "Handle the VIF1 interrupt. + The mark register of VIF will be set to the bucket that is now starting." + + ; B0: + ; L42: + ; daddiu sp, sp, -32 + ; sd ra, 0(sp) + ; sd s7, 16(sp) + ; bgezal r0, L43 + ; sll r0, r0, 0 + + ; B1: + ; L43: + ; daddiu fp, ra, -20 + ; lw s7, L41(fp) + ; lw s7, 0(s7) + ; daddiu s7, s7, -8 + ; lw v1, *profile-interrupt-segment*(s7) + (let* ((prof *profile-interrupt-segment*) ;; v1 + ; lui a0, 4096 + ; ori a0, a0, 15360 + ; lwu a0, 48(a0) + (mark mark-in) ;; (-> VIF1_BANK mark) (TODO actually set mark somehow) + ; lw a1, *profile-work*(s7) + ; lw a2, 64(a1) + (last-index (-> *profile-work* last-index)) + + ; lh a3, 4(v1) + (base-time (-> prof base-time)) + ; lui a1, 4096 + ; ori a1, a1, 2048 + ; lwu a1, 0(a1) + ; sync.l + (current-time (timer-count TIMER1_BANK)) + (delta-time (the uint 0)) + ) + + + (cond + ; sltu t0, a0, a2 t0 = (mark < last-index) + ; beq t0, r0, L46 + ; sll r0, r0, 0 + ((< mark last-index) + ;; the mark jumped backward, we must be starting a new frame + ;; clear all profile info. + + + ; B2: + ; addiu a2, r0, 0 + ; beq r0, r0, L45 + ; sll r0, r0, 0 + (dotimes (i (enum-length bucket-id)) + ; B3: + ; L44: + ; dsll a3, a2, 4 + ; daddu a3, v1, a3 + ; sh r0, 48(a3) + (set! (-> prof data i start-time) 0) + ; dsll a3, a2, 4 + ; daddu a3, v1, a3 + ; sh r0, 50(a3) + (set! (-> prof data i end-time) 0) + ; dsll a3, a2, 4 + ; daddu a3, v1, a3 + ; sb r0, 53(a3) + (set! (-> prof data i count) 0) + ; daddiu a2, a2, 1 + ; B4: + ; L45: + ; slti a3, a2, 327 + ; bne a3, r0, L44 + ; sll r0, r0, 0 + ) + + ; B5: + ; or a2, s7, r0 + ; or a2, s7, r0 + ; sh a1, 4(v1) + (set! (-> prof base-time) (the int current-time)) + ; addiu a1, r0, 0 + ; sh r0, 48(v1) + (set! (-> prof data 0 start-time) 0) ;; why do it again... + ; addiu a2, r0, 327 + ; sh a2, 0(v1) + (set! (-> prof count) (enum-length bucket-id)) + ; beq r0, r0, L47 + ; sll r0, r0, 0 + ) ;; end (>= mark last-index) + (else + + ; B6: + ; L46: + ; dsubu a1, a1, a3 + ;(let ((delta-time (- current-time base-time))) + (set! delta-time (- current-time base-time)) + + ; dsll a2, a2, 4 + ; daddu a2, v1, a2 + ; sh a1, 50(a2) + (set! (-> prof data last-index end-time) (the int delta-time)) + ; (format 0 "mark: ~D last ~D elapsed ~D~%" mark last-index + ; (- (-> prof data last-index end-time) + ; (-> prof data last-index start-time))) + + ; sh a1, 50(v1) + (set! (-> prof data 0 end-time) (the int delta-time)) + ; or a2, a1, r0 + ;) + ) ;; end else + ) ;; end cond + ; B7: + ; L47: + ; dsll a2, a0, 4 + ; daddu a2, v1, a2 + ; sb a0, 53(a2) + (set! (-> prof data mark count) mark) + ; dsll a2, a0, 4 + ; daddu v1, v1, a2 + ; sh a1, 48(v1) + (set! (-> prof data mark start-time) (the int delta-time)) + ; lw v1, *profile-work*(s7) + ; sw a0, 64(v1) + (set! (-> *profile-work* last-index) mark) + ; lui v1, 4096 + ; ori v1, v1, 15360 + ; sw r0, 48(v1) + ;; CLEAR mark + ; addiu v1, r0, 8 + ; lui a0, 4096 + ; ori a0, a0, 15360 + ; sw v1, 16(a0) + ;; write STC to VIF FBRST (reset various things) + ; addiu v0, r0, 0 + ; ld ra, 0(sp) + ; ld s7, 16(sp) + ; sync.l + ; ei + ; jr ra + ; daddiu sp, sp, 32 + ) + + (none) + ;; .endfunction + ) + +(defun vif1-handler () + ; B0: + ; L8: + ; daddiu sp, sp, -32 + ; sd ra, 0(sp) + ; sd s7, 16(sp) + ; bgezal r0, L9 + ; sll r0, r0, 0 + + ; B1: + ; L9: + ; daddiu fp, ra, -20 + ; lw s7, L7(fp) + ; lw s7, 0(s7) + ; daddiu s7, s7, -8 + + ; lui v1, 4096 + ; ori v1, v1, 15360 + ; sw r0, 48(v1) + ;; clear mark + + ; addiu v1, r0, 8 + ; lui a0, 4096 + ; ori a0, a0, 15360 + ; sw v1, 16(a0) + ;; write STC to VIF FBRST (reset various things) + + ; addiu v0, r0, 0 + ; ld ra, 0(sp) + ; ld s7, 16(sp) + ; sync.l + ; ei + ; jr ra + ; daddiu sp, sp, 32 + + ; sll r0, r0, 0 + ; sll r0, r0, 0 + ) + +(install-handler 5 (if *debug-segment* + vif1-handler-debug + vif1-handler + ) + ) + +(defun vblank-handler () + "Record the time of the last two vblanks." + ; L5: + ; daddiu sp, sp, -32 + ; sd ra, 0(sp) + ; sd s7, 16(sp) + ; bgezal r0, L6 + ; sll r0, r0, 0 + + ; B1: + ; L6: + ; daddiu fp, ra, -20 + ; lw s7, L4(fp) + ; lw s7, 0(s7) + ; daddiu s7, s7, -8 + ; lw v1, *display*(s7) + ; ld v1, 108(v1) + ; lw a0, *display*(s7) + ; sd v1, 100(a0) + (set! (-> *display* vblank-start-time 0) (-> *display* vblank-start-time 1)) + ; lw t9, timer-count(s7) + ; lui v1, 4096 + ; ori a0, v1, 2048 + ; jalr ra, t9 + ; sll v0, ra, 0 + + ; lw v1, *display*(s7) + ; sd v0, 108(v1) + (set! (-> *display* vblank-start-time 1) (the-as int (timer-count TIMER1_BANK))) ;; not really a time-frame. + ; addiu v0, r0, 0 + 0 + ; ld ra, 0(sp) + ; ld s7, 16(sp) + ; sync.l + ; ei + ; jr ra + ; daddiu sp, sp, 32 + + ; sll r0, r0, 0 + ; sll r0, r0, 0 + ) + +(defun set-display-gs-state ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 int)) + (let* ((t2-0 (/ (+ arg2 63) 64)) + (v1-1 *viewport-array*) + (v1-2 (-> v1-1 data (-> v1-1 current-viewport-index))) + (t3-3 *display*) + (t4-1 144) + ) + (+! (-> t3-3 mem-reserve-size) t4-1) + (when (not (-> t3-3 dma-buffer-overflow)) + (let ((t6-0 (-> t3-3 frames (-> t3-3 on-screen) global-buf))) + (if (< (-> t6-0 real-buffer-end) (the-as int (&+ (-> t6-0 base) t4-1))) + (set! (-> t3-3 dma-buffer-overflow) #t) + ) + ) + (if (not (-> t3-3 dma-buffer-overflow)) + (dma-buffer-add-gs-set-flusha arg0 + (scissor-1 (new 'static 'gs-scissor :scax1 (+ arg2 -1) :scay1 (+ arg3 -1))) + (xyoffset-1 (new 'static 'gs-xy-offset)) + (frame-1 (new 'static 'gs-frame :fbp arg1 :fbw t2-0 :psm arg5 :fbmsk arg4)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest always))) + (texa (new 'static 'gs-texa :ta0 #x80 :ta1 #x80)) + (zbuf-1 (-> v1-2 zbuf-off)) + (texflush 0) + ) + ) + ) + ) + arg0 + ) + +(defun set-display-gs-state-offset ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 int) (arg6 int) (arg7 int)) + (let* ((t4-0 (/ (+ arg2 63) 64)) + (v1-1 *viewport-array*) + (v1-2 (-> v1-1 data (-> v1-1 current-viewport-index))) + (t5-3 *display*) + (t6-1 144) + ) + (+! (-> t5-3 mem-reserve-size) t6-1) + (when (not (-> t5-3 dma-buffer-overflow)) + (let ((t8-0 (-> t5-3 frames (-> t5-3 on-screen) global-buf))) + (if (< (-> t8-0 real-buffer-end) (the-as int (&+ (-> t8-0 base) t6-1))) + (set! (-> t5-3 dma-buffer-overflow) #t) + ) + ) + (if (not (-> t5-3 dma-buffer-overflow)) + (dma-buffer-add-gs-set-flusha arg0 + (scissor-1 (new 'static 'gs-scissor :scax1 (+ arg2 -1) :scay1 (+ arg3 -1))) + (xyoffset-1 (new 'static 'gs-xy-offset :ofx (* arg6 16) :ofy (* arg7 16))) + (frame-1 (new 'static 'gs-frame :fbp arg1 :fbw t4-0 :psm arg5 :fbmsk arg4)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest always))) + (texa (new 'static 'gs-texa :ta0 #x80 :ta1 #x80)) + (zbuf-1 (-> v1-2 zbuf-off)) + (texflush 0) + ) + ) + ) + ) + arg0 + ) + +(defun reset-display-gs-state ((arg0 display) (arg1 dma-buffer)) + (let ((v1-0 *display*) + (a2-0 144) + ) + (+! (-> v1-0 mem-reserve-size) a2-0) + (when (not (-> v1-0 dma-buffer-overflow)) + (let ((t0-0 (-> v1-0 frames (-> v1-0 on-screen) global-buf))) + (if (< (-> t0-0 real-buffer-end) (the-as int (&+ (-> t0-0 base) a2-0))) + (set! (-> v1-0 dma-buffer-overflow) #t) + ) + ) + (when (not (-> v1-0 dma-buffer-overflow)) + (let* ((v1-2 *viewport-array*) + (v1-3 (-> v1-2 data (-> v1-2 current-viewport-index))) + ) + (let* ((a2-7 arg1) + (a3-11 (the-as object (-> a2-7 base))) + ) + (set! (-> (the-as dma-packet a3-11) dma) (new 'static 'dma-tag :qwc #x8 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a3-11) vif0) (new 'static 'vif-tag :cmd (vif-cmd flusha) :msk #x1)) + (set! (-> (the-as dma-packet a3-11) vif1) (new 'static 'vif-tag :imm #x8 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a2-7 base) (&+ (the-as pointer a3-11) 16)) + ) + (let* ((a2-8 arg1) + (a3-13 (-> a2-8 base)) + ) + (set! (-> (the-as (pointer uint64) a3-13) 0) (make-u128 0 (the-as uint #x7000000000008001))) + (set! (-> (the-as (pointer uint64) a3-13) 1) (the-as uint #xeeeeeeeeeeeeeeee)) + (set! (-> a2-8 base) (&+ a3-13 16)) + ) + (let ((a2-9 (-> arg1 base))) + (set! (-> (the-as (pointer uint64) a2-9) 0) (the-as uint #x19f000001ff0000)) + (set! (-> (the-as (pointer uint64) a2-9) 1) (the-as uint 64)) + (set! (-> (the-as (pointer uint64) a2-9) 2) (the-as uint #x730000007000)) + (set! (-> (the-as (pointer uint64) a2-9) 3) (the-as uint 24)) + (set! (-> (the-as (pointer uint64) a2-9) 4) (the-as uint #x80196)) + (set! (-> (the-as (pointer uint64) a2-9) 5) (the-as uint 76)) + (set! (-> (the-as (pointer uint64) a2-9) 6) (the-as uint #x50000)) + (set! (-> (the-as (pointer uint64) a2-9) 7) (the-as uint 71)) + (set! (-> (the-as (pointer uint64) a2-9) 8) (the-as uint (shl 128 32))) + (set! (-> (the-as (pointer uint64) a2-9) 9) (the-as uint 59)) + (set! (-> (the-as (pointer uint64) a2-9) 10) (-> v1-3 zbuf-on)) + (set! (-> (the-as (pointer uint64) a2-9) 11) (the-as uint 78)) + (set! (-> (the-as (pointer uint64) a2-9) 12) (the-as uint 0)) + (set! (-> (the-as (pointer uint64) a2-9) 13) (the-as uint 63)) + (set! (-> arg1 base) (&+ a2-9 112)) + ) + ) + ) + ) + ) + arg0 + ) + +(kmemopen global "dma-buffers") + +(define *vu0-dma-list* (new 'global 'dma-buffer 4096)) + +(define *display* (new 'global 'display 0 512 416 2 49)) + +(allocate-dma-buffers *display*) + +(kmemclose) diff --git a/goal_src/jakx/engine/gfx/hw/gs.gc b/goal_src/jakx/engine/gfx/hw/gs.gc index b54f5d180e..39941572c5 100644 --- a/goal_src/jakx/engine/gfx/hw/gs.gc +++ b/goal_src/jakx/engine/gfx/hw/gs.gc @@ -543,15 +543,46 @@ pixel is performed." ) ) -;; type gs-rgbaq is defined here, but it is unknown to the decompiler +(deftype gs-rgbaq (uint64) + "The GS's RGBAQ register sets the RGBA value of the vertex and the Q value of the normalized +texture coordinates." + ((r uint8 :offset 0 :size 8) + (g uint8 :offset 8 :size 8) + (b uint8 :offset 16 :size 8) + (a uint8 :offset 24 :size 8) + (q float :offset 32 :size 32) + ) + ) -;; type gs-xyz is defined here, but it is unknown to the decompiler +(deftype gs-xyz (uint64) + ((x uint16 :offset 0 :size 16) + (y uint16 :offset 16 :size 16) + (z uint32 :offset 32 :size 32) + ) + ) -;; type gs-uv is defined here, but it is unknown to the decompiler +(deftype gs-uv (uint64) + "The GS's UV register specifies the texel coordinate (UV) values of the vertex." + ((u uint16 :offset 0 :size 16) + (v uint16 :offset 16 :size 16) + ) + ) -;; type gs-st is defined here, but it is unknown to the decompiler +(deftype gs-st (uint64) + "The GS's ST register sets the S and T values of the vertex texture coordinates. +The value Q is specified by the RGBAQ register." + ((s float :offset 0 :size 32) + (t float :offset 32 :size 32) + ) + ) -;; type gs-xyzf is defined here, but it is unknown to the decompiler +(deftype gs-xyzf (uint64) + ((x uint16 :offset 0 :size 16) + (y uint16 :offset 16 :size 16) + (z uint32 :offset 32 :size 24) + (f uint8 :offset 56 :size 8) + ) + ) (deftype gs-adcmd (structure) ((word uint32 4) diff --git a/goal_src/jakx/engine/gfx/math-camera.gc b/goal_src/jakx/engine/gfx/math-camera.gc index 815ee437f8..cc9cee5864 100644 --- a/goal_src/jakx/engine/gfx/math-camera.gc +++ b/goal_src/jakx/engine/gfx/math-camera.gc @@ -7,3 +7,4 @@ ;; DECOMP BEGINS +(define-extern transform-point-qword! (function vector4w vector symbol)) \ No newline at end of file diff --git a/goal_src/jakx/engine/gfx/mood/mood.gc b/goal_src/jakx/engine/gfx/mood/mood.gc index 46ff44787c..5d14a8fe19 100644 --- a/goal_src/jakx/engine/gfx/mood/mood.gc +++ b/goal_src/jakx/engine/gfx/mood/mood.gc @@ -5,5 +5,1712 @@ ;; name in dgo: mood ;; dgos: ENGINE, GAME +;; +++time-of-day-palette-id +(defenum time-of-day-palette-id + :type uint32 + :bitfield #t + (unk0 0) ;; 1 + (unk1 1) ;; 2 + (unk2 2) ;; 4 + (unk3 3) ;; 8 + (palette-0 4) ;; 16 + (palette-1 5) ;; 32 + (palette-2 6) ;; 64 + (palette-3 7) ;; 128 + (palette-4 8) ;; 256 + (palette-5 9) ;; 512 + (palette-6 10) ;; 1024 + (palette-7 11) ;; 2048 + ) +;; ---time-of-day-palette-id + ;; DECOMP BEGINS +(defun set-movie-time! ((arg0 int) (arg1 int) (arg2 time-of-day-palette-id)) + (set! (-> *time-of-day-context* mode) arg2) + (send-event (ppointer->process *time-of-day*) 'change 'ratio 0.0) + (send-event (ppointer->process *time-of-day*) 'change 'hour arg0) + (send-event (ppointer->process *time-of-day*) 'change 'minutes arg1) + (send-event (ppointer->process *time-of-day*) 'change 'seconds 0) + (send-event (ppointer->process *time-of-day*) 'change 'frames 0) + 0 + (none) + ) + +(defun set-movie-fog! ((arg0 vector) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + (set! (-> *time-of-day-context* override-enable) (the-as basic #t)) + (dotimes (v1-1 8) + (let ((t1-4 (-> *override-mood-fog-table* data v1-1))) + (set! (-> t1-4 fog-color quad) (-> arg0 quad)) + (set! (-> t1-4 fog-dists x) arg1) + (set! (-> t1-4 fog-dists y) arg2) + (set! (-> t1-4 fog-dists w) arg3) + (set! (-> t1-4 fog-dists z) arg4) + ) + ) + 0 + (none) + ) + +(defun set-movie-color! ((arg0 vector) (arg1 vector)) + (set! (-> *time-of-day-context* override-enable) (the-as basic #t)) + (dotimes (v1-1 8) + (let ((a2-3 (-> *override-mood-color-table* data v1-1))) + (set! (-> a2-3 lgt-color quad) (-> arg0 quad)) + (set! (-> a2-3 amb-color quad) (-> arg1 quad)) + ) + ) + 0 + (none) + ) + +(defun palette-select-special ((arg0 mood-context-core3)) + (dotimes (v1-0 8) + (cond + ((logtest? (-> *time-of-day-context* mode) (ash 16 v1-0)) + (if (-> *time-of-day-context* override-enable) + (set! (-> arg0 times v1-0 quad) (-> *time-of-day-context* times v1-0 quad)) + (set! (-> arg0 times v1-0 w) 1.0) + ) + ) + (else + (set! (-> arg0 times v1-0 w) 0.0) + ) + ) + ) + #f + ) + +(defun clear-mood-times ((arg0 mood-context)) + (dotimes (v1-0 8) + (set! (-> arg0 times v1-0 w) 0.0) + ) + #f + ) + +(defun update-mood-itimes ((arg0 mood-context)) + (local-vars + (v1-0 uint128) + (v1-1 uint128) + (v1-2 uint128) + (v1-3 uint128) + (a1-0 uint128) + (a1-1 uint128) + (a1-2 uint128) + (a1-3 uint128) + (a2-0 uint128) + (a2-1 uint128) + (a3-0 uint128) + (a3-1 uint128) + (t0-0 uint128) + (t0-1 uint128) + (t1-0 uint128) + (t1-1 uint128) + (t2-0 uint128) + (t2-1 uint128) + (t3-0 uint128) + (t3-1 uint128) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + ) + (nop!) + (nop!) + (.lvf vf1 (&-> arg0 times 0 quad)) + (nop!) + (.lvf vf2 (&-> arg0 times 1 quad)) + (.mul.w.vf.xyz vf1 vf1 vf1) + (.lvf vf3 (&-> arg0 times 2 quad)) + (.mul.w.vf.xyz vf2 vf2 vf2) + (.lvf vf4 (&-> arg0 times 3 quad)) + (.mul.w.vf.xyz vf3 vf3 vf3) + (.lvf vf5 (&-> arg0 times 4 quad)) + (.mul.w.vf.xyz vf4 vf4 vf4) + (.lvf vf6 (&-> arg0 times 5 quad)) + (.mul.w.vf.xyz vf5 vf5 vf5) + (.lvf vf7 (&-> arg0 times 6 quad)) + (.mul.w.vf.xyz vf6 vf6 vf6) + (.lvf vf8 (&-> arg0 times 7 quad)) + (.mul.w.vf.xyz vf7 vf7 vf7) + (nop!) + (.mul.w.vf.xyz vf8 vf8 vf8) + (nop!) + (vftoi12.xyzw vf1 vf1) + (nop!) + (vftoi12.xyzw vf2 vf2) + (nop!) + (vftoi12.xyzw vf3 vf3) + (nop!) + (vftoi12.xyzw vf4 vf4) + (nop!) + (vftoi12.xyzw vf5 vf5) + (nop!) + (vftoi12.xyzw vf6 vf6) + (nop!) + (vftoi12.xyzw vf7 vf7) + (nop!) + (vftoi12.xyzw vf8 vf8) + (nop!) + (.mov v1-0 vf1) + (nop!) + (.mov a1-0 vf2) + (nop!) + (.mov a2-0 vf3) + (.pw.sra v1-1 v1-0 6) + (.mov a3-0 vf4) + (.pw.sra a1-1 a1-0 6) + (.mov t0-0 vf5) + (.pw.sra a2-1 a2-0 6) + (.mov t1-0 vf6) + (.pw.sra a3-1 a3-0 6) + (.mov t2-0 vf7) + (.pw.sra t0-1 t0-0 6) + (.mov t3-0 vf8) + (.pw.sra t1-1 t1-0 6) + (.pw.sra t2-1 t2-0 6) + (nop!) + (.pw.sra t3-1 t3-0 6) + (nop!) + (.ppach v1-2 a1-1 v1-1) + (nop!) + (.ppach a1-2 a3-1 a2-1) + (set! (-> arg0 itimes 0 quad) v1-2) + (.ppach v1-3 t1-1 t0-1) + (set! (-> arg0 itimes 1 quad) a1-2) + (.ppach a1-3 t3-1 t2-1) + (set! (-> arg0 itimes 2 quad) v1-3) + (nop!) + (set! (-> arg0 itimes 3 quad) a1-3) + 0 + (none) + ) + ) + + +(defun update-mood-exterior ((arg0 mood-context-core3) (arg1 mood-table) (arg2 float) (arg3 int)) + (local-vars (v0-1 object)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cond + ((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode))) + (palette-select-special arg0) + ) + (else + 0 + 0 + 0.0 + (let* ((v1-3 (the int arg2)) + (f0-4 (- arg2 (the float v1-3))) + (f1-3 (- 1.0 f0-4)) + (a0-6 (/ v1-3 24)) + (v1-7 (-> arg1 mood-interp-table hour (- v1-3 (* 24 a0-6)))) + (s3-0 (-> v1-7 snapshot1)) + (s2-0 (-> v1-7 snapshot2)) + (f30-0 (+ (* f1-3 (-> v1-7 morph-start)) (* f0-4 (-> v1-7 morph-end)))) + ) + (set! v0-1 + (cond + ((and (-> *level* level arg3 bsp) + (nonzero? (-> *level* level arg3 bsp)) + (not (-> *level* level arg3 bsp ambients)) + ) + (set! v0-1 (-> arg0 times)) + (set! (-> (the-as (inline-array vector) v0-1) 0 x) 1.0) + (set! (-> (the-as (inline-array vector) v0-1) 0 y) 1.0) + (set! (-> (the-as (inline-array vector) v0-1) 0 z) 1.0) + (set! (-> (the-as (inline-array vector) v0-1) 0 w) 1.0) + v0-1 + ) + ((= s3-0 s2-0) + (let ((a2-1 (-> arg1 mood-color-table data s3-0)) + (v1-26 (-> arg0 times)) + (a1-2 (-> arg0 times 1)) + (a0-16 (-> arg0 light-group)) + ) + (set! (-> v1-26 0 quad) (-> a2-1 amb-color quad)) + (set! (-> a1-2 quad) (-> a2-1 lgt-color quad)) + (set! (-> arg0 times 2 quad) (-> a1-2 quad)) + (set! (-> arg0 times 3 quad) (-> a1-2 quad)) + (set! (-> arg0 times 4 quad) (-> a1-2 quad)) + (set! (-> a0-16 0 ambi color quad) (-> v1-26 0 quad)) + ) + (set! (-> arg0 current-sky-color quad) (-> arg1 mood-sky-table data s3-0 quad)) + (mem-copy! (the-as pointer (-> arg0 current-fog)) (the-as pointer (-> arg1 mood-fog-table data s3-0)) 48) + ) + (else + (let ((sv-32 (-> arg1 mood-color-table data s3-0)) + (sv-48 (-> arg1 mood-color-table data s2-0)) + (s1-0 (-> arg0 times)) + (sv-64 (-> arg0 times 1)) + (s0-0 (-> arg0 light-group)) + ) + (vector4-lerp! (-> s1-0 0) (-> sv-32 amb-color) (-> sv-48 amb-color) f30-0) + (vector4-lerp! sv-64 (-> sv-32 lgt-color) (-> sv-48 lgt-color) f30-0) + (set! (-> arg0 times 2 quad) (-> sv-64 quad)) + (set! (-> arg0 times 3 quad) (-> sv-64 quad)) + (set! (-> arg0 times 4 quad) (-> sv-64 quad)) + (set! (-> s0-0 0 ambi color quad) (-> s1-0 0 quad)) + ) + (vector4-lerp! + (-> arg0 current-sky-color) + (-> arg1 mood-sky-table data s3-0) + (-> arg1 mood-sky-table data s2-0) + f30-0 + ) + (vector4-array-lerp! + (the-as (inline-array vector4) (-> arg0 current-fog)) + (the-as (inline-array vector4) (-> arg1 mood-fog-table data s3-0)) + (the-as (inline-array vector4) (-> arg1 mood-fog-table data s2-0)) + f30-0 + 3 + ) + ) + ) + ) + ) + (set-vector! (-> arg0 current-prt-color) 0.0 0.0 0.0 0.0) + (set-vector! (-> arg0 current-env-color) 0.0 0.0 0.0 0.0) + (let ((f0-18 (-> *mood-control* lightning-flash)) + (a0-36 (-> *mood-control* lightning-index)) + ) + (when (and (!= f0-18 0.0) (< a0-36 4)) + (let ((v1-64 (new 'stack-no-clear 'vector)) + (a0-40 (-> arg0 times (+ a0-36 1))) + ) + (set-vector! v1-64 f0-18 f0-18 f0-18 0.0) + (let ((a1-15 a0-40)) + (.lvf vf4 (&-> a0-40 quad)) + (.lvf vf5 (&-> v1-64 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-15 quad) vf6) + ) + ) + ) + ) + ;; (update-mood-direction arg0 arg1 arg2) + ) + ) + ) + ) + +(defun copy-mood-exterior ((arg0 mood-context)) + (set! (-> *time-of-day-context* exterior-level) (the-as basic #t)) + (cond + ((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode))) + (palette-select-special arg0) + ) + (else + (let ((v1-2 (the-as object arg0)) + (a1-4 (the-as object (-> *level* level-default mood-context))) + ) + (dotimes (a2-0 31) + (set! (-> (the-as vector v1-2) quad) (-> (the-as vector a1-4) quad)) + (set! v1-2 (-> (the-as (inline-array vector) v1-2) 1)) + (set! a1-4 (-> (the-as (inline-array vector) a1-4) 1)) + ) + ) + (let ((v1-5 (the-as object (-> arg0 times))) + (a0-3 (the-as object (-> *level* level-default mood-context times))) + ) + (dotimes (a1-5 5) + (set! (-> (the-as vector v1-5) quad) (-> (the-as vector a0-3) quad)) + (set! v1-5 (-> (the-as (inline-array vector) v1-5) 1)) + (set! a0-3 (-> (the-as (inline-array vector) a0-3) 1)) + ) + ) + #f + ) + ) + ) + +;; WARN: Return type mismatch object vs none. +(defun copy-mood-exterior-ambi ((arg0 mood-context) (arg1 symbol)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cond + ((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode))) + (palette-select-special arg0) + ) + (else + (let ((v1-1 arg0) + (a2-3 (-> *level* level-default mood-context)) + ) + (dotimes (a3-0 31) + (set! (-> v1-1 current-fog fog-color quad) (-> a2-3 current-fog fog-color quad)) + (set! v1-1 (the-as mood-context (-> v1-1 current-fog fog-dists))) + (set! a2-3 (the-as mood-context (-> a2-3 current-fog fog-dists))) + ) + ) + (set! (-> arg0 times 0 quad) (-> *level* level-default mood-context times 0 quad)) + (let ((a2-8 (-> arg0 times))) + (let ((v1-5 (-> arg0 times)) + (a3-3 (-> *level* level-default mood-context times 1)) + ) + (.lvf vf4 (&-> v1-5 0 quad)) + (.lvf vf5 (&-> a3-3 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-8 0 quad) vf6) + ) + (when arg1 + (set! (-> arg0 times 1 quad) (-> *level* level-default mood-context times 1 quad)) + (set! (-> arg0 times 1 w) 1.0) + ) + ) + ) + (none) + ) + ) + +(defun clear-mood-context ((arg0 mood-context)) + (let ((v1-0 arg0)) + (dotimes (a1-0 123) + (set! (-> v1-0 data a1-0) (the-as uint128 0)) + ) + ) + (dotimes (v1-3 8) + (set-vector! (-> arg0 times v1-3) 1.0 1.0 1.0 0.0) + ) + #f + ) + +(defun update-mood-interior ((arg0 mood-context) (arg1 symbol)) + (let ((v1-0 (-> arg0 light-group))) + (cond + (arg1 + (set! (-> arg0 current-fog fog-color quad) (-> *level* level-default mood-context current-fog fog-color quad)) + (set-vector! (-> arg0 current-fog fog-dists) 98304.0 3072000.0 255.0 150.0) + (set-vector! (-> arg0 current-fog erase-color) 0.0 0.0 0.0 128.0) + ) + (else + (let ((a1-4 (-> arg0 current-fog))) + (set! (-> a1-4 fog-color x) 150.0) + (set! (-> a1-4 fog-color y) 165.0) + (set! (-> a1-4 fog-color z) 220.0) + (set! (-> a1-4 fog-color w) 128.0) + ) + (set-vector! (-> arg0 current-fog fog-dists) 2048000.0 12288000.0 255.0 150.0) + (set-vector! (-> arg0 current-fog erase-color) 0.0 0.0 0.0 128.0) + ) + ) + (set-vector! (-> arg0 current-prt-color) 0.0 0.0 0.0 0.0) + (set-vector! (-> arg0 current-env-color) 96.0 96.0 96.0 128.0) + (set-vector! (-> arg0 current-sky-color) 0.0 0.0 0.0 1.0) + (let ((a0-2 (-> v1-0 0))) + (set! (-> a0-2 dir0 direction x) 0.0) + (set! (-> a0-2 dir0 direction y) 1.0) + (set! (-> a0-2 dir0 direction z) 0.0) + (set! (-> a0-2 dir0 direction w) 0.0) + ) + (set-vector! (-> v1-0 0 dir0 color) 0.667 0.667 0.667 1.0) + (set-vector! (-> v1-0 0 ambi color) 0.333 0.333 0.333 1.0) + (set! (-> v1-0 0 dir0 extra x) 1.0) + (set! (-> v1-0 0 dir1 extra x) 0.0) + (set! (-> v1-0 0 dir2 extra x) 0.0) + (set! (-> v1-0 0 ambi extra x) 1.0) + ) + ) + +(defun update-mood-interior-ambient ((arg0 mood-context) (arg1 symbol) (arg2 float)) + (update-mood-interior arg0 arg1) + (set! (-> arg0 times 0 quad) (-> *level* level-default mood-context times 0 quad)) + (vector+float*! (-> arg0 times 0) (-> arg0 times 0) (-> *level* level-default mood-context times 1) arg2) + ) + +(defbehavior update-mood-flames time-of-day-proc ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 float) (arg5 float) (arg6 float)) + (let* ((gp-0 (the-as object (+ (+ arg3 1840) (the-as int arg0)))) + (s4-0 (+ (-> (the-as flames-state gp-0) index) arg1)) + (f0-0 (-> (the-as flames-state gp-0) time)) + (v1-2 (-> (the-as flames-state gp-0) length)) + (sv-16 (-> (the-as flames-state gp-0) height)) + ) + (dotimes (a0-2 arg2) + (set! (-> arg0 times (+ arg1 a0-2) w) arg4) + ) + (cond + ((>= f0-0 (the float v1-2)) + (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-4 (the-as number (logior #x3f800000 v1-3))) + ) + (set! (-> (the-as flames-state gp-0) index) + (the-as uint (the int (* (+ -1.0 (the-as float v1-4)) (+ -0.01 (the float arg2))))) + ) + ) + (set! (-> (the-as flames-state gp-0) time) 0.0) + (let* ((f30-0 7.0) + (f28-0 8.0) + (v1-10 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-11 (the-as number (logior #x3f800000 v1-10))) + ) + (set! (-> (the-as flames-state gp-0) length) + (the-as uint (the int (* (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-11)))) arg6))) + ) + ) + (let* ((f30-1 255.0) + (v1-15 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-16 (the-as number (logior #x3f800000 v1-15))) + ) + (set! (-> (the-as flames-state gp-0) height) (the-as uint (the int (* f30-1 (+ -1.0 (the-as float v1-16)))))) + ) + (set! (-> arg0 times s4-0 w) arg4) + ) + (else + (let ((f0-22 (sin (* 32768.0 (/ f0-0 (the float v1-2)))))) + (set! (-> arg0 times s4-0 w) (+ (* (the float sv-16) f0-22 arg5) arg4)) + ) + (if (not (paused?)) + (set! (-> (the-as (pointer float) gp-0)) + (+ (-> (the-as (pointer float) gp-0)) (if (= (-> *display* bg-clock clock-ratio) 0.0) + 1.0 + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + ) + ) + ) + +(define *flash0* + (new 'static 'boxed-array :type float 1.0 0.0 0.5 1.0 0.5 0.0 0.5 0.35 0.4 0.35 0.25 0.1 0.04) + ) + +(define *flash1* (new 'static 'boxed-array :type float 1.0 0.8 0.0 1.0 0.5 1.0 0.4 0.2 0.1)) + +(define *flash2* (new 'static 'boxed-array :type float 1.0 0.9 0.8 0.7 0.0 0.0 1.0 0.0 1.0 0.5)) + +(define *flash3* (new 'static 'boxed-array :type float 0.5 0.0 1.0 0.9 1.0 0.8 0.3 0.0 0.0 0.5 0.1 0.5 0.35)) + +(define *flash4* + (new 'static 'boxed-array :type float 1.0 0.0 1.0 0.0 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.5 0.4 0.3 0.2 0.1) + ) + +(define *flash5* (new 'static 'boxed-array :type float + 1.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.95 + 0.9 + 0.85 + 0.8 + 0.75 + 0.7 + 0.65 + 0.6 + 0.55 + 0.5 + 0.45 + 0.4 + 0.35 + 0.3 + 0.25 + 0.2 + 0.5 + 0.45 + 0.4 + 0.35 + 0.3 + 0.25 + 0.2 + 0.15 + 0.1 + 0.05 + ) + ) + +(define *flash6* + (new 'static 'boxed-array :type float 1.0 0.0 1.0 0.0 0.5 0.0 0.5 0.35 0.0 0.0 1.0 0.0 0.2 0.1) + ) + +(define *flash7* + (new 'static 'boxed-array :type float 1.0 0.8 0.3 0.0 0.6 0.5 0.4 0.3 0.2 0.5 0.4 0.3 0.2 0.1) + ) + +(defun update-mood-light ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float) (arg5 float) (arg6 float) (arg7 float)) + (with-pp + (let* ((gp-0 (the-as light-state (+ (+ arg2 1840) (the-as int arg0)))) + (f0-0 512.0) + (f1-1 (+ (-> gp-0 time) arg6)) + (f26-0 (* f0-0 (- f1-1 (* (the float (the int (/ f1-1 256.0))) 256.0)))) + (f30-1 (+ (fabs arg3) (* (cos f26-0) arg4))) + (f28-0 (-> gp-0 fade)) + ) + (cond + ((or (>= arg5 18.0) (>= 6.0 arg5)) + (set! f28-0 (cond + ((< arg3 0.0) + (if (not (paused?)) + (set! f28-0 (seek f28-0 1.0 (* 0.25 (seconds-per-frame)))) + ) + f28-0 + ) + (else + 1.0 + ) + ) + ) + (set! (-> gp-0 fade) f28-0) + (set! (-> arg0 times arg1 w) (* f30-1 f28-0)) + (when (not (paused?)) + (let ((f0-10 (-> gp-0 time))) + (set! arg7 (cond + ((= (-> *display* bg-clock clock-ratio) 0.0) + (empty) + arg7 + ) + (else + (* arg7 (-> pp clock time-adjust-ratio)) + ) + ) + ) + (set! (-> gp-0 time) (+ f0-10 arg7)) + ) + ) + ) + ((= f28-0 1.0) + (cond + ((< f26-0 3640.889) + (set! (-> arg0 times arg1 w) f30-1) + (set! (-> gp-0 fade) 0.99) + ) + (else + (set! (-> arg0 times arg1 w) f30-1) + ) + ) + (if (not (paused?)) + (set! (-> gp-0 time) (+ (-> gp-0 time) (if (= (-> *display* bg-clock clock-ratio) 0.0) + arg7 + (* arg7 (-> pp clock time-adjust-ratio)) + ) + ) + ) + ) + ) + ((and (< f28-0 1.0) (< 0.0 f28-0)) + (set! (-> arg0 times arg1 w) f28-0) + (when (not (paused?)) + (if (< 0.75 f28-0) + (set! (-> gp-0 fade) (- (-> gp-0 fade) (/ (-> pp clock time-adjust-ratio) 25))) + (set! (-> gp-0 fade) (- (-> gp-0 fade) (/ (-> pp clock time-adjust-ratio) 50))) + ) + ) + ) + (else + (set! (-> gp-0 fade) 0.0) + (set! (-> gp-0 time) 0.0) + ) + ) + ) + ) + ) + +(deftype lava-state (structure) + ((lava float) + ) + ) + + +(defun update-mood-lava ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float) (arg5 float) (arg6 float) (arg7 float)) + (let ((gp-0 (+ (+ arg2 1840) (the-as int arg0)))) + (let ((f0-1 (cos (-> (the-as (pointer float) gp-0))))) + (set! (-> arg0 times arg1 w) (+ arg3 (* f0-1 arg4))) + (set! (-> arg0 times (+ arg1 1) w) (+ arg3 (* (- f0-1) arg4))) + ) + (if (not (paused?)) + (set! (-> (the-as (pointer float) gp-0)) (+ (-> (the-as (pointer float) gp-0)) arg5)) + ) + ) + ) + +(defun update-mood-flicker ((arg0 mood-context) (arg1 int) (arg2 int)) + (let ((gp-0 (the-as object (+ (+ arg2 1840) (the-as int arg0))))) + (cond + ((nonzero? (-> (the-as flicker-state gp-0) flicker-on)) + (set! (-> arg0 times arg1 w) 1.0) + (if (not (paused?)) + (+! (-> (the-as flicker-state gp-0) flicker-on) -1) + ) + ) + ((nonzero? (-> (the-as flicker-state gp-0) flicker-off)) + (if (not (paused?)) + (+! (-> (the-as flicker-state gp-0) flicker-off) -1) + ) + ) + (else + (let* ((f30-0 2.0) + (f28-0 18.0) + (v1-11 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-12 (the-as number (logior #x3f800000 v1-11))) + ) + (set! (-> (the-as flicker-state gp-0) flicker-on) + (the-as uint (the int (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-12)))))) + ) + ) + (let* ((f30-1 3.0) + (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-18 (the-as number (logior #x3f800000 v1-17))) + ) + (cond + ((zero? (the int (* f30-1 (+ -1.0 (the-as float v1-18))))) + (let* ((f30-2 2.0) + (f28-1 118.0) + (v1-24 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-25 (the-as number (logior #x3f800000 v1-24))) + ) + (set! (-> (the-as (pointer int8) gp-0)) (the int (+ f30-2 (* f28-1 (+ -1.0 (the-as float v1-25)))))) + ) + ) + (else + (let* ((f30-3 2.0) + (f28-2 18.0) + (v1-30 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-31 (the-as number (logior #x3f800000 v1-30))) + ) + (set! (-> (the-as (pointer int8) gp-0)) (the int (+ f30-3 (* f28-2 (+ -1.0 (the-as float v1-31)))))) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + +(defun update-mood-florescent ((arg0 mood-context) (arg1 int) (arg2 int)) + (let ((gp-0 (the-as florescent-state (+ (+ arg2 1840) (the-as int arg0))))) + (set! (-> arg0 times arg1 w) (-> gp-0 value)) + (when (not (paused?)) + (cond + ((zero? (-> gp-0 delay)) + (let* ((f30-0 10.0) + (f28-0 50.0) + (v1-7 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-8 (the-as number (logior #x3f800000 v1-7))) + ) + (set! (-> gp-0 delay2) (the int (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-8)))))) + ) + (let* ((f30-1 60.0) + (f28-1 60.0) + (v1-14 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-15 (the-as number (logior #x3f800000 v1-14))) + ) + (set! (-> gp-0 delay) (the int (+ f30-1 (* f28-1 (+ -1.0 (the-as float v1-15)))))) + ) + ) + (else + (+! (-> gp-0 delay) -1) + ) + ) + (cond + ((>= (-> gp-0 delay2) (-> gp-0 delay)) + (let* ((f30-2 1.0) + (f28-2 0.5) + (v1-25 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-26 (the-as number (logior #x3f800000 v1-25))) + ) + (set! (-> gp-0 value) (+ f30-2 (* f28-2 (+ -1.0 (the-as float v1-26))))) + ) + ) + ((< (-> gp-0 delay2) (-> gp-0 delay)) + (set! (-> gp-0 value) 1.5) + ) + ) + ) + ) + ) + +;; WARN: Return type mismatch float vs none. +(defun update-mood-electricity ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float)) + (let ((gp-0 (the-as object (+ (+ arg2 1840) (the-as int arg0))))) + (set! (-> arg0 times arg1 w) + (* (-> (the-as electricity-state gp-0) value) (-> (the-as electricity-state gp-0) scale)) + ) + (when (not (paused?)) + (let* ((f30-0 arg3) + (v1-4 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-5 (the-as number (logior #x3f800000 v1-4))) + ) + (set! (-> (the-as (pointer float) gp-0)) (+ f30-0 (* (+ -1.0 (the-as float v1-5)) (- arg4 arg3)))) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch float vs none. +(defun update-mood-pulse ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float) (arg5 float) (arg6 float)) + (let ((gp-0 (the-as pulse-state (+ (+ arg2 1840) (the-as int arg0))))) + (set! (-> arg0 times arg1 w) + (fmin 1.9921875 (* (+ arg3 (* (cos (+ (-> gp-0 pulse) arg6)) arg4)) (-> gp-0 brightness))) + ) + (when (not (paused?)) + (+! (-> gp-0 pulse) arg5) + (seek! (-> gp-0 brightness) (-> gp-0 target-brightness) (* (-> gp-0 speed) (seconds-per-frame))) + ) + ) + (none) + ) + +(defun update-mood-strobe ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 float)) + (let ((gp-0 (+ (+ arg2 1840) (the-as int arg0)))) + (let ((a2-1 (the int (-> (the-as (pointer float) gp-0))))) + (if (logtest? arg3 (ash 1 a2-1)) + (set! (-> arg0 times arg1 w) 1.0) + (set! (-> arg0 times arg1 w) 0.3) + ) + ) + (when (not (paused?)) + (let ((f0-5 (+ (-> (the-as (pointer float) gp-0)) arg4))) + (set! (-> (the-as (pointer float) gp-0)) (- f0-5 (* (the float (the int (/ f0-5 32.0))) 32.0))) + ) + ) + ) + ) + +(defun update-mood-caustics ((arg0 mood-context) (arg1 int) (arg2 float) (arg3 float) (arg4 float) (arg5 float)) + (let ((f0-2 (sin (+ arg2 arg3)))) + (set! (-> arg0 times arg1 w) (+ arg4 (* f0-2 arg5))) + ) + ) + +;; ERROR: function has no type analysis. Cannot decompile. + +;; WARN: Return type mismatch rgbaf vs none. +(defun override-mood-color ((arg0 mood-context) (arg1 object) (arg2 int) (arg3 float)) + 0 + 0 + 0.0 + (let* ((v1-3 (-> *mood-control* mood-interp-table)) + (a0-1 (the int (the float arg1))) + (f0-4 (- (the-as float arg1) (the float a0-1))) + (f1-3 (- 1.0 f0-4)) + (a1-3 (/ a0-1 24)) + (a1-5 (-> v1-3 hour (- a0-1 (* 24 a1-3)))) + (a0-5 (-> a1-5 snapshot1)) + (v1-4 (-> a1-5 snapshot2)) + (f30-0 (+ (* f1-3 (-> a1-5 morph-start)) (* f0-4 (-> a1-5 morph-end)))) + ) + (cond + ((= a0-5 v1-4) + (let ((a0-6 (+ (* a0-5 32) 0 arg2)) + (a1-7 (-> arg0 times)) + (v1-7 (-> arg0 times 1)) + ) + (set! (-> a1-7 0 quad) (-> (the-as vector (+ a0-6 16)) quad)) + (set! (-> v1-7 quad) (-> (the-as vector (+ a0-6 0)) quad)) + (set! (-> arg0 times 2 quad) (-> v1-7 quad)) + (set! (-> arg0 times 3 quad) (-> v1-7 quad)) + (set! (-> arg0 times 4 quad) (-> v1-7 quad)) + ) + ) + (else + (let ((s3-0 (+ (* a0-5 32) 0 arg2)) + (s2-0 (+ (* v1-4 32) 0 arg2)) + (a0-14 (-> arg0 times)) + (s4-0 (-> arg0 times 1)) + ) + (vector4-lerp! (-> a0-14 0) (the-as vector (+ s3-0 16)) (the-as vector (+ s2-0 16)) f30-0) + (vector4-lerp! s4-0 (the-as vector (+ s3-0 0)) (the-as vector (+ s2-0 0)) f30-0) + (set! (-> arg0 times 2 quad) (-> s4-0 quad)) + (set! (-> arg0 times 3 quad) (-> s4-0 quad)) + (set! (-> arg0 times 4 quad) (-> s4-0 quad)) + ) + ) + ) + ) + (let ((s4-1 (-> arg0 light-group))) + (let ((s3-1 (-> *level* level-default mood-context))) + (if (!= arg3 0.0) + (vector4-array-lerp! + (the-as (inline-array vector4) (-> arg0 times)) + (the-as (inline-array vector4) (-> arg0 times)) + (the-as (inline-array vector4) (-> s3-1 times)) + arg3 + 5 + ) + ) + (dotimes (v1-17 5) + (set! (-> arg0 times v1-17 w) (-> s3-1 times v1-17 w)) + ) + ) + (set! (-> s4-1 0 ambi color quad) (-> arg0 times 0 quad)) + (set! (-> s4-1 0 dir0 color quad) (-> arg0 times 1 quad)) + (set! (-> s4-1 0 dir1 color quad) (-> arg0 times 2 quad)) + (set! (-> s4-1 0 dir2 color quad) (-> arg0 times 3 quad)) + ) + (none) + ) + +(defmethod apply-mood-clouds-and-fog ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-fog-table))) + (dotimes (a0-1 24) + (set! (-> v1-0 _data a0-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-fog-table))) + (let ((f30-0 (- 1.0 (-> arg0 interp cloud)))) + (when (!= f30-0 0.0) + (let ((f0-4 (* (- 1.0 (-> arg0 interp fog)) f30-0)) + (a2-0 (-> this fogs (-> arg0 index 0))) + ) + (if (!= f0-4 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-0) + f0-4 + 24 + ) + ) + ) + (let ((f0-6 (* (-> arg0 interp fog) f30-0)) + (a2-1 (-> this fogs (-> arg0 index 1))) + ) + (if (!= f0-6 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-1) + f0-6 + 24 + ) + ) + ) + ) + ) + (let ((f30-1 (-> arg0 interp cloud))) + (when (!= f30-1 0.0) + (let ((f0-10 (* (- 1.0 (-> arg0 interp fog)) f30-1)) + (a2-2 (-> this fogs (-> arg0 index 2))) + ) + (if (!= f0-10 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-2) + f0-10 + 24 + ) + ) + ) + (let ((f0-12 (* (-> arg0 interp fog) f30-1)) + (a2-3 (-> this fogs (-> arg0 index 3))) + ) + (if (!= f0-12 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-3) + f0-12 + 24 + ) + ) + ) + ) + ) + ) + (let ((f0-13 (-> *setting-control* user-current unknown-float)) + (v1-29 (-> this mood-fog-table)) + ) + (dotimes (a0-6 8) + (set! (-> v1-29 data a0-6 fog-dists y) (* (-> v1-29 data a0-6 fog-dists y) f0-13)) + ) + ) + 0 + (none) + ) + +(defmethod apply-mood-fog ((this mood-control) + (arg0 mood-control-work) + (arg1 mood-color-table) + (arg2 mood-color-table) + (arg3 mood-color-table) + (arg4 float) + ) + (let ((v1-0 (-> this mood-fog-table))) + (dotimes (a1-1 24) + (set! (-> v1-0 _data a1-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-fog-table)) + (f0-1 (fmax 0.0 (fmin 1.0 (* 5.0 (- 0.2 arg4))))) + (f30-0 (if (>= 0.2 arg4) + (fmax 0.0 (fmin 1.0 (* 5.0 arg4))) + (- 1.0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + ) + (f28-0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg1) + f0-1 + 24 + ) + ) + (if (!= f30-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg2) + f30-0 + 24 + ) + ) + (if (!= f28-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg3) + f28-0 + 24 + ) + ) + ) + 0 + (none) + ) + +(defmethod apply-fog-height ((this mood-control) (arg0 mood-control-work) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + (cond + ((= arg4 0.2) + (set-fog-height! arg2) + ) + ((< arg4 0.2) + (set-fog-height! (lerp arg1 arg2 (* 5.0 arg4))) + ) + (else + (set-fog-height! (lerp arg2 arg3 (* 1.25 (+ -0.2 arg4)))) + ) + ) + 0 + (none) + ) + +(defmethod apply-mood-colors ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-color-table))) + (dotimes (a0-1 16) + (set! (-> v1-0 _data a0-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-color-table))) + (let ((f0-1 (- 1.0 (-> arg0 color-interp))) + (a2-0 (-> this colors (-> arg0 color-index 0))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-0) + f0-1 + 16 + ) + ) + ) + (let ((f0-2 (-> arg0 color-interp)) + (a2-1 (-> this colors (-> arg0 color-index 1))) + ) + (if (!= f0-2 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-1) + f0-2 + 16 + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod mood-control-method-20 ((this mood-control) + (arg0 mood-control-work) + (arg1 mood-color-table) + (arg2 mood-color-table) + (arg3 mood-color-table) + (arg4 float) + ) + (let ((v1-0 (-> this mood-color-table))) + (dotimes (a1-1 16) + (set! (-> v1-0 _data a1-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-color-table)) + (f0-1 (fmax 0.0 (fmin 1.0 (* 5.0 (- 0.2 arg4))))) + (f30-0 (if (>= 0.2 arg4) + (fmax 0.0 (fmin 1.0 (* 5.0 arg4))) + (- 1.0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + ) + (f28-0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg1) + f0-1 + 16 + ) + ) + (if (!= f30-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg2) + f30-0 + 16 + ) + ) + (if (!= f28-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg3) + f28-0 + 16 + ) + ) + ) + 0 + (none) + ) + +(defmethod apply-mood-channels ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-channel-group))) + (dotimes (a0-1 24) + (set! (-> v1-0 data 0 vecs a0-1 quad) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-channel-group))) + (let ((f0-1 (- 1.0 (-> arg0 channel-interp))) + (a2-0 (-> this channels (-> arg0 channel-index 0))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-0) + f0-1 + 24 + ) + ) + ) + (let ((f0-2 (-> arg0 channel-interp)) + (a2-1 (-> this channels (-> arg0 channel-index 1))) + ) + (if (!= f0-2 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-1) + f0-2 + 24 + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod adjust-num-clouds ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-clouds))) + (set! (-> v1-0 cloud-min) 0.0) + (set! (-> v1-0 cloud-max) 0.0) + (let ((f0-3 (- 1.0 (-> arg0 cloud-interp))) + (a2-4 (-> this clouds (-> arg0 cloud-index 0))) + ) + (when (!= f0-3 0.0) + (set! (-> v1-0 cloud-min) (* (-> a2-4 cloud-min) f0-3)) + (set! (-> v1-0 cloud-max) (* (-> a2-4 cloud-max) f0-3)) + ) + ) + (let ((f0-5 (-> arg0 cloud-interp)) + (a0-2 (-> this clouds (-> arg0 cloud-index 1))) + ) + (when (!= f0-5 0.0) + (+! (-> v1-0 cloud-min) (* (-> a0-2 cloud-min) f0-5)) + (+! (-> v1-0 cloud-max) (* (-> a0-2 cloud-max) f0-5)) + ) + ) + ) + 0 + (none) + ) + +(defmethod play-or-stop-lightning-sfx! ((this mood-control) (arg0 sound-spec) (arg1 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (let ((s3-0 arg1) + (v1-0 (math-camera-pos)) + ) + (.lvf vf4 (&-> s3-0 quad)) + (.lvf vf5 (&-> v1-0 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> s2-0 quad) vf6) + ) + (cond + ((or ((method-of-object *level* level-group-method-28)) (movie?)) + (when (nonzero? (-> this lightning-id)) + (sound-stop (-> this lightning-id) #t) + (set! (-> this lightning-id) (new 'static 'sound-id)) + 0 + ) + ) + (else + (when (nonzero? (-> this lightning-id)) + (sound-stop (-> this lightning-id) #t) + (set! (-> this lightning-id) (new 'static 'sound-id)) + 0 + ) + (let ((s3-1 (make-sound-instance (-> *sound-info* (-> arg0 info-index)) 0 #f))) + (set! (-> this lightning-id) (the-as sound-id (cond + (s3-1 + (quad-copy! (the-as pointer s3-1) (the-as pointer arg0) 4) + (set! (-> s3-1 trans quad) (-> arg1 quad)) + (logior! (-> s3-1 flags) 96) + (the-as int (-> s3-1 id)) + ) + (else + 0 + ) + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; WARN: Return type mismatch number vs none. +(defmethod gen-lightning-and-thunder! ((this mood-control) (arg0 int)) + (local-vars (a1-2 (array float))) + (let ((v1-3 (-> this mood-channel-group data (-> this lightning-index))) + (a1-1 (-> this lightning-val)) + (a0-4 (/ (-> this lightning-time) 2)) + (f0-0 (-> this lightning-time2)) + ) + (set! (-> this lightning-flash) 0.0) + (cond + ((>= 0.0 f0-0) + (cond + ((zero? a1-1) + (set! a1-2 *flash0*) + ) + ((= a1-1 1) + (set! a1-2 *flash1*) + ) + ((= a1-1 2) + (set! a1-2 *flash2*) + ) + ((= a1-1 3) + (set! a1-2 *flash3*) + ) + ((= a1-1 4) + (set! a1-2 *flash4*) + ) + ((= a1-1 5) + (set! a1-2 *flash5*) + ) + ((= a1-1 6) + (set! a1-2 *flash6*) + ) + (else + (set! a1-2 *flash7*) + ) + ) + (cond + ((< a0-4 (-> a1-2 length)) + (let ((f30-0 (-> a1-2 a0-4)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (cond + ((= (-> this lightning-index) 4) + (set! (-> this lightning-flash) f30-0) + ) + ((= (-> this lightning-index) 5) + (set! (-> this lightning-flash) f30-0) + (dotimes (s4-0 8) + (set-vector! s5-0 255.0 255.0 255.0 128.0) + (vector4-lerp! + (-> this mood-fog-table data s4-0 fog-color) + (-> this mood-fog-table data s4-0 fog-color) + s5-0 + f30-0 + ) + ) + ) + (else + (set! (-> this lightning-flash) (* 1.9921875 f30-0)) + (let ((a0-17 (-> v1-3 data))) + (set! (-> a0-17 0) 1.0) + (set! (-> a0-17 1) 1.0) + (set! (-> a0-17 2) 1.0) + (set! (-> a0-17 3) 1.0) + ) + (set! (-> (the-as vector (&-> v1-3 data 4)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 8)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 12)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 16)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 20)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + ) + ) + ) + (if (not (paused?)) + (+! (-> this lightning-time) 1) + ) + ) + (else + (level-get-target-inside *level*) + (cond + ((!= (-> this lightning-time3) 0.0) + (set! (-> this lightning-time2) (-> this lightning-time3)) + (set! (-> this lightning-time3) 0.0) + ) + (else + (let* ((f30-1 5.0) + (f28-0 5.0) + (v1-20 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-21 (the-as number (logior #x3f800000 v1-20))) + ) + (set! (-> this lightning-time2) (+ f30-1 (* f28-0 (+ -1.0 (the-as float v1-21))))) + ) + ) + ) + ) + ) + ) + (else + (when (not (paused?)) + (set! (-> this lightning-time2) (- (-> this lightning-time2) (seconds-per-frame))) + (when (>= 0.0 (-> this lightning-time2)) + (when (= (-> this lightning-time3) 0.0) + (set! (-> this lightning-index) (mod (the-as int (rand-uint31-gen *random-generator*)) 6)) + (set! (-> this lightning-val) (the-as int (logand (rand-uint31-gen *random-generator*) 7))) + ) + (set! (-> this lightning-time) 0) + (cond + ((zero? (-> this lightning-index)) + ) + ((= (-> this lightning-index) 1) + ) + ((= (-> this lightning-index) 2) + ) + ((= (-> this lightning-index) 3) + ) + ((= (-> this lightning-index) 4) + ) + ((= (-> this lightning-index) 5) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + +(defmethod set-lightning-time! ((this mood-control) (arg0 int) (arg1 int) (arg2 float)) + (set! (-> this lightning-index) arg0) + (set! (-> this lightning-val) arg1) + (set! (-> this lightning-time2) (seconds-per-frame)) + (set! (-> this lightning-time3) arg2) + 0 + (none) + ) + +(defmethod init-weather! ((this mood-control)) + (local-vars (v1-33 int) (v1-200 sound-instance) (a1-12 object)) + (when (level-get-target-inside *level*) + (set! (-> this mood-direction-table) *mood-direction-table*) + (let ((s5-0 (new 'stack-no-clear 'mood-control-work))) + (let ((s4-0 this)) + (cond + ((and (-> s4-0 overide-weather-flag) (not (movie?)) (= (-> s4-0 current-special-interp) 0.0)) + (set! (-> s5-0 weather cloud) (* 2.0 (fmax 0.0 (fmin 1.0 (-> this overide cloud))))) + (set! (-> s5-0 weather fog) (* 2.0 (-> this overide fog))) + ) + (else + (set! (-> s5-0 weather cloud) (* 2.0 (fmax 0.0 (fmin 1.0 (-> this current-interp cloud))))) + (set! (-> s5-0 weather fog) (* 2.0 (fmax 0.0 (fmin 1.0 (-> this current-interp fog))))) + ) + ) + ) + (set! (-> s5-0 iweather cloud) (the int (-> s5-0 weather cloud))) + (let ((f0-12 (- (-> s5-0 weather cloud) (the float (-> s5-0 iweather cloud))))) + (cond + ((zero? (-> s5-0 iweather cloud)) + (if (< f0-12 0.5) + (set! (-> s5-0 interp cloud) 0.0) + (set! (-> s5-0 interp cloud) (* 2.0 (+ -0.5 f0-12))) + ) + ) + (else + (set! (-> s5-0 interp cloud) f0-12) + ) + ) + ) + (set! (-> s5-0 iweather fog) (the int (-> s5-0 weather fog))) + (set! (-> s5-0 interp fog) (- (-> s5-0 weather fog) (the float (-> s5-0 iweather fog)))) + (let ((a0-2 (-> s5-0 iweather fog)) + (v1-24 (-> s5-0 iweather cloud)) + ) + (set! (-> s5-0 index 0) (+ (* 3 v1-24) a0-2)) + (set! (-> s5-0 index 1) (+ a0-2 1 (* 3 v1-24))) + (set! (-> s5-0 index 2) (+ (* 3 (+ v1-24 1)) a0-2)) + (set! (-> s5-0 index 3) (+ a0-2 1 (* 3 (+ v1-24 1)))) + ) + (let ((v1-28 (-> s5-0 iweather cloud))) + (set! (-> s5-0 color-interp) (-> s5-0 interp cloud)) + (set! (-> s5-0 color-index 0) v1-28) + (set! (-> s5-0 color-index 1) (+ v1-28 1)) + ) + 0 + (let ((f0-22 (- (-> s5-0 weather cloud) (the float (-> s5-0 iweather cloud))))) + (cond + ((zero? (-> s5-0 iweather cloud)) + (set! (-> s5-0 channel-interp) 0.0) + (set! v1-33 0) + ) + ((= (-> s5-0 iweather cloud) 2) + (set! (-> s5-0 channel-interp) 0.0) + (set! v1-33 2) + ) + ((< f0-22 0.5) + (set! (-> s5-0 channel-interp) (* 2.0 f0-22)) + (set! v1-33 0) + ) + (else + (set! (-> s5-0 channel-interp) (* 2.0 (+ -0.5 f0-22))) + (set! v1-33 1) + ) + ) + ) + (set! (-> s5-0 channel-index 0) v1-33) + (set! (-> s5-0 channel-index 1) (+ v1-33 1)) + (let* ((s4-1 this) + (f0-33 (if (and (-> s4-1 overide-weather-flag) (and (not (movie?)) (= (-> s4-1 current-special-interp) 0.0))) + (* 8.0 (-> this overide cloud)) + (* 8.0 (fmax 0.0 (fmin 1.0 (-> this current-interp cloud)))) + ) + ) + (v1-46 (the int f0-33)) + ) + (set! (-> s5-0 cloud-interp) (- f0-33 (the float v1-46))) + (set! (-> s5-0 cloud-index 0) v1-46) + (set! (-> s5-0 cloud-index 1) (+ v1-46 1)) + ) + (cond + ((= (-> *time-of-day-context* special-mood) 'desert) + (apply-mood-fog + this + s5-0 + (the-as mood-color-table *desert-mood-fog-table*) + (the-as mood-color-table *sandstorm-start-mood-fog-table*) + (the-as mood-color-table *sandstorm-end-mood-fog-table*) + (-> this current-special-interp) + ) + (mood-control-method-20 + this + s5-0 + *desert-mood-color-table* + *sandstorm-start-mood-color-table* + *sandstorm-end-mood-color-table* + (-> this current-special-interp) + ) + (apply-fog-height this s5-0 327680.0 614400.0 4096000.0 (-> this current-special-interp)) + (set! a1-12 s5-0) + (adjust-num-clouds this (the-as mood-control-work a1-12)) + ) + (else + (apply-mood-clouds-and-fog this s5-0) + (apply-mood-colors this s5-0) + (apply-mood-channels this s5-0) + (set! a1-12 s5-0) + (adjust-num-clouds this (the-as mood-control-work a1-12)) + ) + ) + ) + (when (not (or (paused?) (let ((s5-1 this)) + (and (-> s5-1 overide-weather-flag) (not (movie?)) (= (-> s5-1 current-special-interp) 0.0)) + ) + ) + ) + (when (!= (-> this time-until-random cloud) -99.0) + (set! (-> this target-interp cloud) + (fmax (fmin (-> this target-interp cloud) (-> this range max-cloud)) (-> this range min-cloud)) + ) + (let ((t9-13 seek) + (a0-19 (-> this current-interp cloud)) + ) + (set! a1-12 (-> this target-interp cloud)) + (set! (-> this current-interp cloud) + (t9-13 a0-19 (the-as float a1-12) (* (/ 1.0 (-> this speed-interp cloud)) (seconds-per-frame))) + ) + ) + ) + (when (!= (-> this time-until-random fog) -99.0) + (set! (-> this target-interp fog) + (fmax (fmin (-> this target-interp fog) (-> this range max-fog)) (-> this range min-fog)) + ) + (let ((t9-14 seek) + (a0-20 (-> this current-interp fog)) + ) + (set! a1-12 (-> this target-interp fog)) + (set! (-> this current-interp fog) + (t9-14 a0-20 (the-as float a1-12) (* (/ 1.0 (-> this speed-interp fog)) (seconds-per-frame))) + ) + ) + ) + (when (!= (-> this time-until-random cloud) -99.0) + (set! (-> this time-until-random cloud) (- (-> this time-until-random cloud) (* 300.0 (seconds-per-frame)))) + (when (< (-> this time-until-random cloud) 0.0) + (let* ((f30-0 (-> this time-until-random-min cloud)) + (v1-84 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-85 (the-as number (logior #x3f800000 v1-84))) + ) + (set! (-> this time-until-random cloud) + (+ f30-0 (* (+ -1.0 (the-as float v1-85)) + (- (-> this time-until-random-max cloud) (-> this time-until-random-min cloud)) + ) + ) + ) + ) + (let* ((v1-88 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-89 (the-as number (logior #x3f800000 v1-88))) + (f30-1 (+ -1.0 (the-as float v1-89))) + (v1-92 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-93 (the-as number (logior #x3f800000 v1-92))) + (f28-0 (+ -1.0 (the-as float v1-93))) + (v1-96 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-97 (the-as number (logior #x3f800000 v1-96))) + (f26-0 (+ -1.0 (the-as float v1-97))) + (v1-100 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-101 (the-as number (logior #x3f800000 v1-100))) + (f24-0 (+ -1.0 (the-as float v1-101))) + (v1-104 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-105 (the-as number (logior #x3f800000 v1-104))) + (f1-49 (+ -1.0 (the-as float v1-105))) + ) + (set! (-> this target-interp cloud) + (fmax + (fmin (+ -0.25 (* 0.25 (+ f30-1 f28-0 f26-0 f24-0 f1-49))) (-> this range max-cloud)) + (-> this range min-cloud) + ) + ) + ) + (let* ((f30-2 30.0) + (f28-1 90.0) + (v1-113 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-114 (the-as number (logior #x3f800000 v1-113))) + ) + (set! (-> this speed-interp cloud) (+ f30-2 (* f28-1 (+ -1.0 (the-as float v1-114))))) + ) + (when (and (< 0.0 (-> *setting-control* user-current rain)) + (< (-> this target-interp cloud) 0.5) + (< 0.25 (-> this target-interp cloud)) + (or (< (-> this target-interp fog) 0.25) (< 0.75 (-> this target-interp fog))) + ) + (set! (-> this speed-interp fog) (fabs (/ (* 1.25 (-> this current-interp fog) (-> this speed-interp cloud)) + (+ -0.75 (-> this current-interp cloud)) + ) + ) + ) + (set! (-> this target-interp fog) 0.5) + (set! (-> this time-until-random fog) (-> this time-until-random cloud)) + ) + ) + ) + (when (!= (-> this time-until-random fog) -99.0) + (set! (-> this time-until-random fog) (- (-> this time-until-random fog) (* 300.0 (seconds-per-frame)))) + (when (< (-> this time-until-random fog) 0.0) + (let* ((f30-3 (-> this time-until-random-min fog)) + (v1-137 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-138 (the-as number (logior #x3f800000 v1-137))) + ) + (set! (-> this time-until-random fog) + (+ f30-3 + (* (+ -1.0 (the-as float v1-138)) (- (-> this time-until-random-max fog) (-> this time-until-random-min fog))) + ) + ) + ) + (let* ((v1-141 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-142 (the-as number (logior #x3f800000 v1-141))) + (f30-4 (+ -1.0 (the-as float v1-142))) + (v1-145 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-146 (the-as number (logior #x3f800000 v1-145))) + (f28-2 (+ -1.0 (the-as float v1-146))) + (v1-149 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-150 (the-as number (logior #x3f800000 v1-149))) + (f26-1 (+ -1.0 (the-as float v1-150))) + (v1-153 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-154 (the-as number (logior #x3f800000 v1-153))) + (f24-1 (+ -1.0 (the-as float v1-154))) + (v1-157 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-158 (the-as number (logior #x3f800000 v1-157))) + (f0-118 (+ -1.0 (the-as float v1-158))) + ) + (set! (-> this target-interp fog) + (fmax (fmin (* 0.2 (+ f30-4 f28-2 f26-1 f24-1 f0-118)) (-> this range max-fog)) (-> this range min-fog)) + ) + ) + (let* ((f30-5 30.0) + (f28-3 90.0) + (v1-165 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-166 (the-as number (logior #x3f800000 v1-165))) + ) + (set! (-> this speed-interp fog) (+ f30-5 (* f28-3 (+ -1.0 (the-as float v1-166))))) + ) + ) + ) + ) + (when (logtest? #x100000 (-> *game-info* secrets)) + (set! (-> this current-interp cloud) 1.0) + (set! (-> this current-interp fog) 1.0) + ) + (let* ((s5-2 this) + (f30-6 (if (and (-> s5-2 overide-weather-flag) (and (not (movie?)) (= (-> s5-2 current-special-interp) 0.0))) + (-> this overide cloud) + (-> this current-interp cloud) + ) + ) + (s5-3 this) + (f26-2 (if (and (-> s5-3 overide-weather-flag) (and (not (movie?)) (= (-> s5-3 current-special-interp) 0.0))) + (-> this overide fog) + (-> this current-interp fog) + ) + ) + (f28-4 (-> *time-of-day-context* max-rain)) + ) + (set! (-> this sound-pitch) (* 1.442695 (logf (-> *display* bg-clock clock-ratio)))) + (let* ((f0-140 (fmax 0.0 (fmin (* 4.0 (fmax 0.0 (+ -0.5 f26-2)) (fmax 0.0 (+ -0.5 f30-6))) f28-4))) + (f30-7 (fmin 0.75 f0-140)) + ) + (set! (-> *setting-control* user-default rain) f30-7) + (level-get-target-inside *level*) + (cond + ((and (< 0.0 (-> *setting-control* user-current rain)) (!= *master-mode* 'progress)) + (gen-lightning-and-thunder! this (the-as int a1-12)) + (cond + ((zero? (-> this rain-id)) + ) + ((begin (set! v1-200 (find-sound-instance (-> this rain-id) #t)) v1-200) + (set! (-> v1-200 volume) (the int (* 1024.0 f30-7))) + (set! (-> v1-200 pitch-mod) (the int (* 1524.0 (-> this sound-pitch)))) + (logior! (-> v1-200 flags) 64) + (logior! (-> v1-200 mask) 1) + (-> v1-200 id) + ) + (else + 0 + ) + ) + ) + (else + (set! (-> this lightning-flash) 0.0) + (when (nonzero? (-> this rain-id)) + (sound-stop (-> this rain-id) #t) + (set! (-> this rain-id) (new 'static 'sound-id)) + 0 + ) + ) + ) + ) + ) + (if (not (paused?)) + (seek! + (-> this current-special-interp) + (-> this target-special-interp) + (* (-> this rate-special-interp) (seconds-per-frame)) + ) + ) + (when (-> this display-flag) + (let ((s5-4 this)) + (cond + ((and (-> s5-4 overide-weather-flag) (not (movie?)) (= (-> s5-4 current-special-interp) 0.0)) + (format *stdcon* "override cloud ~f~%" (-> this overide cloud)) + (format *stdcon* "override fog ~f~%" (-> this overide fog)) + ) + (else + (format *stdcon* "time until random cloud ~f~%" (/ (-> this time-until-random cloud) 300)) + (format *stdcon* "current cloud ~f~%" (-> this current-interp cloud)) + (format *stdcon* "target cloud ~f~%" (-> this target-interp cloud)) + (format *stdcon* "speed cloud ~f~%" (* (/ 1.0 (-> this speed-interp cloud)) (seconds-per-frame))) + (format *stdcon* "time until random fog ~f~%" (/ (-> this time-until-random fog) 300)) + (format *stdcon* "current fog ~f~%" (-> this current-interp fog)) + (format *stdcon* "target fog ~f~%" (-> this target-interp fog)) + (format *stdcon* "speed fog ~f~%" (* (/ 1.0 (-> this speed-interp fog)) (seconds-per-frame))) + ) + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod set-cloud-and-fog-interp! ((this mood-control) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) + (set! (-> this target-interp cloud) arg0) + (set! (-> this target-interp fog) arg1) + (set! (-> this speed-interp cloud) arg2) + (set! (-> this speed-interp fog) arg3) + (if (= arg2 0.0) + (set! (-> this current-interp cloud) arg0) + ) + (if (= arg3 0.0) + (set! (-> this current-interp fog) arg1) + ) + 0 + (none) + ) + +(defmethod update-mood-range! ((this mood-control) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) + (set! (-> this range min-cloud) arg0) + (set! (-> this range max-cloud) arg1) + (set! (-> this range min-fog) arg2) + (set! (-> this range max-fog) arg3) + 0 + (none) + ) + +(defmethod set-time-for-random-weather! ((this mood-control) (arg0 float) (arg1 float)) + (set! (-> this time-until-random cloud) arg0) + (set! (-> this time-until-random fog) arg1) + 0 + (none) + ) diff --git a/goal_src/jakx/engine/gfx/mood/weather-part.gc b/goal_src/jakx/engine/gfx/mood/weather-part.gc index 7307116d00..495537a5f9 100644 --- a/goal_src/jakx/engine/gfx/mood/weather-part.gc +++ b/goal_src/jakx/engine/gfx/mood/weather-part.gc @@ -7,3 +7,698 @@ ;; DECOMP BEGINS +(defpartgroup group-rain-screend-drop-real + :id 1 + :flags (sp2) + :bounds (static-bspherem 0 0 0 16) + :parts ((sp-item 12 :binding 8) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 13 :binding 10) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + ) + ) + +(define group-rain-screend-drop (-> *part-group-id-table* 1)) + +(defpart 13 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:num 0.1) + (:x (meters -4.5) (meters 9)) + (:y (meters -3) (meters 6)) + (:scale-x (meters 2.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 12.0) + (:scalevel-x (meters 0.16666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:timer (seconds 0.035)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + ) + ) + +(defpart 10 + :init-specs ((:texture (new 'static 'texture-id :index #x22 :page #x4)) + (:num 1.0) + (:scale-x (meters 1.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 255.0) + (:a 20.0) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.05)) + (:next-launcher 14) + ) + ) + +(defpart 14 + :init-specs ((:scalevel-x (meters 0.004166667)) (:scalevel-y :copy scalevel-x) (:fade-a -0.06666667)) + ) + +(defpart 11 + :init-specs ((:num 1.0) + (:rot-x 12) + (:r 4096.0) + (:g 3276.8) + (:b 3276.8) + (:fade-r 6.068148) + (:fade-g 68.26667) + (:fade-b 3.034074) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (distort)) + (:next-time (seconds 0.1)) + (:next-launcher 15) + ) + ) + +(defpart 15 + :init-specs ((:fade-g -5.1200004)) + ) + +(defpart 12 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:num 0.1) + (:x (meters -4.5) (meters 9)) + (:y (meters -3) (meters 6)) + (:scale-x (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 12.0) + (:scalevel-x (meters 0.26666668)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:timer (seconds 0.035)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + ) + ) + +(defpart 8 + :init-specs ((:texture (new 'static 'texture-id :index #x22 :page #x4)) + (:num 1.0) + (:scale-x (meters 2.6)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 255.0) + (:a 20.0) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.05)) + (:next-launcher 16) + ) + ) + +(defpart 16 + :init-specs ((:scalevel-x (meters 0.008333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.06666667)) + ) + +(defpart 9 + :init-specs ((:num 1.0) + (:rot-x 24) + (:r 12288.0) + (:g 6553.6) + (:b 6553.6) + (:fade-r 12.136296) + (:fade-g 136.53334) + (:fade-b 6.068148) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (distort)) + (:next-time (seconds 0.1)) + (:next-launcher 17) + ) + ) + +(defpart 17 + :init-specs ((:fade-g -10.240001)) + ) + +(defpartgroup group-stars + :id 2 + :flags (sp1) + :bounds (static-bspherem 0 0 0 8) + :parts ((sp-item 18 :flags (sp5)) (sp-item 19 :flags (sp5)) (sp-item 20 :flags (sp5))) + ) + +(defpart 18 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:num 1.0) + (:scale-x (meters 30) (meters 20)) + (:scale-y :copy scale-x) + (:r 256.0) + (:g 256.0) + (:b 256.0) + (:a 0.0) + (:fade-a 0.42666668) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.2) (seconds 0.797)) + (:next-launcher 21) + (:conerot-x (degrees -89) (degrees 178)) + (:conerot-y (degrees 0) (degrees 1440)) + (:rotate-y (degrees 0) (degrees 3600)) + (:conerot-radius (meters 5000)) + ) + ) + +(defpart 21 + :init-specs ((:fade-a 0.0) (:next-time (seconds 99999)) (:next-launcher 22)) + ) + +(defpart 22 + :init-specs ((:fade-a -0.42666668)) + ) + +(defpart 19 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:num 1.0) + (:scale-x (meters 30) (meters 20)) + (:scale-y :copy scale-x) + (:r 256.0) + (:g 256.0) + (:b 256.0) + (:a 0.0) + (:fade-a 0.42666668) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.2) (seconds 0.797)) + (:next-launcher 21) + (:conerot-x (degrees 30) (degrees 59)) + (:conerot-y (degrees 0) (degrees 2880)) + (:rotate-y (degrees 0) (degrees 3600)) + (:conerot-radius (meters 5000)) + ) + ) + +(defpart 20 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:num 1.0) + (:scale-x (meters 30) (meters 20)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:fade-a 0.42666668) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.2) (seconds 0.797)) + (:next-launcher 21) + (:conerot-x (degrees 60) (degrees 29)) + (:conerot-y (degrees 0) (degrees 5760)) + (:rotate-y (degrees 0) (degrees 3600)) + (:conerot-radius (meters 5000)) + ) + ) + +(defpart 23 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:num 4.0) + (:x (meters 10) (meters 10)) + (:y (meters 2) (meters 14)) + (:scale-x (meters 0.2) (meters 0.1)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters -0.01) (meters -0.0033333334)) + (:rotvel-z (degrees -1.2) (degrees 2.4)) + (:fade-a 0.85333335) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.25) (seconds 0.247)) + (:next-launcher 24) + (:rotate-y (degrees 0) (degrees 180)) + ) + ) + +(defpart 25 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:num 0.0) + (:x (meters 0) (meters 20)) + (:y (meters 16)) + (:scale-x (meters 0.2) (meters 0.1)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters -0.01) (meters -0.0033333334)) + (:rotvel-z (degrees -1.2) (degrees 2.4)) + (:fade-a 0.85333335) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.25) (seconds 0.247)) + (:next-launcher 24) + (:rotate-y (degrees 0) (degrees 360)) + ) + ) + +(defpart 24 + :init-specs ((:fade-a 0.0) (:next-time (seconds 4)) (:next-launcher 26)) + ) + +(defpart 26 + :init-specs ((:fade-a -0.85333335)) + ) + +(defun update-snow ((arg0 float) (arg1 vector) (arg2 vector)) + (let ((f0-0 (lerp-scale 0.0 1.0 (vector-length arg2) 2048.0 40960.0))) + (set! (-> *part-id-table* 25 init-specs 1 initial-valuef) (- 1.0 f0-0)) + (set! (-> *part-id-table* 23 init-specs 1 initial-valuef) (* 4.0 f0-0)) + ) + (set! (-> *part-id-table* 23 init-specs 19 initial-valuef) (+ 32768.0 (vector-y-angle arg2))) + (launch-particles (-> *part-id-table* 25) arg1) + (launch-particles (-> *part-id-table* 23) arg1) + 0 + (none) + ) + +(defpart 27 + :init-specs ((:texture (new 'static 'texture-id :index #x22 :page #x4)) + (:birth-func 'birth-func-rain) + (:num 1.0) + (:x (meters -20) (meters 40)) + (:y (meters 30)) + (:scale-x (meters 0.03) (meters 0.03)) + (:scale-y (meters 0.5) (meters 0.5)) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 32.0 64.0) + (:vel-y (meters -0.1) (meters -0.2)) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:userdata 0.0) + (:func 'check-drop-level-rain) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 28 + :init-specs ((:texture (new 'static 'texture-id :index #x22 :page #x4)) + (:birth-func 'birth-func-rain) + (:num 4.0) + (:x (meters -20) (meters 40)) + (:y (meters 30)) + (:scale-x (meters 0.03) (meters 0.03)) + (:scale-y (meters 0.5) (meters 0.5)) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 32.0 64.0) + (:vel-y (meters -0.06666667) (meters -0.033333335)) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:userdata 0.0) + (:func 'check-drop-level-rain2) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 29 + :init-specs ((:texture (new 'static 'texture-id :index #x22 :page #x4)) + (:num 1.0 3.0) + (:scale-x (meters 0.08) (meters 0.03)) + (:rot-x 4) + (:scale-y :copy scale-x) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 64.0 64.0) + (:omega (degrees 0.01575) (degrees 0.009)) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.005) (meters -0.00066666666)) + (:friction 0.98) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 left-multiply-quat)) + (:userdata 0.0) + (:func 'check-drop-level-splash) + (:next-time (seconds 0) (seconds 0.33)) + (:next-launcher 30) + (:conerot-x (degrees 0) (degrees 50.000004)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 31 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:birth-func 'birth-func-omega-normal-orient) + (:num 1.0) + (:y (meters 0.2)) + (:scale-x (meters 0.5) (meters 0.25)) + (:scale-y :copy scale-x) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 64.0 32.0) + (:omega (degrees 0)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.2) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:userdata :data (new 'static 'boxed-array :type int32 10 0 0 0 0 #x401000 #x405d00)) + (:func 'sparticle-texture-animate) + ) + ) + +(defpart 32 + :init-specs ((:texture (new 'static 'texture-id :index #x4e :page #x4)) + (:num 2.0 4.0) + (:scale-x (meters 2.5)) + (:rot-x 4) + (:scale-y (meters 0.06) (meters 0.03)) + (:r 255.0) + (:g 128.0 128.0) + (:b 0.0 128.0) + (:a 128.0) + (:omega (degrees 0.018) (degrees 0.01125)) + (:vel-y (meters 0.1) (meters 0.06666667)) + (:fade-g -2.55 -2.55) + (:fade-b -8.0) + (:fade-a -0.32 -0.64) + (:friction 0.8 0.02) + (:timer (seconds 0.335) (seconds 0.33)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 80)) + (:conerot-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 33 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 0.25)) + (:rot-x (degrees 0.225)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 196.0 128.0) + (:b 128.0 64.0) + (:a 96.0 16.0) + (:omega (degrees 3608.9998)) + (:scalevel-x (meters 0.08)) + (:scalevel-y :copy scalevel-x) + (:fade-g -6.375) + (:fade-b -13.066667) + (:fade-a -2.8) + (:timer (seconds 0.05) (seconds 0.03)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 2048.0) + ) + ) + +(defun birth-func-omega-normal-orient ((arg0 sparticle-system) + (arg1 sparticle-cpuinfo) + (arg2 sprite-vec-data-3d) + (arg3 sparticle-launcher) + (arg4 sparticle-launch-state) + ) + (local-vars (v1-6 float) (v1-7 float)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s4-0 (new 'stack-no-clear 'vector)) + (gp-0 (new 'stack-no-clear 'quaternion)) + ) + (set! (-> s4-0 x) (* 0.007874016 (the float (-> arg1 datab 2)))) + (set! (-> s4-0 y) 0.0) + (set! (-> s4-0 z) (* -0.007874016 (the float (-> arg1 datab 0)))) + (vector-normalize! s4-0 1.0) + (quaternion-vector-angle! gp-0 s4-0 (acos (* 0.007874016 (the float (-> arg1 datab 1))))) + (cond + ((< (-> gp-0 w) 0.0) + (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) + (.lvf vf2 (&-> gp-0 quad)) + (.sub.vf.xyz vf1 vf0 vf2) + (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) + (.mov v1-6 vf1) + ) + (else + (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) + (.lvf vf2 (&-> gp-0 quad)) + (.add.vf.xyz vf1 vf0 vf2) + (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) + (.mov v1-7 vf1) + ) + ) + ) + 0 + (none) + ) + ) + +(defun check-drop-level-rain ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (when (< (-> arg2 y) (-> arg1 user-float)) + (let ((s4-0 (new 'stack-no-clear 'vector)) + (gp-0 (new 'stack-no-clear 'matrix)) + ) + (let ((f30-0 (-> arg1 user-float))) + (sp-kill-particle arg0 arg1) + (set-vector! s4-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) + (-> arg1 omega) + (set-vector! + (-> gp-0 uvec) + (* 0.007874016 (the float (-> arg1 datab 0))) + (* 0.007874016 (the float (-> arg1 datab 1))) + (* 0.007874016 (the float (-> arg1 datab 2))) + 0.0 + ) + (set-vector! (-> gp-0 fvec) 0.0 0.0 1.0 0.0) + (vector-cross! (-> gp-0 rvec) (-> gp-0 uvec) (-> gp-0 fvec)) + (set! (-> gp-0 trans quad) (-> s4-0 quad)) + (set! (-> *part-id-table* 29 init-specs 23 initial-valuef) (vector-y-angle (-> gp-0 uvec))) + (set! (-> *part-id-table* 29 init-specs 22 initial-valuef) (- 16384.0 (vector-x-angle (-> gp-0 uvec)))) + (set! (-> *part-id-table* 29 init-specs 16 initial-valuef) f30-0) + ) + (launch-particles (-> *part-id-table* 29) gp-0 :origin-is-matrix #t) + (set! (-> *part-id-table* 31 init-specs 10 initial-valuef) (-> arg1 omega)) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 31) gp-0 :origin-is-matrix #t) + ) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun check-drop-level-rain2 ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (if (< (-> arg2 y) (-> arg1 user-float)) + (sp-kill-particle arg0 arg1) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun check-drop-level-splash ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (sparticle-motion-blur arg0 arg1 arg2) + (if (< (-> arg2 y) (-> arg1 user-float)) + (sp-kill-particle arg0 arg1) + ) + (none) + ) + +(defpartgroup group-sun + :id 3 + :flags (sp1) + :bounds (static-bspherem 0 0 0 70) + :parts ((sp-item 34 :flags (sp3 sp5)) (sp-item 35 :flags (sp3 sp5))) + ) + +(defpart 34 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 2550)) + (:rot-x (degrees 1687.5)) + (:rot-z (degrees 30)) + (:scale-y (meters 2550)) + (:r 64.0) + (:g 64.0) + (:b 16.0) + (:a 70.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + (:func 'sparticle-track-sun) + ) + ) + +(defpart 35 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 12000)) + (:rot-x (degrees 1687.5)) + (:rot-z (degrees 30)) + (:scale-y (meters 12000)) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 80.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + (:func 'sparticle-track-sun) + ) + ) + +(defpartgroup group-green-sun + :id 4 + :flags (sp1) + :bounds (static-bspherem 0 0 0 70) + :parts ((sp-item 36 :flags (sp3 sp5)) (sp-item 37 :flags (sp3 sp5))) + ) + +(defpart 36 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 1500)) + (:rot-x (degrees 1125)) + (:rot-z (degrees 30)) + (:scale-y (meters 1500)) + (:r 16.0) + (:g 64.0) + (:b 32.0) + (:a 64.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 4.0) + (:func 'sparticle-track-sun) + ) + ) + +(defpart 37 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 3000)) + (:rot-x (degrees 1125)) + (:rot-z (degrees 30)) + (:scale-y (meters 3000)) + (:r 0.0) + (:g 43.0) + (:b 8.0) + (:a 64.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 4.0) + (:func 'sparticle-track-sun) + ) + ) + +(defpartgroup group-moon + :id 5 + :flags (sp1) + :bounds (static-bspherem 0 0 0 70) + :parts ((sp-item 38 :flags (sp3 sp5))) + ) + +(defpart 38 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #x4)) + (:num 1.0) + (:scale-x (meters 6000)) + (:rot-x (degrees 2992.5)) + (:rot-z (degrees 30)) + (:scale-y (meters 6000)) + (:r 16.0) + (:g 32.0) + (:b 64.0) + (:a 64.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 8.0) + (:func 'sparticle-track-sun) + ) + ) diff --git a/goal_src/jakx/engine/gfx/shrub/shrub-work.gc b/goal_src/jakx/engine/gfx/shrub/shrub-work.gc index 0c64fc9c1d..fe9ecdb9d9 100644 --- a/goal_src/jakx/engine/gfx/shrub/shrub-work.gc +++ b/goal_src/jakx/engine/gfx/shrub/shrub-work.gc @@ -7,3 +7,313 @@ ;; DECOMP BEGINS +(define *instance-shrub-work* + (new 'static 'instance-shrub-work + :matrix-tmpl (new 'static 'inline-array qword 20 + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050143)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050148)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05014d)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050152)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050157)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05015c)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050161)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050166)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05016b)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050170)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050176)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05017b)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050180)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050185)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05018a)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05018f)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050194)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050199)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05019e)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c0501a3)) + ) + :count-tmpl (new 'static 'inline-array vector4w 20 + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 10) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 1) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 2) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 3) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 4) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 5) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 6) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 7) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 8) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 9) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 10) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 1) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 2) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 3) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 4) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 5) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 6) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 7) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 8) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 9) + ) + :mscalf-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :cmd (vif-cmd mscalf) :msk #x1) + ) + :mscalf-ret-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ret)) + :vif0 (new 'static 'vif-tag :cmd (vif-cmd mscalf) :msk #x1) + ) + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id next)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x1000000000008005 #xe) + ) + :billboard-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xd :id (dma-tag-id next)) + :vif1 (new 'static 'vif-tag :imm #xd :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x303e400000008004 #x412) + ) + :shrub-near-packets (new 'static 'inline-array shrub-near-packet 6 + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x9 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x400a :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #xb :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x345 #x117)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x120 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4121 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x122 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x363 #x22e)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x237 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4238 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x239 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x345 #x0)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x9 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x400a :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #xb :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x363 #x117)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x120 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4121 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x122 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x345 #x22e)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x237 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4238 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x239 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x363 #x0)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + ) + :dma-ref (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id ref))) + :dma-end (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id end))) + :wind-const (new 'static 'vector :data (new 'static 'array float 4 0.5 100.0 0.0166 -1.0)) + :constants (new 'static 'vector :data (new 'static 'array float 4 128.0 1.0 0.0 0.0)) + :color-constant (new 'static 'vector4w :x #x47000000 :y #x47000000 :z #x47000000) + :start-bank (new 'static 'array uint8 20 #x0 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + ) + +(set! (-> *instance-shrub-work* mscalf-tmpl vif0 imm) 103) + +(set! (-> *instance-shrub-work* mscalf-ret-tmpl vif0 imm) 103) diff --git a/goal_src/jakx/engine/gfx/sky/sky-data.gc b/goal_src/jakx/engine/gfx/sky/sky-data.gc index 67682f6e89..3b6887b368 100644 --- a/goal_src/jakx/engine/gfx/sky/sky-data.gc +++ b/goal_src/jakx/engine/gfx/sky/sky-data.gc @@ -7,3 +7,1160 @@ ;; DECOMP BEGINS +(define *sky-work* + (new 'static 'sky-work + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x1000000000008005 #xe) + ) + :draw-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x502b400000008001 #x42421) + ) + :draw-tmpl2 (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x50ab400000008001 #x43431) + ) + :fog-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x902a400000008001 #x424242421) + ) + :blend-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x50ab400000008001 #x43431) + ) + :sprite-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x2003400000008001 #x55) + ) + :sprite-tmpl2 (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x21 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x21 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x2003400000008010 #x55) + ) + :sun-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -267.0 -267.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 267.0 267.0 0.0 0.0)) + ) + :green-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -126.0 -126.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 126.0 126.0 0.0 0.0)) + ) + :moon0-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -357.0 -357.0 0.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 357.0 357.0 0.0 0.0)) + ) + :moon1-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -1207.0 -1207.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 1207.0 1207.0 0.0 0.0)) + ) + :moon2-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -232.0 -232.0 0.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 232.0 232.0 0.0 0.0)) + ) + :star-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -1.5 -1.5 0.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 1.5 1.5 0.0 0.0)) + ) + :sun-colors (new 'static 'inline-array vector4w 2 + (new 'static 'vector4w :x #xff :y 64 :w 64) + (new 'static 'vector4w :x #xff :y #xff :z #x80 :w 64) + ) + :green-colors (new 'static 'inline-array vector4w 2 + (new 'static 'vector4w :y #xc4 :w #x80) + (new 'static 'vector4w :x #xc4 :y #xff :z #xff :w #x80) + ) + :moon-colors (new 'static 'inline-array vector4w 3 + (new 'static 'vector4w :x 16 :y 32 :z 64 :w 96) + (new 'static 'vector4w :x 16 :y 32 :z 64 :w 64) + (new 'static 'vector4w :x 80 :y 80 :z 80 :w #x80) + ) + :st-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 0.0)) + ) + :random (new 'static 'inline-array vector4w 8 + (new 'static 'vector4w :x #x181920 :y #x141516 :z #x101112 :w #x234567) + (new 'static 'vector4w :x #x878237 :y #x48778 :z #x489197 :w #x893830) + (new 'static 'vector4w :x #x24762 :y #x289278 :z #x724781 :w #x712983) + (new 'static 'vector4w :x #x176128 :y #x387487 :z #x780983 :w #x723176) + (new 'static 'vector4w :x #x987239 :y #x699872 :z #x987165 :w #x982397) + (new 'static 'vector4w :x #x723897 :y #x238723 :z #x987293 :w #x102981) + (new 'static 'vector4w :x #x387528 :y #x723099 :z #x140983 :w #x874310) + (new 'static 'vector4w :x #x2387 :y #x129818 :z #x219810 :w #x623790) + ) + :giftag-base (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan)) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-haze (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :abe #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-roof (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-clouds (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :abe #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-ocean (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :fge #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :disable-day-star #f + ) + ) + +(define sky-base-polygons + (new 'static 'inline-array sky-vertex 12 + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + ) + ) + +(define sky-roof-polygons + (new 'static 'inline-array sky-vertex 12 + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + ) + ) + +(define *cloud-vert-array* (new 'static 'cloud-vert-array)) + +(define *cloud-poly* (new 'static 'inline-array sky-vertex 648 + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + ) + ) + +(defun init-cloud-vert-array () + (let ((gp-0 *cloud-vert-array*)) + (dotimes (s5-0 10) + (dotimes (s4-0 10) + (let ((s3-0 (-> gp-0 data (+ (* 10 s5-0) s4-0)))) + (set! (-> s3-0 pos x) (* 2.0 (+ -4.5 (the float s4-0)))) + (set! (-> s3-0 pos z) (* 2.0 (+ -4.5 (the float s5-0)))) + (set! (-> s3-0 pos y) + (fmin (cos (* 182.04445 (* 10.0 (-> s3-0 pos x)))) (cos (* 182.04445 (* 10.0 (-> s3-0 pos z))))) + ) + (set-vector! (-> s3-0 stq) (* 0.25 (the float (+ s4-0 -4))) (* 0.25 (the float (+ s5-0 -4))) 1.0 1.0) + (set! (-> s3-0 nrm quad) (-> s3-0 pos quad)) + (+! (-> s3-0 nrm y) 1.0) + (vector-normalize! (-> s3-0 nrm) 1.0) + (vector-negate! (-> s3-0 nrm2) (-> s3-0 nrm)) + (cond + ((or (zero? s5-0) (= s5-0 9) (zero? s4-0) (= s4-0 9)) + (set! (-> s3-0 col w) 0.0) + (set! (-> s3-0 col2 w) 0.0) + ) + ((or (= s5-0 1) (= s5-0 8) (= s4-0 1) (= s4-0 8)) + (set! (-> s3-0 col w) 48.0) + (set! (-> s3-0 col2 w) 48.0) + ) + (else + (set! (-> s3-0 col w) 128.0) + (set! (-> s3-0 col2 w) 128.0) + ) + ) + ) + ) + ) + ) + #f + ) + +(init-cloud-vert-array) + +(define *haze-vert-array* (new 'static 'haze-vert-array)) + +(define *haze-poly* (new 'static 'inline-array sky-vertex 144 + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + ) + ) + +(defun init-haze-vert-array () + (let ((gp-0 *haze-vert-array*)) + (dotimes (s5-0 36) + (let ((s4-0 (-> gp-0 data s5-0))) + (set! (-> s4-0 pos x) (* 9.0 (sin (* 182.04445 (* 10.0 (the float s5-0)))))) + (set! (-> s4-0 pos z) (* 9.0 (cos (* 182.04445 (* 10.0 (the float s5-0)))))) + (set! (-> s4-0 pos y) 0.0) + (set! (-> s4-0 nrm quad) (-> s4-0 pos quad)) + (+! (-> s4-0 nrm y) 1.0) + (vector-normalize! (-> s4-0 nrm) 1.0) + ) + ) + ) + #f + ) + +(init-haze-vert-array) + +(defmethod init-sun-data! ((this sky-work) (arg0 int) (arg1 float) (arg2 float) (arg3 float)) + (let ((v1-0 (logand arg0 1))) + (set! (-> this upload-data sun v1-0 r-sun) arg1) + (set! (-> this upload-data sun v1-0 r-halo) arg2) + (set! (-> this upload-data sun v1-0 r-aurora) arg3) + ) + 0 + (none) + ) + +(defmethod init-orbit-settings! ((this sky-work) (arg0 int) (arg1 float) (arg2 float) (arg3 float) (arg4 float) (arg5 float) (arg6 float)) + (set! (-> this orbit arg0 high-noon) arg1) + (set! (-> this orbit arg0 tilt) (* 0.017453292 arg2)) + (set! (-> this orbit arg0 rise) (* 0.017453292 arg3)) + (set! (-> this orbit arg0 dist) arg4) + (set! (-> this orbit arg0 min-halo) arg5) + (set! (-> this orbit arg0 max-halo) arg6) + 0 + (none) + ) + +(defun sky-make-sun-data ((arg0 sky-work) (arg1 int) (arg2 float)) + (let* ((s4-0 (-> arg0 orbit arg1)) + (s3-0 (the-as sky-sun-data (+ (the-as uint (-> arg0 upload-data)) (* arg1 64)))) + (f0-1 (- arg2 (-> s4-0 high-noon))) + (f30-0 (* 2730.6667 f0-1)) + (f28-0 (* (sin f30-0) (-> s4-0 dist))) + (f30-1 (cos f30-0)) + ) + (let* ((f24-0 (* f30-1 (-> s4-0 dist))) + (f26-0 (* f24-0 (cos-rad (-> s4-0 tilt)))) + (f24-1 (* f24-0 (sin-rad (-> s4-0 tilt)))) + (f22-0 (sin-rad (-> s4-0 rise))) + (f0-10 (cos-rad (-> s4-0 rise))) + ) + (set! (-> s3-0 pos z) (- (+ (* f28-0 f0-10) (* f24-1 f22-0)))) + (set! (-> s3-0 pos y) f26-0) + (set! (-> s3-0 pos x) (- (* f24-1 f0-10) (* f28-0 f22-0))) + ) + (let ((f0-14 (if (< f30-1 0.0) + 0.0 + f30-1 + ) + ) + ) + (set! (-> arg0 upload-data sun arg1 r-aurora) + (+ (* (-> s4-0 min-halo) (- 1.0 f0-14)) (* (-> s4-0 max-halo) f0-14)) + ) + ) + ) + 0 + (none) + ) + +(defun sky-make-moon-data ((arg0 sky-work) (arg1 float)) + (let* ((s5-0 (-> arg0 orbit 2)) + (gp-0 (-> arg0 upload-data moon)) + (f0-1 (- arg1 (-> s5-0 high-noon))) + (f28-0 (* 2730.6667 f0-1)) + (f30-0 (* (sin f28-0) (-> s5-0 dist))) + (f26-0 (* (cos f28-0) (-> s5-0 dist))) + (f28-1 (* f26-0 (cos-rad (-> s5-0 tilt)))) + (f26-1 (* f26-0 (sin-rad (-> s5-0 tilt)))) + (f24-0 (sin-rad (-> s5-0 rise))) + (f0-10 (cos-rad (-> s5-0 rise))) + ) + (set! (-> gp-0 pos z) (- (+ (* f30-0 f0-10) (* f26-1 f24-0)))) + (set! (-> gp-0 pos y) f28-1) + (set! (-> gp-0 pos x) (- (* f26-1 f0-10) (* f30-0 f24-0))) + ) + 0 + (none) + ) + +(init-sun-data! *sky-work* 0 60.0 200.0 300.0) + +(init-sun-data! *sky-work* 1 15.0 20.0 300.0) + +(init-orbit-settings! *sky-work* 0 12.5 -20.0 90.0 9950.0 300.0 300.0) + +(init-orbit-settings! *sky-work* 1 4.0 0.0 90.0 9950.0 300.0 300.0) + +(init-orbit-settings! *sky-work* 2 0.5 -40.0 90.0 9950.0 300.0 300.0) diff --git a/goal_src/jakx/engine/gfx/sky/sky-h.gc b/goal_src/jakx/engine/gfx/sky/sky-h.gc index 8724805f5c..309d29b228 100644 --- a/goal_src/jakx/engine/gfx/sky/sky-h.gc +++ b/goal_src/jakx/engine/gfx/sky/sky-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: sky-h ;; dgos: ENGINE, GAME +(define-extern close-sky-buffer (function dma-buffer none)) + ;; DECOMP BEGINS (deftype sky-color-hour (structure) @@ -188,8 +190,8 @@ (disable-day-star basic) ) (:methods - (sky-work-method-9 () none) - (sky-work-method-10 () none) + (init-sun-data! (_type_ int float float float) none) + (init-orbit-settings! (_type_ int float float float float float float) none) (sky-work-method-11 () none) (sky-work-method-12 () none) (sky-work-method-13 () none) @@ -218,3 +220,6 @@ (sky-work-method-36 () none) ) ) + +;; og:preserve-this +(define-extern *sky-work* sky-work) \ No newline at end of file diff --git a/goal_src/jakx/engine/gfx/sprite/particles/light-trails-h.gc b/goal_src/jakx/engine/gfx/sprite/particles/light-trails-h.gc index 7def0ee6e8..1edc237d08 100644 --- a/goal_src/jakx/engine/gfx/sprite/particles/light-trails-h.gc +++ b/goal_src/jakx/engine/gfx/sprite/particles/light-trails-h.gc @@ -7,3 +7,182 @@ ;; DECOMP BEGINS +(deftype color-array (inline-array-class) + ((data rgbaf :inline :dynamic) + ) + ) + + +(set! (-> color-array heap-base) (the-as uint 16)) + +(deftype light-trail-composition (structure) + ((color-mode uint64) + (color-curve curve-color-piecewise) + (color-repeat-dist float) + (alpha-1-mode uint64) + (alpha-2-mode uint64) + (base-alpha float) + (alpha-curve-1 curve2d-piecewise) + (alpha-curve-2 curve2d-piecewise) + (alpha-repeat-dist float) + (width-mode uint64) + (base-width float) + (width-curve curve2d-piecewise) + (width-repeat-dist float) + (uv-mode uint64) + (uv-repeat-dist float) + (max-age uint64) + (tex-id texture-id) + (tex-name basic) + (lie-mode uint64) + (lie-vector vector :inline) + (zbuffer? symbol) + (use-tape-mode? symbol) + (blend-mode uint64) + (frame-stagger uint8) + ) + ) + + +(deftype light-trail-breadcrumb (structure) + ((pos vector :inline) + (birth-time uint32 :overlay-at (-> pos data 3)) + ) + ) + + +(deftype breadcrumb-array (inline-array-class) + ((data light-trail-breadcrumb :inline :dynamic) + ) + ) + + +(set! (-> breadcrumb-array heap-base) (the-as uint 16)) + +(deftype light-trail (prim-client) + ((crumb-array (array uint8)) + (crumb-size uint8) + (crumb-count int16) + (max-crumb-count int16) + (appearance light-trail-composition) + (start-marker uint64) + (end-marker uint64) + (decision uint64) + (total-distance-traveled float) + (strip prim-strip) + (strip2 prim-strip) + (cache-vector vector 4 :inline) + ) + (:methods + (light-trail-method-10 () none) + (light-trail-method-11 () none) + (light-trail-method-12 () none) + (light-trail-method-13 () none) + (light-trail-method-14 () none) + (light-trail-method-15 () none) + (light-trail-method-16 () none) + (light-trail-method-17 () none) + (light-trail-method-18 () none) + (light-trail-method-19 () none) + (light-trail-method-20 () none) + (light-trail-method-21 () none) + (light-trail-method-22 () none) + ) + ) + + +(deftype weapon-trail-crumb (light-trail-breadcrumb) + ((offset vector :inline) + ) + ) + + +(deftype weapon-trail (light-trail) + () + (:methods + (weapon-trail-method-23 () none) + (weapon-trail-method-24 () none) + ) + ) + + +(deftype tread-trail-crumb (light-trail-breadcrumb) + ((normal vector :inline) + ) + ) + + +(deftype tread-trail (light-trail) + () + (:methods + (tread-trail-method-23 () none) + (tread-trail-method-24 () none) + ) + ) + + +(deftype light-trail-tracker-spawn-params (structure) + ((appearance light-trail-composition) + (max-num-crumbs int32) + (tracked-obj uint64) + (track-immediately? symbol) + ) + ) + + +(deftype weapon-trail-tracker-spawn-params (light-trail-tracker-spawn-params) + ((joint0 int16) + (joint1 int16) + ) + ) + + +(deftype light-trail-tracker (process) + ((trail light-trail) + (tracked-object handle) + (offscreen? symbol) + (offscreen-start-time uint64) + (next-line-check-time uint64) + (last-add-frame-val uint32) + ) + (:state-methods + tracking + die + ) + (:methods + (light-trail-tracker-method-16 () none) + (light-trail-tracker-method-17 () none) + (light-trail-tracker-method-18 () none) + (light-trail-tracker-method-19 () none) + (light-trail-tracker-method-20 () none) + ) + ) + + +(deftype weapon-trail-tracker (light-trail-tracker) + ((joint0 int16) + (joint1 int16) + (state-time uint64) + ) + (:methods + (weapon-trail-tracker-method-22 () none) + ) + ) + + +(deftype tread-trail-tracker (light-trail-tracker) + () + ) + +(deftype light-trail-tracker-water (light-trail-tracker) + () + ) + + +(deftype light-trail-tracker-projectile (light-trail-tracker) + ((state-time uint64) + ) + (:methods + (light-trail-tracker-projectile-method-22 () none) + ) + ) diff --git a/goal_src/jakx/engine/gfx/sprite/particles/sparticle-launcher.gc b/goal_src/jakx/engine/gfx/sprite/particles/sparticle-launcher.gc index 537f1e15a7..66e4493d25 100644 --- a/goal_src/jakx/engine/gfx/sprite/particles/sparticle-launcher.gc +++ b/goal_src/jakx/engine/gfx/sprite/particles/sparticle-launcher.gc @@ -5,7 +5,40 @@ ;; name in dgo: sparticle-launcher ;; dgos: ENGINE, GAME +(defmacro launch-particles (&key (system *sp-particle-system-2d*) + particle + origin + &key (launch-state (the-as sparticle-launch-state #f)) + &key (launch-control (the-as sparticle-launch-control #f)) + &key (rate 1.0) + &key (origin-is-matrix #f)) + (if origin-is-matrix + `(sp-launch-particles-var + ,system + ,particle + (the matrix ,origin) + ,launch-state + ,launch-control + ,rate #|(if (= (get-video-mode) 'custom) (/ (-> *display* time-factor) 5.0) ,rate)|#) + `(begin + (vector-copy! (-> *launch-matrix* trans) (the vector ,origin)) + (sp-launch-particles-var + ,system + ,particle + *launch-matrix* + ,launch-state + ,launch-control + ,rate #|(if (= (get-video-mode) 'custom) (/ (-> *display* time-factor) 5.0) ,rate)|#) + ) + ) + ) + ;; DECOMP BEGINS (define-extern spt-func-relative-pos (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d none)) -(define-extern sparticle-2d-spline-align-instant (function object sparticle-cpuinfo sprite-vec-data-2d none)) \ No newline at end of file +(define-extern sparticle-2d-spline-align-instant (function object sparticle-cpuinfo sprite-vec-data-2d none)) +(define-extern particle-adgif-callback (function adgif-shader texture-id none)) +(define-extern sp-launch-particles-death (function sparticle-system sparticle-launcher vector none)) +(define-extern birth-func-texture-group (function int sparticle-cpuinfo sparticle-launchinfo none)) +(define-extern *particle-birth-work* particle-birth-work) +(define-extern birth-func-texture-group-2d (function object sparticle-cpuinfo sparticle-launchinfo object object none)) \ No newline at end of file diff --git a/goal_src/jakx/engine/gfx/texture/texture-anim-h.gc b/goal_src/jakx/engine/gfx/texture/texture-anim-h.gc index ac99b1d170..077c573707 100644 --- a/goal_src/jakx/engine/gfx/texture/texture-anim-h.gc +++ b/goal_src/jakx/engine/gfx/texture/texture-anim-h.gc @@ -74,8 +74,8 @@ (data texture-anim-layer :dynamic) ) (:methods - (texture-anim-method-9 () none) - (texture-anim-method-10 () none) + (init-textures! (_type_) _type_) + (clear-textures! (_type_) _type_) ) ) diff --git a/goal_src/jakx/engine/gfx/texture/texture-anim-tables.gc b/goal_src/jakx/engine/gfx/texture/texture-anim-tables.gc index 3698f5d08c..4c7f82499c 100644 --- a/goal_src/jakx/engine/gfx/texture/texture-anim-tables.gc +++ b/goal_src/jakx/engine/gfx/texture/texture-anim-tables.gc @@ -7,3 +7,4 @@ ;; DECOMP BEGINS +(define-extern set-fog-height! (function float none)) diff --git a/goal_src/jakx/engine/gfx/texture/texture.gc b/goal_src/jakx/engine/gfx/texture/texture.gc index 5a9da4779e..627388608d 100644 --- a/goal_src/jakx/engine/gfx/texture/texture.gc +++ b/goal_src/jakx/engine/gfx/texture/texture.gc @@ -5,6 +5,11 @@ ;; name in dgo: texture ;; dgos: ENGINE, GAME +(define-extern texture-page-default-allocate (function texture-pool texture-page kheap int texture-page)) +(define-extern texture-page-login (function texture-id (function texture-pool texture-page kheap int texture-page) kheap texture-page-dir-entry)) +(define-extern lookup-texture-by-id (function texture-id texture)) +(define-extern adgif-shader<-texture! (function adgif-shader texture adgif-shader)) + ;; DECOMP BEGINS (define-extern lookup-texture-id-by-name (function string string texture-id)) \ No newline at end of file diff --git a/goal_src/jakx/engine/gfx/vu1-user-h.gc b/goal_src/jakx/engine/gfx/vu1-user-h.gc index 2a219a53fb..94afce8d59 100644 --- a/goal_src/jakx/engine/gfx/vu1-user-h.gc +++ b/goal_src/jakx/engine/gfx/vu1-user-h.gc @@ -783,7 +783,9 @@ (bucket788 788) + (bucket793 793) (bucket794 794) + (bucket795 795) ) ;; ---bucket-id diff --git a/goal_src/jakx/engine/level/bsp-h.gc b/goal_src/jakx/engine/level/bsp-h.gc index c5099795c6..f59478fea0 100644 --- a/goal_src/jakx/engine/level/bsp-h.gc +++ b/goal_src/jakx/engine/level/bsp-h.gc @@ -5,8 +5,170 @@ ;; name in dgo: bsp-h ;; dgos: ENGINE, GAME +;; +++texture-page-flag +(defenum texture-page-flag + :type uint16 + :bitfield #t + (alpha-enable 0) + ) +;; ---texture-page-flag + +(declare-type entity-camera entity) +(declare-type entity-nav-mesh structure) +(declare-type entity-race-mesh entity) +(declare-type city-level-info structure) +(declare-type bsp-header drawable) +(declare-type bsp-node structure) + +(define-extern inspect-bsp-tree (function bsp-header bsp-node none)) +(define-extern map-bsp-tree (function (function bsp-node none) bsp-header bsp-node none)) +(define-extern mem-usage-bsp-tree (function bsp-header bsp-node memory-usage-block int none)) + ;; DECOMP BEGINS +(deftype bsp-node (structure) + ((front int16) + (back int16) + (front-box-min vector4b :inline) + (front-box-max vector4b :inline) + (back-box-min vector4b :inline) + (back-box-max vector4b :inline) + ) + ) + + +(deftype bsp-header (drawable) + "The bsp-header is really an entire level. +This probably started as a very simple structure, but now it is extremely complicated." + ((info file-info :overlay-at id) + (all-visible-list (pointer uint8)) + (visible-list-length int16) + (extra-vis-list-length int16) + (drawable-trees drawable-tree-array) + (pat pointer) + (pat-length int32) + (texture-remap-table (pointer uint64)) + (texture-remap-table-len int32) + (texture-ids (pointer texture-id)) + (texture-page-count int32) + (unknown-basic basic) + (name symbol) + (nickname symbol) + (vis-info level-vis-info 8) + (actors drawable-inline-array-actor) + (cameras (array entity-camera)) + (nodes (inline-array bsp-node)) + (level level) + (current-leaf-idx uint16) + (texture-flags texture-page-flag 10) + (cam-outside-bsp uint8 :offset 152) + (cam-using-back uint8) + (cam-box-idx uint16) + (ambients symbol) + (subdivide-close float :offset 160) + (subdivide-far float) + (race-meshes (array entity-race-mesh)) + (actor-birth-order (pointer uint32) :offset 172) + (light-hash light-hash) + (nav-meshes (array entity-nav-mesh)) + (actor-groups (array actor-group)) + (region-trees (array drawable-tree-region-prim) :offset 188) + (region-array region-array) + (collide-hash collide-hash :offset 196) + (wind-array uint32 :offset 200) + (wind-array-length int32 :offset 204) + (city-level-info city-level-info :offset 208) + (vis-spheres vector-array :offset 216) + (vis-spheres-length uint32 :offset 248) + (region-tree drawable-tree-region-prim :offset 252) + (tfrag-masks texture-masks-array :offset 256) + (tfrag-closest (pointer float)) + (tfrag-mask-count uint32 :overlay-at tfrag-closest) + (shrub-masks texture-masks-array) + (shrub-closest (pointer float)) + (shrub-mask-count uint32 :overlay-at shrub-closest) + (alpha-masks texture-masks-array) + (alpha-closest (pointer float)) + (alpha-mask-count uint32 :overlay-at alpha-closest) + (water-masks texture-masks-array) + (water-closest (pointer float)) + (water-mask-count uint32 :overlay-at water-closest) + (bsp-scale vector :inline :offset 288) + (bsp-offset vector :inline) + (hfrag-drawable drawable :offset 320) + (unknown-bsp-1 uint32 :offset 324) + (end uint8 :offset 399) + ) + (:methods + (birth (_type_) none) + (deactivate-entities (_type_) none) + ) + ) + +(deftype game-level (basic) + ((master-bsp basic) + ) + ) + + +(deftype view-frustum (structure) + ((hither-top-left vector :inline) + (hither-top-right vector :inline) + (hither-bottom-left vector :inline) + (hither-bottom-right vector :inline) + (yon-top-left vector :inline) + (yon-top-right vector :inline) + (yon-bottom-left vector :inline) + (yon-bottom-right vector :inline) + ) + ) + + + +;; WARN: Return type mismatch bsp-header vs none. +(defun-debug inspect-bsp-tree ((arg0 bsp-header) (arg1 bsp-node)) + (cond + ((zero? arg1) + ) + (else + (format #t "_#x~X________________~%" arg1) + (inspect arg1) + (let ((s4-0 *print-column*)) + (set! *print-column* (+ *print-column* 64)) + (if (> (-> arg1 front) 0) + (inspect-bsp-tree arg0 (the-as bsp-node (-> arg1 front))) + (format #t "_#x~X________________~%" arg1) + ) + (if (> (-> arg1 back) 0) + (inspect-bsp-tree arg0 (the-as bsp-node (-> arg1 back))) + (format #t "_#x~X________________~%" arg1) + ) + (set! *print-column* s4-0) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch bsp-header vs none. +(defun map-bsp-tree ((arg0 (function bsp-node none)) (arg1 bsp-header) (arg2 bsp-node)) + (cond + ((zero? arg2) + ) + (else + (if (> (-> arg2 front) 0) + (map-bsp-tree arg0 arg1 (the-as bsp-node (-> arg2 front))) + (arg0 arg2) + ) + (if (> (-> arg2 back) 0) + (map-bsp-tree arg0 arg1 (the-as bsp-node (-> arg2 back))) + (arg0 arg2) + ) + ) + ) + (none) + ) + (deftype collide-stats (structure) "Very strange collide stats type. It has been somewhat broken in all versions of the game. The final stopwatch is cut off. For jak 3, I just fixed it." diff --git a/goal_src/jakx/engine/level/level-h.gc b/goal_src/jakx/engine/level/level-h.gc index deb1acdfeb..92860c66a2 100644 --- a/goal_src/jakx/engine/level/level-h.gc +++ b/goal_src/jakx/engine/level/level-h.gc @@ -400,14 +400,14 @@ (level-method-13 () none) (level-method-14 () none) (level-method-15 () none) - (level-method-16 () none) + (update-vis! (_type_ level-vis-info uint (pointer uint8) int) symbol) (level-method-17 () none) (level-method-18 () none) (level-method-19 () none) (level-method-20 () none) (level-method-21 () none) (level-method-22 () none) - (level-method-23 () none) + (lookup-text (_type_ text-id symbol) string) (level-method-24 () none) (level-method-25 () none) (level-method-26 () none) @@ -475,7 +475,7 @@ (pad int32) ) (:methods - (level-group-method-9 () none) + (level-get (_type_ symbol) level) (level-group-method-10 () none) (level-group-method-11 () none) (level-group-method-12 () none) @@ -486,9 +486,9 @@ (level-group-method-17 () none) (level-group-method-18 () none) (level-group-method-19 () none) - (level-group-method-20 () none) + (level-get-target-inside (_type_) level) (level-group-method-21 () none) - (level-group-method-22 () none) + (art-group-get-by-name (_type_ string (pointer level)) art-group) (level-group-method-23 () none) (level-group-method-24 () none) (level-group-method-25 () none) diff --git a/goal_src/jakx/engine/math/transformq-h.gc b/goal_src/jakx/engine/math/transformq-h.gc index 175ead7027..33543ace29 100644 --- a/goal_src/jakx/engine/math/transformq-h.gc +++ b/goal_src/jakx/engine/math/transformq-h.gc @@ -5,6 +5,12 @@ ;; name in dgo: transformq-h ;; dgos: ENGINE, GAME +(define-extern matrix<-transformq! (function matrix transformq matrix)) +(define-extern matrix<-parented-transformq! (function matrix transformq vector matrix)) +(define-extern matrix<-transformq+trans! (function matrix transformq vector matrix)) +(define-extern matrix<-transformq+world-trans! (function matrix transformq vector matrix)) +(define-extern matrix<-transformq+rot-offset! (function matrix transformq vector matrix)) + ;; DECOMP BEGINS (deftype trsqv (trsq) diff --git a/goal_src/jakx/engine/nav/nav-control-h.gc b/goal_src/jakx/engine/nav/nav-control-h.gc index 78d73e797e..0e85a1c228 100644 --- a/goal_src/jakx/engine/nav/nav-control-h.gc +++ b/goal_src/jakx/engine/nav/nav-control-h.gc @@ -5,5 +5,225 @@ ;; name in dgo: nav-control-h ;; dgos: ENGINE, GAME +;; +++nav-state-flag +(defenum nav-state-flag + :type uint32 + :bitfield #t + (display-marks 0) + (recovery-mode 1) + (initialized 2) + (debug 3) + (directional-mode 4) + (trapped-by-sphere 5) + (target-poly-dirty 6) + (blocked 7) + (in-target-poly 8) + (at-target 9) + (target-inside 10) + (in-mesh 11) + (avoiding-sphere 12) + (touching-sphere 13) + (at-gap 14) + (use-position 15) + ) +;; ---nav-state-flag + + +;; +++nav-control-flag +(defenum nav-control-flag + :type uint32 + :bitfield #t + (display-marks 0) ;; 1 + (debug 1) ;; 2 + (no-redirect-in-clamp 2) ;; 4 + (limit-rotation-rate 3) ;; 8 + (update-heading-from-facing 4) ;; 16 + (use-momentum 5) ;; 32 + (momentum-ignore-heading 6) ;; 64 + (output-sphere-hash 7) ;; 128 + (kernel-run 8) ;; 256 + (ncf9 9) + ) +;; ---nav-control-flag + + ;; DECOMP BEGINS +(deftype check-vector-collision-with-nav-spheres-info (structure) + ((u float) + (intersect vector :inline) + (normal vector :inline) + ) + ) + + +(deftype nav-gap-info (structure) + ((dest vector :inline) + (poly nav-poly) + ) + ) + + +(deftype nav-avoid-spheres-params (structure) + ((current-pos vector :inline) + (travel vector :inline) + (pref-dir vector :inline) + (out-travel vector 2 :inline) + (closest-sphere-dist2 float) + (avoiding-sphere? symbol) + ) + ) + + +(deftype nav-callback-info (structure) + ((callback-count int32) + (callback-array (function object nav-control none) 10) + ) + ) + + +(deftype nav-state (structure) + ((flags nav-state-flag) + (nav nav-control) + (user-poly nav-poly) + (mesh nav-mesh) + (current-poly nav-poly) + (virtual-current-poly nav-poly) + (next-poly nav-poly) + (target-poly nav-poly) + (rotation-rate float) + (speed meters) + (prev-speed meters) + (pad0 uint32 1) + (travel vector :inline) + (target-pos vector :inline) + (current-pos vector :inline) + (current-pos-local vector :inline) + (virtual-current-pos-local vector :inline) + (velocity vector :inline) + (heading vector :inline) + (target-dir vector :inline) + (accel vector :inline :overlay-at target-dir) + (user-position vector :inline :overlay-at virtual-current-pos-local) + (normal vector :inline :overlay-at virtual-current-pos-local) + ) + (:methods + (nav-state-method-9 () none) + (nav-state-method-10 () none) + (nav-state-method-11 () none) + (nav-state-method-12 () none) + (nav-state-method-13 () none) + (nav-state-method-14 () none) + (nav-state-method-15 () none) + (nav-state-method-16 () none) + (nav-state-method-17 () none) + (nav-state-method-18 () none) + (nav-state-method-19 () none) + (nav-state-method-20 () none) + (nav-state-method-21 () none) + (nav-state-method-22 () none) + (nav-state-method-23 () none) + (nav-state-method-24 () none) + (nav-state-method-25 () none) + (nav-state-method-26 () none) + (nav-state-method-27 () none) + (nav-state-method-28 () none) + (nav-state-method-29 () none) + (nav-state-method-30 () none) + (nav-state-method-31 () none) + (nav-state-method-32 () none) + (nav-state-method-33 () none) + (nav-state-method-34 () none) + (nav-state-method-35 () none) + (nav-state-method-36 () none) + (nav-state-method-37 () none) + (nav-state-method-38 () none) + (nav-state-method-39 () none) + (nav-state-method-40 () none) + (nav-state-method-41 () none) + (nav-state-method-42 () none) + (nav-state-method-43 () none) + (nav-state-method-44 () none) + (nav-state-method-45 () none) + (nav-state-method-46 () none) + (nav-state-method-47 () none) + (nav-state-method-48 () none) + (nav-state-method-49 () none) + (nav-state-method-50 () none) + (nav-state-method-51 () none) + (nav-state-method-52 () none) + (nav-state-method-53 () none) + (nav-state-method-54 () none) + (nav-state-method-55 () none) + (nav-state-method-56 () none) + ) + ) + + +(deftype nav-control (structure) + ((flags nav-control-flag) + (callback-info nav-callback-info) + (process process) + (pad0 uint32) + (shape collide-shape) + (nearest-y-threshold meters) + (nav-cull-radius meters) + (sec-per-frame float) + (target-speed meters) + (acceleration meters) + (turning-acceleration meters) + (max-rotation-rate float) + (speed-scale float) + (sphere-count int32) + (sphere-array (inline-array sphere)) + (root-sphere-id uint8) + (sphere-mask uint8) + (pad1 uint8 2) + (sphere-id-array uint8 16) + (extra-nav-sphere vector :inline) + (root-nav-sphere vector :inline) + (state nav-state :inline) + (mesh basic :overlay-at (-> state mesh)) + ) + (:methods + (nav-control-method-9 () none) + (nav-control-method-10 () none) + (nav-control-method-11 () none) + (nav-control-method-12 () none) + (nav-control-method-13 () none) + (nav-control-method-14 () none) + (nav-control-method-15 () none) + (nav-control-method-16 () none) + (nav-control-method-17 () none) + (nav-control-method-18 () none) + (nav-control-method-19 () none) + (nav-control-method-20 () none) + (nav-control-method-21 () none) + (nav-control-method-22 () none) + (nav-control-method-23 () none) + (nav-control-method-24 () none) + (nav-control-method-25 () none) + (nav-control-method-26 () none) + (nav-control-method-27 () none) + (nav-control-method-28 () none) + (nav-control-method-29 () none) + (nav-control-method-30 () none) + (nav-control-method-31 () none) + (nav-control-method-32 () none) + (nav-control-method-33 () none) + (nav-control-method-34 () none) + (nav-control-method-35 () none) + (nav-control-method-36 () none) + (nav-control-method-37 () none) + (nav-control-method-38 () none) + (nav-control-method-39 () none) + (nav-control-method-40 () none) + (nav-control-method-41 () none) + (nav-control-method-42 () none) + (nav-control-method-43 () none) + (nav-control-method-44 () none) + (nav-control-method-45 () none) + (nav-control-method-46 () none) + (nav-control-method-47 () none) + ) + ) diff --git a/goal_src/jakx/engine/nav/nav-mesh-h.gc b/goal_src/jakx/engine/nav/nav-mesh-h.gc index e20ee15db4..7cda213d40 100644 --- a/goal_src/jakx/engine/nav/nav-mesh-h.gc +++ b/goal_src/jakx/engine/nav/nav-mesh-h.gc @@ -15,5 +15,702 @@ ;; ---nav-mesh-flag +;; +++nav-mesh-link-search-node-status +(defenum nav-mesh-link-search-node-status + :type uint8 + :bitfield #t + (open 0) + (closed 1) + ) +;; ---nav-mesh-link-search-node-status + +(declare-type grid-hash structure) +(declare-type sphere-hash structure) + +(declare-type nav-mesh-link structure) +(define-extern debug-validate-nav-poly (function nav-mesh-link nav-poly none)) + ;; DECOMP BEGINS +(deftype nav-mesh-work-debug (structure) + "Debug outputs for the nav-mesh assembly functions" + ((debug-vec1 vector :inline) + (debug-vec2 vector :inline) + (debug-vec3 vector :inline) + (debug-vec4 vector :inline) + (debug-vec5 vector :inline) + (debug-vec6 vector :inline) + (debug-vec7 vector :inline) + (debug-vec8 vector :inline) + (debug-vec9 vector :inline) + (debug-vec10 vector :inline) + (debug-vec11 vector :inline) + (debug-vec12 vector :inline) + (sphere-array sphere 16 :inline) + ) + ) + + +(deftype nav-mesh-work (structure) + "Workspace for nav-mesh processing functions." + ((vert0-table int8 4) + (vert1-table int8 4) + (edge-mask-table uint8 3) + (pad0 uint32) + (deg-to-rad float) + (rad-to-deg float) + (nav-poly-min-dist float) + (nav-poly-epsilon float) + (sphere-array sphere 16 :inline) + (debug nav-mesh-work-debug) + (work-struct-in-scratch int8) + (mesh-struct-in-scratch int8) + (polys-in-scratch int8) + (mesh nav-mesh) + (nav basic) + (poly0 nav-poly) + (poly1 nav-poly) + (poly-id int32) + ) + ) + + +(deftype nav-mesh-link (structure) + "Link between two different meshes" + ((id uint32) + (dest-mesh-id uint32) + (src-link-poly-id uint8) + (src-switch-poly-id uint8) + (dest-link-poly-id uint8) + (dest-switch-poly-id uint8) + (dest-mesh nav-mesh) + ) + ) + + +(deftype nav-mesh-link-search-node (structure) + ((pprev uint32) + (next nav-mesh-link-search-node) + (parent nav-mesh-link-search-node) + (link nav-mesh-link) + (cost-to-start float) + (cost-to-end float) + (status nav-mesh-link-search-node-status) + ) + ) + + +(deftype nav-poly (structure) + "Polygon within a nav-mesh. Can be a tri or quad. +Based on the implementation of point-poly-intersection?, these should likely be convex." + ((data uint8 64 :offset 0) + (vertex vector 4 :inline :overlay-at (-> data 0)) + (vertex0 vector :inline :overlay-at (-> vertex 0)) + (vertex1 vector :inline :overlay-at (-> vertex 1)) + (vertex2 vector :inline :overlay-at (-> vertex 2)) + (vertex3 vector :inline :overlay-at (-> vertex 3)) + (id uint8 :overlay-at (-> data 12)) + (pat uint8 :overlay-at (-> data 13)) + (vertex-count uint8 :overlay-at (-> data 14)) + (link uint8 :overlay-at (-> data 15)) + (adj-poly uint8 4 :overlay-at (-> data 28)) + (adj-poly0 uint8 :overlay-at (-> adj-poly 0)) + (adj-poly1 uint8 :overlay-at (-> adj-poly 1)) + (adj-poly2 uint8 :overlay-at (-> adj-poly 2)) + (adj-poly3 uint8 :overlay-at (-> adj-poly 3)) + (min-y float :overlay-at (-> data 44)) + (max-y float :overlay-at (-> data 60)) + ) + ) + + +(deftype nav-vertex (vector) + () + ) + + +(deftype nav-sphere (structure) + ((trans sphere :inline) + ) + ) + + +(deftype nav-ray (structure) + ((current-pos vector :inline) + (dir vector :inline) + (dest-pos vector :inline) + (current-mesh nav-mesh) + (current-poly nav-poly) + (next-mesh nav-mesh) + (next-poly nav-poly) + (len meters) + (last-edge int8) + (ignore uint8) + (terminated symbol) + (reached-dest symbol) + (hit-boundary symbol) + (hit-gap symbol) + (cross-meshes nav-mesh-link) + ) + (:methods + (nav-ray-method-9 (_type_ nav-mesh nav-poly vector vector) none) + (nav-ray-method-10 (_type_ nav-mesh nav-poly vector vector) none) + (nav-ray-method-11 (_type_) none) + (nav-ray-method-12 (_type_) none) + ) + ) + + +(deftype nav-route-portal (structure) + ((vertex nav-vertex 2 :inline) + (next-poly nav-poly) + (edge-index int8) + ) + ) + + +(deftype nav-find-poly-parms (structure) + ((point vector :inline) + (y-threshold float) + (ignore uint8) + (poly nav-poly) + (dist float) + (point-inside? symbol) + ) + ) + + +(deftype clamp-travel-vector-to-mesh-return-info (structure) + ((found-boundary symbol) + (intersection vector :inline) + (boundary-normal vector :inline) + (prev-normal vector :inline) + (next-normal vector :inline) + (poly nav-poly) + (mesh basic) + (gap-poly nav-poly) + (edge int8) + (ignore uint8) + (vert-prev vector :inline) + (vert-0 vector :inline) + (vert-1 vector :inline) + (vert-next vector :inline) + ) + (:methods + (clamp-travel-vector-to-mesh-return-info-method-9 () none) + (clamp-travel-vector-to-mesh-return-info-method-10 () none) + ) + ) + + +(deftype nav-find-corner-portal-params (structure) + ((start-poly nav-poly) + (target-poly nav-poly) + (corner-poly nav-poly) + (start-pos vector :inline) + (target-pos vector :inline) + (corner-verts vector 2 :inline) + (vert-select int8) + ) + ) + + +(deftype nav-mesh (basic) + "Mesh used for creature/enemy navigation." + ((work nav-mesh-work) + (poly-array (inline-array nav-poly)) + (static-sphere-count uint8) + (poly-count uint8) + (nav-control-count uint8) + (max-nav-control-count uint8) + (route (pointer uint8)) + (poly-hash grid-hash) + (nav-control-array (inline-array nav-control)) + (sphere-hash sphere-hash) + (static-sphere (inline-array sphere)) + (user-list engine) + (next-nav-mesh basic) + (prev-nav-mesh basic) + (bounds sphere :inline) + (origin vector :inline :overlay-at (-> bounds data 0)) + (entity entity) + (link-array (inline-array nav-mesh-link)) + (link-count uint8) + (flags nav-mesh-flag) + (pad1 uint8 2) + (nearest-y-threshold meters) + (water-max-height meters) + (link-search-node-array uint32) + (pad2 uint32 6) + ) + (:methods + (nav-mesh-method-9 () none) + (nav-mesh-method-10 () none) + (nav-mesh-method-11 () none) + (nav-mesh-method-12 () none) + (nav-mesh-method-13 () none) + (nav-mesh-method-14 () none) + (nav-mesh-method-15 () none) + (nav-mesh-method-16 () none) + (nav-mesh-method-17 () none) + (nav-mesh-method-18 () none) + (nav-mesh-method-19 () none) + (nav-mesh-method-20 () none) + (nav-mesh-method-21 () none) + (nav-mesh-method-22 () none) + (nav-mesh-method-23 () none) + (nav-mesh-method-24 () none) + (nav-mesh-method-25 () none) + (nav-mesh-method-26 () none) + (nav-mesh-method-27 () none) + (nav-mesh-method-28 () none) + (nav-mesh-method-29 () none) + (nav-mesh-method-30 () none) + (nav-mesh-method-31 () none) + (nav-mesh-method-32 () none) + (nav-mesh-method-33 () none) + (nav-mesh-method-34 () none) + (nav-mesh-method-35 () none) + (nav-mesh-method-36 () none) + (point-in-poly? (_type_ nav-poly vector) symbol) + (nav-mesh-method-38 () none) + (nav-mesh-method-39 (_type_ nav-poly vector vector) vector) + (nav-mesh-method-40 () none) + (nav-mesh-method-41 (_type_ nav-poly vector vector vector (pointer nav-poly)) vector) + (nav-mesh-method-42 () none) + (nav-mesh-method-43 () none) + (nav-mesh-method-44 () none) + (nav-mesh-method-45 () none) + (nav-mesh-method-46 () none) + ) + ) + + +(deftype nav-location (structure) + ((nav-mesh nav-mesh) + (nav-poly nav-poly) + ) + ) + + +(defun vector-normalize-unity! ((arg0 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (let ((v0-0 arg0)) + (let ((f0-0 1.0)) + (.lvf vf1 (&-> v0-0 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((v1-1 f0-0)) + (.mov vf3 v1-1) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v0-0 quad) vf1) + v0-0 + ) + ) + ) + +(defun vector-normalize-unity-copy! ((arg0 vector) (arg1 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (set! (-> arg0 quad) (-> arg1 quad)) + (let ((v0-0 arg0)) + (let ((f0-0 1.0)) + (.lvf vf1 (&-> v0-0 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((v1-2 f0-0)) + (.mov vf3 v1-2) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v0-0 quad) vf1) + v0-0 + ) + ) + ) + +(defun-debug debug-validate-current-poly () + #f + ) + +(defmethod nav-ray-method-9 ((this nav-ray) (arg0 nav-mesh) (arg1 nav-poly) (arg2 vector) (arg3 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (set! (-> this current-mesh) arg0) + (set! (-> this current-poly) arg1) + (vector-! (-> this current-pos) arg2 (the-as vector (-> arg0 bounds))) + (let ((a2-2 (-> this dest-pos))) + (let ((v1-2 (-> this current-pos)) + (a1-2 arg3) + ) + (.lvf vf4 (&-> v1-2 quad)) + (.lvf vf5 (&-> a1-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-2 quad) vf6) + ) + (set! (-> this dir quad) (-> arg3 quad)) + (set! (-> this dir y) 0.0) + (let ((v1-4 (-> this dir))) + (let ((f0-1 1.0)) + (.lvf vf1 (&-> v1-4 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((a1-6 f0-1)) + (.mov vf3 a1-6) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v1-4 quad) vf1) + ) + (set! (-> this ignore) (the-as uint 2)) + (set! (-> this cross-meshes) #f) + (nav-ray-method-11 this) + 0 + (none) + ) + ) + +(defmethod nav-ray-method-10 ((this nav-ray) (arg0 nav-mesh) (arg1 nav-poly) (arg2 vector) (arg3 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (set! (-> this current-mesh) arg0) + (set! (-> this current-poly) arg1) + (set! (-> this current-pos quad) (-> arg2 quad)) + (let ((a2-1 (-> this dest-pos))) + (let ((v1-1 (-> this current-pos)) + (a1-3 arg3) + ) + (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a1-3 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-1 quad) vf6) + ) + (set! (-> this dir quad) (-> arg3 quad)) + (set! (-> this dir y) 0.0) + (let ((v1-3 (-> this dir))) + (let ((f0-1 1.0)) + (.lvf vf1 (&-> v1-3 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((a1-7 f0-1)) + (.mov vf3 a1-7) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v1-3 quad) vf1) + ) + (set! (-> this ignore) (the-as uint 2)) + (set! (-> this cross-meshes) #f) + (nav-ray-method-11 this) + 0 + (none) + ) + ) + +(defmethod nav-ray-method-11 ((this nav-ray)) + (set! (-> this next-mesh) (-> this current-mesh)) + (set! (-> this next-poly) #f) + (set! (-> this len) 0.0) + (set! (-> this last-edge) -1) + (set! (-> this terminated) #f) + (set! (-> this reached-dest) #f) + (set! (-> this hit-boundary) #f) + (set! (-> this hit-gap) #f) + 0 + (none) + ) + +(defun point-poly-intersection? ((arg0 nav-mesh) (arg1 vector) (arg2 int) (arg3 (inline-array vector))) + (let ((v1-1 (-> arg0 work vert0-table)) + (a0-2 (-> arg0 work vert1-table)) + ) + (dotimes (t0-0 arg2) + (let* ((t1-3 (-> arg3 (-> v1-1 t0-0))) + (t2-3 (-> arg3 (-> a0-2 t0-0))) + (f0-1 (- (-> t1-3 z) (-> t2-3 z))) + (f1-2 (- (-> t2-3 x) (-> t1-3 x))) + (f2-2 (- (-> arg1 x) (-> t1-3 x))) + (f3-2 (- (-> arg1 z) (-> t1-3 z))) + (f0-3 (+ (* f2-2 f0-1) (* f3-2 f1-2))) + ) + (if (< 0.0 f0-3) + (return #f) + ) + ) + ) + ) + #t + ) + +(defmethod point-in-poly? ((this nav-mesh) (arg0 nav-poly) (arg1 vector)) + (let* ((a3-0 this) + (v1-0 arg1) + (a0-1 (-> arg0 vertex-count)) + (a1-1 (-> arg0 vertex)) + (a2-2 (-> a3-0 work vert0-table)) + (a3-2 (-> a3-0 work vert1-table)) + ) + (dotimes (t0-0 (the-as int a0-1)) + (let* ((t1-3 (-> a1-1 (-> a2-2 t0-0))) + (t2-3 (-> a1-1 (-> a3-2 t0-0))) + (f0-1 (- (-> t1-3 z) (-> t2-3 z))) + (f1-2 (- (-> t2-3 x) (-> t1-3 x))) + (f2-2 (- (-> v1-0 x) (-> t1-3 x))) + (f3-2 (- (-> v1-0 z) (-> t1-3 z))) + (f0-3 (+ (* f2-2 f0-1) (* f3-2 f1-2))) + ) + (if (< 0.0 f0-3) + (return #f) + ) + ) + ) + ) + #t + ) + +(defmethod nav-mesh-method-39 ((this nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector)) + (let ((sv-48 (new 'stack-no-clear 'vector)) + (sv-52 (new 'stack-no-clear 'vector)) + ) + (let* ((sv-56 10000000000000000000000000000000000000.0) + (s3-0 (-> arg0 vertex-count)) + (v1-3 (the-as int (+ s3-0 -1))) + ) + (dotimes (s2-0 (the-as int s3-0)) + (let ((f0-1 (vector-segment-distance-point! arg2 (-> arg0 vertex v1-3) (-> arg0 vertex s2-0) sv-48))) + (when (< f0-1 (the-as float sv-56)) + (set! sv-56 f0-1) + (set! (-> sv-52 quad) (-> sv-48 quad)) + ) + ) + (set! v1-3 s2-0) + ) + ) + (set! (-> arg1 quad) (-> sv-52 quad)) + ) + arg1 + ) + +(defmethod nav-mesh-method-41 ((this nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 (pointer nav-poly))) + (cond + ((point-in-poly? this arg0 arg2) + (set! (-> arg1 quad) (-> arg2 quad)) + ) + (else + (let ((s5-1 arg1) + (sv-48 (new 'stack-no-clear 'vector)) + (sv-52 (new 'stack-no-clear 'vector)) + ) + (let* ((sv-56 10000000000000000000000000000000000000.0) + (s2-0 (-> arg0 vertex-count)) + (v1-6 (the-as int (+ s2-0 -1))) + ) + (dotimes (s1-0 (the-as int s2-0)) + (let ((f0-1 (vector-segment-distance-point! arg2 (-> arg0 vertex v1-6) (-> arg0 vertex s1-0) sv-48))) + (when (< f0-1 (the-as float sv-56)) + (set! sv-56 f0-1) + (set! (-> sv-52 quad) (-> sv-48 quad)) + ) + ) + (set! v1-6 s1-0) + ) + ) + (set! (-> s5-1 quad) (-> sv-52 quad)) + ) + ) + ) + arg1 + ) + +(defmethod nav-ray-method-12 ((this nav-ray)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((sv-16 this) + (sv-24 -1) + ) + (let ((sv-32 (-> sv-16 current-mesh work))) + ) + (let ((sv-36 (-> sv-16 current-poly)) + (sv-40 (-> sv-16 current-poly vertex-count)) + (sv-44 (-> sv-16 current-mesh work vert0-table)) + (sv-48 (-> sv-16 current-mesh work vert1-table)) + (sv-52 (- (-> sv-16 dest-pos x) (-> sv-16 current-pos x))) + (sv-56 (- (-> sv-16 dest-pos z) (-> sv-16 current-pos z))) + ) + (dotimes (v1-21 (the-as int sv-40)) + (let* ((sv-60 (-> sv-36 vertex (-> sv-44 v1-21))) + (sv-64 (-> sv-36 vertex (-> sv-48 v1-21))) + (sv-68 (- (-> sv-60 z) (-> sv-64 z))) + (sv-72 (- (-> sv-64 x) (-> sv-60 x))) + (f0-10 (+ (* sv-52 sv-68) (* sv-56 sv-72))) + ) + (when (< 0.0 f0-10) + (let ((f1-10 + (+ (* sv-68 (- (-> sv-60 x) (-> sv-16 current-pos x))) (* sv-72 (- (-> sv-60 z) (-> sv-16 current-pos z)))) + ) + ) + (when (< f1-10 f0-10) + (set! sv-24 v1-21) + (let ((f0-12 (fmax 0.0 (/ f1-10 f0-10)))) + (set! sv-52 (* sv-52 f0-12)) + (set! sv-56 (* sv-56 f0-12)) + ) + ) + ) + ) + ) + ) + (let ((f0-16 (+ (* sv-52 (-> sv-16 dir x)) (* sv-56 (-> sv-16 dir z))))) + (+! (-> sv-16 len) f0-16) + ) + 0 + (set! (-> sv-16 next-poly) #f) + (cond + ((= sv-24 -1) + (set! (-> sv-16 current-pos quad) (-> sv-16 dest-pos quad)) + (set! (-> sv-16 reached-dest) #t) + (set! (-> sv-16 terminated) #t) + ) + (else + (+! (-> sv-16 current-pos x) sv-52) + (+! (-> sv-16 current-pos z) sv-56) + (let ((sv-76 (-> sv-36 adj-poly sv-24))) + (when (!= sv-76 255) + (set! (-> sv-16 next-poly) (-> sv-16 current-mesh poly-array sv-76)) + (set! (-> sv-16 next-mesh) (-> sv-16 current-mesh)) + (when (and (logtest? (-> sv-16 next-poly pat) 4) (!= (-> sv-16 next-poly link) 255) (-> sv-16 cross-meshes)) + (let* ((v1-64 (-> sv-16 current-mesh link-array (-> sv-16 next-poly link))) + (sv-80 (-> v1-64 dest-mesh)) + ) + (when sv-80 + (set! (-> sv-16 next-mesh) sv-80) + (set! (-> sv-16 next-poly) (-> sv-80 poly-array (-> v1-64 dest-link-poly-id))) + (let ((v1-69 (-> sv-16 current-pos))) + (let ((a0-50 (-> sv-16 current-pos)) + (a1-5 (-> sv-16 current-mesh bounds)) + ) + (.lvf vf4 (&-> a0-50 quad)) + (.lvf vf5 (&-> a1-5 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-69 quad) vf6) + ) + (vector-! (-> sv-16 current-pos) (-> sv-16 current-pos) (the-as vector (-> sv-16 next-mesh bounds))) + (let ((v1-74 (-> sv-16 dest-pos))) + (let ((a0-54 (-> sv-16 dest-pos)) + (a1-11 (-> sv-16 current-mesh bounds)) + ) + (.lvf vf4 (&-> a0-54 quad)) + (.lvf vf5 (&-> a1-11 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-74 quad) vf6) + ) + (vector-! (-> sv-16 dest-pos) (-> sv-16 dest-pos) (the-as vector (-> sv-16 next-mesh bounds))) + (debug-validate-nav-poly (the-as nav-mesh-link (-> sv-16 next-mesh)) (-> sv-16 next-poly)) + ) + ) + ) + ) + ) + (cond + ((and (-> sv-16 next-poly) (-> sv-16 next-mesh) (not (logtest? (-> sv-16 next-poly pat) (-> sv-16 ignore)))) + (set! (-> sv-16 current-mesh) (-> sv-16 next-mesh)) + (set! (-> sv-16 current-poly) (-> sv-16 next-poly)) + ) + (else + (set! (-> sv-16 last-edge) sv-24) + (if (-> sv-16 next-poly) + (set! (-> sv-16 hit-gap) #t) + (set! (-> sv-16 hit-boundary) #t) + ) + (set! (-> sv-16 terminated) #t) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + ) + +(defun-debug nav-sphere-from-cam () + (let ((v1-0 (camera-pos))) + (format #t "SPHEREM(~4,,1M, ~4,,1M, ~4,,1M, 1.0)~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) + ) + 0 + (none) + ) diff --git a/goal_src/jakx/engine/nav/nav-mesh.gc b/goal_src/jakx/engine/nav/nav-mesh.gc index 15d7bbabd8..6e06fd2cfa 100644 --- a/goal_src/jakx/engine/nav/nav-mesh.gc +++ b/goal_src/jakx/engine/nav/nav-mesh.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jakx/engine/net/net-eco-h.gc b/goal_src/jakx/engine/net/net-eco-h.gc index b870b6ea13..558f83a458 100644 --- a/goal_src/jakx/engine/net/net-eco-h.gc +++ b/goal_src/jakx/engine/net/net-eco-h.gc @@ -7,3 +7,81 @@ ;; DECOMP BEGINS +(deftype eco-perm (structure) + ((time int32) + (owner int8) + (hit-by-local int8) + (flags uint64) + ) + ) + + +(deftype eco (process-drawable) + () + (:methods + (eco-method-50 () none) + (eco-method-51 () none) + (eco-method-52 () none) + (eco-method-53 () none) + (eco-method-54 () none) + (eco-method-55 () none) + ) + ) + + +(deftype eco-mgr (process-nettable) + () + (:methods + (eco-mgr-method-42 () none) + (eco-mgr-method-43 () none) + (eco-mgr-method-44 () none) + (eco-mgr-method-45 () none) + (eco-mgr-method-46 () none) + (eco-mgr-method-47 () none) + (eco-mgr-method-48 () none) + (eco-mgr-method-49 () none) + (eco-mgr-method-50 () none) + ) + ) + + +(defbehavior eco-mgr-init-remote eco-mgr ((arg0 process)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self (the-as int arg0)) + (process-nettable-method-36 self) + 0 + (none) + ) + +(defmethod process-nettable-method-41 ((this eco-mgr) (arg0 int)) + (ppointer->process (process-spawn eco-mgr :init eco-mgr-init-remote arg0 :name "eco-mgr")) + ) + +(defmethod process-nettable-method-37 ((this eco-mgr) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'req-owner) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'set-owner) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'collected) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'respawn) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +(define *msg-map-eco-mgr* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +(define *net-process-class-info-eco-mgr* (new 'static 'net-process-class-info)) + +(set! (-> *net-process-class-info-eco-mgr* msg-map) *msg-map-eco-mgr*) + +(write-msg-map-rec eco-mgr *net-process-class-info-eco-mgr*) + +(set! (-> *net-process-class-info-eco-mgr* owner-type) eco-mgr) + +(net-process-class-register *net-process-class-info-eco-mgr*) + +(defmethod process-nettable-method-40 ((this eco-mgr)) + *net-process-class-info-eco-mgr* + ) diff --git a/goal_src/jakx/engine/net/net-logging-h.gc b/goal_src/jakx/engine/net/net-logging-h.gc index 47cff2c7d3..4e29aa5838 100644 --- a/goal_src/jakx/engine/net/net-logging-h.gc +++ b/goal_src/jakx/engine/net/net-logging-h.gc @@ -7,3 +7,16 @@ ;; DECOMP BEGINS +(deftype net-log-event-header (structure) + ((length uint16) + (type uint8) + (pad int8) + (time int32) + (id int32) + ) + ) + + +(define *net-log-tmp-header* (new 'static 'net-log-event-header)) + +(define *comment-string* (new 'global 'string 200 "")) diff --git a/goal_src/jakx/engine/net/net-mgr-h.gc b/goal_src/jakx/engine/net/net-mgr-h.gc index a66a4f0fe1..7502496554 100644 --- a/goal_src/jakx/engine/net/net-mgr-h.gc +++ b/goal_src/jakx/engine/net/net-mgr-h.gc @@ -7,3 +7,123 @@ ;; DECOMP BEGINS +(deftype net-aux-msg-handler (structure) + ((handler-func basic :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) + +(deftype net-mgr-game-state (structure) + ((connect-handle basic :offset-assert 0) + (local-machine-idx int32 :offset-assert 4) + (session-master-idx int32 :offset-assert 8) + (host-idx int32 :offset-assert 12) + (connected-bitfield int32 :offset-assert 16) + (time int32 :offset-assert 20) + (first-time-host basic :offset-assert 24) + (locked basic :offset-assert 28) + (kicked basic :offset-assert 32) + (sm-eligible basic :offset-assert 36) + ) + :pack-me + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ;; field connect-handle uses ~A with a signed load. + ) + +(deftype net-mgr-lobby-state (structure) + ((connect-handle basic :offset-assert 0) + (connect-handle-mgcl basic :offset-assert 4) + (connect-handle-muis basic :offset-assert 8) + (my-account-id int32 :offset-assert 12) + (channel-id int32 :offset-assert 16) + (in-special-channel basic :offset-assert 20) + (last-normal-channel-id int32 :offset-assert 24) + (created-game-id int32 :offset-assert 28) + (joined-game-id int32 :offset-assert 32) + (channel-list-valid basic :offset-assert 36) + (last-medius-error int32 :offset-assert 40) + (last-mgcl-error int32 :offset-assert 44) + (last-dme-error int32 :offset-assert 48) + (callback-occurred basic :offset-assert 52) + (callback-status int32 :offset-assert 56) + (callback-userdata basic :offset-assert 60) + (timeout basic :offset-assert 64) + (got-error basic :offset-assert 68) + (last-report-time int32 :offset-assert 72) + (game-on-me uint64 :offset-assert 80) + (game-on-me-error-delay int32 :offset-assert 88) + ) + :pack-me + :method-count-assert 9 + :size-assert #x5c + :flag-assert #x90000005c + ;; field connect-handle uses ~A with a signed load. field connect-handle-mgcl uses ~A with a signed load. field connect-handle-muis uses ~A with a signed load. field callback-userdata uses ~A with a signed load. + ) + +(deftype net-mgr (process) + ((game-type uint8 :offset-assert 144) + (last-game-type uint8 :offset-assert 145) + (notify basic :offset-assert 148) + (game-state net-mgr-game-state :inline :offset-assert 152) + (lobby-state net-mgr-lobby-state :inline :offset-assert 192) + (scert-initted basic :offset-assert 284) + (auto-register basic :offset-assert 288) + (skip-policy basic :offset-assert 292) + ) + :method-count-assert 60 + :size-assert #x128 + :flag-assert #x3c00a00128 + (:methods + (net-mgr-method-15 () none) ;; 15 + (net-mgr-method-16 () none) ;; 16 + (net-mgr-method-17 () none) ;; 17 + (net-mgr-method-18 () none) ;; 18 + (net-mgr-method-19 () none) ;; 19 + (net-mgr-method-20 () none) ;; 20 + (net-mgr-method-21 () none) ;; 21 + (net-mgr-method-22 () none) ;; 22 + (net-mgr-method-23 () none) ;; 23 + (net-mgr-method-24 () none) ;; 24 + (net-mgr-method-25 () none) ;; 25 + (net-mgr-method-26 () none) ;; 26 + (net-mgr-method-27 () none) ;; 27 + (net-mgr-method-28 () none) ;; 28 + (net-mgr-method-29 () none) ;; 29 + (net-mgr-method-30 () none) ;; 30 + (net-mgr-method-31 () none) ;; 31 + (net-mgr-method-32 () none) ;; 32 + (net-mgr-method-33 () none) ;; 33 + (net-mgr-method-34 () none) ;; 34 + (net-mgr-method-35 () none) ;; 35 + (net-mgr-method-36 () none) ;; 36 + (net-mgr-method-37 () none) ;; 37 + (net-mgr-method-38 () none) ;; 38 + (net-mgr-method-39 () none) ;; 39 + (net-mgr-method-40 () none) ;; 40 + (net-mgr-method-41 () none) ;; 41 + (net-mgr-method-42 () none) ;; 42 + (net-mgr-method-43 () none) ;; 43 + (net-mgr-method-44 () none) ;; 44 + (net-mgr-method-45 () none) ;; 45 + (net-mgr-method-46 () none) ;; 46 + (net-mgr-method-47 () none) ;; 47 + (net-mgr-method-48 () none) ;; 48 + (net-mgr-method-49 () none) ;; 49 + (net-mgr-method-50 () none) ;; 50 + (net-mgr-method-51 () none) ;; 51 + (net-mgr-method-52 () none) ;; 52 + (net-mgr-method-53 () none) ;; 53 + (net-mgr-method-54 () none) ;; 54 + (net-mgr-method-55 () none) ;; 55 + (net-mgr-method-56 () none) ;; 56 + (net-mgr-method-57 () none) ;; 57 + (net-mgr-method-58 () none) ;; 58 + (net-mgr-method-59 () none) ;; 59 + ) + ) + +(define-extern *net-mgr* net-mgr) \ No newline at end of file diff --git a/goal_src/jakx/engine/net/net-mgr-medius-cache-h.gc b/goal_src/jakx/engine/net/net-mgr-medius-cache-h.gc index d15e2ac745..6935461065 100644 --- a/goal_src/jakx/engine/net/net-mgr-medius-cache-h.gc +++ b/goal_src/jakx/engine/net/net-mgr-medius-cache-h.gc @@ -7,3 +7,63 @@ ;; DECOMP BEGINS +(deftype medius-cached-info (basic) + ((medius-id int32) + (accessed-time int32) + (fetched-time int32) + (status uint64) + ) + (:methods + (medius-cached-info-method-9 () none) + (medius-cached-info-method-10 () none) + (medius-cached-info-method-11 () none) + ) + ) + + +(deftype medius-cache (basic) + ((objects (array medius-cached-info)) + ) + (:methods + (medius-cache-method-9 () none) + (medius-cache-method-10 () none) + (medius-cache-method-11 () none) + (clear-objects! (_type_) none) + (medius-cache-method-13 () none) + (medius-cache-method-14 () none) + ) + ) + + +(deftype medius-cache-index (structure) + ((id int32) + ) + (:methods + (medius-cache-index-method-9 () none) + (medius-cache-index-method-10 () none) + ) + ) + + +(deftype medius-cache-index-array (structure) + ((ct int32) + (max-ct int32) + (data medius-cache :dynamic) + ) + (:methods + (medius-cache-index-array-method-9 () none) + (medius-cache-index-array-method-10 () none) + (medius-cache-index-array-method-11 () none) + (medius-cache-index-array-method-12 () none) + ) + ) + + +(defmethod clear-objects! ((this medius-cache)) + (dotimes (v1-0 (-> this objects length)) + (set! (-> this objects v1-0 medius-id) -1) + (set! (-> this objects v1-0 status) (the-as uint 0)) + ) + 0 + (none) + ) diff --git a/goal_src/jakx/engine/net/net-player-h.gc b/goal_src/jakx/engine/net/net-player-h.gc index c8d6ef659f..b42e008045 100644 --- a/goal_src/jakx/engine/net/net-player-h.gc +++ b/goal_src/jakx/engine/net/net-player-h.gc @@ -7,3 +7,190 @@ ;; DECOMP BEGINS +(deftype net-player-respawn-info (structure) + ((position vector :inline) + (quat quaternion :inline) + (velocity vector :inline) + (want-count int8) + (want uint32) + ) + (:methods + (net-player-respawn-info-method-9 () none) + (net-player-respawn-info-method-10 () none) + ) + ) + + +(deftype net-player (process-nettable) + ((last-known-pos vector :inline) + (last-known-pos-valid basic) + (mgr basic) + (vehicle uint64) + (rev-mgr uint64) + (pad1 uint32) + (score int32) + (player-num int8) + (team uint8) + (color uint32) + (font-color uint8) + (multiplier int8) + (death-indicator-1 uint64) + (death-indicator-2 uint64) + (wpn-left-type uint8) + (wpn-right-type uint8) + (wpn-left-ammo uint8) + (wpn-right-ammo uint8) + (turbo-qty uint8) + (dark-eco uint8) + (health uint8) + (last-weapon-provision float) + (top-speed float) + (player-id int8) + (flags uint8) + (rank int8) + (human-rank int8) + (next-spawn-time uint64) + (state-time uint64) + (vehicle-impact-callback basic) + (spawn-count int32) + (speech-id uint8) + (last-speech-time uint64) + (best-power-slide float) + (best-hang-time int32) + (display-score int32) + (kills int32) + (deaths int32) + (last-spawn-time uint64) + (dead-camera-pos-valid basic) + (dead-camera-pos vector :inline) + ) + (:methods + (net-player-method-42 () none) + (net-player-method-43 () none) + (net-player-method-44 () none) + (net-player-method-45 () none) + (net-player-method-46 () none) + (net-player-method-47 () none) + (net-player-method-48 () none) + (net-player-method-49 () none) + (net-player-method-50 () none) + (net-player-method-51 () none) + (net-player-method-52 () none) + (net-player-method-53 () none) + (net-player-method-54 () none) + (net-player-method-55 () none) + (net-player-method-56 () none) + (net-player-method-57 () none) + (net-player-method-58 () none) + (net-player-method-59 () none) + (net-player-method-60 () none) + (net-player-method-61 () none) + (net-player-method-62 () none) + (net-player-method-63 () none) + (net-player-method-64 () none) + (net-player-method-65 () none) + (net-player-method-66 () none) + (net-player-method-67 () none) + (net-player-method-68 () none) + (net-player-method-69 () none) + (net-player-method-70 () none) + (net-player-method-71 () none) + (net-player-method-72 () none) + (net-player-method-73 () none) + (net-player-method-74 () none) + (net-player-method-75 () none) + (net-player-method-76 () none) + (net-player-method-77 () none) + (net-player-method-78 () none) + (net-player-method-79 () none) + (net-player-method-80 () none) + (net-player-method-81 () none) + (net-player-method-82 () none) + (net-player-method-83 () none) + (net-player-method-84 () none) + (net-player-method-85 () none) + (net-player-method-86 () none) + (net-player-method-87 () none) + (net-player-method-88 () none) + (net-player-method-89 () none) + (net-player-method-90 () none) + (net-player-method-91 () none) + (net-player-method-92 () none) + (net-player-method-93 () none) + (net-player-method-94 () none) + (net-player-method-95 () none) + (net-player-method-96 () none) + (net-player-method-97 () none) + ) + ) + + +(defbehavior net-player-init-remote net-player ((arg0 process)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self (the-as int arg0)) + (process-nettable-method-36 self) + 0 + (none) + ) + +(defmethod process-nettable-method-41 ((this net-player) (arg0 int)) + (ppointer->process (process-spawn net-player :init net-player-init-remote arg0 :name "net-player")) + ) + +(defmethod process-nettable-method-37 ((this net-player) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'score-changed) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'stats-changed) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +(define *msg-map-net-player* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +(define *net-process-class-info-net-player* (new 'static 'net-process-class-info)) + +(set! (-> *net-process-class-info-net-player* msg-map) *msg-map-net-player*) + +(write-msg-map-rec net-player *net-process-class-info-net-player*) + +(set! (-> *net-process-class-info-net-player* owner-type) net-player) + +(net-process-class-register *net-process-class-info-net-player*) + +(defmethod process-nettable-method-40 ((this net-player)) + *net-process-class-info-net-player* + ) + +(define *net-players* + (the-as (array symbol) (new 'static 'boxed-array :type net-player :length 0 :allocated-length 24)) + ) + +(define *active-net-player-count* 0) + +(define *active-net-players* (new 'static 'boxed-array :type net-player :length 0 :allocated-length 24)) + +(define *active-net-non-spectator-count* 0) + +(define *active-net-non-spectators* + (new 'static 'boxed-array :type net-player :length 0 :allocated-length 24) + ) + +(define *team-colors* (the-as (pointer uint8) (new 'static 'array rgba 8 + (new 'static 'rgba :r #xff :a #x80) + (new 'static 'rgba :b #xff :a #x80) + (new 'static 'rgba :g #xff :a #x80) + (new 'static 'rgba :g #xde :b #xde :a #x80) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + (new 'static 'rgba :r #x80 :g #x80 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +(define *team-font-colors* + (the-as (pointer font-color) + (new 'static 'array uint8 16 #x3 #x7 #x6 #x49 #x1 #x4 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + ) diff --git a/goal_src/jakx/engine/net/net-projectile-h.gc b/goal_src/jakx/engine/net/net-projectile-h.gc index 0963be7c28..b94b9fa34d 100644 --- a/goal_src/jakx/engine/net/net-projectile-h.gc +++ b/goal_src/jakx/engine/net/net-projectile-h.gc @@ -5,5 +5,87 @@ ;; name in dgo: net-projectile-h ;; dgos: ENGINE, GAME +(declare-type net-projectile projectile) +(define-extern net-projectile-init-by-other (function process none :behavior net-projectile)) + ;; DECOMP BEGINS +(deftype net-projectile (projectile) + () + (:methods + (net-projectile-method-72 () none) + (net-projectile-method-73 () none) + (net-projectile-method-74 () none) + ) + ) + + +(defbehavior net-projectile-init-remote net-projectile ((arg0 process)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self (the-as int arg0)) + (process-nettable-method-36 self) + 0 + (none) + ) + +(defmethod process-nettable-method-41 ((this net-projectile) (arg0 int)) + (ppointer->process + (process-spawn net-projectile :init net-projectile-init-remote arg0 :name "net-projectile") + ) + ) + +(defmethod process-nettable-method-37 ((this net-projectile) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'force-position) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'force-retarget) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +(define *msg-map-net-projectile* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +(define *net-process-class-info-net-projectile* (new 'static 'net-process-class-info)) + +(set! (-> *net-process-class-info-net-projectile* msg-map) *msg-map-net-projectile*) + +(write-msg-map-rec net-projectile *net-process-class-info-net-projectile*) + +(set! (-> *net-process-class-info-net-projectile* owner-type) net-projectile) + +(net-process-class-register *net-process-class-info-net-projectile*) + +(defmethod process-nettable-method-40 ((this net-projectile)) + *net-process-class-info-net-projectile* + ) + +(defun spawn-net-projectile ((arg0 type) (arg1 projectile-init-by-other-params) (arg2 process-tree) (arg3 dead-pool)) + (let ((s5-0 (get-process arg3 arg0 #x4000 1))) + (when s5-0 + (let ((t9-1 (method-of-type process activate))) + (t9-1 s5-0 arg2 "net-projectile" (the-as pointer #x70004000)) + ) + (let ((t9-2 run-function-in-process) + (a0-3 s5-0) + (a1-4 net-projectile-init-by-other) + ) + (- (- (if *net-mgr* + (-> *net-mgr* game-state time) + 0 + ) + (if *net-world* + (-> *net-world* net-state game-start-time) + 0 + ) + ) + (if *net-world* + (-> *net-world* net-state total-pause-time) + 0 + ) + ) + ((the-as (function object object object none) t9-2) a0-3 a1-4 arg1) + ) + (-> s5-0 ppointer) + ) + ) + ) diff --git a/goal_src/jakx/engine/net/net-projectile.gc b/goal_src/jakx/engine/net/net-projectile.gc index 460fdaf91b..1d426a5b04 100644 --- a/goal_src/jakx/engine/net/net-projectile.gc +++ b/goal_src/jakx/engine/net/net-projectile.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jakx/engine/net/net-proxy-h.gc b/goal_src/jakx/engine/net/net-proxy-h.gc index 07ecac55b4..f55bcc1ad4 100644 --- a/goal_src/jakx/engine/net/net-proxy-h.gc +++ b/goal_src/jakx/engine/net/net-proxy-h.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jakx/engine/net/net-util-h.gc b/goal_src/jakx/engine/net/net-util-h.gc index 84f7387264..1aeb62d911 100644 --- a/goal_src/jakx/engine/net/net-util-h.gc +++ b/goal_src/jakx/engine/net/net-util-h.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jakx/engine/net/net-world-h.gc b/goal_src/jakx/engine/net/net-world-h.gc index 5d6fcfaf3f..eb907e7dac 100644 --- a/goal_src/jakx/engine/net/net-world-h.gc +++ b/goal_src/jakx/engine/net/net-world-h.gc @@ -7,3 +7,143 @@ ;; DECOMP BEGINS +(deftype vehicle-load-parts (uint64) + ( + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype net-world-game-options (structure) + ((advanced-options game-task-advanced-options :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype net-world-staging-player (structure) + ((vehicle-load-parts vehicle-load-parts :offset-assert 0) + (vehicle-tuning-info uint32 :offset-assert 8) + (vehicle-selection int8 :offset-assert 12) + (desired-driver-selection int8 :offset-assert 13) + (flags uint8 :offset-assert 14) + (team-id uint8 :offset-assert 15) + (player-num int8 :offset-assert 16) + (base-color uint32 :offset-assert 20) + (stripe-color uint32 :offset-assert 24) + (skill-level int32 :offset-assert 28) + ) + :pack-me + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + (:methods + (net-world-staging-player-method-9 () none) ;; 9 + ) + ) + +(deftype green-room-stats (structure) + ((intro-end-time int32 :offset-assert 0) + (scheduled-finish-time int32 :offset-assert 4) + (scores uint16 6 :offset-assert 8) + (laps uint8 6 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x1a + :flag-assert #x90000001a + ) + +(deftype net-world-state (structure) + ((players net-world-staging-player 24 :inline :offset-assert 0) + (assigned-drivers uint8 24 :offset-assert 768) + (game-creator-ip uint32 :offset-assert 792) + (game-creation-time uint32 :offset-assert 796) + (game-start-time int32 :offset-assert 800) + (total-pause-time int32 :offset-assert 804) + (task-node-name uint8 32 :offset-assert 808) + (player-ready-flags uint8 :offset-assert 840) + (flags int8 :offset-assert 841) + (max-humans int8 :offset-assert 842) + (buddy-slots int8 :offset-assert 843) + (clan-slots int8 :offset-assert 844) + (ai-slots int8 :offset-assert 845) + (vehicle-class int8 :offset-assert 846) + (options net-world-game-options :inline :offset-assert 848) + (clan-ids uint32 2 :offset-assert 856) + (green-room-stats green-room-stats :inline :offset-assert 864) + (time-of-day int8 :offset-assert 890) + ) + :method-count-assert 9 + :size-assert #x37b + :flag-assert #x90000037b + ) + +(deftype net-world (process-nettable) + ((net-state net-world-state :inline :offset-assert 192) + (is-late-join basic :offset-assert 1084) + (need-start-load basic :offset-assert 1088) + (current-garage-player int32 :offset-assert 1092) + (current-garage-spare-slot int32 :offset-assert 1096) + (cont basic :offset-assert 1100) + (task uint8 :offset-assert 1104) + (task-node uint16 :offset-assert 1106) + (task-info basic :offset-assert 1108) + (task-node-info basic :offset-assert 1112) + (player-to-vehicle-slot-map uint8 24 :offset-assert 1116) + (vehicle-slot-to-player-map uint8 6 :offset-assert 1140) + ) + :method-count-assert 87 + :size-assert #x47a + :flag-assert #x5703f0047a + (:methods + (net-world-method-42 () none) ;; 42 + (net-world-method-43 () none) ;; 43 + (net-world-method-44 () none) ;; 44 + (net-world-method-45 () none) ;; 45 + (net-world-method-46 () none) ;; 46 + (net-world-method-47 () none) ;; 47 + (net-world-method-48 () none) ;; 48 + (net-world-method-49 () none) ;; 49 + (net-world-method-50 () none) ;; 50 + (net-world-method-51 () none) ;; 51 + (net-world-method-52 () none) ;; 52 + (net-world-method-53 () none) ;; 53 + (net-world-method-54 () none) ;; 54 + (net-world-method-55 () none) ;; 55 + (net-world-method-56 () none) ;; 56 + (net-world-method-57 () none) ;; 57 + (net-world-method-58 () none) ;; 58 + (net-world-method-59 () none) ;; 59 + (net-world-method-60 () none) ;; 60 + (net-world-method-61 () none) ;; 61 + (net-world-method-62 () none) ;; 62 + (net-world-method-63 () none) ;; 63 + (net-world-method-64 () none) ;; 64 + (net-world-method-65 () none) ;; 65 + (net-world-method-66 () none) ;; 66 + (net-world-method-67 () none) ;; 67 + (net-world-method-68 () none) ;; 68 + (net-world-method-69 () none) ;; 69 + (net-world-method-70 () none) ;; 70 + (net-world-method-71 () none) ;; 71 + (net-world-method-72 () none) ;; 72 + (net-world-method-73 () none) ;; 73 + (net-world-method-74 () none) ;; 74 + (net-world-method-75 () none) ;; 75 + (net-world-method-76 () none) ;; 76 + (net-world-method-77 () none) ;; 77 + (net-world-method-78 () none) ;; 78 + (net-world-method-79 () none) ;; 79 + (net-world-method-80 () none) ;; 80 + (net-world-method-81 () none) ;; 81 + (net-world-method-82 () none) ;; 82 + (net-world-method-83 () none) ;; 83 + (net-world-method-84 () none) ;; 84 + (net-world-method-85 () none) ;; 85 + (net-world-method-86 () none) ;; 86 + ) + ) + +(define-extern *net-world* net-world) \ No newline at end of file diff --git a/goal_src/jakx/engine/net/scert-10-h.gc b/goal_src/jakx/engine/net/scert-10-h.gc index 4a4fc4a8cd..c7c775025b 100644 --- a/goal_src/jakx/engine/net/scert-10-h.gc +++ b/goal_src/jakx/engine/net/scert-10-h.gc @@ -7,3 +7,458 @@ ;; DECOMP BEGINS +(deftype medius-file-download-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-download-response (structure) + ((data uint8 464) + (i-start-byte-index int32) + (i-data-size int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-download-stream-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-download-stream-response (structure) + ((data uint8 464) + (i-start-byte-index int32) + (i-data-size int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-delete-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-delete-response (structure) + ((status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-list-request (structure) + ((filename-begins-with uint8 128) + (filesize-greater-than uint32) + (filesize-less-than uint32) + (owned-by-id uint32) + (newer-than-timestamp uint32) + (starting-entry-number uint32) + (page-size uint32) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-list-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + (end-of-list int8) + ) + ) + + +(deftype medius-file-update-attributes-request (structure) + ((medius-file-info medius-file :inline) + (medius-file-updated-attributes medius-file-attributes :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-update-attributes-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-get-attributes-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-get-attributes-response (structure) + ((medius-file-info medius-file :inline) + (medius-file-attributes-response medius-file-attributes :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-update-meta-data-request (structure) + ((medius-file-info medius-file :inline) + (medius-update-meta-data medius-file-meta-data :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-update-meta-data-responset (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-get-meta-data-request (structure) + ((medius-file-info medius-file :inline) + (medius-meta-data-requested-key medius-file-meta-data :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-get-meta-data-response (structure) + ((medius-file-info medius-file :inline) + (medius-meta-data-response medius-file-meta-data :inline) + (status-code medius-status-code) + (message-id uint8 21) + (end-of-list int8) + ) + ) + + +(deftype medius-file-search-by-meta-data-request (structure) + ((medius-meta-data-requested-key medius-file-meta-data :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-search-by-meta-data-response (structure) + ((medius-file-info medius-file :inline) + (medius-meta-data-response medius-file-meta-data :inline) + (status-code medius-status-code) + (message-id uint8 21) + (end-of-list int8) + ) + ) + + +(deftype medius-file-cancel-operation-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-cancel-operation-response (structure) + ((status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-server-authentication-request (structure) + ((message-id uint8 21) + (trust-level int32) + (address-list net-address-list :inline) + ) + ) + + +(deftype medius-server-authentication-response (structure) + ((message-id uint8 21) + (confirmation int8) + (connect-info net-connection-info :inline) + ) + ) + + +(deftype medius-server-set-attributes-request (structure) + ((message-id uint8 21) + (attributes int32) + (listen-server-address net-address :inline) + ) + ) + + +(deftype medius-server-set-attributes-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + + +(deftype medius-server-create-game-on-me-request (structure) + ((message-id uint8 21) + (game-name uint8 64) + (game-stats uint8 256) + (game-password uint8 32) + (application-id int32) + (max-clients int32) + (min-clients int32) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (game-host-type int32) + (address-list net-address-list :inline) + (world-id int32) + (account-id int32) + ) + ) + + +(deftype medius-server-create-game-on-me-response (structure) + ((message-id uint8 21) + (confirmation int8) + (medius-world-id int32) + ) + ) + + +(deftype medius-server-create-game-request (structure) + ((message-id uint8 21) + (application-id int32) + (max-clients int32) + ) + ) + + +(deftype medius-server-create-game-response (structure) + ((message-id uint8 21) + (confirmation int8) + (world-id int32) + ) + ) + + +(deftype medius-server-create-game-with-attributes-request (structure) + ((message-id uint8 21) + (application-id int32) + (max-clients int32) + (attributes int32) + (medius-world-uid uint32) + ) + ) + + +(deftype medius-server-create-game-with-attributes-response (structure) + ((message-id uint8 21) + (confirmation int8) + (world-id int32) + ) + ) + + +(deftype medius-server-end-game-on-me-request (structure) + ((message-id uint8 21) + (medius-world-id int32) + ) + ) + + +(deftype medius-server-end-game-on-me-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + + +(deftype medius-server-end-game-request (structure) + ((message-id uint8 21) + (world-id int32) + (brutal-flag int8) + ) + ) + + +(deftype medius-server-end-game-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + + +(deftype medius-server-join-game-request (structure) + ((message-id uint8 21) + (connect-info net-connection-info :inline) + ) + ) + + +(deftype medius-server-join-game-response (structure) + ((message-id uint8 21) + (confirmation int8) + (access-key uint8 17) + (pub-key rsa-key :inline) + ) + ) + + +(deftype medius-server-move-game-world-on-me-request (structure) + ((message-id uint8 21) + (current-medius-world-id int32) + (new-game-world-id int32) + (address-list net-address-list :inline) + ) + ) + + +(deftype medius-server-move-game-world-on-me-response (structure) + ((message-id uint8 21) + (confirmation int8) + (medius-world-id int32) + ) + ) + + +(deftype medius-server-report-type (structure) + ((session-key uint8 17) + (max-worlds int16) + (max-players-per-world int16) + (active-world-count int16) + (total-active-players int16) + (alert-level int32) + ) + ) + + +(deftype medius-server-session-begin-request (structure) + ((message-id uint8 21) + (location-id int32) + (application-id int32) + (server-type int32) + (server-version uint8 16) + (port int32) + ) + ) + + +(deftype medius-server-session-begin-response (structure) + ((message-id uint8 21) + (confirmation int8) + (connect-info net-connection-info :inline) + ) + ) + + +(deftype medius-server-session-end-request (structure) + ((message-id uint8 21) + ) + ) + + +(deftype medius-server-session-end-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + + +(deftype medius-server-world-report-on-me (structure) + ((message-id uint8 21) + (game-name uint8 64) + (game-stats uint8 256) + (game-password uint8 32) + (application-id int32) + (max-clients int32) + (min-clients int32) + (player-count int32) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (medius-world-id int32) + (world-status int32) + ) + ) + + +(deftype medius-server-world-status-request (structure) + ((message-id uint8 21) + (world-id int32) + ) + ) + + +(deftype medius-server-world-status-response (structure) + ((message-id uint8 21) + (application-id int32) + (max-clients int32) + (active-clients int32) + (confirmation int8) + ) + ) + + +(deftype medius-server-connect-games-request (structure) + ((message-id uint8 21) + (server-ip uint8 20) + (server-port int32) + (game-world-id int32) + (spectator-world-id int32) + ) + ) + + +(deftype medius-server-connect-games-response (structure) + ((message-id uint8 21) + (game-world-id int32) + (spectator-world-id int32) + (confirmation int8) + ) + ) + + +(deftype medius-server-connect-notification-type (structure) + ((connect-event-type int32) + (medius-world-uid uint32) + (player-session-key uint8 17) + ) + ) + + +(deftype mgclconnect-in-params (structure) + ((connection-info net-connection-info :inline) + (pf-connect-callback basic) + ) + ) + + +(deftype mgclconnect-out-params (structure) + ((error-code int32) + ) + ) + + +(deftype mgcldisconnect-params (structure) + ((connection-handle basic) + (disconnect-reason int32) + (my-disconnect-callback basic) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-11-h.gc b/goal_src/jakx/engine/net/scert-11-h.gc index e18e3f2fef..37ade210ac 100644 --- a/goal_src/jakx/engine/net/scert-11-h.gc +++ b/goal_src/jakx/engine/net/scert-11-h.gc @@ -7,3 +7,157 @@ ;; DECOMP BEGINS +(deftype mgclinitialize-in-params (structure) + ((p-local-key-pair rsa-keypair) + (status int32) + (my-server-create-game-callback basic) + (my-server-create-game-callback-user-data basic) + (my-server-create-game-with-attributes-callback basic) + (my-server-create-game-with-attributes-user-data basic) + (my-server-join-game-callback basic) + (my-server-join-game-callback-user-data basic) + (my-server-end-game-callback basic) + (my-server-end-game-callback-user-data basic) + (my-server-world-status-callback basic) + (my-server-world-status-callback-user-data basic) + (my-server-connect-games-callback basic) + (my-server-connect-games-user-data basic) + (max-clients-per-connection int32) + (application-id int32) + (p-application-key-pair rsa-keypair) + ) + ) + + +(deftype mgclinitialize-out-params (structure) + ((error-code int32) + ) + ) + + +(deftype net-lanpeer-desc (structure) + ((dme-version net-dme-version :inline) + (net-platform-id int32) + (application-id int32) + (peer-address net-address :inline) + (localization net-localization-params :inline) + (application-name uint8 72) + (user-name uint8 32) + ) + :pack-me + ) + + +(deftype net-initialize-in-params (structure) + ((b-default-set int32) + (localization net-localization-params :inline) + (application-id int32) + (application-name uint8 72) + (p-local-key-pair rsa-keypair) + (p-application-key-pair rsa-keypair) + (connectivity-type int32) + (udp-bind-port int32) + (upn-pmemory-ceiling int32) + (b-enable-lanbroadcast-comms int32) + (pf-system-message-callback basic) + (p-system-message-callback-data basic) + ) + ) + + +(deftype net-host-peer-to-peer-in-params (structure) + ((b-default-set int32) + (pf-local-connect-callback basic) + (p-local-connect-callback-data basic) + (pf-local-disconnect-callback basic) + (p-local-disconnect-callback-data basic) + (pf-remote-client-connect-callback basic) + (p-remote-client-connect-callback-data basic) + (pf-remote-client-disconnect-callback basic) + (p-remote-client-disconnect-callback-data basic) + (pf-system-status-callback basic) + (p-system-status-callback-data basic) + (max-clients uint32) + (stream-media-params net-stream-media-params :inline) + (user-specified int32) + (b-enab-disconnect-fwd int32) + (token-params net-token-params :inline) + (b-use-time-base int32) + (send-buffer-size uint32) + (recv-buffer-size uint32) + ) + ) + + +(deftype net-resolve-addr-data (structure) + ((b-is-set int32) + (error-code int32) + (address-list net-address-list :inline) + ) + ) + + +(deftype net-resolve-addr-in-params (structure) + ((b-default-set int32) + (pf-resolve-addr-callback basic) + (nat-service-address net-address :inline) + ) + ) + + +(deftype net-incoming-client-in-params (structure) + ((b-default-set int32) + (incoming-address-list net-address-list :inline) + (pub-key rsa-key :inline) + ) + ) + + +(deftype net-type-broadcast-schedule (structure) + ((min-update-interval uint32) + (error-threshold-type int32) + (threshold-data anonymous-0 :inline) + (transport-flags int8) + ) + ) + + +(deftype net-type-field (structure) + ((offset int32) + (element-size int32) + (element-count int32) + (e-type int32) + (update-schedule net-type-broadcast-schedule :inline) + ) + ) + + +(deftype net-type-structure (structure) + ((total-size int32) + (field-count int32) + (name uint8 32) + (child-field-type uint32 64) + (child-field-offset uint32 64) + ) + ) + + +(deftype net-lanfind-exchange-callback-in-args (structure) + ((connection-handle basic) + (session-type int32) + (peer-desc net-lanpeer-desc :inline) + (details net-data :inline) + (p-user-data basic) + ) + ) + + +(deftype net-lanfind-callback-data-args (structure) + ((n-num-clients int16) + (n-max-num-clients int16) + (session-type int32) + (peer-desc net-lanpeer-desc :inline) + (details net-data :inline) + (p-user-data basic) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-3-h.gc b/goal_src/jakx/engine/net/scert-3-h.gc index bf9042af4b..7662c63b32 100644 --- a/goal_src/jakx/engine/net/scert-3-h.gc +++ b/goal_src/jakx/engine/net/scert-3-h.gc @@ -5,5 +5,527 @@ ;; name in dgo: scert-3-h ;; dgos: ENGINE, GAME +;; +++net-error +(defenum net-error + :type int32 + (net-error-none 0) + (net-error-not-connected 1) + (net-error-connection-lost 2) + (net-error-connection-failed 3) + (net-error-client-rejected 4) + (net-error-disconnect-failed 5) + (net-error-new-client 6) + (net-error-bad-session-master 7) + (net-error-bad-index 8) + (net-error-bad-data-stream-channel 9) + (net-error-bad-pointer 10) + (net-error-object-not-shared 11) + (net-error-bad-packet-received 12) + (net-error-send-failed 13) + (net-error-timed-out 14) + (net-error-bad-connection-index 15) + (net-error-bad-mode 16) + (net-error-dme-not-initialized 17) + (net-error-init-failed 18) + (net-error-no-free-object 19) + (net-error-open-data-stream-failed 20) + (net-error-client-not-valid 21) + (net-error-memory 22) + (net-error-invalid-arg 23) + (net-error-msg-error 24) + (net-error-too-many-pending-events 25) + (net-error-udpnot-enabled 26) + (net-error-update 27) + (net-error-game-is-full 28) + (net-error-host-game-failed 29) + (net-error-unknown 30) + (net-error-msg-too-large 31) + (net-error-security 32) + (net-error-not-implemented 33) + (net-error-bad-server-version 34) + (net-error-comm-error 35) + (net-error-buffer-error 36) + (net-error-udperror 37) + (net-error-set-defaults-not-called 38) + (net-error-sizeof-param-mismatch 39) + (net-error-deprecated 40) + (net-error-stream-media 41) + (net-error-stream-media-comm 42) + (net-error-mutex 43) + (net-error-server-error 44) + (net-error-hostname-error 45) + (net-error-lookup-error 46) + (net-error-timebase-error 47) + (net-error-token-not-enabled 48) + (net-error-token-error 49) + (net-error-bad-port 50) + (net-error-bad-connectivity-type 51) + (extra-net-error-code #xffffff) + ) +;; ---net-error + + ;; DECOMP BEGINS +(deftype net-localization-params (structure) + ((character-encoding-type int32) + (language-type int32) + ) + :pack-me + ) + + +(deftype net-memory-callback-params (structure) + ((pf-malloc-callback basic) + (pf-realloc-callback basic) + (pf-free-callback basic) + ) + ) + + +(deftype net-dme-version (structure) + ((n-version uint32) + (sz-version int8 16) + ) + :pack-me + ) + + +(deftype net-type-system-message-data (structure) + ((connection-handle basic) + (severity uint8) + (e-encoding-type int32) + (e-language-type int32) + (b-end-of-message uint8) + (n-message-length uint16) + (p-message uint32) + (p-user-data basic) + ) + ) + + +(deftype net-update-error (structure) + ((connection-handle basic) + (net-error int32) + ) + :pack-me + ) + + +(deftype net-update-conn-errors (structure) + ((sizeof-net-update-errors uint32) + (a-errors net-update-error 4 :inline) + (udperror net-error) + ) + ) + + +(deftype net-data (structure) + ((n-size int32) + (p-data basic) + ) + :pack-me + ) + + +(deftype net-initialize-out-params (structure) + ((b-is-set int32) + (error-code int32) + (sz-version int8 16) + ) + ) + + +(deftype net-connect-out-params (structure) + ((b-is-set int32) + (error-code int32) + (connection-handle basic) + ) + ) + + +(deftype net-host-peer-to-peer-out-params (structure) + ((b-is-set int32) + (error-code int32) + (connection-handle basic) + ) + ) + + +(deftype net-resolve-addr-out-params (structure) + ((b-is-set int32) + (error-code int32) + ) + ) + + +(deftype net-incoming-client-out-params (structure) + ((b-is-set int32) + (error-code int32) + ) + ) + + +(deftype net-client-metric (structure) + ((average-rate float) + (max-average-rate float) + ) + :pack-me + ) + + +(deftype net-bandwidth-info (structure) + ((sends net-client-metric :inline) + (send-bytes net-client-metric :inline) + (recvs net-client-metric :inline) + (recv-bytes net-client-metric :inline) + ) + ) + + +(deftype net-connection-status (structure) + ((my-connect-status int32) + (n-valid-client-count int32) + (n-connected-client-count int32) + ) + ) + + +(deftype sz-ipaddress (structure) + ((data uint8 16) + ) + ) + + +(deftype net-type-lookup-response (structure) + ((asz-ipaddresses sz-ipaddress 16 :inline) + (n-ipaddresses uint32) + (error-code int32) + ) + ) + + +(deftype net-type-lookup-params (structure) + ((sz-host-name uint8 256) + (sz-server-ip uint8 16) + (pf-lookup-response basic) + ) + ) + + +(deftype rsa-key (structure) + ((key uint32 16) + ) + :pack-me + ) + + +(deftype rsa-keypair (structure) + ((public-key rsa-key :inline) + (private-key rsa-key :inline) + ) + ) + + +(deftype net-type-connect-callback-data (structure) + ((connection-handle basic) + (connect-status int32) + (failure-reason int32) + (error-code int32) + (p-user-data basic) + ) + ) + + +(deftype net-type-client-connect-callback-data (structure) + ((connection-handle basic) + (client-index int32) + (client-ip-string uint32) + (client-status int32) + (user-specified int32) + (p-user-data basic) + ) + ) + + +(deftype net-peer-to-peer-host-change-data (structure) + ((connection-handle basic) + (host-client-index int32) + (p-user-data basic) + ) + ) + + +(deftype net-token-ownership-notify-data (structure) + ((connection-handle basic) + (token-id int32) + (owner-client-index int32) + (error-code int32) + (p-user-data basic) + ) + ) + + +(deftype net-token-params (structure) + ((pf-token-ownership-notify-callback basic) + (p-token-ownership-notify-callback-data basic) + (b-use-token int32) + ) + :pack-me + ) + + +(deftype net-system-status-data (structure) + ((connection-handle basic) + (status int32) + (error-code int32) + (p-user-data basic) + ) + ) + + +(deftype net-stream-media-audio-record-data (structure) + ((audio-type int32) + (p-buffer uint32) + (buf-size uint32) + (bytes-stored uint32) + (transport-flags int8) + (p-user-data basic) + ) + ) + + +(deftype net-stream-media-audio-play-data (structure) + ((audio-type int32) + (client-index int32) + (p-buffer uint32) + (buf-size uint32) + (bytes-read uint32) + (p-user-data basic) + ) + ) + + +(deftype net-audio-data-characteristics (structure) + ((n-channels-in int32) + (n-bits-per-sample-in int32) + (n-sample-rate-in int32) + (n-channels-out int32) + (n-bits-per-sample-out int32) + (n-sample-rate-out int32) + ) + :pack-me + ) + + +(deftype net-color-array (structure) + ((cb-size int32) + (line-size int32) + (xsize int32) + (ysize int32) + (data uint8 16) + ) + ) + + +(deftype net-stream-media-video-record-data (structure) + ((p-y net-color-array) + (p-cr net-color-array) + (p-cb net-color-array) + (b-data-stored int32) + (p-user-data basic) + ) + ) + + +(deftype net-rgbarray (structure) + ((cb-size int32) + (line-size int32) + (xsize int32) + (ysize int32) + (data uint32 16) + ) + ) + + +(deftype net-stream-media-video-play-data (structure) + ((client-index int32) + (p-rgbarray net-rgbarray) + (b-data-processed int32) + (p-user-data basic) + ) + ) + + +(deftype net-video-data-characteristics (structure) + ((xsize int32) + (ysize int32) + ) + :pack-me + ) + + +(deftype net-stream-media-custom-video-record-data (structure) + ((p-buffer uint32) + (n-buffer-size uint32) + (n-bytes-stored uint32) + (transport-flags int8) + (p-user-data basic) + ) + ) + + +(deftype net-stream-media-custom-video-play-data (structure) + ((client-index int32) + (p-buffer uint32) + (n-bytes-available uint32) + (n-bytes-processed uint32) + (p-user-data basic) + ) + ) + + +(deftype net-stream-media-params (structure) + ((b-default-set int32) + (b-use-stream-media int32) + (num-channels uint32) + (max-incoming-audio-streams uint32) + (record-no-data-timeout uint32) + (send-buffer-size uint32) + (recv-buffer-size uint32) + (grid-type int32) + (audio-data-characteristics net-audio-data-characteristics :inline) + (pf-audio-record-callback basic) + (p-audio-record-callback-data basic) + (pf-audio-play-callback basic) + (p-audio-play-callback-data basic) + (video-data-characteristics net-video-data-characteristics :inline) + (pf-video-record-callback basic) + (p-video-record-callback-data basic) + (pf-video-play-callback basic) + (p-video-play-callback-data basic) + (pf-custom-video-record-callback basic) + (p-custom-video-record-callback-data basic) + (pf-custom-video-play-callback basic) + (p-custom-video-play-callback-data basic) + ) + :pack-me + ) + + +(deftype net-address (structure) + ((address-type int32) + (address int8 16) + (port uint32) + ) + :pack-me + ) + + +(deftype net-address-list (structure) + ((a-address-list net-address 2 :inline) + ) + :pack-me + ) + + +(deftype net-connection-info (structure) + ((e-type int32) + (address-list net-address-list :inline) + (world-id int32) + (server-key rsa-key :inline) + (a-session-key uint8 17) + (a-access-key uint8 17) + ) + :pack-me + ) + + +(deftype net-connect-in-params (structure) + ((b-default-set int32) + (max-clients int32) + (connection-info net-connection-info :inline) + (pf-local-connect-callback basic) + (p-local-connect-callback-data basic) + (pf-local-disconnect-callback basic) + (p-local-disconnect-callback-data basic) + (pf-remote-client-connect-callback basic) + (p-remote-client-connect-callback-data basic) + (pf-remote-client-disconnect-callback basic) + (p-remote-client-disconnect-callback-data basic) + (pf-peer-to-peer-host-change-callback basic) + (p-host-change-callback-data basic) + (pf-system-status-callback basic) + (p-system-status-callback-data basic) + (stream-media-params net-stream-media-params :inline) + (user-specified int32) + (aux-udpbind-port int32) + (token-params net-token-params :inline) + (b-use-time-base int32) + (send-buffer-size uint32) + (recv-buffer-size uint32) + ) + ) + + +(deftype net-bit-mask (structure) + ((bitmask uint32 8) + (base-id int32) + (max-id int32) + ) + :pack-me + ) + + +(deftype net-client-list (structure) + ((target-client int32) + (client-mask net-bit-mask :inline) + ) + :pack-me + ) + + +(deftype net-send-message-in-params (structure) + ((connection-handle basic) + (transport-flags int8) + (message-type int32) + (dest-client net-client-list :inline) + (message-length int32) + (message-data uint32) + ) + ) + + +(deftype net-send-message-out-params (structure) + ((error-code int32) + (queued-client net-client-list :inline) + ) + ) + + +(deftype net-disconnect-params (structure) + ((connection-handle basic) + (reason int32) + (pf-local-disconnect-callback basic) + (p-user-data basic) + ) + ) + + +(deftype net-latency-metrics-info (structure) + ((latency-min uint32) + (latency-max uint32) + (latency-avg uint32) + ) + :pack-me + ) + + +(deftype net-latency-metrics-data-args (structure) + ((connection-handle basic) + (target-client-index int32) + (latency-metrics-info net-latency-metrics-info :inline) + (error-code int32) + (p-user-data basic) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-4-h.gc b/goal_src/jakx/engine/net/scert-4-h.gc index 64e4dc8a87..a1d1ae2900 100644 --- a/goal_src/jakx/engine/net/scert-4-h.gc +++ b/goal_src/jakx/engine/net/scert-4-h.gc @@ -5,5 +5,605 @@ ;; name in dgo: scert-4-h ;; dgos: ENGINE, GAME +;; +++medius-callback-status +(defenum medius-callback-status + :type int32 + (medius-begin-session-failed -1000) + (medius-account-already-exists -999) + (medius-account-not-found -998) + (medius-account-logged-in -997) + (medius-end-session-failed -996) + (medius-login-failed -995) + (medius-registration-failed -994) + (medius-incorrect-login-step -993) + (medius-already-leader-of-clan -992) + (medius-wmerror -991) + (medius-not-clan-leader -990) + (medius-player-not-privileged -989) + (medius-dberror -988) + (medius-dmeerror -987) + (medius-exceeds-max-worlds -986) + (medius-request-denied -985) + (medius-set-game-list-filter-failed -984) + (medius-clear-game-list-filter-failed -983) + (medius-get-game-list-filter-failed -982) + (medius-num-filters-at-max -981) + (medius-filter-not-found -980) + (medius-invalid-request-msg -979) + (medius-invalid-password -978) + (medius-game-not-found -977) + (medius-channel-not-found -976) + (medius-game-name-exists -975) + (medius-channel-name-exists -974) + (medius-game-name-not-found -973) + (medius-player-banned -972) + (medius-clan-not-found -971) + (medius-clan-name-in-use -970) + (medius-session-key-invalid -969) + (medius-text-string-invalid -968) + (medius-filter-failed -967) + (medius-fail -966) + (medius-file-internal-access-error -965) + (medius-file-no-permissions -964) + (medius-file-does-not-exist -963) + (medius-file-already-exists -962) + (medius-file-invalid-filename -961) + (medius-file-quota-exceeded -960) + (medius-cache-failure -959) + (medius-data-already-exists -958) + (medius-data-does-not-exist -957) + (medius-max-exceeded -956) + (medius-key-error -955) + (medius-incompatible-app-id -954) + (medius-account-banned -953) + (medius-machine-banned -952) + (medius-leader-cannot-leave-clan -951) + (medius-feature-not-enabled -950) + (medius-dnassignature-logged-in -949) + (medius-world-is-full -948) + (medius-not-clan-member -947) + (medius-server-busy -946) + (medius-num-game-worlds-per-lobby-world-exceeded -945) + (medius-account-not-uccompliant -944) + (medius-password-not-uccompliant -943) + + (medius-success 0) + (medius-no-result 1) + (medius-request-accepted 2) + (medius-world-created-size-reduced 3) + (medius-pass 4) + + (extra-medius-callback-status #xffffff) +) +;; ---medius-callback-status + + +;; +++medius-status-code +(defenum medius-status-code + :type int32 + (medius-begin-session-failed -1000) + (medius-account-already-exists -999) + (medius-account-not-found -998) + (medius-account-logged-in -997) + (medius-end-session-failed -996) + (medius-login-failed -995) + (medius-registration-failed -994) + (medius-incorrect-login-step -993) + (medius-already-leader-of-clan -992) + (medius-wmerror -991) + (medius-not-clan-leader -990) + (medius-player-not-privileged -989) + (medius-dberror -988) + (medius-dmeerror -987) + (medius-exceeds-max-worlds -986) + (medius-request-denied -985) + (medius-set-game-list-filter-failed -984) + (medius-clear-game-list-filter-failed -983) + (medius-get-game-list-filter-failed -982) + (medius-num-filters-at-max -981) + (medius-filter-not-found -980) + (medius-invalid-request-msg -979) + (medius-invalid-password -978) + (medius-game-not-found -977) + (medius-channel-not-found -976) + (medius-game-name-exists -975) + (medius-channel-name-exists -974) + (medius-game-name-not-found -973) + (medius-player-banned -972) + (medius-clan-not-found -971) + (medius-clan-name-in-use -970) + (medius-session-key-invalid -969) + (medius-text-string-invalid -968) + (medius-filter-failed -967) + (medius-fail -966) + (medius-file-internal-access-error -965) + (medius-file-no-permissions -964) + (medius-file-does-not-exist -963) + (medius-file-already-exists -962) + (medius-file-invalid-filename -961) + (medius-file-quota-exceeded -960) + (medius-cache-failure -959) + (medius-data-already-exists -958) + (medius-data-does-not-exist -957) + (medius-max-exceeded -956) + (medius-key-error -955) + (medius-incompatible-app-id -954) + (medius-account-banned -953) + (medius-machine-banned -952) + (medius-leader-cannot-leave-clan -951) + (medius-feature-not-enabled -950) + (medius-dnassignature-logged-in -949) + (medius-world-is-full -948) + (medius-not-clan-member -947) + (medius-server-busy -946) + (medius-num-game-worlds-per-lobby-world-exceeded -945) + (medius-account-not-uccompliant -944) + (medius-password-not-uccompliant -943) + + (medius-success 0) + (medius-no-result 1) + (medius-request-accepted 2) + (medius-world-created-size-reduced 3) + (medius-pass 4) + + (extra-medius-callback-status #xffffff) +) +;; ---medius-status-code + ;; DECOMP BEGINS +(deftype net-latency-metrics-params (structure) + ((connection-handle basic) + (target-client-list net-client-list :inline) + (pf-latency-metrics-callback basic) + (p-user-data basic) + ) + ) + + +(deftype net-error-threshold-callback-data (structure) + ((object-index int32) + (field-index int32) + (field-size int32) + (field-count int32) + (p-current-data basic) + (p-last-update-data basic) + ) + ) + + +(deftype net-remote-client-event-data (structure) + ((event-type int32) + (connection-handle basic) + (client-index int32) + (p-user-data basic) + ) + ) + + +(deftype net-object-filter-data (structure) + ((client-list net-client-list :inline) + (object-index int32) + (fields-updated net-bit-mask :inline) + (update-type int32) + (p-user-data basic) + ) + ) + + +(deftype net-type-ownership-update-data (structure) + ((connection-handle basic) + (client-index int32) + (object-index int32) + (state int32) + (p-user-data basic) + ) + ) + + +(deftype net-type-ownership-request-data (structure) + ((connection-handle basic) + (client-index int32) + (object-index int32) + (p-user-data basic) + ) + ) + + +(deftype net-completion-data (structure) + ((result int32) + (p-user-data basic) + ) + ) + + +(deftype net-smchange-data (structure) + ((connection-handle basic) + (smclient-index int32) + (p-user-data basic) + ) + ) + + +(deftype net-join-in-params (structure) + ((b-default-set int32) + (connection-handle basic) + (sz-client-name uint8 12) + (net-object-count int32) + (data-stream-count int32) + (session-master-status int32) + (pf-local-join-callback basic) + (p-join-callback-data basic) + (pf-remote-client-event-callback basic) + (p-remote-client-event-callback-data basic) + (pf-smchange-callback basic) + (p-smchange-callback-data basic) + (pf-ownership-update-callback basic) + (p-ownership-update-callback-data basic) + (pf-ownership-request-callback basic) + (p-ownership-request-callback-data basic) + ) + ) + + +(deftype net-join-out-params (structure) + ((b-is-set int32) + (error-code int32) + ) + ) + + +(deftype anonymous-0 (structure) + ((error-threshold-magnitude float) + (pf-threshold-callback basic :overlay-at error-threshold-magnitude) + ) + :pack-me + ) + + +(deftype net-type-client (structure) + ((connect-time uint32) + (client-object-index uint32) + (net-object-buffer-start int32) + (net-object-buffer-count int32) + (net-data-stream-start uint32) + (net-data-stream-count uint32) + (name uint8 12) + ) + ) + + +(deftype net-type-data-stream (structure) + ((status uint8) + (circular-buffer uint8) + (remote-buffer uint8) + (stream-type uint8) + (buffer-complete uint8) + (send-to-all uint8) + (target-client-index int32) + (owner-client-index int32) + (buffer-start uint32) + (buffer-end uint32) + (read-ptr uint32) + (write-ptr uint32) + (data-rate int32) + (min-packet-size uint16) + (max-packet-size uint16) + (time-of-last-update uint32) + ) + ) + + +(deftype net-type-short-vector2 (structure) + ((x int16) + (y int16) + ) + ) + + +(deftype net-type-short-vector3 (structure) + ((x int16) + (y int16) + (z int16) + ) + ) + + +(deftype net-type-int-vector2 (structure) + ((x int32) + (y int32) + ) + ) + + +(deftype net-type-int-vector3 (structure) + ((x int32) + (y int32) + (z int32) + ) + ) + + +(deftype net-type-float-vector2 (structure) + ((x float) + (y float) + ) + ) + + +(deftype net-type-float-vector3 (structure) + ((x float) + (y float) + (z float) + ) + ) + + +(deftype net-type-object (structure) + ((structure-index uint8) + (filter-type uint8) + (lifespan-type uint8) + (latency-critical uint8) + (owner-client-index int32) + (creator-client-index int32) + (name uint8 16) + (current-object-data uint32) + (last-global-object-data-update uint32) + (hi-field-change-set uint32) + (lo-field-change-set uint32) + (time-of-expiration uint32) + (max-update-interval uint32) + (time-of-last-global-update uint32) + (time-of-last-client-update uint32) + (time-of-last-client-field-update uint32) + (local-user-data basic) + ) + ) + + +(deftype net-register-object-filter-in-params (structure) + ((object-filter-call-back basic) + (p-user-data basic) + ) + ) + + +(deftype net-register-object-filter-out-params (structure) + ((object-filter-type int32) + (error-code int32) + ) + ) + + +(deftype net-lanfind-exchange-callback-out-args (structure) + ((b-respond-to-sender int32) + (details net-data :inline) + ) + ) + + +(deftype net-lanfind-in-params (structure) + ((b-default-set int32) + (session-type int32) + (filter uint32) + (details net-data :inline) + (udpport uint32) + (pfn-lanfind-callback basic) + (p-user-data basic) + ) + ) + + +(deftype net-stream-media-channel-info (structure) + ((connection-handle basic) + (channel-num uint32) + (client-count uint32) + ) + ) + + +(deftype net-stream-media-client-info (structure) + ((connection-handle basic) + (client-index int32) + (b-joined-to-channel int32) + (channel-num uint32) + ) + ) + + +(deftype net-stream-media-channel-state-data (structure) + ((b-can-record int32) + ) + ) + + +(deftype net-stream-media-ignore-data (structure) + ((b-defaults-set int32) + (connection-handle basic) + (client-index int32) + (b-ignore int32) + ) + ) + + +(deftype medius-player-online-state (structure) + ((connect-status int32) + (medius-lobby-world-id int32) + (medius-game-world-id int32) + (lobby-name uint8 64) + (game-name uint8 64) + ) + :pack-me + ) + + +(deftype medius-account-delete-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (master-password uint8 32) + ) + ) + + +(deftype medius-account-get-idrequest (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-name uint8 32) + ) + ) + + +(deftype medius-account-get-idresponse (structure) + ((message-id uint8 21) + (account-id int32) + (status-code medius-status-code) + ) + ) + + +(deftype medius-account-get-profile-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-account-get-profile-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-status int32) + (account-name uint8 32) + (birthday-month int16) + (birthday-day int16) + (birthday-year int16) + (first-name uint8 32) + (last-name uint8 32) + (middle-name uint8 32) + (address1 uint8 32) + (address2 uint8 32) + (address3 uint8 32) + (city uint8 32) + (state uint8 3) + (province uint8 32) + (country uint8 32) + (postal-code uint8 16) + (email-address uint8 80) + ) + ) + + +(deftype medius-account-login-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-name uint8 32) + (password uint8 32) + ) + ) + + +(deftype medius-account-login-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-type int32) + (medius-world-id int32) + (connect-info net-connection-info :inline) + ) + ) + + +(deftype medius-account-logout-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-account-registration-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-type int32) + (account-name uint8 32) + (password uint8 32) + ) + ) + + +(deftype medius-account-registration-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + ) + ) + + +(deftype medius-account-update-password-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (old-password uint8 32) + (new-password uint8 32) + ) + ) + + +(deftype medius-account-update-profile-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (birthday-month int16) + (birthday-day int16) + (birthday-year int16) + (first-name uint8 32) + (last-name uint8 32) + (middle-name uint8 32) + (address1 uint8 32) + (address2 uint8 32) + (address3 uint8 32) + (city uint8 32) + (state uint8 3) + (province uint8 32) + (country uint8 32) + (postal-code uint8 16) + (email-address uint8 80) + ) + ) + + +(deftype medius-account-update-stats-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (stats uint8 256) + ) + ) + + +(deftype medius-add-player-to-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + (welcome-message uint8 200) + ) + ) + + +(deftype medius-add-player-to-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-add-to-buddy-list-confirmation-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (target-account-id int32) + ) + ) + + +(deftype medius-add-to-buddy-list-confirmation-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (target-account-id int32) + (add-type int32) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-5-h.gc b/goal_src/jakx/engine/net/scert-5-h.gc index 67fd424297..fe242463d2 100644 --- a/goal_src/jakx/engine/net/scert-5-h.gc +++ b/goal_src/jakx/engine/net/scert-5-h.gc @@ -7,3 +7,456 @@ ;; DECOMP BEGINS +(deftype medius-add-to-buddy-list-confirmation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (target-account-id int32) + (target-account-name uint8 32) + ) + ) + + +(deftype medius-add-to-buddy-list-fwd-confirmation-request0 (structure) + ((message-id uint8 21) + (originator-account-id int32) + (originator-account-name uint8 32) + ) + ) + + +(deftype medius-add-to-buddy-list-fwd-confirmation-request (structure) + ((message-id uint8 21) + (originator-account-id int32) + (originator-account-name uint8 32) + (add-type int32) + ) + ) + + +(deftype medius-add-to-buddy-list-fwd-confirmation-response0 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (session-key uint8 17) + (originator-account-id int32) + ) + ) + + +(deftype medius-add-to-buddy-list-fwd-confirmation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (session-key uint8 17) + (originator-account-id int32) + (add-type int32) + ) + ) + + +(deftype medius-add-to-buddy-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + ) + ) + + +(deftype medius-add-to-buddy-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-add-to-ignore-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (ignore-account-id int32) + ) + ) + + +(deftype medius-add-to-ignore-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-anonymous-login-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (session-display-name uint8 32) + (session-display-stats uint8 256) + ) + ) + + +(deftype medius-ban-player-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (ban-account-id int32) + (ban-minutes int32) + (medius-world-id int32) + (app-type int32) + ) + ) + + +(deftype medius-ban-player-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-channel-info-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + + +(deftype medius-channel-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (lobby-name uint8 64) + (active-player-count int32) + (max-players int32) + ) + ) + + +(deftype medius-channel-list-extra-info-request (structure) + ((message-id uint8 21) + (page-id uint16) + (page-size uint16) + ) + ) + + +(deftype medius-channel-list-extra-info-response0 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (max-players uint16) + (security-level int32) + (generic-field1 uint32) + (lobby-name uint8 64) + (end-of-list int8) + ) + ) + + +(deftype medius-channel-list-extra-info-response1 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (max-players uint16) + (security-level int32) + (generic-field1 uint32) + (generic-field2 uint32) + (generic-field3 uint32) + (generic-field4 uint32) + (generic-field-level int32) + (lobby-name uint8 64) + (end-of-list int8) + ) + ) + + +(deftype medius-channel-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (max-players uint16) + (game-world-count uint16) + (security-level int32) + (generic-field1 uint32) + (generic-field2 uint32) + (generic-field3 uint32) + (generic-field4 uint32) + (generic-field-level int32) + (lobby-name uint8 64) + (end-of-list int8) + ) + ) + + +(deftype medius-channel-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (page-id int16) + (page-size int16) + ) + ) + + +(deftype medius-channel-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (lobby-name uint8 64) + (player-count int32) + (end-of-list int8) + ) + ) + + +(deftype medius-chat-fwd-message (structure) + ((message-id uint8 21) + (originator-account-id int32) + (originator-account-name uint8 32) + (message-type int32) + (message uint8 64) + ) + ) + + +(deftype medius-chat-message (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message-type int32) + (target-account-id int32) + (message uint8 64) + ) + ) + + +(deftype medius-binary-fwd-message (structure) + ((message-id uint8 21) + (originator-account-id int32) + (message-type int32) + (message uint8 400) + ) + ) + + +(deftype medius-binary-message (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message-type int32) + (target-account-id int32) + (message uint8 400) + ) + ) + + +(deftype medius-chat-toggle-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (chat-toggle int32) + ) + ) + + +(deftype medius-chat-toggle-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-check-my-clan-invitations-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + + +(deftype medius-check-my-clan-invitations-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-invitation-id int32) + (clan-id int32) + (response-status int32) + (message uint8 200) + (leader-account-id int32) + (leader-account-name uint8 32) + (end-of-list int8) + ) + ) + + +(deftype medius-clan-ladder-list-request (structure) + ((message-id uint8 21) + (clan-ladder-stat-index int32) + (sort-order int32) + (start-position uint32) + (page-size uint32) + ) + ) + + +(deftype medius-clan-ladder-list-response (structure) + ((message-id uint8 21) + (clan-id int32) + (clan-name uint8 32) + (ladder-position uint32) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + + +(deftype medius-clan-ladder-position-request (structure) + ((message-id uint8 21) + (clan-id int32) + (clan-ladder-stat-index int32) + (sort-order int32) + ) + ) + + +(deftype medius-clan-ladder-position-response (structure) + ((message-id uint8 21) + (ladder-position uint32) + (total-rankings uint32) + (status-code medius-status-code) + ) + ) + + +(deftype medius-clear-game-list-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (filter-field int32) + ) + ) + + +(deftype medius-clear-game-list-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-clear-stored-account-info-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (account-id int32) + ) + ) + + +(deftype medius-clear-stored-account-info-response (structure) + ((confirmation int32) + ) + ) + + +(deftype medius-confirm-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-challenge-id int32) + ) + ) + + +(deftype medius-confirm-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-create-channel-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (max-players int32) + (lobby-name uint8 64) + (lobby-password uint8 32) + ) + ) + + +(deftype medius-create-channel-request1 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (max-players int32) + (lobby-name uint8 64) + (lobby-password uint8 32) + (generic-field1 uint32) + ) + ) + + +(deftype medius-create-channel-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (max-players int32) + (lobby-name uint8 64) + (lobby-password uint8 32) + (generic-field1 uint32) + (generic-field2 uint32) + (generic-field3 uint32) + (generic-field4 uint32) + (generic-field-level int32) + ) + ) + + +(deftype medius-create-channel-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + ) + ) + + +(deftype medius-create-game-on-self-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (server-version int32) + (max-players-per-world int32) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (game-name uint8 64) + (game-password uint8 32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (port int32) + (game-host-type int32) + (address-list net-address-list :inline) + ) + ) + + +(deftype medius-create-game-on-self-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + ) + ) + + +(deftype medius-create-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (clan-name uint8 32) + ) + ) + + +(deftype medius-create-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-6-h.gc b/goal_src/jakx/engine/net/scert-6-h.gc index 2e32108d82..1bf8071dd6 100644 --- a/goal_src/jakx/engine/net/scert-6-h.gc +++ b/goal_src/jakx/engine/net/scert-6-h.gc @@ -7,3 +7,461 @@ ;; DECOMP BEGINS +(deftype medius-create-game-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (game-name uint8 64) + (game-password uint8 32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (game-host-type int32) + ) + ) + + +(deftype medius-create-game-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (game-name uint8 64) + (game-password uint8 32) + (spectator-password uint8 32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (game-host-type int32) + (attributes int32) + ) + ) + + +(deftype medius-create-game-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + ) + ) + + +(deftype medius-delete-clan-message-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-message-id int32) + ) + ) + + +(deftype medius-delete-clan-message-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-disband-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + ) + ) + + +(deftype medius-disband-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-dnas-signature-post (structure) + ((message-id uint8 21) + (session-key uint8 17) + (dnas-signature-type int32) + (dnas-signature-length int8) + (dnas-signature uint8 32) + ) + ) + + +(deftype medius-end-game-report (structure) + ((session-key uint8 17) + (medius-world-id int32) + (winning-team uint8 64) + (winning-player uint8 32) + (final-score int32) + ) + ) + + +(deftype medius-error-message (structure) + ((error-code int32) + (error-message uint8 256) + ) + ) + + +(deftype medius-find-player-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (search-type int32) + (id int32) + (name uint8 32) + ) + ) + + +(deftype medius-find-player-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (application-id int32) + (application-name uint8 32) + (application-type int32) + (medius-world-id int32) + (account-id int32) + (account-name uint8 32) + (end-of-list int8) + ) + ) + + +(deftype medius-find-world-by-name-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (name uint8 64) + (world-type int32) + ) + ) + + +(deftype medius-find-world-by-name-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (application-id int32) + (application-name uint8 32) + (application-type int32) + (medius-world-id int32) + (world-name uint8 64) + (world-status int32) + (end-of-list int8) + ) + ) + + +(deftype medius-game-info-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + + +(deftype medius-game-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (player-skill-level int32) + (player-count int32) + (game-stats uint8 256) + (game-name uint8 64) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (world-status int32) + (game-host-type int32) + ) + ) + + +(deftype medius-game-list-extra-info-request (structure) + ((message-id uint8 21) + (page-id uint16) + (page-size uint16) + ) + ) + + +(deftype medius-game-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (min-players uint16) + (max-players uint16) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (security-level int32) + (world-status int32) + (game-host-type int32) + (game-name uint8 64) + (game-stats uint8 256) + (end-of-list int8) + ) + ) + + +(deftype medius-game-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (page-id int16) + (page-size int16) + ) + ) + + +(deftype medius-game-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (game-name uint8 64) + (world-status int32) + (game-host-type int32) + (player-count int32) + (end-of-list int8) + ) + ) + + +(deftype medius-game-world-player-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + + +(deftype medius-game-world-player-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (stats uint8 256) + (connection-class int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-all-announcements-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + + +(deftype medius-get-all-clan-messages-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + + +(deftype medius-get-all-clan-messages-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-message-id int32) + (message uint8 200) + (status int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-announcements-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + + +(deftype medius-get-announcements-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (announcement-id int32) + (announcement uint8 1000) + (end-of-list int8) + ) + ) + + +(deftype medius-get-buddy-invitations-request (structure) + ((message-id uint8 21) + ) + ) + + +(deftype medius-get-buddy-invitations-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (add-type int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-buddy-list-extra-info-request (structure) + ((message-id uint8 21) + ) + ) + + +(deftype medius-get-buddy-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + + +(deftype medius-get-buddy-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-get-buddy-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (player-status int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-ignore-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-get-ignore-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ignore-account-id int32) + (ignore-account-name uint8 32) + (player-status int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-clan-by-idrequest (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + (clan-id int32) + ) + ) + + +(deftype medius-get-clan-by-idresponse (structure) + ((message-id uint8 21) + (status-code int32) + (application-id int32) + (clan-name uint8 32) + (leader-account-id int32) + (leader-account-name uint8 32) + (stats uint8 256) + (status int32) + ) + ) + + +(deftype medius-get-clan-by-name-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (clan-name uint8 32) + ) + ) + + +(deftype medius-get-clan-by-name-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + (leader-account-id int32) + (leader-account-name uint8 32) + (stats uint8 256) + (status int32) + ) + ) + + +(deftype medius-get-clan-invitations-sent-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + + +(deftype medius-get-clan-invitations-sent-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (response-msg uint8 200) + (response-status int32) + (response-time int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-clan-member-list-extra-info-request (structure) + ((message-id uint8 21) + (clan-id int32) + (ladder-stat-index int32) + (sort-order int32) + ) + ) + + +(deftype medius-get-clan-member-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (stats uint8 256) + (online-state medius-player-online-state :inline) + (ladder-stat int32) + (ladder-position uint32) + (total-rankings uint32) + (end-of-list int8) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-7-h.gc b/goal_src/jakx/engine/net/scert-7-h.gc index d577007f16..fa6865dd2c 100644 --- a/goal_src/jakx/engine/net/scert-7-h.gc +++ b/goal_src/jakx/engine/net/scert-7-h.gc @@ -7,3 +7,451 @@ ;; DECOMP BEGINS +(deftype medius-get-clan-member-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + ) + ) + + +(deftype medius-get-clan-member-list-response (structure) + ((message-id uint8 21) + (account-id int32) + (account-name uint8 32) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + + +(deftype medius-get-clan-team-challenge-history-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (this-clan-is-challenger int32) + (start int32) + (page-size int32) + ) + ) + + +(deftype medius-get-clan-team-challenge-history-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (against-clan-id int32) + (status int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-clan-team-challenges-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (start int32) + (page-size int32) + (status int32) + (challenged-only int32) + ) + ) + + +(deftype medius-get-clan-team-challenges-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (challenger-clan-id int32) + (against-clan-id int32) + (status int32) + (response-time int32) + (challenge-msg uint8 200) + (response-msg uint8 200) + (end-of-list int8) + (clan-challenge-id int32) + ) + ) + + +(deftype medius-get-game-list-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-get-game-list-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (filter-field int32) + (comparison-operator int32) + (baseline-value int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-ladder-stats-request (structure) + ((message-id uint8 21) + (ladder-type int32) + ) + ) + + +(deftype medius-get-ladder-stats-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (stats uint32 15) + ) + ) + + +(deftype medius-get-ladder-stats-wide-request (structure) + ((message-id uint8 21) + (account-id-or-clan-id int32) + (ladder-type int32) + ) + ) + + +(deftype medius-get-ladder-stats-wide-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id-or-clan-id int32) + (stats uint32 100) + ) + ) + + +(deftype medius-get-ladder-stats-wide-w-idarray-request (structure) + ((message-id uint8 21) + (ids uint32 50) + (ladder-type int32) + ) + ) + + +(deftype medius-get-ladder-stats-wide-w-idarray-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id-or-clan-id int32) + (stats uint32 100) + (end-of-list int8) + ) + ) + + +(deftype medius-get-lobby-player-names-extra-info-request (structure) + ((message-id uint8 21) + (medius-world-id int32) + ) + ) + + +(deftype medius-get-lobby-player-names-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + + +(deftype medius-get-lobby-player-names-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + + +(deftype medius-get-lobby-player-names-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-locations-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-get-locations-response (structure) + ((message-id uint8 21) + (location-id int32) + (location-name uint8 64) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + + +(deftype medius-get-my-clan-messages-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (start int32) + (page-size int32) + ) + ) + + +(deftype medius-get-my-clan-messages-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + (message uint8 200) + (end-of-list int8) + ) + ) + + +(deftype medius-get-my-clans-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + + +(deftype medius-get-my-clans-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + (application-id int32) + (clan-name uint8 32) + (leader-account-id int32) + (leader-account-name uint8 32) + (stats uint8 256) + (status int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-my-iprequest (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-get-my-ipresponse (structure) + ((message-id uint8 21) + (ip uint8 20) + (status-code medius-status-code) + ) + ) + + +(deftype medius-get-policy-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (policy int32) + ) + ) + + +(deftype medius-get-policy-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (policy uint8 256) + (end-of-text int8) + ) + ) + + +(deftype medius-get-stored-account-info-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (account-id int32) + ) + ) + + +(deftype medius-get-stored-account-info-response (structure) + ((account-id int32) + (account-name uint8 32) + (account-password uint8 32) + ) + ) + + +(deftype medius-get-stored-account-list-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + ) + ) + + +(deftype medius-get-stored-account-list-response (structure) + ((account-list uint8 256) + ) + ) + + +(deftype medius-get-total-channels-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + + +(deftype medius-get-total-channels-response (structure) + ((message-id uint8 21) + (total uint32) + (status-code medius-status-code) + ) + ) + + +(deftype medius-get-total-games-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + + +(deftype medius-get-total-games-response (structure) + ((message-id uint8 21) + (total uint32) + (status-code medius-status-code) + ) + ) + + +(deftype medius-get-total-rankings-request (structure) + ((message-id uint8 21) + (ladder-type int32) + ) + ) + + +(deftype medius-get-total-rankings-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (total-rankings uint32) + ) + ) + + +(deftype medius-get-total-users-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + + +(deftype medius-get-total-users-response (structure) + ((message-id uint8 21) + (total-in-system uint32) + (total-in-game uint32) + (status-code medius-status-code) + ) + ) + + +(deftype medius-get-world-security-level-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (app-type int32) + ) + ) + + +(deftype medius-get-world-security-level-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (app-type int32) + (security-level int32) + ) + ) + + +(deftype medius-initialize-storage-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (icon-location uint8 64) + (sceterritory int32) + ) + ) + + +(deftype medius-initialize-storage-response (structure) + ((confirmation int32) + ) + ) + + +(deftype medius-invite-player-to-clan-by-name-request (structure) + ((message-id uint8 21) + (account-name uint8 32) + (invite-message uint8 200) + ) + ) + + +(deftype medius-invite-player-to-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + (invite-message uint8 200) + ) + ) + + +(deftype medius-invite-player-to-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-join-channel-fwd-request (structure) + ((message-id uint8 21) + (player-session-key uint8 17) + ) + ) + + +(deftype medius-join-channel-fwd-response (structure) + ((message-id uint8 21) + (player-session-key uint8 17) + (access-key uint8 17) + (status-code medius-status-code) + ) + ) + + +(deftype medius-join-channel-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (lobby-channel-password uint8 32) + ) + ) + + +(deftype medius-join-channel-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (connect-info net-connection-info :inline) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-8-h.gc b/goal_src/jakx/engine/net/scert-8-h.gc index bb914f2073..33d4eee8d8 100644 --- a/goal_src/jakx/engine/net/scert-8-h.gc +++ b/goal_src/jakx/engine/net/scert-8-h.gc @@ -7,3 +7,455 @@ ;; DECOMP BEGINS +(deftype medius-join-game-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (game-password uint8 32) + (game-host-type int32) + (address-list net-address-list :inline) + ) + ) + + +(deftype medius-join-game-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (join-type int32) + (game-password uint8 32) + (game-host-type int32) + (pub-key rsa-key :inline) + (address-list net-address-list :inline) + ) + ) + + +(deftype medius-join-game-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (game-host-type int32) + (connect-info net-connection-info :inline) + ) + ) + + +(deftype medius-ladder-list-extra-info-request (structure) + ((message-id uint8 21) + (ladder-stat-index int32) + (sort-order int32) + (start-position uint32) + (page-size uint32) + ) + ) + + +(deftype medius-ladder-list-extra-info-response0 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ladder-position uint32) + (account-id int32) + (account-name uint8 32) + (account-stats uint8 256) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + + +(deftype medius-ladder-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ladder-position uint32) + (ladder-stat int32) + (account-id int32) + (account-name uint8 32) + (account-stats uint8 256) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + + +(deftype medius-ladder-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start-byte uint32) + (end-byte uint32) + (sort-order int32) + (start-position uint32) + (page-size uint32) + ) + ) + + +(deftype medius-ladder-list-response (structure) + ((message-id uint8 21) + (account-id int32) + (account-name uint8 32) + (ladder-position uint32) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + + +(deftype medius-ladder-position-extra-info-request (structure) + ((message-id uint8 21) + (account-id int32) + (ladder-stat-index int32) + (sort-order int32) + ) + ) + + +(deftype medius-ladder-position-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ladder-position uint32) + (total-rankings uint32) + ) + ) + + +(deftype medius-ladder-position-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + (start-byte uint32) + (end-byte uint32) + (sort-order int32) + ) + ) + + +(deftype medius-ladder-position-response (structure) + ((message-id uint8 21) + (ladder-position uint32) + (status-code medius-status-code) + ) + ) + + +(deftype medius-ladder-position-fast-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + (new-stats-score int32) + ) + ) + + +(deftype medius-ladder-position-fast-response (structure) + ((message-id uint8 21) + (ladder-position uint32) + (status-code medius-status-code) + ) + ) + + +(deftype medius-lobby-world-player-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + + +(deftype medius-lobby-world-player-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (player-status int32) + (account-id int32) + (account-name uint8 32) + (stats uint8 256) + (connection-class int32) + (end-of-list int8) + ) + ) + + +(deftype medius-machine-signature-post (structure) + ((message-id uint8 21) + (session-key uint8 17) + (machine-signature uint8 128) + ) + ) + + +(deftype medius-modify-clan-message-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-message-id int32) + (new-message uint8 200) + ) + ) + + +(deftype medius-modify-clan-message-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-pick-location-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (location-id int32) + ) + ) + + +(deftype medius-pick-location-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-player-info-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + ) + ) + + +(deftype medius-player-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-name uint8 32) + (application-id int32) + (player-status int32) + (connection-class int32) + (stats uint8 256) + ) + ) + + +(deftype medius-player-report (structure) + ((session-key uint8 17) + (medius-world-id int32) + (stats uint8 256) + ) + ) + + +(deftype medius-reassign-game-medius-world-id (structure) + ((old-medius-world-id int32) + (new-medius-world-id int32) + ) + ) + + +(deftype medius-remove-from-buddy-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + ) + ) + + +(deftype medius-remove-from-buddy-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-remove-from-ignore-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (ignore-account-id int32) + ) + ) + + +(deftype medius-remove-from-ignore-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-remove-player-from-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + (clan-id int32) + ) + ) + + +(deftype medius-remove-player-from-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-request-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (message uint8 200) + ) + ) + + +(deftype medius-request-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-respond-to-clan-invitation-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-invitation-id int32) + (response int32) + (message uint8 200) + ) + ) + + +(deftype medius-respond-to-clan-invitation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-respond-to-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-challenge-id int32) + (challenge-status int32) + (message uint8 200) + ) + ) + + +(deftype medius-respond-to-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-revoke-clan-invitation-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + ) + ) + + +(deftype medius-revoke-clan-invitation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-revoke-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-challenge-id int32) + ) + ) + + +(deftype medius-revoke-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-send-clan-message-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message uint8 200) + ) + ) + + +(deftype medius-send-clan-message-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-session-begin-request (structure) + ((message-id uint8 21) + (connection-class int32) + ) + ) + + +(deftype medius-session-begin-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (session-key uint8 17) + ) + ) + + +(deftype medius-session-end-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-session-end-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-set-game-list-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (filter-field int32) + (comparison-operator int32) + (baseline-value int32) + ) + ) + + +(deftype medius-set-game-list-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-set-lobby-world-filter-request (structure) + ((message-id uint8 21) + (filter-mask1 uint32) + (filter-mask2 uint32) + (filter-mask3 uint32) + (filter-mask4 uint32) + (lobby-filter-type int32) + (filter-mask-level int32) + ) + ) + + +(deftype medius-set-lobby-world-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (filter-mask1 uint32) + (filter-mask2 uint32) + (filter-mask3 uint32) + (filter-mask4 uint32) + (lobby-filter-type int32) + (filter-mask-level int32) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-9-h.gc b/goal_src/jakx/engine/net/scert-9-h.gc index a5577cadea..7706cdaa4e 100644 --- a/goal_src/jakx/engine/net/scert-9-h.gc +++ b/goal_src/jakx/engine/net/scert-9-h.gc @@ -7,3 +7,459 @@ ;; DECOMP BEGINS +(deftype medius-set-localization-params-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (character-encoding int32) + (language int32) + ) + ) + + +(deftype medius-set-message-as-read-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message-type int32) + (message-idto-tag int32) + ) + ) + + +(deftype medius-set-stored-account-info-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (account-id int32) + (account-name uint8 32) + (account-password uint8 32) + ) + ) + + +(deftype medius-set-stored-account-info-response (structure) + ((confirmation int32) + ) + ) + + +(deftype medius-status-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-text-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (text-filter-type int32) + (text uint8 64) + ) + ) + + +(deftype medius-text-filter-response (structure) + ((message-id uint8 21) + (text uint8 64) + (status-code medius-status-code) + ) + ) + + +(deftype medius-transfer-clan-leadership-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (new-leader-account-id int32) + (new-leader-account-name uint8 32) + ) + ) + + +(deftype medius-transfer-clan-leadership-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-update-clan-stats-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (stats uint8 256) + ) + ) + + +(deftype medius-update-clan-stats-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-update-game-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (game-name uint8 64) + (min-players int16) + (max-players int16) + (game-level int16) + (player-skill-level int16) + ) + ) + + +(deftype medius-update-game-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-update-ladder-stats-request (structure) + ((message-id uint8 21) + (ladder-type int32) + (stats uint32 15) + ) + ) + + +(deftype medius-update-ladder-stats-wide-request (structure) + ((message-id uint8 21) + (ladder-type int32) + (stats uint32 100) + ) + ) + + +(deftype medius-update-clan-ladder-stats-wide-delta-request (structure) + ((message-id uint8 21) + (clan-id int32) + (stats uint32 100) + ) + ) + + +(deftype medius-update-user-state (structure) + ((session-key uint8 17) + (user-action int32) + ) + ) + + +(deftype medius-version-server-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + + +(deftype medius-version-server-response (structure) + ((message-id uint8 21) + (version-server uint8 56) + ) + ) + + +(deftype medius-world-report (structure) + ((session-key uint8 17) + (medius-world-id int32) + (player-count int32) + (game-name uint8 64) + (game-stats uint8 256) + (min-players int32) + (max-players int32) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (world-status int32) + ) + ) + + +(deftype medius-get-universe-information-request (structure) + ((message-id uint8 21) + (info-type uint32) + (character-encoding int32) + (language int32) + ) + ) + + +(deftype medius-universe-news-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (news uint8 256) + (end-of-text int8) + ) + ) + + +(deftype medius-universe-variable-information-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (info-filter uint32) + (universe-id uint32) + (universe-name uint8 128) + (dns uint8 128) + (port int32) + (universe-description uint8 256) + (status int32) + (user-count int32) + (max-users int32) + (universe-billing uint8 8) + (billing-system-name uint8 128) + (extended-info uint8 128) + (svo-url uint8 128) + (end-of-list int8) + ) + ) + + +(deftype medius-universe-svo-urlresponse (structure) + ((message-id uint8 21) + (url uint8 128) + ) + ) + + +(deftype medius-universe-status-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (universe-name uint8 128) + (dns uint8 128) + (port int32) + (universe-description uint8 256) + (status int32) + (user-count int32) + (max-users int32) + (end-of-list int8) + ) + ) + + +(deftype medius-get-universe-extra-info-request (structure) + ((message-id uint8 21) + (info-type uint32) + (character-encoding int32) + (language int32) + ) + ) + + +(deftype medius-universe-status-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (universe-name uint8 128) + (dns uint8 128) + (port int32) + (universe-description uint8 256) + (status int32) + (user-count int32) + (max-users int32) + (universe-billing uint8 8) + (billing-system-name uint8 128) + (end-of-list int8) + (extended-info uint8 128) + ) + ) + + +(deftype medius-post-debug-info-request (structure) + ((message-id uint8 21) + (message uint8 200) + ) + ) + + +(deftype medius-post-debug-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + + +(deftype medius-connect-in-params (structure) + ((connect-info net-connection-info :inline) + (stream-media-params net-stream-media-params :inline) + (max-clients-per-connection uint32) + (my-connect-callback basic) + (pf-remote-client-connect-callback basic) + (pf-remote-client-disconnect-callback basic) + ) + ) + + +(deftype medius-connect-out-params (structure) + ((connection-handle basic) + (error-code int32) + ) + ) + + +(deftype medius-disconnect-params (structure) + ((connection-handle basic) + (disconnect-reason int32) + (my-disconnect-callback basic) + ) + ) + + +(deftype medius-initialize-in-params (structure) + ((p-local-key-pair rsa-keypair) + (my-chat-fwd-message-callback basic) + (my-chat-fwd-message-callback-user-data basic) + (my-binary-fwd-message-callback basic) + (my-binary-fwd-message-callback-user-data basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback-user-data basic) + (my-error-message-callback basic) + (my-error-message-callback-user-data basic) + (my-reassign-game-medius-world-idcallback basic) + (my-reassign-game-medius-world-idcallback-user-data basic) + (pf-system-message-callback basic) + (p-system-message-callback-data basic) + (application-id int32) + (p-application-key-pair rsa-keypair) + (idf-compliance int32) + ) + ) + + +(deftype medius-initialize-out-params (structure) + ((error-code int32) + ) + ) + + +(deftype medius-initialize-bare-in-params (structure) + ((my-chat-fwd-message-callback basic) + (my-chat-fwd-message-callback-user-data basic) + (my-binary-fwd-message-callback basic) + (my-binary-fwd-message-callback-user-data basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback-user-data basic) + (my-error-message-callback basic) + (my-error-message-callback-user-data basic) + (my-reassign-game-medius-world-idcallback basic) + (my-reassign-game-medius-world-idcallback-user-data basic) + (idf-compliance int32) + ) + ) + + +(deftype medius-initialize-bare-out-params (structure) + ((error-code int32) + ) + ) + + +(deftype medius-file (structure) + ((filename uint8 128) + (server-checksum uint8 16) + (file-id uint32) + (file-size uint32) + (creation-time-stamp uint32) + (owner-id uint32) + (group-id uint32) + (owner-permission-rwx uint16) + (group-permission-rwx uint16) + (global-permission-rwx uint16) + (server-operation-id uint16) + ) + ) + + +(deftype medius-file-attributes (structure) + ((description uint8 256) + (last-changed-time-stamp uint32) + (last-changed-by-user-id uint32) + (number-accesses uint32) + (streamable-flag uint32) + (streaming-data-rate uint32) + ) + :pack-me + ) + + +(deftype medius-file-meta-data (structure) + ((key uint8 56) + (value uint8 256) + ) + :pack-me + ) + + +(deftype medius-file-checksum (structure) + ((puc-data uint32) + (ui-size uint32) + (checksum uint8 16) + ) + ) + + +(deftype medius-file-create-request (structure) + ((medius-file-to-create medius-file :inline) + (medius-file-create-attributes medius-file-attributes :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-create-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-upload-request (structure) + ((medius-file-info medius-file :inline) + (puc-data-start uint32) + (ui-data-size uint32) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-upload-server-req (structure) + ((i-req-start-byte-index int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-upload-response (structure) + ((data uint8 464) + (i-start-byte-index int32) + (i-data-size int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-close-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + + +(deftype medius-file-close-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) diff --git a/goal_src/jakx/engine/net/scert-funcs.gc b/goal_src/jakx/engine/net/scert-funcs.gc index b77f3938c6..44558a1b1b 100644 --- a/goal_src/jakx/engine/net/scert-funcs.gc +++ b/goal_src/jakx/engine/net/scert-funcs.gc @@ -7,3 +7,4 @@ ;; DECOMP BEGINS +(define *scert-function-id* 0) diff --git a/goal_src/jakx/engine/physics/cloth-h.gc b/goal_src/jakx/engine/physics/cloth-h.gc index 1b8ab43781..0e12f4b18e 100644 --- a/goal_src/jakx/engine/physics/cloth-h.gc +++ b/goal_src/jakx/engine/physics/cloth-h.gc @@ -7,3 +7,199 @@ ;; DECOMP BEGINS +(deftype stick-constraint (structure) + ((constraint-length-half float) + (one-over-two-times-constraint-length float) + (constraint-length-sqd float) + (particle0 uint16) + (particle1 uint16) + ) + ) + + +(deftype verlet-particle (structure) + ((pos vector :inline) + (prev-pos vector :inline) + (mass-scale float) + ) + ) + + +(deftype disc-constraint (structure) + ((normal vector :inline) + (origin vector :inline) + (radius float) + (start-particle-index int16) + (end-particle-index int16) + ) + ) + + +(deftype cylinder-constraint (structure) + ((c0 vector :inline) + (norm vector :inline) + (length float) + (radius float) + ) + ) + + +(deftype particle-anchor-point (structure) + ((anchor-pos vector :inline) + (particle-index uint16) + ) + ) + + +(deftype particle-array (inline-array-class) + ((data verlet-particle :inline :dynamic) + ) + ) + + +(set! (-> particle-array heap-base) (the-as uint 48)) + +(deftype float-array (inline-array-class) + ((data float :inline :dynamic) + ) + ) + + +(set! (-> float-array heap-base) (the-as uint 4)) + +(deftype stick-constraint-array (inline-array-class) + ((data stick-constraint :inline :dynamic) + ) + ) + + +(set! (-> stick-constraint-array heap-base) (the-as uint 16)) + +(deftype collision-sphere-array (inline-array-class) + ((data sphere :inline :dynamic) + ) + ) + + +(set! (-> collision-sphere-array heap-base) (the-as uint 16)) + +(deftype collision-disc-array (inline-array-class) + ((data disc-constraint :inline :dynamic) + ) + ) + + +(set! (-> collision-disc-array heap-base) (the-as uint 48)) + +(deftype collision-cylinder-array (inline-array-class) + ((data cylinder-constraint :inline :dynamic) + ) + ) + + +(set! (-> collision-cylinder-array heap-base) (the-as uint 48)) + +(deftype anchor-point-array (inline-array-class) + ((data particle-anchor-point :inline :dynamic) + ) + ) + + +(set! (-> anchor-point-array heap-base) (the-as uint 32)) + +(deftype verlet-particle-system (cloth-base) + ((particles particle-array) + (drag float) + (accum-force vector :inline) + (timestep-frequency int8) + (last-simulate-remaining int8) + (momentum vector :inline) + ) + (:methods + (verlet-particle-system-method-11 () none) + (verlet-particle-system-method-12 () none) + (verlet-particle-system-method-13 () none) + (verlet-particle-system-method-14 () none) + (verlet-particle-system-method-15 () none) + ) + ) + + +(deftype current-position-info (structure) + ((current-vert-index uint16) + (last-2-x-index uint16) + (last-2-y-index uint16) + (last-x-index uint16) + (last-y-index uint16) + (lights vu-lights :inline) + (scale vector :inline) + (clamp-col vector :inline) + (last-normal vector :inline) + (face-normal-needs-flip? symbol) + (cross-index0 int8) + (cross-index1 int8) + (backside-normal vector :inline) + ) + ) + + +(deftype cloth-system (verlet-particle-system) + ((ground-constraint float) + (disc-collision-constraints collision-disc-array) + (collision-constraints collision-sphere-array) + (stick-constraints stick-constraint-array) + (anchor-points anchor-point-array) + (constraint-strengths int32 3) + (num-xy-constraints int16) + (num-diagonal-constraints int16) + (cloth-width int32) + (cloth-height int32) + (strip prim-strip) + (strip2 prim-strip) + (strip3 prim-strip) + (mesh art-cloth-geo) + (gravity-constant float) + (wind-constant float) + (flags cloth-flag) + (thickness-scalar float) + (ball-collision-radius float) + (face-normal-scalar float) + (reset-count int8) + (num-iterations int8) + (secret-disable game-secrets) + (params cloth-params) + ) + (:methods + (initialize-cloth-system! (_type_ cloth-params) none) + (debug-draw-spheres (_type_) none) + (post-physics-update (_type_) int) + (enforce-constraints-1 (_type_) none) + (enforce-constraints-2 (_type_) none) + (cloth-system-method-21 (_type_) none) + (cloth-system-method-22 (_type_) none) + (cloth-system-method-23 (_type_) none) + (cloth-system-method-24 (_type_) int) + (cloth-system-method-25 (_type_) int) + (cloth-system-method-26 (_type_) none) + (cloth-system-method-27 (_type_ vector int int current-position-info) vector) + (cloth-system-method-28 (_type_ int int current-position-info) none) + (cloth-system-method-29 (_type_ int int current-position-info int) uint) + (cloth-system-method-30 (_type_ int int current-position-info int) none) + (cloth-system-method-31 (_type_ current-position-info) none) + (cloth-system-method-32 (_type_ vector int int current-position-info) none) + (cloth-system-method-33 (_type_ vu-lights) none) + (hide! (_type_) none) + (reset-locations (_type_) none) + (pre-physics-update (_type_) none) + (cloth-system-cmd-handler (_type_ pair) none) + ) + ) + + +(deftype cloth-on-skeleton (cloth-system) + ((base-transform-index int16) + (owner handle) + (last-owner-pos vector :inline) + (last-owner-mat matrix :inline) + ) + ) diff --git a/goal_src/jakx/engine/physics/ragdoll-h.gc b/goal_src/jakx/engine/physics/ragdoll-h.gc index 91bb67037d..7e7a952938 100644 --- a/goal_src/jakx/engine/physics/ragdoll-h.gc +++ b/goal_src/jakx/engine/physics/ragdoll-h.gc @@ -204,8 +204,10 @@ ((ragdoll ragdoll) (last-attack-id uint32) ) + (:state-methods + idle + ) (:methods - (ragdoll-proc-method-15 () none) (ragdoll-proc-method-16 () none) (ragdoll-proc-method-17 () none) (ragdoll-proc-method-18 () none) diff --git a/goal_src/jakx/engine/physics/rigid-body-h.gc b/goal_src/jakx/engine/physics/rigid-body-h.gc index 8bcdefaf54..0d19723259 100644 --- a/goal_src/jakx/engine/physics/rigid-body-h.gc +++ b/goal_src/jakx/engine/physics/rigid-body-h.gc @@ -5,19 +5,402 @@ ;; name in dgo: rigid-body-h ;; dgos: ENGINE, GAME +;; +++rigid-body-flag +(defenum rigid-body-flag + :bitfield #t + :type uint16 + (display-marks 0) + (enable-physics 1) + (disable-queue 2) + (enable-penetrate-mode 3) + (debug-active 4) + (wall-normal-hack 5) + (sphere-normal-hack 6) + (debug 7) + (impact 8) + (stuck 9) + (temp-penetrate-mode 10) + (debug-target 11) + (vehicle-line-spheres-hack 12) + ) +;; ---rigid-body-flag + +;; +++rigid-body-object-flag +(defenum rigid-body-object-flag + :bitfield #t + :type uint64 + (enable-collision 0) + (disturbed 1) + (damaged 2) + (dead 3) + ;; the rest of these might no longer be relevant + (player-touching 4) + (player-edge-grabbing 5) + (player-standing-on 6) + (player-impulse-force 7) + (player-contact-force 8) + (persistent 9) + (in-air 10) + (on-ground 11) + (on-flight-level 12) + (riding 13) + (player-driving 14) + (waiting-for-player 15) + (ignition 16) + (turbo-boost 17) + (reverse-gear 18) + (slide 19) + (hard-turn 20) + (jump 21) + (jump-sound 22) + (ai-driving 23) + (traffic-managed 24) + (flight-level-transition 25) + (flight-level-transition-ending 26) + (camera-bike-mode 27) + (camera-rapid-track-mode 28) + (camera 29) + (alert 30) + (in-pursuit 31) + (target-in-sight 32) + (rammed-target 33) + (draw-marks 34) + (hack-edit-graph-mode 35) + (measure-control-parameters 36) + (lights-on 37) + (lights-update 38) + (lights-dead 39) + (no-hijack 40) + (player-grabbed 41) + (nav-spheres 42) + (idle-sound 43) + ) +;; ---rigid-body-object-flag + +(declare-type rigid-body-object process-focusable) + ;; DECOMP BEGINS -(deftype rigid-body-impact (structure) - ((point vector :inline :offset-assert 0) - (normal vector :inline :offset-assert 16) - (velocity vector :inline :offset-assert 32) - (impulse float :offset-assert 48) - (pat pat-surface :offset-assert 52) ;; guessed by decompiler - (process process :offset-assert 56) ;; guessed by decompiler - (prim-id uint32 :offset-assert 60) - (surface basic :offset-assert 64) +(deftype rigid-body-info (structure) + ((max-time-step float) + (mass float) + (inv-mass float) + (linear-damping float) + (angular-damping float) + (bounce-factor float) + (friction-factor float) + (bounce-mult-factor float) + (cm-offset-joint vector :inline) + (inv-inertial-tensor matrix :inline) + (inertial-tensor matrix :inline) + (inertial-tensor-box meters 3) + (gravity float) + (max-ang-momentum float) ) - :method-count-assert 9 - :size-assert #x44 - :flag-assert #x900000044 - ) \ No newline at end of file + (:methods + (rigid-body-info-method-9 () none) + ) + ) + + +(deftype rigid-body-object-extra-info (structure) + ((gravity meters) + (attack-force-scale float) + ) + :pack-me + ) + + +(deftype rigid-body-object-constants (structure) + ((info rigid-body-info :inline) + (max-time-step float :overlay-at (-> info max-time-step)) + (mass float :overlay-at (-> info mass)) + (inv-mass float :overlay-at (-> info inv-mass)) + (cm-joint-x meters :overlay-at (-> info cm-offset-joint data 0)) + (cm-joint-y meters :overlay-at (-> info cm-offset-joint data 1)) + (cm-joint-z meters :overlay-at (-> info cm-offset-joint data 2)) + (linear-damping float :overlay-at (-> info linear-damping)) + (angular-damping float :overlay-at (-> info angular-damping)) + (bounce-factor float :overlay-at (-> info bounce-factor)) + (friction-factor float :overlay-at (-> info friction-factor)) + (inertial-tensor-x meters :overlay-at (-> info inertial-tensor-box 0)) + (inertial-tensor-y meters :overlay-at (-> info inertial-tensor-box 1)) + (inertial-tensor-z meters :overlay-at (-> info inertial-tensor-box 2)) + (gravity meters :overlay-at (-> info gravity)) + (name symbol) + ) + (:methods + (rigid-body-object-constants-method-9 () none) + ) + ) + + +(deftype rigid-body-impact (structure) + ((point vector :inline) + (normal vector :inline) + (velocity vector :inline) + (impulse float) + (pat pat-surface) + (process process) + (prim-id uint32) + (surface basic) + ) + :pack-me + ) + + +(deftype rigid-body-control (basic) + ((flags rigid-body-flag) + (debug-id int8) + (debugger-step int8) + (info rigid-body-info) + (force-callback (function rigid-body-object float none)) + (post-move-callback basic) + (process process) + (time-remaining float) + (max-ang-momentum float) + (linear-damping float) + (angular-damping float) + (bounce-factor float) + (friction-factor float) + (position vector :inline) + (rot vector :inline) + (rotation quaternion :inline :overlay-at (-> rot data 0)) + (lin-momentum vector :inline) + (ang-momentum vector :inline) + (force vector :inline) + (torque vector :inline) + (lin-velocity vector :inline) + (ang-velocity vector :inline) + (matrix matrix :inline) + (inv-i-world matrix :inline) + ) + (:methods + (new (symbol type) _type_) + (rigid-body-control-method-9 () none) + (rigid-body-control-method-10 () none) + (rigid-body-control-method-11 () none) + (rigid-body-control-method-12 () none) + (rigid-body-control-method-13 () none) + (rigid-body-control-method-14 () none) + (rigid-body-control-method-15 () none) + (rigid-body-control-method-16 () none) + (rigid-body-control-method-17 () none) + (rigid-body-control-method-18 () none) + (rigid-body-control-method-19 () none) + (rigid-body-control-method-20 () none) + (rigid-body-control-method-21 () none) + (rigid-body-control-method-22 () none) + (rigid-body-control-method-23 () none) + (rigid-body-control-method-24 () none) + (rigid-body-control-method-25 () none) + (rigid-body-control-method-26 () none) + (rigid-body-control-method-27 () none) + (rigid-body-control-method-28 () none) + (rigid-body-control-method-29 () none) + (rigid-body-control-method-30 () none) + (rigid-body-control-method-31 () none) + (rigid-body-control-method-32 () none) + (rigid-body-control-method-33 () none) + (rigid-body-control-method-34 () none) + (rigid-body-control-method-35 () none) + (rigid-body-control-method-36 () none) + (rigid-body-control-method-37 () none) + (rigid-body-control-method-38 () none) + (rigid-body-control-method-39 () none) + (rigid-body-control-method-40 () none) + ) + ) + + +(deftype rb-perf-data (structure) + ((process uint64) + (times uint32 32) + (t-rb-all uint32 :overlay-at (-> times 0)) + (t-rb-callback uint32 :overlay-at (-> times 1)) + (t-rb-fc uint32 :overlay-at (-> times 2)) + (t-rb-move uint32 :overlay-at (-> times 3)) + (t-rb-physics uint32 :overlay-at (-> times 4)) + (t-vqp-all uint32 :overlay-at (-> times 6)) + (t-vqp-common uint32 :overlay-at (-> times 7)) + (t-vqp-ja-post uint32 :overlay-at (-> times 8)) + (t-vqp-parts uint32 :overlay-at (-> times 9)) + (t-vqp-post uint32 :overlay-at (-> times 10)) + (t-vqp-sections uint32 :overlay-at (-> times 11)) + (t-vqp-sound uint32 :overlay-at (-> times 12)) + (t-nav-part1 uint32 :overlay-at (-> times 13)) + (t-nav-part2 uint32 :overlay-at (-> times 14)) + (t-nav-part3 uint32 :overlay-at (-> times 15)) + (t-nav-part4 uint32 :overlay-at (-> times 16)) + (t-nav-part5 uint32 :overlay-at (-> times 17)) + (t-nav-part6 uint32 :overlay-at (-> times 18)) + (t-nav-part7 uint32 :overlay-at (-> times 19)) + (t-nav-part8 uint32 :overlay-at (-> times 20)) + (t-nav-part9 uint32 :overlay-at (-> times 21)) + (t-nav-part10 uint32 :overlay-at (-> times 22)) + (t-part-turbo uint32 :overlay-at (-> times 27)) + (t-part-exhaust uint32 :overlay-at (-> times 23)) + (t-part-smoke uint32 :overlay-at (-> times 24)) + (t-part-scrape uint32 :overlay-at (-> times 25)) + (t-part-wheels uint32 :overlay-at (-> times 26)) + (t-part-debris uint32 :overlay-at (-> times 28)) + (t-part-water uint32 :overlay-at (-> times 29)) + (t-part-forcefield uint32 :overlay-at (-> times 30)) + (t-prim-trails uint32 :overlay-at (-> times 31)) + (begin-times uint32 32) + (begin-counts uint32 32) + (end-counts uint32 32) + ) + (:methods + (rb-perf-data-method-9 () none) + (rb-perf-data-method-10 () none) + (rb-perf-data-method-11 () none) + ) + ) + + +(deftype rigid-body-object (process-focusable) + ((root collide-shape-moving :override) + (info rigid-body-object-constants) + (flags rigid-body-object-flag) + (max-time-step float) + (incoming-attack-id uint32) + (disturbed-time uint32) + (perf rb-perf-data :offset 284) + ) + (:methods + (rigid-body-object-method-59 () none) + (rigid-body-object-method-60 () none) + (rigid-body-object-method-61 () none) + (rigid-body-object-method-62 () none) + (rigid-body-object-method-63 () none) + (rigid-body-object-method-64 () none) + (rigid-body-object-method-65 (_type_) none) + (rigid-body-object-method-66 (_type_) none) + (rigid-body-object-method-67 () none) + (rigid-body-object-method-68 () none) + (rigid-body-object-method-69 () none) + (rigid-body-object-method-70 () none) + (rigid-body-object-method-71 () none) + (rigid-body-object-method-72 () none) + (rigid-body-object-method-73 () none) + (rigid-body-object-method-74 () none) + (rigid-body-object-method-75 () none) + (rigid-body-object-method-76 () none) + (rigid-body-object-method-77 () none) + (rigid-body-object-method-78 () none) + (rigid-body-object-method-79 () none) + (rigid-body-object-method-80 () none) + (rigid-body-object-method-81 () none) + (rigid-body-object-method-82 () none) + (rigid-body-object-method-83 () none) + (rigid-body-object-method-84 () none) + (rigid-body-object-method-85 () none) + (rigid-body-object-method-86 () none) + (rigid-body-object-method-87 () none) + (rigid-body-object-method-88 () none) + ) + ) + + +(deftype rigid-body-queue (structure) + ((count int8) + (manager handle) + (array handle 128) + ) + (:methods + (rigid-body-queue-method-9 () none) + (rigid-body-queue-method-10 () none) + (rigid-body-queue-method-11 () none) + (rigid-body-queue-method-12 () none) + (rigid-body-queue-method-13 () none) + (rigid-body-queue-method-14 () none) + (rigid-body-queue-method-15 () none) + (rigid-body-queue-method-16 () none) + ) + ) + + +(defun get-penetrate-using-from-attack-event ((arg0 process-drawable) (arg1 event-message-block)) + "Given an attack event to an enemy, return the penetrate that should be applied to the enemy" + (let ((v1-0 (the-as object (-> arg1 param 1)))) + (if (logtest? (attack-mask penetrate-using) (-> (the-as attack-info v1-0) mask)) + (return (-> (the-as attack-info v1-0) penetrate-using)) + ) + ) + (let ((v1-3 (as-type arg0 process-drawable))) + (when v1-3 + (let* ((gp-1 (-> v1-3 root)) + (v1-4 (if (the-as penetrate (type? gp-1 collide-shape)) + gp-1 + ) + ) + ) + (if v1-4 + (return (logior (-> (the-as collide-shape v1-4) penetrate-using) (penetrate generic-attack))) + ) + ) + ) + ) + (penetrate generic-attack) + ) + +(deftype rb-debug-state-record (structure) + ((flags uint16) + (time-remaining float) + (current-time uint32) + (debug-id int8) + (linear-damping float) + (angular-damping float) + (bounce-factor float) + (friction-factor float) + (position vector :inline) + (rot vector :inline) + (rotation quaternion :inline :overlay-at (-> rot data 0)) + (lin-momentum vector :inline) + (ang-momentum vector :inline) + (force vector :inline) + (rb-debug-state-record-padding1 uint32 28) + (torque vector :inline) + (rb-debug-state-record-padding2 uint32 28) + ) + (:methods + (rb-debug-state-record-method-9 () none) + (rb-debug-state-record-method-10 () none) + ) + ) + + +(deftype rb-debugger (structure) + ((user-mode uint8) + (hook-control uint8) + (flags uint8) + (target-count int8) + (target-array handle 8) + (pad0 uint8 256) + (playback-index int32) + (recorder-index int32) + (begin-index int32) + (end-index int32) + (record-count int32) + (buffer-len int32) + (buffer-size int32) + (total-size int32) + (rb-debugger-pad1 int32 2) + (buffer-start uint32 :inline :dynamic) + ) + (:methods + (rb-debugger-method-9 () none) + (rb-debugger-method-10 () none) + (rb-debugger-method-11 () none) + (rb-debugger-method-12 () none) + (rb-debugger-method-13 () none) + (rb-debugger-method-14 () none) + (rb-debugger-method-15 () none) + (rb-debugger-method-16 () none) + (rb-debugger-method-17 () none) + (rb-debugger-method-18 () none) + (rb-debugger-method-19 () none) + (rb-debugger-method-20 () none) + ) + ) diff --git a/goal_src/jakx/engine/physics/rigid-body-surface-h.gc b/goal_src/jakx/engine/physics/rigid-body-surface-h.gc index ed56ac3d19..d6ddee909b 100644 --- a/goal_src/jakx/engine/physics/rigid-body-surface-h.gc +++ b/goal_src/jakx/engine/physics/rigid-body-surface-h.gc @@ -5,5 +5,90 @@ ;; name in dgo: rigid-body-surface-h ;; dgos: ENGINE, GAME +;; +++rigid-body-surface-flag +(defenum rigid-body-surface-flag + :type uint8 + :bitfield #t + (moving 0) + ) +;; ---rigid-body-surface-flag + + +;; +++surface-type +(defenum surface-type + :type uint8 + (stone 0) + (grass 1) + (dirt 2) + (sand 3) + (snow 4) + (water 5) + (wall 6) + (ice 7) + (none 8) + ) +;; ---surface-type + + ;; DECOMP BEGINS +(deftype rigid-body-surface (structure) + ((flags rigid-body-surface-flag) + (surface-type surface-type) + (friction float) + (bounce float) + (drag float) + (depth float) + (damage float) + (scrape-sound uint16) + (glance-sound uint16) + (impact-sound uint16) + (tire-roll-mix float 6) + (tire-roll-hum float :overlay-at (-> tire-roll-mix 0)) + (tire-roll-dirt float :overlay-at (-> tire-roll-mix 1)) + (tire-roll-sand float :overlay-at (-> tire-roll-mix 2)) + (tire-roll-snow float :overlay-at (-> tire-roll-mix 3)) + (tire-roll-grass float :overlay-at (-> tire-roll-mix 4)) + (tire-roll-knobby float :overlay-at (-> tire-roll-mix 5)) + (tire-slide-mix float 2) + (tire-slide-road float :overlay-at (-> tire-slide-mix 0)) + (tire-slide-dirt float :overlay-at (-> tire-slide-mix 1)) + ) + ) + + +(define *material-to-rb-material-table* + (new 'static 'array int8 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + ) + +(let ((v1-2 *material-to-rb-material-table*)) + (dotimes (a0-2 34) + (set! (-> v1-2 a0-2) 7) + ) + (set! (-> v1-2 0) 6) + (set! (-> v1-2 30) 6) + (set! (-> v1-2 23) 0) + (set! (-> v1-2 16) 0) + (set! (-> v1-2 6) 0) + (set! (-> v1-2 13) 0) + (set! (-> v1-2 14) 0) + (set! (-> v1-2 7) 1) + (set! (-> v1-2 15) 2) + (set! (-> v1-2 9) 4) + (set! (-> v1-2 5) 3) + (set! (-> v1-2 3) 3) + ) + +0 + +;; WARN: Return type mismatch int vs surface-type. +(defun rigid-body-surface-type-from-material ((arg0 int)) + (let ((v0-0 7)) + (let ((v1-0 (logand arg0 63))) + (if (< v1-0 34) + (set! v0-0 (the-as int (-> (the-as (pointer uint8) (&+ *material-to-rb-material-table* v1-0))))) + ) + ) + (the-as surface-type v0-0) + ) + ) diff --git a/goal_src/jakx/engine/physics/trajectory-h.gc b/goal_src/jakx/engine/physics/trajectory-h.gc index bd23e3f11a..8e3a60bc05 100644 --- a/goal_src/jakx/engine/physics/trajectory-h.gc +++ b/goal_src/jakx/engine/physics/trajectory-h.gc @@ -5,5 +5,252 @@ ;; name in dgo: trajectory-h ;; dgos: ENGINE, GAME +(declare-type process-focusable process-drawable) + ;; DECOMP BEGINS +;; definition of type trajectory +(deftype trajectory (structure) + ((initial-position vector :inline) + (initial-velocity vector :inline) + (time float) + (gravity meters) + ) + (:methods + (compute-trans-at-time (_type_ float vector) vector) + (compute-transv-at-time (_type_ float vector) vector) + (compute-time-until-apex (_type_) float) + (setup-from-to-duration! (_type_ vector vector float float) none) + (setup-from-to-xz-vel! (_type_ vector vector float float) none) + (setup-from-to-y-vel! (_type_ vector vector float float) none) + (setup-from-to-height! (_type_ vector vector float float) none) + (setup-from-to-duration-and-height! (_type_ vector vector float float) none) + (debug-draw (_type_) none) + ) + ) + +;; definition for method 3 of type trajectory +(defmethod inspect ((this trajectory)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'trajectory) + (format #t "~1Tinitial-position: ~`vector`P~%" (-> this initial-position)) + (format #t "~1Tinitial-velocity: ~`vector`P~%" (-> this initial-velocity)) + (format #t "~1Ttime: ~f~%" (-> this time)) + (format #t "~1Tgravity: (meters ~m)~%" (-> this gravity)) + (label cfg-4) + this + ) + +;; definition of type impact-control +(deftype impact-control (structure) + ((process (pointer process-drawable)) + (radius meters) + (joint int32) + (collide-with collide-spec) + (start-time uint64) + (trans vector 2 :inline) + (dir vector :inline) + ) + (:methods + (new (symbol type process-drawable int float collide-spec) _type_) + (initialize (_type_ process-drawable int float collide-spec) impact-control) + (update-from-cspace (_type_) none) + (impact-control-method-11 (_type_ collide-query process pat-surface) float) + ) + ) + +;; definition for method 3 of type impact-control +(defmethod inspect ((this impact-control)) + (when (not this) + (set! this this) + (goto cfg-7) + ) + (format #t "[~8x] ~A~%" this 'impact-control) + (format #t "~1Tprocess: #x~X~%" (-> this process)) + (format #t "~1Tradius: (meters ~m)~%" (-> this radius)) + (format #t "~1Tjoint: ~D~%" (-> this joint)) + (format #t "~1Tcollide-with: ~D~%" (-> this collide-with)) + (format #t "~1Tstart-time: ~D~%" (-> this start-time)) + (format #t "~1Ttrans[2] @ #x~X~%" (-> this trans)) + (dotimes (s5-0 2) + (format #t "~T [~D]~1Ttrans: ~`vector`P~%" s5-0 (-> this trans s5-0)) + ) + (format #t "~1Tdir: ~`vector`P~%" (-> this dir)) + (label cfg-7) + this + ) + +;; definition for method 0 of type impact-control +(defmethod new impact-control ((allocation symbol) (type-to-make type) (arg0 process-drawable) (arg1 int) (arg2 float) (arg3 collide-spec)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + ((method-of-type impact-control initialize) + (the-as impact-control (t9-0 allocation v1-1)) + arg0 + arg1 + arg2 + arg3 + ) + ) + ) + +;; definition of type point-tracker +(deftype point-tracker (structure) + ((trans vector 2 :inline) + ) + (:methods + (new (symbol type vector vector) _type_) + (initialize (_type_ vector vector) point-tracker) + (point-tracker-method-10 (_type_ vector vector vector float) vector) + (point-tracker-method-11 (_type_ vector vector vector float) vector) + ) + ) + +;; definition for method 3 of type point-tracker +(defmethod inspect ((this point-tracker)) + (when (not this) + (set! this this) + (goto cfg-7) + ) + (format #t "[~8x] ~A~%" this 'point-tracker) + (format #t "~1Ttrans[2] @ #x~X~%" (-> this trans)) + (dotimes (s5-0 2) + (format #t "~T [~D]~1Ttrans: ~`vector`P~%" s5-0 (-> this trans s5-0)) + ) + (label cfg-7) + this + ) + +;; definition for method 0 of type point-tracker +(defmethod new point-tracker ((allocation symbol) (type-to-make type) (arg0 vector) (arg1 vector)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + ((method-of-type point-tracker initialize) (the-as point-tracker (t9-0 allocation v1-1)) arg0 arg1) + ) + ) + +;; definition of type combo-tracker +(deftype combo-tracker (point-tracker) + ((target handle) + (move-start-time time-frame) + ) + (:methods + (combo-tracker-method-12 (_type_ vector vector process time-frame) combo-tracker) + (combo-tracker-method-13 (_type_ handle vector float vector float) process-focusable) + ) + ) + +;; definition for method 3 of type combo-tracker +(defmethod inspect ((this combo-tracker)) + (when (not this) + (set! this this) + (goto cfg-7) + ) + (format #t "[~8x] ~A~%" this 'combo-tracker) + (format #t "~1Ttrans[2] @ #x~X~%" (-> this trans)) + (dotimes (s5-0 2) + (format #t "~T [~D]~1Ttrans: ~`vector`P~%" s5-0 (-> this trans s5-0)) + ) + (format #t "~1Ttarget: ~D~%" (-> this target)) + (format #t "~1Tmove-start-time: ~D~%" (-> this move-start-time)) + (label cfg-7) + this + ) + +;; definition of type traj2d-params +(deftype traj2d-params (structure) + ((x float) + (y float) + (gravity float) + (initial-tilt float) + (initial-speed float) + (time float) + ) + ) + +;; definition for method 3 of type traj2d-params +(defmethod inspect ((this traj2d-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'traj2d-params) + (format #t "~1Tx: ~f~%" (-> this x)) + (format #t "~1Ty: ~f~%" (-> this y)) + (format #t "~1Tgravity: ~f~%" (-> this gravity)) + (format #t "~1Tinitial-tilt: ~f~%" (-> this initial-tilt)) + (format #t "~1Tinitial-speed: ~f~%" (-> this initial-speed)) + (format #t "~1Ttime: ~f~%" (-> this time)) + (label cfg-4) + this + ) + +;; definition of type traj3d-params +(deftype traj3d-params (structure) + ((gravity float) + (initial-tilt float) + (initial-speed float) + (time float) + (src vector :inline) + (dest vector :inline) + (diff vector :inline) + (initial-velocity vector :inline) + ) + ) + +;; definition for method 3 of type traj3d-params +(defmethod inspect ((this traj3d-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'traj3d-params) + (format #t "~1Tgravity: ~f~%" (-> this gravity)) + (format #t "~1Tinitial-tilt: ~f~%" (-> this initial-tilt)) + (format #t "~1Tinitial-speed: ~f~%" (-> this initial-speed)) + (format #t "~1Ttime: ~f~%" (-> this time)) + (format #t "~1Tsrc: #~%" (-> this src)) + (format #t "~1Tdest: #~%" (-> this dest)) + (format #t "~1Tdiff: #~%" (-> this diff)) + (format #t "~1Tinitial-velocity: #~%" (-> this initial-velocity)) + (label cfg-4) + this + ) + +;; definition of type cubic-curve +(deftype cubic-curve (structure) + ((mat matrix :inline) + (vec vector 4 :inline :overlay-at (-> mat data 0)) + ) + (:methods + (cubic-curve-method-9 (_type_ vector vector vector vector) none) + (cubic-curve-method-10 (_type_ vector float) vector) + (cubic-curve-method-11 (_type_ vector float) vector) + (cubic-curve-method-12 (_type_ vector float) vector) + (debug-draw-curve (_type_) none) + ) + ) + +;; definition for method 3 of type cubic-curve +(defmethod inspect ((this cubic-curve)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'cubic-curve) + (format #t "~1Tmat: #~%" (-> this vec)) + (label cfg-4) + this + ) + + + + + diff --git a/goal_src/jakx/engine/physics/trajectory.gc b/goal_src/jakx/engine/physics/trajectory.gc index 1ba7f3768e..9b0397537d 100644 --- a/goal_src/jakx/engine/physics/trajectory.gc +++ b/goal_src/jakx/engine/physics/trajectory.gc @@ -7,3 +7,443 @@ ;; DECOMP BEGINS +(defmethod compute-trans-at-time ((this trajectory) (arg0 float) (arg1 vector)) + (vector+float*! arg1 (-> this initial-position) (-> this initial-velocity) arg0) + (+! (-> arg1 y) (* (/ arg0 2) arg0 (-> this gravity))) + arg1 + ) + +(defmethod compute-transv-at-time ((this trajectory) (arg0 float) (arg1 vector)) + (set! (-> arg1 quad) (-> this initial-velocity quad)) + (+! (-> arg1 y) (* arg0 (-> this gravity))) + arg1 + ) + +(defmethod compute-time-until-apex ((this trajectory)) + (/ (- (-> this initial-velocity y)) (-> this gravity)) + ) + +(defmethod setup-from-to-duration! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (set! (-> this initial-position quad) (-> arg0 quad)) + (set! (-> this gravity) arg3) + (set! (-> this time) arg2) + (let ((f0-3 (/ (vector-vector-xz-distance arg1 arg0) arg2))) + (vector-! (-> this initial-velocity) arg1 arg0) + (vector-xz-normalize! (-> this initial-velocity) f0-3) + ) + (set! (-> this initial-velocity y) (- (/ (- (-> arg1 y) (-> arg0 y)) arg2) (* (/ arg2 2) (-> this gravity)))) + 0 + (none) + ) + +(defmethod setup-from-to-xz-vel! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let ((f0-1 (/ (vector-vector-xz-distance arg1 arg0) arg2))) + (setup-from-to-duration! this arg0 arg1 f0-1 arg3) + ) + 0 + (none) + ) + +(defmethod setup-from-to-y-vel! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let ((f1-3 (- (square arg2) (* 2.0 (- (-> arg0 y) (-> arg1 y)) arg3))) + (f0-3 900.0) + ) + (when (>= f1-3 0.0) + (let ((f0-4 (sqrtf f1-3))) + (set! f0-3 (fmax (/ (- (- arg2) f0-4) arg3) (/ (+ (- arg2) f0-4) arg3))) + ) + ) + (setup-from-to-duration! this arg0 arg1 f0-3 arg3) + ) + 0 + (none) + ) + +(defmethod setup-from-to-height! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let* ((f0-1 (+ arg2 (fmax (-> arg0 y) (-> arg1 y)))) + (f1-4 (* 2.0 (- (-> arg0 y) f0-1) arg3)) + (f0-4 4096.0) + ) + (if (< 0.0 f1-4) + (set! f0-4 (sqrtf f1-4)) + ) + (setup-from-to-y-vel! this arg0 arg1 f0-4 arg3) + ) + 0 + (none) + ) + +;; WARN: Function (method 16 trajectory) has a return type of none, but the expression builder found a return statement. +(defmethod setup-from-to-duration-and-height! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let ((f0-1 (- (-> arg1 y) (-> arg0 y)))) + (cond + ((= f0-1 0.0) + (setup-from-to-duration! this arg0 arg1 arg2 (/ (* -8.0 arg3) (square arg2))) + (return 0) + ) + ((and (< 0.0 f0-1) (< 0.0 arg3) (< arg3 f0-1)) + (set! arg3 f0-1) + ) + ((and (< f0-1 0.0) (< arg3 0.0) (< f0-1 arg3)) + (set! arg3 f0-1) + ) + ) + (let* ((f1-14 (/ (- arg3 f0-1) arg3)) + (f0-8 (* -2.0 (square (/ (- 1.0 f1-14) (- arg2 (* arg2 (sqrtf f1-14))))) arg3)) + ) + (setup-from-to-duration! this arg0 arg1 arg2 f0-8) + ) + ) + 0 + (none) + ) + +(method-set! + trajectory + 17 + (if *debug-segment* + (lambda ((arg0 trajectory)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 10) + ) + (set! (-> s4-0 quad) (-> arg0 initial-position quad)) + (dotimes (s2-0 s3-0) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (let ((f0-1 (* (-> arg0 time) (/ (+ 1.0 (the float s2-0)) (the float s3-0))))) + (compute-trans-at-time arg0 f0-1 s4-0) + ) + (add-debug-line #t (bucket-id bucket785) s5-0 s4-0 (new 'static 'rgba :r #xff :a #x80) #f (the-as rgba -1)) + ) + ) + 0 + (none) + ) + nothing + ) + ) + +(defmethod initialize ((this impact-control) (arg0 process-drawable) (arg1 int) (arg2 float) (arg3 collide-spec)) + (set! (-> this start-time) (the-as uint (current-time))) + (set! (-> this process) (the-as (pointer process-drawable) (process->ppointer arg0))) + (set! (-> this joint) arg1) + (set! (-> this radius) arg2) + (set! (-> this collide-with) (logclear arg3 (collide-spec water))) + (set! (-> this trans 0 quad) (the-as uint128 0)) + (set! (-> this trans 1 quad) (the-as uint128 0)) + this + ) + +(defmethod update-from-cspace ((this impact-control)) + (when (>= (-> this joint) 0) + (set! (-> this trans 1 quad) (-> this trans 0 quad)) + (vector<-cspace! (-> this trans 0) (-> this process 0 node-list data (-> this joint))) + (vector-! (-> this dir) (-> this trans 0) (-> this trans 1)) + ) + 0 + (none) + ) + +(defmethod impact-control-method-11 ((this impact-control) (arg0 collide-query) (arg1 process) (arg2 pat-surface)) + (set! (-> arg0 start-pos quad) (-> this trans 1 quad)) + (set! (-> arg0 move-dist quad) (-> this dir quad)) + (let ((v1-2 (ppointer->process (-> this process))) + (a0-6 arg0) + ) + (set! (-> a0-6 radius) (-> this radius)) + (set! (-> a0-6 collide-with) (-> this collide-with)) + (set! (-> a0-6 ignore-process0) v1-2) + (set! (-> a0-6 ignore-process1) #f) + (set! (-> a0-6 ignore-pat) arg2) + (set! (-> a0-6 action-mask) (collide-action solid)) + (set! (-> a0-6 best-other-prim) #f) + ) + (let ((f30-0 (fill-and-probe-using-line-sphere *collide-cache* arg0))) + (when (and arg1 (>= f30-0 0.0) (>= 0.0 (vector-dot (-> arg0 best-other-tri normal) (-> this dir)))) + (let ((s3-0 (new 'stack-no-clear 'touching-shapes-entry)) + (v1-12 (as-type (-> arg0 best-other-tri collide-ptr) collide-shape-prim)) + ) + (set! (-> s3-0 cshape1) #f) + (set! (-> s3-0 cshape2) (if v1-12 + (-> (the-as collide-shape-prim v1-12) cshape) + ) + ) + (set! (-> s3-0 resolve-u) (the int f30-0)) + (set! (-> s3-0 head) #f) + (send-event + arg1 + 'impact-control + :from (if v1-12 + (-> (the-as collide-shape-prim v1-12) cshape process) + arg1 + ) + #f + s3-0 + this + arg0 + ) + ) + ) + f30-0 + ) + ) + +(defmethod initialize ((this point-tracker) (arg0 vector) (arg1 vector)) + (set! (-> this trans 0 quad) (-> arg0 quad)) + (set! (-> this trans 1 quad) (-> arg1 quad)) + this + ) + +(defmethod point-tracker-method-10 ((this point-tracker) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let ((a1-2 (vector+float*! arg0 arg2 (vector-! (new 'stack-no-clear 'vector) arg1 arg2) (- 1.0 arg3)))) + (vector-lerp! arg0 a1-2 arg2 arg3) + ) + ) + ) + arg0 + ) + +(defmethod point-tracker-method-11 ((this point-tracker) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + (with-pp + (let ((v1-1 (point-tracker-method-10 this (new 'stack-no-clear 'vector) arg1 arg2 arg3))) + (vector-! arg0 v1-1 arg1) + ) + (vector-float*! arg0 arg0 (-> pp clock frames-per-second)) + arg0 + ) + ) + +;; WARN: Return type mismatch process vs process-focusable. +(defmethod combo-tracker-method-13 ((this combo-tracker) (arg0 handle) (arg1 vector) (arg2 float) (arg3 vector) (arg4 float)) + (the-as process-focusable (cond + ((send-event (handle->process arg0) 'combo) + (as-type (handle->process arg0) process-focusable) + ) + (else + (let ((s1-0 (new 'stack-no-clear 'sphere)) + (s2-1 (new 'stack 'boxed-array collide-shape 32)) + ) + (sphere<-vector+r! s1-0 arg1 arg2) + (let ((t9-4 (method-of-object *actor-hash* spatial-hash-method-38))) + (-> s2-1 data) + (-> s2-1 allocated-length) + (set! (-> s2-1 length) (the-as int (t9-4))) + ) + (as-type + (find-nearest-focusable + (the-as (array collide-shape) s2-1) + arg1 + arg2 + (if (= arg4 65536.0) + (search-info-flag crate enemy combo) + (search-info-flag crate enemy prefer-angle cull-angle combo) + ) + (search-info-flag) + arg3 + (the-as vector #f) + arg4 + ) + process-focusable + ) + ) + ) + ) + ) + ) + +(defmethod combo-tracker-method-12 ((this combo-tracker) (arg0 vector) (arg1 vector) (arg2 process) (arg3 time-frame)) + (initialize this arg0 arg1) + (set! (-> this target) (process->handle arg2)) + (set! (-> this move-start-time) arg3) + this + ) + +(defun traj2d-calc-initial-speed-using-tilt ((arg0 traj2d-params)) + (let ((f0-4 (* (- (* (-> arg0 x) (tan (-> arg0 initial-tilt))) (-> arg0 y)) (/ 2.0 (-> arg0 gravity))))) + (cond + ((< 0.0 f0-4) + (set! (-> arg0 time) (sqrtf f0-4)) + (set! (-> arg0 initial-speed) (/ (-> arg0 x) (* (-> arg0 time) (cos (-> arg0 initial-tilt))))) + #t + ) + (else + (set! (-> arg0 time) 0.0) + (set! (-> arg0 initial-speed) 0.0) + #f + ) + ) + ) + ) + +(defun traj3d-calc-initial-velocity-using-tilt ((arg0 traj3d-params)) + (vector-! (-> arg0 diff) (-> arg0 dest) (-> arg0 src)) + (let ((s5-0 (new 'stack-no-clear 'traj2d-params))) + (let ((v1-1 (-> arg0 diff))) + (set! (-> s5-0 x) (sqrtf (+ (* (-> v1-1 x) (-> v1-1 x)) (* (-> v1-1 z) (-> v1-1 z))))) + ) + (set! (-> s5-0 y) (-> arg0 diff y)) + (set! (-> s5-0 gravity) (-> arg0 gravity)) + (set! (-> s5-0 initial-tilt) (-> arg0 initial-tilt)) + (cond + ((traj2d-calc-initial-speed-using-tilt s5-0) + (set! (-> arg0 time) (-> s5-0 time)) + (let* ((f26-0 (atan (-> arg0 diff x) (-> arg0 diff z))) + (f30-0 (-> arg0 initial-tilt)) + (f24-0 (cos f30-0)) + (f28-0 (-> s5-0 initial-speed)) + ) + (set! (-> arg0 initial-speed) f28-0) + (set! (-> arg0 initial-velocity x) (* f28-0 f24-0 (sin f26-0))) + (set! (-> arg0 initial-velocity z) (* f28-0 f24-0 (cos f26-0))) + (set! (-> arg0 initial-velocity y) (* f28-0 (sin f30-0))) + ) + (set! (-> arg0 initial-velocity w) 1.0) + #t + ) + (else + (set! (-> arg0 time) 0.0) + (set! (-> arg0 initial-speed) 0.0) + (vector-reset! (-> arg0 initial-velocity)) + #f + ) + ) + ) + ) + +(defmethod cubic-curve-method-9 ((this cubic-curve) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (set! (-> this vec 0 quad) (-> arg0 quad)) + (set! (-> this mat uvec quad) (-> arg1 quad)) + (let ((v1-2 (new 'stack-no-clear 'trajectory))) + (vector-! (-> v1-2 initial-velocity) arg2 arg0) + (vector-float*! (-> v1-2 initial-position) (-> v1-2 initial-velocity) 3.0) + (let ((t1-7 (-> v1-2 initial-position))) + (let ((a1-3 (-> v1-2 initial-position))) + (let ((a3-2 arg1)) + (let ((t2-1 -2.0)) + (.mov vf7 t2-1) + ) + (.lvf vf5 (&-> a3-2 quad)) + ) + (.lvf vf4 (&-> a1-3 quad)) + ) + (.add.x.vf.w vf6 vf0 vf0) + (.mul.x.vf.xyz acc vf5 vf7) + (.add.mul.w.vf.xyz vf6 vf4 vf0 acc) + (.svf (&-> t1-7 quad) vf6) + ) + (vector-! (-> v1-2 initial-position) (-> v1-2 initial-position) arg3) + (set! (-> this mat fvec quad) (-> v1-2 initial-position quad)) + (vector-float*! (-> v1-2 initial-position) (-> v1-2 initial-velocity) -2.0) + (let ((a3-7 (-> v1-2 initial-position))) + (.lvf vf4 (&-> (-> v1-2 initial-position) quad)) + (.lvf vf5 (&-> arg1 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a3-7 quad) vf6) + ) + (let ((a2-1 (-> v1-2 initial-position))) + (let ((a3-8 arg3)) + (.lvf vf4 (&-> (-> v1-2 initial-position) quad)) + (.lvf vf5 (&-> a3-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-1 quad) vf6) + ) + (set! (-> this mat trans quad) (-> v1-2 initial-position quad)) + ) + (dotimes (v1-5 4) + (set! (-> this vec v1-5 w) 0.0) + ) + 0 + (none) + ) + ) + +(defmethod cubic-curve-method-10 ((this cubic-curve) (arg0 vector) (arg1 float)) + (let ((v1-0 (new 'stack-no-clear 'trajectory))) + (let ((f0-1 (* arg1 arg1))) + (set-vector! (-> v1-0 initial-position) 1.0 arg1 f0-1 (* f0-1 arg1)) + ) + (vector-matrix*! arg0 (-> v1-0 initial-position) (the-as matrix (-> this vec))) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defmethod cubic-curve-method-11 ((this cubic-curve) (arg0 vector) (arg1 float)) + (let ((v1-0 (new 'stack-no-clear 'trajectory))) + (set-vector! (-> v1-0 initial-position) 0.0 1.0 (* 2.0 arg1) (* 3.0 arg1 arg1)) + (vector-matrix*! arg0 (-> v1-0 initial-position) (the-as matrix (-> this vec))) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defmethod cubic-curve-method-12 ((this cubic-curve) (arg0 vector) (arg1 float)) + (let ((v1-0 (new 'stack-no-clear 'trajectory))) + (set-vector! (-> v1-0 initial-position) 0.0 0.0 2.0 (* 6.0 arg1)) + (vector-matrix*! arg0 (-> v1-0 initial-position) (the-as matrix (-> this vec))) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defmethod debug-draw-curve ((this cubic-curve)) + (let ((s5-0 (new 'stack-no-clear 'trajectory)) + (s4-0 10) + ) + (cubic-curve-method-10 this (-> s5-0 initial-velocity) 0.0) + (add-debug-x #t (bucket-id bucket785) (-> s5-0 initial-velocity) *color-red*) + (dotimes (s3-0 s4-0) + (set! (-> s5-0 initial-position quad) (-> s5-0 initial-velocity quad)) + (let ((f0-2 (/ (+ 1.0 (the float s3-0)) (the float s4-0)))) + (cubic-curve-method-10 this (-> s5-0 initial-velocity) f0-2) + ) + (add-debug-x #t (bucket-id bucket785) (-> s5-0 initial-velocity) *color-red*) + (add-debug-line + #t + (bucket-id bucket785) + (-> s5-0 initial-position) + (-> s5-0 initial-velocity) + *color-red* + #f + (the-as rgba -1) + ) + ) + ) + (add-debug-vector + #t + (bucket-id bucket785) + (cubic-curve-method-10 this (new 'stack-no-clear 'vector) 0.0) + (cubic-curve-method-11 this (new 'stack-no-clear 'vector) 0.0) + (meters 0.00024414062) + *color-white* + ) + (add-debug-vector + #t + (bucket-id bucket785) + (cubic-curve-method-10 this (new 'stack-no-clear 'vector) 1.0) + (vector-negate! (new 'stack-no-clear 'vector) (cubic-curve-method-11 this (new 'stack-no-clear 'vector) 1.0)) + (meters 0.00024414062) + *color-white* + ) + 0 + (none) + ) diff --git a/goal_src/jakx/engine/process-drawable/process-drawable-h.gc b/goal_src/jakx/engine/process-drawable/process-drawable-h.gc index ce8e4e75c3..edf349d279 100644 --- a/goal_src/jakx/engine/process-drawable/process-drawable-h.gc +++ b/goal_src/jakx/engine/process-drawable/process-drawable-h.gc @@ -5,5 +5,9 @@ ;; name in dgo: process-drawable-h ;; dgos: ENGINE, GAME +(define-extern vector<-matrix! (function vector matrix vector)) +(define-extern vector<-cspace! (function vector cspace vector)) +(define-extern sleep-code (function symbol :behavior process)) + ;; DECOMP BEGINS diff --git a/goal_src/jakx/engine/process-drawable/process-focusable.gc b/goal_src/jakx/engine/process-drawable/process-focusable.gc index 07d59b1efd..fa00a3c4ad 100644 --- a/goal_src/jakx/engine/process-drawable/process-focusable.gc +++ b/goal_src/jakx/engine/process-drawable/process-focusable.gc @@ -48,6 +48,32 @@ ) ;; ---focus-status +;; +++search-info-flag +(defenum search-info-flag + :type uint32 + :bitfield #t + (abort 0) + (crate 1) + (guard 2) + (attackable 3) + (enemy 4) + (attackable-priority 5) + (high-priority 6) + (on-screen 7) + (prefer-dist 8) + (prefer-angle 9) + (prefer-xz 10) + (cull-angle 11) + (cull-angle-simple 12) + (cull-xz 13) + (back-point 14) + (combo 15) + (probe 16) + (probe-camera 17) + (prefer-center 18) + ) +;; ---search-info-flag + ;; DECOMP BEGINS (deftype process-focusable (process-drawable) diff --git a/goal_src/jakx/engine/ps2/memcard-h.gc b/goal_src/jakx/engine/ps2/memcard-h.gc index c5104ed64b..4790fa6229 100644 --- a/goal_src/jakx/engine/ps2/memcard-h.gc +++ b/goal_src/jakx/engine/ps2/memcard-h.gc @@ -5,6 +5,30 @@ ;; name in dgo: memcard-h ;; dgos: ENGINE, GAME +;; +++mc-status-code +(defenum mc-status-code + :type uint32 + (busy 0) + (ok 1) + (bad-handle 2) + (format-failed 3) + (internal-error 4) + (write-error 5) + (read-error 6) + (new-game 7) + (no-memory 8) + (no-card 9) + (no-last 10) + (no-format 11) + (no-file 12) + (no-save 13) + (no-space 14) + (bad-version 15) + (no-process 16) + (no-auto-save 17) + ) +;; ---mc-status-code + ;; DECOMP BEGINS (deftype mc-handle (int32) diff --git a/goal_src/jakx/engine/ps2/pad.gc b/goal_src/jakx/engine/ps2/pad.gc index 7083b454fa..73fc2e4b84 100644 --- a/goal_src/jakx/engine/ps2/pad.gc +++ b/goal_src/jakx/engine/ps2/pad.gc @@ -15,6 +15,89 @@ ) ;; ---mouse-buttons +;; +++pad-buttons +(defenum pad-buttons + :bitfield #t + :type uint32 + (select 0) + (l3 1) + (r3 2) + (start 3) + (up 4) + (right 5) + (down 6) + (left 7) + (l2 8) + (r2 9) + (l1 10) + (r1 11) + (triangle 12) + (circle 13) + (x 14) + (square 15) + ;; only 16 buttons are mapped to hardware, the rest are 'actions' or something else + (l-analog-up 16) + (l-analog-right 17) + (l-analog-down 18) + (l-analog-left 19) + (r-analog-up 20) + (r-analog-right 21) + (r-analog-down 22) + (r-analog-left 23) + (confirm 24) + ) +;; ---pad-buttons + +;; +++abutton-idx +(defenum abutton-idx + :type uint8 + (right 0) + (left 1) + (up 2) + (down 3) + (triangle 4) + (circle 5) + (x 6) + (square 7) + (l1 8) + (r1 9) + (l2 10) + (r2 11) + ) +;; ---abutton-idx + +(defmacro cpad-pressed (pad-idx) + `(-> *cpad-list* cpads ,pad-idx button0-rel 0) + ) + +(defmacro cpad-hold (pad-idx) + `(-> *cpad-list* cpads ,pad-idx button0-abs 0) + ) + +(defmacro cpad-pressed? (pad-idx &rest buttons) + `(logtest? (cpad-pressed ,pad-idx) (pad-buttons ,@buttons)) + ) + +(defmacro recently-pressed? (&key (pad-idx (-> self control cpad number)) &key (frames 15) &rest buttons) + "Checks if a (pad-button) was pressed within the last 50ms, based on frames" + `(logtest? ,(generate-frame-checks pad-idx frames) (pad-buttons ,@buttons)) +) + +(defmacro cpad-hold? (pad-idx &rest buttons) + `(logtest? (cpad-hold ,pad-idx) (pad-buttons ,@buttons)) + ) + +(defmacro cpad-clear! (pad-idx &rest buttons) + `(begin + (logclear! (cpad-pressed ,pad-idx) (pad-buttons ,@buttons)) + (logclear! (cpad-hold ,pad-idx) (pad-buttons ,@buttons)) + ) + ) + +(defmacro cpad-change-time (pad-idx) + `(-> *cpad-list* cpads ,pad-idx change-time) + ) + ;; DECOMP BEGINS (deftype mouse-info (basic) @@ -45,4 +128,65 @@ :flag-assert #x900000070 ) -(define-extern *mouse* mouse-info) \ No newline at end of file +(define-extern *mouse* mouse-info) + +(deftype hw-cpad (basic) + ((valid uint8 :offset-assert 4) + (status uint8 :offset-assert 5) + (button0 uint16 :offset-assert 6) + (rightx uint8 :offset-assert 8) + (righty uint8 :offset-assert 9) + (leftx uint8 :offset-assert 10) + (lefty uint8 :offset-assert 11) + (abutton uint8 12 :offset-assert 12) ;; guessed by decompiler + (dummy uint8 12 :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) + +(deftype cpad-info (hw-cpad) + ((number int32 :offset-assert 36) + (cpad-file int32 :offset-assert 40) + (button0-abs pad-buttons 3 :offset-assert 44) ;; guessed by decompiler + (button0-shadow-abs pad-buttons 1 :offset-assert 56) ;; guessed by decompiler + (button0-rel pad-buttons 3 :offset-assert 60) ;; guessed by decompiler + (stick0-dir float :offset-assert 72) + (stick0-speed float :offset-assert 76) + (new-pad int32 :offset-assert 80) + (state int32 :offset-assert 84) + (align uint8 6 :offset-assert 88) ;; guessed by decompiler + (direct uint8 6 :offset-assert 94) ;; guessed by decompiler + (buzz-val uint8 2 :offset-assert 100) ;; guessed by decompiler + (buzz-pause-val uint8 1 :offset-assert 102) ;; guessed by decompiler + (buzz-pause-time uint8 :offset-assert 103) + (buzz-time time-frame 2 :offset-assert 104) ;; guessed by decompiler + (buzz symbol :offset-assert 120) ;; guessed by decompiler + (buzz-act int32 :offset-assert 124) + (change-time uint64 :offset-assert 128) ;; time-frame + (real-change-time uint64 :offset-assert 136) ;; time-frame + (old-rightx uint8 2 :offset-assert 144) ;; guessed by decompiler + (old-righty uint8 2 :offset-assert 146) ;; guessed by decompiler + (old-leftx uint8 2 :offset-assert 148) ;; guessed by decompiler + (old-lefty uint8 2 :offset-assert 150) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x98 + :flag-assert #xa00000098 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (cpad-info-method-9 () none) ;; 9 ;; (adjust-to-screen-flip (_type_) int) + ) + ) + +(deftype cpad-list (basic) + ((num-cpads int32 :offset-assert 4) + (cpads cpad-info 2 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) + +(define *cpad-list* (new 'global 'cpad-list)) \ No newline at end of file diff --git a/goal_src/jakx/engine/ps2/vu1-macros.gc b/goal_src/jakx/engine/ps2/vu1-macros.gc index b83100daeb..313e6d9e22 100644 --- a/goal_src/jakx/engine/ps2/vu1-macros.gc +++ b/goal_src/jakx/engine/ps2/vu1-macros.gc @@ -5,4 +5,146 @@ ;; name in dgo: vu1-macros ;; dgos: ENGINE, GAME +#|@file +this file has no code, just macros for vector-unit stuff. + +in OpenGOAL we're also using this for VU0 macros to help with VU0 operations that are not +directly implemented by the OpenGOAL compiler +|# + +(defmacro vu-clip (vfr cf) + "Returns the result of VCLIP. + NOTE: this implementation is pretty inefficient. + If this ends up used a lot, it's probably worth rewriting. + " + `(let ((vec (new 'stack 'vector)) + (flag ,cf) + ) + (.svf vec ,vfr) + (let* ((w-plus (fabs (-> vec w))) + (w-minus (- 0.0 w-plus)) + ) + ;; CF = CF << 6 + (set! flag (logand #xffffff (shl flag 6))) + + (when (> (-> vec x) w-plus) + (logior! flag 1) + ) + (when (< (-> vec x) w-minus) + (logior! flag 2) + ) + (when (> (-> vec y) w-plus) + (logior! flag 4) + ) + (when (< (-> vec y) w-minus) + (logior! flag 8) + ) + (when (> (-> vec z) w-plus) + (logior! flag 16) + ) + (when (< (-> vec z) w-minus) + (logior! flag 32) + ) + ) + flag + ) + ) + + +(defmacro vftoi4.xyzw (dst src) + "convert to 28.4 integer. This does the multiply while the number is still + a float. This will have issues for very large floats, but it seems like this + is how PCSX2 does it as well, so maybe it's right? + NOTE: this is the only version of the instruction used in Jak 1, so we + don't need to worry about masks." + + `(begin + (rlet ((temp :class vf)) + (set! temp 16.0) + (.mul.x.vf temp ,src temp) + (.ftoi.vf ,dst temp) + ) + ) + ) + +(defmacro vftoi12.xyzw (dst src) + "convert to 20.12 integer. This does the multiply while the number is still + a float. This will have issues for very large floats, but it seems like this + is how PCSX2 does it as well, so maybe it's right? + NOTE: this is the only version of the instruction used in Jak 1, so we + don't need to worry about masks." + + `(begin + (rlet ((temp :class vf)) + (set! temp 4096.0) + (.mul.x.vf temp ,src temp) + (.ftoi.vf ,dst temp) + ) + ) + ) + +(defmacro vftoi15.xyzw (dst src) + "convert to 17.15 integer. This does the multiply while the number is still + a float. This will have issues for very large floats, but it seems like this + is how PCSX2 does it as well, so maybe it's right? + NOTE: this is the only version of the instruction used in Jak 1, so we + don't need to worry about masks." + + `(begin + (rlet ((temp :class vf)) + (set! temp 32768.0) + (.mul.x.vf temp ,src temp) + (.ftoi.vf ,dst temp) + ) + ) + ) + +(defmacro vitof4.xyzw (dst src) + "convert from a 28.4 integer. This does the multiply while the number is still + a float. This will have issues for very large floats, but it seems like this + is how PCSX2 does it as well, so maybe it's right? + NOTE: this is the only version of the instruction used in Jak 1, so we + don't need to worry about masks." + + `(begin + (rlet ((temp :class vf)) + (.itof.vf ,dst ,src) + (set! temp 0.0625) + (.mul.x.vf ,dst ,dst temp) + ) + ) + ) + +(defmacro vitof12.xyzw (dst src) + "convert from a 20.12 integer. This does the multiply while the number is still + a float. This will have issues for very large floats, but it seems like this + is how PCSX2 does it as well, so maybe it's right? + NOTE: this is the only version of the instruction used in Jak 1, so we + don't need to worry about masks." + +`(begin + (rlet ((temp :class vf)) + (.itof.vf ,dst ,src) + (set! temp 0.000244140625) + (.mul.x.vf ,dst ,dst temp) + ) + ) +) + +(defmacro vitof15.xyzw (dst src) + "convert from a 17.15 integer. This does the multiply while the number is still + a float. This will have issues for very large floats, but it seems like this + is how PCSX2 does it as well, so maybe it's right? + NOTE: this is the only version of the instruction used in Jak 1, so we + don't need to worry about masks." + +`(begin + (rlet ((temp :class vf)) + (.itof.vf ,dst ,src) + (set! temp 0.000030517578125) + (.mul.x.vf ,dst ,dst temp) + ) + ) +) + ;; DECOMP BEGINS diff --git a/goal_src/jakx/engine/sound/gsound.gc b/goal_src/jakx/engine/sound/gsound.gc index c272f4a1f8..e02c5229d0 100644 --- a/goal_src/jakx/engine/sound/gsound.gc +++ b/goal_src/jakx/engine/sound/gsound.gc @@ -7,4 +7,7 @@ ;; DECOMP BEGINS -(define-extern get-sound-buffer-entry (function pointer)) \ No newline at end of file +(define-extern get-sound-buffer-entry (function pointer)) +(define-extern sound-stop (function sound-id symbol int)) +(define-extern make-sound-instance (function object int symbol sound-instance)) +(define-extern find-sound-instance (function object symbol sound-instance)) \ No newline at end of file diff --git a/goal_src/jakx/engine/sound/sound-info.gc b/goal_src/jakx/engine/sound/sound-info.gc index efee7c710f..5ae308d981 100644 --- a/goal_src/jakx/engine/sound/sound-info.gc +++ b/goal_src/jakx/engine/sound/sound-info.gc @@ -5,5 +5,7 @@ ;; name in dgo: sound-info ;; dgos: ENGINE, GAME +(define-extern *sound-info* (array sound-info)) + ;; DECOMP BEGINS diff --git a/goal_src/jakx/engine/sound/speech-h.gc b/goal_src/jakx/engine/sound/speech-h.gc index de1e838aa9..a8767a1acb 100644 --- a/goal_src/jakx/engine/sound/speech-h.gc +++ b/goal_src/jakx/engine/sound/speech-h.gc @@ -98,6 +98,9 @@ (define-extern get-task-cup-score (function int int)) +(declare-type speech-control structure) +(define-extern *speech-control* speech-control) + ;; DECOMP BEGINS (define *music-volume-during-speech* 0.85) @@ -117,7 +120,7 @@ (deftype speech-info (structure) - ((list basic) + ((list (array speech-info-item)) (flags speech-info-flag) ) (:methods @@ -149,7 +152,7 @@ (time uint64) (current-request speech-request) (requests basic) - (speeches speech-info-item 31) + (speeches speech-info 31) ) (:methods (speech-channel-method-9 () none) diff --git a/goal_src/jakx/engine/sound/speech/speech-ashelin.gc b/goal_src/jakx/engine/sound/speech/speech-ashelin.gc index fc29654c9d..9d7ff04376 100644 --- a/goal_src/jakx/engine/sound/speech/speech-ashelin.gc +++ b/goal_src/jakx/engine/sound/speech/speech-ashelin.gc @@ -7,3 +7,442 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 4 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash110r") + (new 'static 'speech-info-item :name "ash113r") + (new 'static 'speech-info-item :name "ash118r") + (new 'static 'speech-info-item :name "ash121r") + (new 'static 'speech-info-item :name "ash122r") + (new 'static 'speech-info-item :name "ash123r") + (new 'static 'speech-info-item :name "ash124r") + (new 'static 'speech-info-item :name "ash125r") + (new 'static 'speech-info-item :name "ash126r") + (new 'static 'speech-info-item :name "ash127r") + (new 'static 'speech-info-item :name "ash128r") + (new 'static 'speech-info-item :name "ash129r") + (new 'static 'speech-info-item :name "ash130r") + (new 'static 'speech-info-item :name "ash131r") + (new 'static 'speech-info-item :name "ash132r") + (new 'static 'speech-info-item :name "ash133r") + (new 'static 'speech-info-item :name "ash137r") + (new 'static 'speech-info-item :name "ash138r") + (new 'static 'speech-info-item :name "ash140r") + (new 'static 'speech-info-item :name "ash141r") + (new 'static 'speech-info-item :name "ash142r") + (new 'static 'speech-info-item :name "ash143r") + (new 'static 'speech-info-item :name "ash144r") + (new 'static 'speech-info-item :name "ash145r") + (new 'static 'speech-info-item :name "ash146r") + (new 'static 'speech-info-item :name "ash147r") + (new 'static 'speech-info-item :name "ash148r") + (new 'static 'speech-info-item :name "ash149r") + (new 'static 'speech-info-item :name "ash150r") + (new 'static 'speech-info-item :name "ash151r") + (new 'static 'speech-info-item :name "ash152r") + (new 'static 'speech-info-item :name "ash153r") + (new 'static 'speech-info-item :name "ash154r") + (new 'static 'speech-info-item :name "ash156r") + (new 'static 'speech-info-item :name "ash157r") + (new 'static 'speech-info-item :name "ash158r") + (new 'static 'speech-info-item :name "ash161r") + (new 'static 'speech-info-item :name "ash162r") + (new 'static 'speech-info-item :name "ash196r") + (new 'static 'speech-info-item :name "ash208r") + (new 'static 'speech-info-item :name "ash280r") + (new 'static 'speech-info-item :name "ash281r") + (new 'static 'speech-info-item :name "ash283r") + (new 'static 'speech-info-item :name "ash284r") + (new 'static 'speech-info-item :name "ash285r") + (new 'static 'speech-info-item :name "ash288r") + (new 'static 'speech-info-item :name "ash289r") + (new 'static 'speech-info-item :name "ash290r") + (new 'static 'speech-info-item :name "ash292r") + (new 'static 'speech-info-item :name "ash293r") + (new 'static 'speech-info-item :name "ash324r") + (new 'static 'speech-info-item :name "ash325r") + (new 'static 'speech-info-item :name "ash326r") + (new 'static 'speech-info-item :name "ash327r") + (new 'static 'speech-info-item :name "ash328r") + (new 'static 'speech-info-item :name "ash329r") + (new 'static 'speech-info-item :name "ash331r") + (new 'static 'speech-info-item :name "ash332r") + (new 'static 'speech-info-item :name "ash333r") + (new 'static 'speech-info-item :name "ash334r") + (new 'static 'speech-info-item :name "ash335r") + (new 'static 'speech-info-item :name "ash336r") + (new 'static 'speech-info-item :name "ash337r") + (new 'static 'speech-info-item :name "ash338r") + (new 'static 'speech-info-item :name "ash339r") + (new 'static 'speech-info-item :name "ash340r") + (new 'static 'speech-info-item :name "ash341r") + (new 'static 'speech-info-item :name "ash342r") + (new 'static 'speech-info-item :name "ash343r") + (new 'static 'speech-info-item :name "ash344r") + (new 'static 'speech-info-item :name "ash182r") + (new 'static 'speech-info-item :name "ash183r") + (new 'static 'speech-info-item :name "ash184r") + (new 'static 'speech-info-item :name "ash186r") + (new 'static 'speech-info-item :name "ash187r") + (new 'static 'speech-info-item :name "ash168r") + (new 'static 'speech-info-item :name "ash219r") + (new 'static 'speech-info-item :name "ash189r") + (new 'static 'speech-info-item :name "ash225r") + (new 'static 'speech-info-item :name "ash226r") + (new 'static 'speech-info-item :name "ash229r") + (new 'static 'speech-info-item :name "ash230r") + (new 'static 'speech-info-item :name "ash231r") + (new 'static 'speech-info-item :name "ash239r") + (new 'static 'speech-info-item :name "ash243r") + (new 'static 'speech-info-item :name "ash244r") + (new 'static 'speech-info-item :name "ash147r") + (new 'static 'speech-info-item :name "ash148r") + (new 'static 'speech-info-item :name "ash149r") + (new 'static 'speech-info-item :name "ash150r") + (new 'static 'speech-info-item :name "ash151r") + (new 'static 'speech-info-item :name "ash253r") + (new 'static 'speech-info-item :name "ash255r") + (new 'static 'speech-info-item :name "ash256r") + (new 'static 'speech-info-item :name "ash257r") + (new 'static 'speech-info-item :name "ash264r") + (new 'static 'speech-info-item :name "ash273r") + (new 'static 'speech-info-item :name "ash274r") + (new 'static 'speech-info-item :name "ash275r") + (new 'static 'speech-info-item :name "ash276r") + (new 'static 'speech-info-item :name "ash107r") + (new 'static 'speech-info-item :name "ash313r") + (new 'static 'speech-info-item :name "ash108r") + (new 'static 'speech-info-item :name "ash116r") + (new 'static 'speech-info-item :name "ash287r") + (new 'static 'speech-info-item :name "ash317r") + (new 'static 'speech-info-item :name "ash319r") + (new 'static 'speech-info-item :name "ash321r") + (new 'static 'speech-info-item :name "ash168r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash164r") + (new 'static 'speech-info-item :name "ash165r") + (new 'static 'speech-info-item :name "ash166r") + (new 'static 'speech-info-item :name "ash167r") + (new 'static 'speech-info-item :name "ash169r") + (new 'static 'speech-info-item :name "ash170r") + (new 'static 'speech-info-item :name "ash171r") + (new 'static 'speech-info-item :name "ash172r") + (new 'static 'speech-info-item :name "ash173r") + (new 'static 'speech-info-item :name "ash174r") + (new 'static 'speech-info-item :name "ash175r") + (new 'static 'speech-info-item :name "ash176r") + (new 'static 'speech-info-item :name "ash177r") + (new 'static 'speech-info-item :name "ash178r") + (new 'static 'speech-info-item :name "ash179r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash180r") + (new 'static 'speech-info-item :name "ash181r") + (new 'static 'speech-info-item :name "ash117r") + (new 'static 'speech-info-item :name "ash119r") + (new 'static 'speech-info-item :name "ash163r") + (new 'static 'speech-info-item :name "ash282r") + (new 'static 'speech-info-item :name "ash286r") + (new 'static 'speech-info-item :name "ash291r") + (new 'static 'speech-info-item :name "ash330r") + (new 'static 'speech-info-item :name "ash209r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash185r") + (new 'static 'speech-info-item :name "ash188r") + (new 'static 'speech-info-item :name "ash190r") + (new 'static 'speech-info-item :name "ash191r") + (new 'static 'speech-info-item :name "ash192r") + (new 'static 'speech-info-item :name "ash193r") + (new 'static 'speech-info-item :name "ash194r") + (new 'static 'speech-info-item :name "ash195r") + (new 'static 'speech-info-item :name "ash197r") + (new 'static 'speech-info-item :name "ash198r") + (new 'static 'speech-info-item :name "ash134r") + (new 'static 'speech-info-item :name "ash135r") + (new 'static 'speech-info-item :name "ash136r") + (new 'static 'speech-info-item :name "ash139r") + (new 'static 'speech-info-item :name "ash155r") + (new 'static 'speech-info-item :name "ash214r") + (new 'static 'speech-info-item :name "ash215r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 5) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash199r") + (new 'static 'speech-info-item :name "ash200r") + (new 'static 'speech-info-item :name "ash201r") + (new 'static 'speech-info-item :name "ash202r") + (new 'static 'speech-info-item :name "ash203r") + (new 'static 'speech-info-item :name "ash204r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash205r") + (new 'static 'speech-info-item :name "ash206r") + (new 'static 'speech-info-item :name "ash207r") + (new 'static 'speech-info-item :name "ash210r") + (new 'static 'speech-info-item :name "ash211r") + (new 'static 'speech-info-item :name "ash212r") + (new 'static 'speech-info-item :name "ash213r") + (new 'static 'speech-info-item :name "ash216r") + (new 'static 'speech-info-item :name "ash217r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash218r") + (new 'static 'speech-info-item :name "ash220r") + (new 'static 'speech-info-item :name "ash221r") + (new 'static 'speech-info-item :name "ash222r") + (new 'static 'speech-info-item :name "ash223r") + (new 'static 'speech-info-item :name "ash224r") + (new 'static 'speech-info-item :name "ash227r") + (new 'static 'speech-info-item :name "ash228r") + (new 'static 'speech-info-item :name "ash232r") + (new 'static 'speech-info-item :name "ash233r") + (new 'static 'speech-info-item :name "ash234r") + (new 'static 'speech-info-item :name "ash235r") + (new 'static 'speech-info-item :name "ash236r") + (new 'static 'speech-info-item :name "ash237r") + (new 'static 'speech-info-item :name "ash238r") + (new 'static 'speech-info-item :name "ash240r") + (new 'static 'speech-info-item :name "ash241r") + (new 'static 'speech-info-item :name "ash242r") + (new 'static 'speech-info-item :name "ash245r") + (new 'static 'speech-info-item :name "ash246r") + (new 'static 'speech-info-item :name "ash115r") + (new 'static 'speech-info-item :name "ash120r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 10) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash252r") + (new 'static 'speech-info-item :name "ash254r") + (new 'static 'speech-info-item :name "ash258r") + (new 'static 'speech-info-item :name "ash259r") + (new 'static 'speech-info-item :name "ash260r") + (new 'static 'speech-info-item :name "ash261r") + (new 'static 'speech-info-item :name "ash262r") + (new 'static 'speech-info-item :name "ash263r") + (new 'static 'speech-info-item :name "ash265r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash266r") + (new 'static 'speech-info-item :name "ash267r") + (new 'static 'speech-info-item :name "ash268r") + (new 'static 'speech-info-item :name "ash269r") + (new 'static 'speech-info-item :name "ash160r") + (new 'static 'speech-info-item :name "ash159r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash270r") + (new 'static 'speech-info-item :name "ash271r") + (new 'static 'speech-info-item :name "ash272r") + (new 'static 'speech-info-item :name "ash277r") + (new 'static 'speech-info-item :name "ash278r") + (new 'static 'speech-info-item :name "ash279r") + (new 'static 'speech-info-item :name "ash101r") + (new 'static 'speech-info-item :name "ash102r") + (new 'static 'speech-info-item :name "ash103r") + (new 'static 'speech-info-item :name "ash104r") + (new 'static 'speech-info-item :name "ash105r") + (new 'static 'speech-info-item :name "ash106r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "ash294r")) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash295r") + (new 'static 'speech-info-item :name "ash296r") + (new 'static 'speech-info-item :name "ash297r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash298r") + (new 'static 'speech-info-item :name "ash299r") + (new 'static 'speech-info-item :name "ash300r") + (new 'static 'speech-info-item :name "ash301r") + (new 'static 'speech-info-item :name "ash302r") + (new 'static 'speech-info-item :name "ash303r") + (new 'static 'speech-info-item :name "ash304r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash305r") + (new 'static 'speech-info-item :name "ash306r") + (new 'static 'speech-info-item :name "ash307r") + (new 'static 'speech-info-item :name "ash308r") + (new 'static 'speech-info-item :name "ash309r") + (new 'static 'speech-info-item :name "ash310r") + (new 'static 'speech-info-item :name "ash311r") + (new 'static 'speech-info-item :name "ash312r") + (new 'static 'speech-info-item :name "ash314r") + (new 'static 'speech-info-item :name "ash315r") + (new 'static 'speech-info-item :name "ash109r") + (new 'static 'speech-info-item :name "ash111r") + (new 'static 'speech-info-item :name "ash112r") + (new 'static 'speech-info-item :name "ash114r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash316r") + (new 'static 'speech-info-item :name "ash318r") + (new 'static 'speech-info-item :name "ash320r") + (new 'static 'speech-info-item :name "ash322r") + (new 'static 'speech-info-item :name "ash323r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash305r") + (new 'static 'speech-info-item :name "ash306r") + (new 'static 'speech-info-item :name "ash307r") + (new 'static 'speech-info-item :name "ash308r") + (new 'static 'speech-info-item :name "ash309r") + (new 'static 'speech-info-item :name "ash310r") + (new 'static 'speech-info-item :name "ash311r") + (new 'static 'speech-info-item :name "ash312r") + (new 'static 'speech-info-item :name "ash314r") + (new 'static 'speech-info-item :name "ash315r") + (new 'static 'speech-info-item :name "ash109r") + (new 'static 'speech-info-item :name "ash111r") + (new 'static 'speech-info-item :name "ash112r") + (new 'static 'speech-info-item :name "ash114r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash316r") + (new 'static 'speech-info-item :name "ash318r") + (new 'static 'speech-info-item :name "ash320r") + (new 'static 'speech-info-item :name "ash322r") + (new 'static 'speech-info-item :name "ash323r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash345r") + (new 'static 'speech-info-item :name "ash346r") + (new 'static 'speech-info-item :name "ash347r") + (new 'static 'speech-info-item :name "ash348r") + (new 'static 'speech-info-item :name "ash349r") + (new 'static 'speech-info-item :name "ash108r") + (new 'static 'speech-info-item :name "ash112r") + (new 'static 'speech-info-item :name "ash114r") + (new 'static 'speech-info-item :name "ash115r") + (new 'static 'speech-info-item :name "ash116r") + (new 'static 'speech-info-item :name "ash118r") + (new 'static 'speech-info-item :name "ash121r") + (new 'static 'speech-info-item :name "ash149r") + (new 'static 'speech-info-item :name "ash191r") + (new 'static 'speech-info-item :name "ash192r") + (new 'static 'speech-info-item :name "ash193r") + (new 'static 'speech-info-item :name "ash194r") + (new 'static 'speech-info-item :name "ash197r") + (new 'static 'speech-info-item :name "ash199r") + (new 'static 'speech-info-item :name "ash200r") + (new 'static 'speech-info-item :name "ash201r") + (new 'static 'speech-info-item :name "ash205r") + (new 'static 'speech-info-item :name "ash206r") + (new 'static 'speech-info-item :name "ash210r") + (new 'static 'speech-info-item :name "ash211r") + (new 'static 'speech-info-item :name "ash212r") + (new 'static 'speech-info-item :name "ash213r") + (new 'static 'speech-info-item :name "ash215r") + (new 'static 'speech-info-item :name "ash216r") + (new 'static 'speech-info-item :name "ash222r") + (new 'static 'speech-info-item :name "ash223r") + (new 'static 'speech-info-item :name "ash224r") + (new 'static 'speech-info-item :name "ash227r") + (new 'static 'speech-info-item :name "ash241r") + (new 'static 'speech-info-item :name "ash264r") + (new 'static 'speech-info-item :name "ash287r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash106r") + (new 'static 'speech-info-item :name "ash107r") + (new 'static 'speech-info-item :name "ash198r") + (new 'static 'speech-info-item :name "ash256r") + (new 'static 'speech-info-item :name "ash257r") + (new 'static 'speech-info-item :name "ash258r") + (new 'static 'speech-info-item :name "ash259r") + (new 'static 'speech-info-item :name "ash261r") + (new 'static 'speech-info-item :name "ash262r") + (new 'static 'speech-info-item :name "ash265r") + (new 'static 'speech-info-item :name "ash266r") + (new 'static 'speech-info-item :name "ash267r") + (new 'static 'speech-info-item :name "ash268r") + (new 'static 'speech-info-item :name "ash270r") + (new 'static 'speech-info-item :name "ash273r") + (new 'static 'speech-info-item :name "ash274r") + ) + ) + ) + +(set! (-> *speech-control* channels 4 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash164r") + (new 'static 'speech-info-item :name "ash166r") + (new 'static 'speech-info-item :name "ash167r") + (new 'static 'speech-info-item :name "ash169r") + (new 'static 'speech-info-item :name "ash170r") + (new 'static 'speech-info-item :name "ash172r") + (new 'static 'speech-info-item :name "ash173r") + (new 'static 'speech-info-item :name "ash174r") + (new 'static 'speech-info-item :name "ash176r") + (new 'static 'speech-info-item :name "ash177r") + (new 'static 'speech-info-item :name "ash178r") + (new 'static 'speech-info-item :name "ash179r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash180r") + (new 'static 'speech-info-item :name "ash181r") + (new 'static 'speech-info-item :name "ash119r") + (new 'static 'speech-info-item :name "ash163r") + (new 'static 'speech-info-item :name "ash282r") + (new 'static 'speech-info-item :name "ash291r") + (new 'static 'speech-info-item :name "ash330r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-daxter.gc b/goal_src/jakx/engine/sound/speech/speech-daxter.gc index 721ae4069f..0580abdd6d 100644 --- a/goal_src/jakx/engine/sound/speech/speech-daxter.gc +++ b/goal_src/jakx/engine/sound/speech/speech-daxter.gc @@ -7,3 +7,486 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 2 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax106r") + (new 'static 'speech-info-item :name "dax107r") + (new 'static 'speech-info-item :name "dax108r") + (new 'static 'speech-info-item :name "dax109r") + (new 'static 'speech-info-item :name "dax111r") + (new 'static 'speech-info-item :name "dax112r") + (new 'static 'speech-info-item :name "dax113r") + (new 'static 'speech-info-item :name "dax114r") + (new 'static 'speech-info-item :name "dax125r") + (new 'static 'speech-info-item :name "dax127r") + (new 'static 'speech-info-item :name "dax128r") + (new 'static 'speech-info-item :name "dax129r") + (new 'static 'speech-info-item :name "dax130r") + (new 'static 'speech-info-item :name "dax131r") + (new 'static 'speech-info-item :name "dax132r") + (new 'static 'speech-info-item :name "dax133r") + (new 'static 'speech-info-item :name "dax135r") + (new 'static 'speech-info-item :name "dax136r") + (new 'static 'speech-info-item :name "dax137r") + (new 'static 'speech-info-item :name "dax138r") + (new 'static 'speech-info-item :name "dax139r") + (new 'static 'speech-info-item :name "dax142r") + (new 'static 'speech-info-item :name "dax143r") + (new 'static 'speech-info-item :name "dax144r") + (new 'static 'speech-info-item :name "dax145r") + (new 'static 'speech-info-item :name "dax146r") + (new 'static 'speech-info-item :name "dax147r") + (new 'static 'speech-info-item :name "dax150r") + (new 'static 'speech-info-item :name "dax159r") + (new 'static 'speech-info-item :name "dax160r") + (new 'static 'speech-info-item :name "dax161r") + (new 'static 'speech-info-item :name "dax162r") + (new 'static 'speech-info-item :name "dax164r") + (new 'static 'speech-info-item :name "dax223r") + (new 'static 'speech-info-item :name "dax224r") + (new 'static 'speech-info-item :name "dax225r") + (new 'static 'speech-info-item :name "dax254r") + (new 'static 'speech-info-item :name "dax256r") + (new 'static 'speech-info-item :name "dax339r") + (new 'static 'speech-info-item :name "dax340r") + (new 'static 'speech-info-item :name "dax341r") + (new 'static 'speech-info-item :name "dax342r") + (new 'static 'speech-info-item :name "dax343r") + (new 'static 'speech-info-item :name "dax344r") + (new 'static 'speech-info-item :name "dax345r") + (new 'static 'speech-info-item :name "dax346r") + (new 'static 'speech-info-item :name "dax347r") + (new 'static 'speech-info-item :name "dax348r") + (new 'static 'speech-info-item :name "dax351r") + (new 'static 'speech-info-item :name "dax352r") + (new 'static 'speech-info-item :name "dax353r") + (new 'static 'speech-info-item :name "dax354r") + (new 'static 'speech-info-item :name "dax355r") + (new 'static 'speech-info-item :name "dax356r") + (new 'static 'speech-info-item :name "dax402r") + (new 'static 'speech-info-item :name "dax403r") + (new 'static 'speech-info-item :name "dax404r") + (new 'static 'speech-info-item :name "dax405r") + (new 'static 'speech-info-item :name "dax409r") + (new 'static 'speech-info-item :name "dax410r") + (new 'static 'speech-info-item :name "dax413r") + (new 'static 'speech-info-item :name "dax414r") + (new 'static 'speech-info-item :name "dax416r") + (new 'static 'speech-info-item :name "dax420r") + (new 'static 'speech-info-item :name "dax421r") + (new 'static 'speech-info-item :name "dax422r") + (new 'static 'speech-info-item :name "dax423r") + (new 'static 'speech-info-item :name "dax425r") + (new 'static 'speech-info-item :name "dax426r") + (new 'static 'speech-info-item :name "dax427r") + (new 'static 'speech-info-item :name "dax428r") + (new 'static 'speech-info-item :name "dax328r") + (new 'static 'speech-info-item :name "dax329r") + (new 'static 'speech-info-item :name "dax330r") + (new 'static 'speech-info-item :name "dax332r") + (new 'static 'speech-info-item :name "dax335r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax124r") + (new 'static 'speech-info-item :name "dax173r") + (new 'static 'speech-info-item :name "dax174r") + (new 'static 'speech-info-item :name "dax175r") + (new 'static 'speech-info-item :name "dax176r") + (new 'static 'speech-info-item :name "dax177r") + (new 'static 'speech-info-item :name "dax178r") + (new 'static 'speech-info-item :name "dax179r") + (new 'static 'speech-info-item :name "dax180r") + (new 'static 'speech-info-item :name "dax181r") + (new 'static 'speech-info-item :name "dax182r") + (new 'static 'speech-info-item :name "dax183r") + (new 'static 'speech-info-item :name "dax184r") + (new 'static 'speech-info-item :name "dax185r") + (new 'static 'speech-info-item :name "dax186r") + (new 'static 'speech-info-item :name "dax187r") + (new 'static 'speech-info-item :name "dax188r") + (new 'static 'speech-info-item :name "dax189r") + (new 'static 'speech-info-item :name "dax190r") + (new 'static 'speech-info-item :name "dax191r") + (new 'static 'speech-info-item :name "dax192r") + (new 'static 'speech-info-item :name "dax193r") + (new 'static 'speech-info-item :name "dax194r") + (new 'static 'speech-info-item :name "dax195r") + (new 'static 'speech-info-item :name "dax196r") + (new 'static 'speech-info-item :name "dax197r") + (new 'static 'speech-info-item :name "dax198r") + (new 'static 'speech-info-item :name "dax199r") + (new 'static 'speech-info-item :name "dax200r") + (new 'static 'speech-info-item :name "dax201r") + (new 'static 'speech-info-item :name "dax202r") + (new 'static 'speech-info-item :name "dax203r") + (new 'static 'speech-info-item :name "dax204r") + (new 'static 'speech-info-item :name "dax205r") + (new 'static 'speech-info-item :name "dax206r") + (new 'static 'speech-info-item :name "dax207r") + (new 'static 'speech-info-item :name "dax208r") + (new 'static 'speech-info-item :name "dax244r") + (new 'static 'speech-info-item :name "dax412r") + (new 'static 'speech-info-item :name "dax236r") + (new 'static 'speech-info-item :name "dax234r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax174r") + (new 'static 'speech-info-item :name "dax176r") + (new 'static 'speech-info-item :name "dax177r") + (new 'static 'speech-info-item :name "dax179r") + (new 'static 'speech-info-item :name "dax180r") + (new 'static 'speech-info-item :name "dax181r") + (new 'static 'speech-info-item :name "dax182r") + (new 'static 'speech-info-item :name "dax183r") + (new 'static 'speech-info-item :name "dax185r") + (new 'static 'speech-info-item :name "dax186r") + (new 'static 'speech-info-item :name "dax187r") + (new 'static 'speech-info-item :name "dax188r") + (new 'static 'speech-info-item :name "dax189r") + (new 'static 'speech-info-item :name "dax191r") + (new 'static 'speech-info-item :name "dax192r") + (new 'static 'speech-info-item :name "dax193r") + (new 'static 'speech-info-item :name "dax195r") + (new 'static 'speech-info-item :name "dax196r") + (new 'static 'speech-info-item :name "dax197r") + (new 'static 'speech-info-item :name "dax199r") + (new 'static 'speech-info-item :name "dax200r") + (new 'static 'speech-info-item :name "dax201r") + (new 'static 'speech-info-item :name "dax202r") + (new 'static 'speech-info-item :name "dax203r") + (new 'static 'speech-info-item :name "dax204r") + (new 'static 'speech-info-item :name "dax206r") + (new 'static 'speech-info-item :name "dax207r") + (new 'static 'speech-info-item :name "dax208r") + (new 'static 'speech-info-item :name "dax412r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax115r") + (new 'static 'speech-info-item :name "dax119r") + (new 'static 'speech-info-item :name "dax120r") + (new 'static 'speech-info-item :name "dax122r") + (new 'static 'speech-info-item :name "dax126r") + (new 'static 'speech-info-item :name "dax368r") + (new 'static 'speech-info-item :name "dax369r") + (new 'static 'speech-info-item :name "dax370r") + (new 'static 'speech-info-item :name "dax371r") + (new 'static 'speech-info-item :name "dax372r") + (new 'static 'speech-info-item :name "dax373r") + (new 'static 'speech-info-item :name "dax374r") + (new 'static 'speech-info-item :name "dax375r") + (new 'static 'speech-info-item :name "dax376r") + (new 'static 'speech-info-item :name "dax377r") + (new 'static 'speech-info-item :name "dax378r") + (new 'static 'speech-info-item :name "dax379r") + (new 'static 'speech-info-item :name "dax380r") + (new 'static 'speech-info-item :name "dax381r") + (new 'static 'speech-info-item :name "dax382r") + (new 'static 'speech-info-item :name "dax383r") + (new 'static 'speech-info-item :name "dax384r") + (new 'static 'speech-info-item :name "dax385r") + (new 'static 'speech-info-item :name "dax386r") + (new 'static 'speech-info-item :name "dax387r") + (new 'static 'speech-info-item :name "dax388r") + (new 'static 'speech-info-item :name "dax235r") + (new 'static 'speech-info-item :name "dax424r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax115r") + (new 'static 'speech-info-item :name "dax119r") + (new 'static 'speech-info-item :name "dax120r") + (new 'static 'speech-info-item :name "dax122r") + (new 'static 'speech-info-item :name "dax126r") + (new 'static 'speech-info-item :name "dax368r") + (new 'static 'speech-info-item :name "dax369r") + (new 'static 'speech-info-item :name "dax370r") + (new 'static 'speech-info-item :name "dax371r") + (new 'static 'speech-info-item :name "dax372r") + (new 'static 'speech-info-item :name "dax373r") + (new 'static 'speech-info-item :name "dax374r") + (new 'static 'speech-info-item :name "dax375r") + (new 'static 'speech-info-item :name "dax376r") + (new 'static 'speech-info-item :name "dax377r") + (new 'static 'speech-info-item :name "dax378r") + (new 'static 'speech-info-item :name "dax379r") + (new 'static 'speech-info-item :name "dax380r") + (new 'static 'speech-info-item :name "dax381r") + (new 'static 'speech-info-item :name "dax382r") + (new 'static 'speech-info-item :name "dax383r") + (new 'static 'speech-info-item :name "dax384r") + (new 'static 'speech-info-item :name "dax385r") + (new 'static 'speech-info-item :name "dax386r") + (new 'static 'speech-info-item :name "dax387r") + (new 'static 'speech-info-item :name "dax388r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax105r") + (new 'static 'speech-info-item :name "dax389r") + (new 'static 'speech-info-item :name "dax390r") + (new 'static 'speech-info-item :name "dax391r") + (new 'static 'speech-info-item :name "dax392r") + (new 'static 'speech-info-item :name "dax393r") + (new 'static 'speech-info-item :name "dax394r") + (new 'static 'speech-info-item :name "dax395r") + (new 'static 'speech-info-item :name "dax396r") + (new 'static 'speech-info-item :name "dax397r") + (new 'static 'speech-info-item :name "dax398r") + (new 'static 'speech-info-item :name "dax399r") + (new 'static 'speech-info-item :name "dax400r") + (new 'static 'speech-info-item :name "dax401r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax105r") + (new 'static 'speech-info-item :name "dax389r") + (new 'static 'speech-info-item :name "dax390r") + (new 'static 'speech-info-item :name "dax391r") + (new 'static 'speech-info-item :name "dax392r") + (new 'static 'speech-info-item :name "dax393r") + (new 'static 'speech-info-item :name "dax394r") + (new 'static 'speech-info-item :name "dax395r") + (new 'static 'speech-info-item :name "dax396r") + (new 'static 'speech-info-item :name "dax397r") + (new 'static 'speech-info-item :name "dax398r") + (new 'static 'speech-info-item :name "dax399r") + (new 'static 'speech-info-item :name "dax400r") + (new 'static 'speech-info-item :name "dax401r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax140r") + (new 'static 'speech-info-item :name "dax141r") + (new 'static 'speech-info-item :name "dax151r") + (new 'static 'speech-info-item :name "dax152r") + (new 'static 'speech-info-item :name "dax134r") + (new 'static 'speech-info-item :name "dax163r") + (new 'static 'speech-info-item :name "dax209r") + (new 'static 'speech-info-item :name "dax210r") + (new 'static 'speech-info-item :name "dax211r") + (new 'static 'speech-info-item :name "dax212r") + (new 'static 'speech-info-item :name "dax213r") + (new 'static 'speech-info-item :name "dax214r") + (new 'static 'speech-info-item :name "dax215r") + (new 'static 'speech-info-item :name "dax216r") + (new 'static 'speech-info-item :name "dax217r") + (new 'static 'speech-info-item :name "dax218r") + (new 'static 'speech-info-item :name "dax219r") + (new 'static 'speech-info-item :name "dax220r") + (new 'static 'speech-info-item :name "dax221r") + (new 'static 'speech-info-item :name "dax222r") + (new 'static 'speech-info-item :name "dax228r") + (new 'static 'speech-info-item :name "dax242r") + (new 'static 'speech-info-item :name "dax243r") + (new 'static 'speech-info-item :name "dax245r") + (new 'static 'speech-info-item :name "dax415r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax226r") + (new 'static 'speech-info-item :name "dax229r") + (new 'static 'speech-info-item :name "dax230r") + (new 'static 'speech-info-item :name "dax231r") + (new 'static 'speech-info-item :name "dax232r") + (new 'static 'speech-info-item :name "dax233r") + (new 'static 'speech-info-item :name "dax237r") + (new 'static 'speech-info-item :name "dax238r") + (new 'static 'speech-info-item :name "dax239r") + (new 'static 'speech-info-item :name "dax240r") + (new 'static 'speech-info-item :name "dax241r") + (new 'static 'speech-info-item :name "dax246r") + (new 'static 'speech-info-item :name "dax248r") + (new 'static 'speech-info-item :name "dax249r") + (new 'static 'speech-info-item :name "dax250r") + (new 'static 'speech-info-item :name "dax251r") + (new 'static 'speech-info-item :name "dax252r") + (new 'static 'speech-info-item :name "dax253r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax258r") + (new 'static 'speech-info-item :name "dax259r") + (new 'static 'speech-info-item :name "dax260r") + (new 'static 'speech-info-item :name "dax261r") + (new 'static 'speech-info-item :name "dax262r") + (new 'static 'speech-info-item :name "dax263r") + (new 'static 'speech-info-item :name "dax264r") + (new 'static 'speech-info-item :name "dax265r") + (new 'static 'speech-info-item :name "dax266r") + (new 'static 'speech-info-item :name "dax267r") + (new 'static 'speech-info-item :name "dax268r") + (new 'static 'speech-info-item :name "dax269r") + (new 'static 'speech-info-item :name "dax270r") + (new 'static 'speech-info-item :name "dax271r") + (new 'static 'speech-info-item :name "dax272r") + (new 'static 'speech-info-item :name "dax273r") + (new 'static 'speech-info-item :name "dax274r") + (new 'static 'speech-info-item :name "dax275r") + (new 'static 'speech-info-item :name "dax276r") + (new 'static 'speech-info-item :name "dax277r") + (new 'static 'speech-info-item :name "dax278r") + (new 'static 'speech-info-item :name "dax279r") + (new 'static 'speech-info-item :name "dax280r") + (new 'static 'speech-info-item :name "dax281r") + (new 'static 'speech-info-item :name "dax282r") + (new 'static 'speech-info-item :name "dax283r") + (new 'static 'speech-info-item :name "dax284r") + (new 'static 'speech-info-item :name "dax285r") + (new 'static 'speech-info-item :name "dax286r") + (new 'static 'speech-info-item :name "dax287r") + (new 'static 'speech-info-item :name "dax288r") + (new 'static 'speech-info-item :name "dax289r") + (new 'static 'speech-info-item :name "dax290r") + (new 'static 'speech-info-item :name "dax336r") + (new 'static 'speech-info-item :name "dax337r") + (new 'static 'speech-info-item :name "dax338r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax291r") + (new 'static 'speech-info-item :name "dax292r") + (new 'static 'speech-info-item :name "dax293r") + (new 'static 'speech-info-item :name "dax294r") + (new 'static 'speech-info-item :name "dax295r") + (new 'static 'speech-info-item :name "dax296r") + (new 'static 'speech-info-item :name "dax297r") + (new 'static 'speech-info-item :name "dax298r") + (new 'static 'speech-info-item :name "dax299r") + (new 'static 'speech-info-item :name "dax300r") + (new 'static 'speech-info-item :name "dax301r") + (new 'static 'speech-info-item :name "dax302r") + (new 'static 'speech-info-item :name "dax303r") + (new 'static 'speech-info-item :name "dax304r") + (new 'static 'speech-info-item :name "dax305r") + (new 'static 'speech-info-item :name "dax306r") + (new 'static 'speech-info-item :name "dax307r") + (new 'static 'speech-info-item :name "dax308r") + (new 'static 'speech-info-item :name "dax309r") + (new 'static 'speech-info-item :name "dax310r") + (new 'static 'speech-info-item :name "dax311r") + (new 'static 'speech-info-item :name "dax312r") + (new 'static 'speech-info-item :name "dax313r") + (new 'static 'speech-info-item :name "dax314r") + (new 'static 'speech-info-item :name "dax315r") + (new 'static 'speech-info-item :name "dax316r") + (new 'static 'speech-info-item :name "dax317r") + (new 'static 'speech-info-item :name "dax318r") + (new 'static 'speech-info-item :name "dax319r") + (new 'static 'speech-info-item :name "dax320r") + (new 'static 'speech-info-item :name "dax247r") + (new 'static 'speech-info-item :name "dax257r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax101r") + (new 'static 'speech-info-item :name "dax102r") + (new 'static 'speech-info-item :name "dax103r") + (new 'static 'speech-info-item :name "dax104r") + (new 'static 'speech-info-item :name "dax321r") + (new 'static 'speech-info-item :name "dax322r") + (new 'static 'speech-info-item :name "dax323r") + (new 'static 'speech-info-item :name "dax324r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "dax357r")) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax358r") + (new 'static 'speech-info-item :name "dax359r") + (new 'static 'speech-info-item :name "dax360r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax361r") + (new 'static 'speech-info-item :name "dax362r") + (new 'static 'speech-info-item :name "dax363r") + (new 'static 'speech-info-item :name "dax364r") + (new 'static 'speech-info-item :name "dax365r") + (new 'static 'speech-info-item :name "dax366r") + (new 'static 'speech-info-item :name "dax367r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax255r") + (new 'static 'speech-info-item :name "dax325r") + (new 'static 'speech-info-item :name "dax326r") + (new 'static 'speech-info-item :name "dax327r") + (new 'static 'speech-info-item :name "dax331r") + (new 'static 'speech-info-item :name "dax333r") + (new 'static 'speech-info-item :name "dax334r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax429r") + (new 'static 'speech-info-item :name "dax430r") + (new 'static 'speech-info-item :name "dax431r") + (new 'static 'speech-info-item :name "dax432r") + (new 'static 'speech-info-item :name "dax433r") + (new 'static 'speech-info-item :name "dax434r") + (new 'static 'speech-info-item :name "dax435r") + (new 'static 'speech-info-item :name "dax436r") + (new 'static 'speech-info-item :name "dax227r") + ) + ) + ) + +(set! (-> *speech-control* channels 2 speeches 21) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax349r") + (new 'static 'speech-info-item :name "dax350r") + ) + :flags (speech-info-flag si0) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-gtblitz.gc b/goal_src/jakx/engine/sound/speech/speech-gtblitz.gc index 0028966ecf..f4c62316cf 100644 --- a/goal_src/jakx/engine/sound/speech/speech-gtblitz.gc +++ b/goal_src/jakx/engine/sound/speech/speech-gtblitz.gc @@ -7,3 +7,704 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 6 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb108r") + (new 'static 'speech-info-item :name "gtb109r") + (new 'static 'speech-info-item :name "gtb119r") + (new 'static 'speech-info-item :name "gtb120r") + (new 'static 'speech-info-item :name "gtb127r") + (new 'static 'speech-info-item :name "gtb128r") + (new 'static 'speech-info-item :name "gtb132r") + (new 'static 'speech-info-item :name "gtb133r") + (new 'static 'speech-info-item :name "gtb134r") + (new 'static 'speech-info-item :name "gtb135r") + (new 'static 'speech-info-item :name "gtb139r") + (new 'static 'speech-info-item :name "gtb141r") + (new 'static 'speech-info-item :name "gtb143r") + (new 'static 'speech-info-item :name "gtb146r") + (new 'static 'speech-info-item :name "gtb155r") + (new 'static 'speech-info-item :name "gtb158r") + (new 'static 'speech-info-item :name "gtb159r") + (new 'static 'speech-info-item :name "gtb161r") + (new 'static 'speech-info-item :name "gtb180r") + (new 'static 'speech-info-item :name "gtb181r") + (new 'static 'speech-info-item :name "gtb182r") + (new 'static 'speech-info-item :name "gtb183r") + (new 'static 'speech-info-item :name "gtb184r") + (new 'static 'speech-info-item :name "gtb186r") + (new 'static 'speech-info-item :name "gtb187r") + (new 'static 'speech-info-item :name "gtb191r") + (new 'static 'speech-info-item :name "gtb192r") + (new 'static 'speech-info-item :name "gtb193r") + (new 'static 'speech-info-item :name "gtb194r") + (new 'static 'speech-info-item :name "gtb195r") + (new 'static 'speech-info-item :name "gtb196r") + (new 'static 'speech-info-item :name "gtb197r") + (new 'static 'speech-info-item :name "gtb198r") + (new 'static 'speech-info-item :name "gtb199r") + (new 'static 'speech-info-item :name "gtb200r") + (new 'static 'speech-info-item :name "gtb201r") + (new 'static 'speech-info-item :name "gtb202r") + (new 'static 'speech-info-item :name "gtb203r") + (new 'static 'speech-info-item :name "gtb204r") + (new 'static 'speech-info-item :name "gtb205r") + (new 'static 'speech-info-item :name "gtb206r") + (new 'static 'speech-info-item :name "gtb207r") + (new 'static 'speech-info-item :name "gtb214r") + (new 'static 'speech-info-item :name "gtb215r") + (new 'static 'speech-info-item :name "gtb218r") + (new 'static 'speech-info-item :name "gtb219r") + (new 'static 'speech-info-item :name "gtb223r") + (new 'static 'speech-info-item :name "gtb224r") + (new 'static 'speech-info-item :name "gtb225r") + (new 'static 'speech-info-item :name "gtb226r") + (new 'static 'speech-info-item :name "gtb227r") + (new 'static 'speech-info-item :name "gtb228r") + (new 'static 'speech-info-item :name "gtb229r") + (new 'static 'speech-info-item :name "gtb230r") + (new 'static 'speech-info-item :name "gtb231r") + (new 'static 'speech-info-item :name "gtb235r") + (new 'static 'speech-info-item :name "gtb236r") + (new 'static 'speech-info-item :name "gtb238r") + (new 'static 'speech-info-item :name "gtb240r") + (new 'static 'speech-info-item :name "gtb241r") + (new 'static 'speech-info-item :name "gtb242r") + (new 'static 'speech-info-item :name "gtb243r") + (new 'static 'speech-info-item :name "gtb244r") + (new 'static 'speech-info-item :name "gtb245r") + (new 'static 'speech-info-item :name "gtb246r") + (new 'static 'speech-info-item :name "gtb247r") + (new 'static 'speech-info-item :name "gtb252r") + (new 'static 'speech-info-item :name "gtb255r") + (new 'static 'speech-info-item :name "gtb257r") + (new 'static 'speech-info-item :name "gtb260r") + (new 'static 'speech-info-item :name "gtb261r") + (new 'static 'speech-info-item :name "gtb265r") + (new 'static 'speech-info-item :name "gtb266r") + (new 'static 'speech-info-item :name "gtb268r") + (new 'static 'speech-info-item :name "gtb270r") + (new 'static 'speech-info-item :name "gtb271r") + (new 'static 'speech-info-item :name "gtb322r") + (new 'static 'speech-info-item :name "gtb332r") + (new 'static 'speech-info-item :name "gtb333r") + (new 'static 'speech-info-item :name "gtb354r") + (new 'static 'speech-info-item :name "gtb369r") + (new 'static 'speech-info-item :name "gtb373r") + (new 'static 'speech-info-item :name "gtb374r") + (new 'static 'speech-info-item :name "gtb375r") + (new 'static 'speech-info-item :name "gtb377r") + (new 'static 'speech-info-item :name "gtb378r") + (new 'static 'speech-info-item :name "gtb379r") + (new 'static 'speech-info-item :name "gtb380r") + (new 'static 'speech-info-item :name "gtb381r") + (new 'static 'speech-info-item :name "gtb382r") + (new 'static 'speech-info-item :name "gtb384r") + (new 'static 'speech-info-item :name "gtb474r") + (new 'static 'speech-info-item :name "gtb475r") + (new 'static 'speech-info-item :name "gtb478r") + (new 'static 'speech-info-item :name "gtb479r") + (new 'static 'speech-info-item :name "gtb480r") + (new 'static 'speech-info-item :name "gtb481r") + (new 'static 'speech-info-item :name "gtb497r") + (new 'static 'speech-info-item :name "gtb483r") + (new 'static 'speech-info-item :name "gtb484r") + (new 'static 'speech-info-item :name "gtb485r") + (new 'static 'speech-info-item :name "gtb486r") + (new 'static 'speech-info-item :name "gtb487r") + (new 'static 'speech-info-item :name "gtb488r") + (new 'static 'speech-info-item :name "gtb489r") + (new 'static 'speech-info-item :name "gtb490r") + (new 'static 'speech-info-item :name "gtb491r") + (new 'static 'speech-info-item :name "gtb492r") + (new 'static 'speech-info-item :name "gtb493r") + (new 'static 'speech-info-item :name "gtb495r") + (new 'static 'speech-info-item :name "gtb496r") + (new 'static 'speech-info-item :name "gtb498r") + (new 'static 'speech-info-item :name "gtb499r") + (new 'static 'speech-info-item :name "gtb553r") + (new 'static 'speech-info-item :name "gtb554r") + (new 'static 'speech-info-item :name "gtb555r") + (new 'static 'speech-info-item :name "gtb557r") + (new 'static 'speech-info-item :name "gtb558r") + (new 'static 'speech-info-item :name "gtb559r") + (new 'static 'speech-info-item :name "gtb560r") + (new 'static 'speech-info-item :name "gtb561r") + (new 'static 'speech-info-item :name "gtb562r") + (new 'static 'speech-info-item :name "gtb563r") + (new 'static 'speech-info-item :name "gtb564r") + (new 'static 'speech-info-item :name "gtb566r") + (new 'static 'speech-info-item :name "gtb567r") + (new 'static 'speech-info-item :name "gtb569r") + (new 'static 'speech-info-item :name "gtb570r") + (new 'static 'speech-info-item :name "gtb571r") + (new 'static 'speech-info-item :name "gtb572r") + (new 'static 'speech-info-item :name "gtb573r") + (new 'static 'speech-info-item :name "gtb575r") + (new 'static 'speech-info-item :name "gtb157") + (new 'static 'speech-info-item :name "gtb175") + (new 'static 'speech-info-item :name "gtb176") + (new 'static 'speech-info-item :name "gtb465r") + (new 'static 'speech-info-item :name "gtb466r") + (new 'static 'speech-info-item :name "gtb467r") + (new 'static 'speech-info-item :name "gtb470r") + (new 'static 'speech-info-item :name "gtb471r") + (new 'static 'speech-info-item :name "gtb472r") + (new 'static 'speech-info-item :name "gtb473r") + (new 'static 'speech-info-item :name "gtb190") + (new 'static 'speech-info-item :name "gtb188") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 17) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb101") + (new 'static 'speech-info-item :name "gtb102") + (new 'static 'speech-info-item :name "gtb103") + (new 'static 'speech-info-item :name "gtb104") + (new 'static 'speech-info-item :name "gtb105") + (new 'static 'speech-info-item :name "gtb106") + (new 'static 'speech-info-item :name "gtb107") + (new 'static 'speech-info-item :name "gtb110") + (new 'static 'speech-info-item :name "gtb111") + (new 'static 'speech-info-item :name "gtb112") + (new 'static 'speech-info-item :name "gtb113") + (new 'static 'speech-info-item :name "gtb114") + (new 'static 'speech-info-item :name "gtb115") + (new 'static 'speech-info-item :name "gtb117") + (new 'static 'speech-info-item :name "gtb118") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 18) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb116") + (new 'static 'speech-info-item :name "gtb122") + (new 'static 'speech-info-item :name "gtb121") + (new 'static 'speech-info-item :name "gtb123") + (new 'static 'speech-info-item :name "gtb124") + (new 'static 'speech-info-item :name "gtb125") + (new 'static 'speech-info-item :name "gtb126") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 19) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb248") + (new 'static 'speech-info-item :name "gtb249") + (new 'static 'speech-info-item :name "gtb250") + (new 'static 'speech-info-item :name "gtb251") + (new 'static 'speech-info-item :name "gtb253") + (new 'static 'speech-info-item :name "gtb254") + (new 'static 'speech-info-item :name "gtb256") + (new 'static 'speech-info-item :name "gtb258") + (new 'static 'speech-info-item :name "gtb259") + (new 'static 'speech-info-item :name "gtb262") + (new 'static 'speech-info-item :name "gtb263") + (new 'static 'speech-info-item :name "gtb264") + (new 'static 'speech-info-item :name "gtb269") + (new 'static 'speech-info-item :name "gtb267") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 20) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb137") + (new 'static 'speech-info-item :name "gtb138") + (new 'static 'speech-info-item :name "gtb140") + (new 'static 'speech-info-item :name "gtb142") + (new 'static 'speech-info-item :name "gtb144") + (new 'static 'speech-info-item :name "gtb148") + (new 'static 'speech-info-item :name "gtb151") + (new 'static 'speech-info-item :name "gtb152") + (new 'static 'speech-info-item :name "gtb153") + (new 'static 'speech-info-item :name "gtb154") + (new 'static 'speech-info-item :name "gtb160") + (new 'static 'speech-info-item :name "gtb162") + (new 'static 'speech-info-item :name "gtb163") + (new 'static 'speech-info-item :name "gtb164") + (new 'static 'speech-info-item :name "gtb165") + (new 'static 'speech-info-item :name "gtb166") + (new 'static 'speech-info-item :name "gtb167") + (new 'static 'speech-info-item :name "gtb168") + (new 'static 'speech-info-item :name "gtb169") + (new 'static 'speech-info-item :name "gtb170") + (new 'static 'speech-info-item :name "gtb172") + (new 'static 'speech-info-item :name "gtb177") + (new 'static 'speech-info-item :name "gtb178") + (new 'static 'speech-info-item :name "gtb179") + (new 'static 'speech-info-item :name "gtb185") + (new 'static 'speech-info-item :name "gtb189") + (new 'static 'speech-info-item :name "gtb208") + (new 'static 'speech-info-item :name "gtb209") + (new 'static 'speech-info-item :name "gtb210") + (new 'static 'speech-info-item :name "gtb212") + (new 'static 'speech-info-item :name "gtb217") + (new 'static 'speech-info-item :name "gtb220") + (new 'static 'speech-info-item :name "gtb221") + (new 'static 'speech-info-item :name "gtb232") + (new 'static 'speech-info-item :name "gtb233") + (new 'static 'speech-info-item :name "gtb234") + (new 'static 'speech-info-item :name "gtb237") + (new 'static 'speech-info-item :name "gtb239") + (new 'static 'speech-info-item :name "gtb129") + (new 'static 'speech-info-item :name "gtb130") + (new 'static 'speech-info-item :name "gtb131") + (new 'static 'speech-info-item :name "gtb136") + (new 'static 'speech-info-item :name "gtb145") + (new 'static 'speech-info-item :name "gtb147") + (new 'static 'speech-info-item :name "gtb156" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb171" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb173" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb150" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb149" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb216" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb174" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb222") + (new 'static 'speech-info-item :name "gtb211" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb213" :flags (speech-info-flag si1)) + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb272r") + (new 'static 'speech-info-item :name "gtb273r") + (new 'static 'speech-info-item :name "gtb274r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb275r") + (new 'static 'speech-info-item :name "gtb276r") + (new 'static 'speech-info-item :name "gtb277r") + (new 'static 'speech-info-item :name "gtb278r") + (new 'static 'speech-info-item :name "gtb279r") + (new 'static 'speech-info-item :name "gtb280r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb281r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb282r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb283r") + (new 'static 'speech-info-item :name "gtb284r") + (new 'static 'speech-info-item :name "gtb285r") + (new 'static 'speech-info-item :name "gtb286r") + (new 'static 'speech-info-item :name "gtb287r") + (new 'static 'speech-info-item :name "gtb288r") + (new 'static 'speech-info-item :name "gtb289r") + (new 'static 'speech-info-item :name "gtb290r") + (new 'static 'speech-info-item :name "gtb291r") + (new 'static 'speech-info-item :name "gtb292r") + (new 'static 'speech-info-item :name "gtb293r") + (new 'static 'speech-info-item :name "gtb294r") + (new 'static 'speech-info-item :name "gtb295r") + (new 'static 'speech-info-item :name "gtb296r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb297r") + (new 'static 'speech-info-item :name "gtb298r") + (new 'static 'speech-info-item :name "gtb299r") + (new 'static 'speech-info-item :name "gtb300r") + (new 'static 'speech-info-item :name "gtb301r") + (new 'static 'speech-info-item :name "gtb302r") + (new 'static 'speech-info-item :name "gtb303r") + (new 'static 'speech-info-item :name "gtb304r") + (new 'static 'speech-info-item :name "gtb305r") + (new 'static 'speech-info-item :name "gtb306r") + (new 'static 'speech-info-item :name "gtb307r") + (new 'static 'speech-info-item :name "gtb308r") + (new 'static 'speech-info-item :name "gtb309r") + (new 'static 'speech-info-item :name "gtb310r") + (new 'static 'speech-info-item :name "gtb311r") + (new 'static 'speech-info-item :name "gtb312r") + (new 'static 'speech-info-item :name "gtb313r") + (new 'static 'speech-info-item :name "gtb314r") + (new 'static 'speech-info-item :name "gtb315r") + (new 'static 'speech-info-item :name "gtb316r") + (new 'static 'speech-info-item :name "gtb317r") + (new 'static 'speech-info-item :name "gtb368r") + (new 'static 'speech-info-item :name "gtb370r") + (new 'static 'speech-info-item :name "gtb371r") + (new 'static 'speech-info-item :name "gtb372r") + (new 'static 'speech-info-item :name "gtb385r") + (new 'static 'speech-info-item :name "gtb383r") + (new 'static 'speech-info-item :name "gtb565r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb272r") + (new 'static 'speech-info-item :name "gtb273r") + (new 'static 'speech-info-item :name "gtb274r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb276r") + (new 'static 'speech-info-item :name "gtb277r") + (new 'static 'speech-info-item :name "gtb278r") + (new 'static 'speech-info-item :name "gtb279r") + (new 'static 'speech-info-item :name "gtb280r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb281r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb282r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb283r") + (new 'static 'speech-info-item :name "gtb284r") + (new 'static 'speech-info-item :name "gtb285r") + (new 'static 'speech-info-item :name "gtb286r") + (new 'static 'speech-info-item :name "gtb287r") + (new 'static 'speech-info-item :name "gtb288r") + (new 'static 'speech-info-item :name "gtb289r") + (new 'static 'speech-info-item :name "gtb290r") + (new 'static 'speech-info-item :name "gtb291r") + (new 'static 'speech-info-item :name "gtb293r") + (new 'static 'speech-info-item :name "gtb294r") + (new 'static 'speech-info-item :name "gtb295r") + (new 'static 'speech-info-item :name "gtb296r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb297r") + (new 'static 'speech-info-item :name "gtb299r") + (new 'static 'speech-info-item :name "gtb300r") + (new 'static 'speech-info-item :name "gtb302r") + (new 'static 'speech-info-item :name "gtb303r") + (new 'static 'speech-info-item :name "gtb304r") + (new 'static 'speech-info-item :name "gtb306r") + (new 'static 'speech-info-item :name "gtb307r") + (new 'static 'speech-info-item :name "gtb308r") + (new 'static 'speech-info-item :name "gtb309r") + (new 'static 'speech-info-item :name "gtb310r") + (new 'static 'speech-info-item :name "gtb311r") + (new 'static 'speech-info-item :name "gtb312r") + (new 'static 'speech-info-item :name "gtb313r") + (new 'static 'speech-info-item :name "gtb314r") + (new 'static 'speech-info-item :name "gtb316r") + (new 'static 'speech-info-item :name "gtb317r") + (new 'static 'speech-info-item :name "gtb565r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb318r") + (new 'static 'speech-info-item :name "gtb319r") + (new 'static 'speech-info-item :name "gtb320r") + (new 'static 'speech-info-item :name "gtb321r") + (new 'static 'speech-info-item :name "gtb323r") + (new 'static 'speech-info-item :name "gtb324r") + (new 'static 'speech-info-item :name "gtb325r") + (new 'static 'speech-info-item :name "gtb326r") + (new 'static 'speech-info-item :name "gtb327r") + (new 'static 'speech-info-item :name "gtb328r") + (new 'static 'speech-info-item :name "gtb329r") + (new 'static 'speech-info-item :name "gtb330r") + (new 'static 'speech-info-item :name "gtb331r") + (new 'static 'speech-info-item :name "gtb334r") + (new 'static 'speech-info-item :name "gtb364r") + (new 'static 'speech-info-item :name "gtb482r") + (new 'static 'speech-info-item :name "gtb568r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb335r") + (new 'static 'speech-info-item :name "gtb336r") + (new 'static 'speech-info-item :name "gtb337r") + (new 'static 'speech-info-item :name "gtb338r") + (new 'static 'speech-info-item :name "gtb339r") + (new 'static 'speech-info-item :name "gtb340r") + (new 'static 'speech-info-item :name "gtb341r") + (new 'static 'speech-info-item :name "gtb342r") + (new 'static 'speech-info-item :name "gtb343r") + (new 'static 'speech-info-item :name "gtb344r") + (new 'static 'speech-info-item :name "gtb345r") + (new 'static 'speech-info-item :name "gtb346r") + (new 'static 'speech-info-item :name "gtb347r") + (new 'static 'speech-info-item :name "gtb348r") + (new 'static 'speech-info-item :name "gtb349r") + (new 'static 'speech-info-item :name "gtb350r") + (new 'static 'speech-info-item :name "gtb351r") + (new 'static 'speech-info-item :name "gtb352r") + (new 'static 'speech-info-item :name "gtb353r") + (new 'static 'speech-info-item :name "gtb355r") + (new 'static 'speech-info-item :name "gtb356r") + (new 'static 'speech-info-item :name "gtb357r") + (new 'static 'speech-info-item :name "gtb358r") + (new 'static 'speech-info-item :name "gtb359r") + (new 'static 'speech-info-item :name "gtb360r") + (new 'static 'speech-info-item :name "gtb361r") + (new 'static 'speech-info-item :name "gtb362r") + (new 'static 'speech-info-item :name "gtb363r") + (new 'static 'speech-info-item :name "gtb365r") + (new 'static 'speech-info-item :name "gtb366r") + (new 'static 'speech-info-item :name "gtb367r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb386r") + (new 'static 'speech-info-item :name "gtb387r") + (new 'static 'speech-info-item :name "gtb388r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb389r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb390r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb391r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb392r") + (new 'static 'speech-info-item :name "gtb393r") + (new 'static 'speech-info-item :name "gtb394r") + (new 'static 'speech-info-item :name "gtb395r") + (new 'static 'speech-info-item :name "gtb396r") + (new 'static 'speech-info-item :name "gtb397r") + (new 'static 'speech-info-item :name "gtb398r") + (new 'static 'speech-info-item :name "gtb399r") + (new 'static 'speech-info-item :name "gtb400r") + (new 'static 'speech-info-item :name "gtb401r") + (new 'static 'speech-info-item :name "gtb402r") + (new 'static 'speech-info-item :name "gtb403r") + (new 'static 'speech-info-item :name "gtb404r") + (new 'static 'speech-info-item :name "gtb405r") + (new 'static 'speech-info-item :name "gtb406r") + (new 'static 'speech-info-item :name "gtb407r") + (new 'static 'speech-info-item :name "gtb408r") + (new 'static 'speech-info-item :name "gtb409r") + (new 'static 'speech-info-item :name "gtb410r") + (new 'static 'speech-info-item :name "gtb411r") + (new 'static 'speech-info-item :name "gtb412r") + (new 'static 'speech-info-item :name "gtb413r") + (new 'static 'speech-info-item :name "gtb414r") + (new 'static 'speech-info-item :name "gtb415r") + (new 'static 'speech-info-item :name "gtb416r") + (new 'static 'speech-info-item :name "gtb417r") + (new 'static 'speech-info-item :name "gtb418r") + (new 'static 'speech-info-item :name "gtb419r") + (new 'static 'speech-info-item :name "gtb420r") + (new 'static 'speech-info-item :name "gtb421r") + (new 'static 'speech-info-item :name "gtb422r") + (new 'static 'speech-info-item :name "gtb423r") + (new 'static 'speech-info-item :name "gtb424r") + (new 'static 'speech-info-item :name "gtb425r") + (new 'static 'speech-info-item :name "gtb426r") + (new 'static 'speech-info-item :name "gtb427r") + (new 'static 'speech-info-item :name "gtb428r") + (new 'static 'speech-info-item :name "gtb429r") + (new 'static 'speech-info-item :name "gtb430r") + (new 'static 'speech-info-item :name "gtb431r") + (new 'static 'speech-info-item :name "gtb432r") + (new 'static 'speech-info-item :name "gtb556r") + (new 'static 'speech-info-item :name "gtb574r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb433r") + (new 'static 'speech-info-item :name "gtb434r") + (new 'static 'speech-info-item :name "gtb435r") + (new 'static 'speech-info-item :name "gtb436r") + (new 'static 'speech-info-item :name "gtb437r") + (new 'static 'speech-info-item :name "gtb438r") + (new 'static 'speech-info-item :name "gtb439r") + (new 'static 'speech-info-item :name "gtb440r") + (new 'static 'speech-info-item :name "gtb441r") + (new 'static 'speech-info-item :name "gtb442r") + (new 'static 'speech-info-item :name "gtb443r") + (new 'static 'speech-info-item :name "gtb444r") + (new 'static 'speech-info-item :name "gtb445r") + (new 'static 'speech-info-item :name "gtb446r") + (new 'static 'speech-info-item :name "gtb447r") + (new 'static 'speech-info-item :name "gtb448r") + (new 'static 'speech-info-item :name "gtb449r") + (new 'static 'speech-info-item :name "gtb450r") + (new 'static 'speech-info-item :name "gtb451r") + (new 'static 'speech-info-item :name "gtb452r") + (new 'static 'speech-info-item :name "gtb453r") + (new 'static 'speech-info-item :name "gtb376r") + (new 'static 'speech-info-item :name "gtb476r") + (new 'static 'speech-info-item :name "gtb477r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb454r") + (new 'static 'speech-info-item :name "gtb455r") + (new 'static 'speech-info-item :name "gtb456r") + (new 'static 'speech-info-item :name "gtb457r") + (new 'static 'speech-info-item :name "gtb458r") + (new 'static 'speech-info-item :name "gtb459r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb454r") + (new 'static 'speech-info-item :name "gtb463r") + (new 'static 'speech-info-item :name "gtb464r") + (new 'static 'speech-info-item :name "gtb469r") + (new 'static 'speech-info-item :name "gtb468r") + (new 'static 'speech-info-item :name "gtb460r") + (new 'static 'speech-info-item :name "gtb461r") + (new 'static 'speech-info-item :name "gtb462r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "gtb500r")) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb501r") + (new 'static 'speech-info-item :name "gtb502r") + (new 'static 'speech-info-item :name "gtb503r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb504r") + (new 'static 'speech-info-item :name "gtb505r") + (new 'static 'speech-info-item :name "gtb506r") + (new 'static 'speech-info-item :name "gtb507r") + (new 'static 'speech-info-item :name "gtb508r") + (new 'static 'speech-info-item :name "gtb509r") + (new 'static 'speech-info-item :name "gtb510r") + (new 'static 'speech-info-item :name "gtb511r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb512r") + (new 'static 'speech-info-item :name "gtb513r") + (new 'static 'speech-info-item :name "gtb514r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb515r") + (new 'static 'speech-info-item :name "gtb516r") + (new 'static 'speech-info-item :name "gtb517r") + (new 'static 'speech-info-item :name "gtb518r") + (new 'static 'speech-info-item :name "gtb519r") + (new 'static 'speech-info-item :name "gtb520r") + (new 'static 'speech-info-item :name "gtb521r") + (new 'static 'speech-info-item :name "gtb522r") + (new 'static 'speech-info-item :name "gtb523r") + (new 'static 'speech-info-item :name "gtb524r") + (new 'static 'speech-info-item :name "gtb525r") + (new 'static 'speech-info-item :name "gtb526r") + (new 'static 'speech-info-item :name "gtb527r") + (new 'static 'speech-info-item :name "gtb528r") + (new 'static 'speech-info-item :name "gtb529r") + (new 'static 'speech-info-item :name "gtb530r") + (new 'static 'speech-info-item :name "gtb531r") + (new 'static 'speech-info-item :name "gtb532r") + (new 'static 'speech-info-item :name "gtb533r") + (new 'static 'speech-info-item :name "gtb534r") + (new 'static 'speech-info-item :name "gtb535r") + (new 'static 'speech-info-item :name "gtb536r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 14) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb512r") + (new 'static 'speech-info-item :name "gtb513r") + (new 'static 'speech-info-item :name "gtb514r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb515r") + (new 'static 'speech-info-item :name "gtb516r") + (new 'static 'speech-info-item :name "gtb517r") + (new 'static 'speech-info-item :name "gtb518r") + (new 'static 'speech-info-item :name "gtb519r") + (new 'static 'speech-info-item :name "gtb520r") + (new 'static 'speech-info-item :name "gtb521r") + (new 'static 'speech-info-item :name "gtb522r") + (new 'static 'speech-info-item :name "gtb523r") + (new 'static 'speech-info-item :name "gtb524r") + (new 'static 'speech-info-item :name "gtb525r") + (new 'static 'speech-info-item :name "gtb526r") + (new 'static 'speech-info-item :name "gtb527r") + (new 'static 'speech-info-item :name "gtb528r") + (new 'static 'speech-info-item :name "gtb529r") + (new 'static 'speech-info-item :name "gtb530r") + (new 'static 'speech-info-item :name "gtb531r") + (new 'static 'speech-info-item :name "gtb532r") + (new 'static 'speech-info-item :name "gtb533r") + (new 'static 'speech-info-item :name "gtb534r") + (new 'static 'speech-info-item :name "gtb535r") + (new 'static 'speech-info-item :name "gtb536r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb537r") + (new 'static 'speech-info-item :name "gtb538r") + (new 'static 'speech-info-item :name "gtb539r") + (new 'static 'speech-info-item :name "gtb540r") + (new 'static 'speech-info-item :name "gtb541r") + (new 'static 'speech-info-item :name "gtb542r") + (new 'static 'speech-info-item :name "gtb543r") + (new 'static 'speech-info-item :name "gtb544r") + (new 'static 'speech-info-item :name "gtb545r") + (new 'static 'speech-info-item :name "gtb546r") + (new 'static 'speech-info-item :name "gtb547r") + (new 'static 'speech-info-item :name "gtb548r") + (new 'static 'speech-info-item :name "gtb549r") + (new 'static 'speech-info-item :name "gtb550r") + (new 'static 'speech-info-item :name "gtb551r") + (new 'static 'speech-info-item :name "gtb552r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb537r") + (new 'static 'speech-info-item :name "gtb538r") + (new 'static 'speech-info-item :name "gtb539r") + (new 'static 'speech-info-item :name "gtb540r") + (new 'static 'speech-info-item :name "gtb541r") + (new 'static 'speech-info-item :name "gtb542r") + (new 'static 'speech-info-item :name "gtb543r") + (new 'static 'speech-info-item :name "gtb544r") + (new 'static 'speech-info-item :name "gtb545r") + (new 'static 'speech-info-item :name "gtb546r") + (new 'static 'speech-info-item :name "gtb547r") + (new 'static 'speech-info-item :name "gtb548r") + (new 'static 'speech-info-item :name "gtb549r") + (new 'static 'speech-info-item :name "gtb550r") + (new 'static 'speech-info-item :name "gtb551r") + (new 'static 'speech-info-item :name "gtb552r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb576r") + (new 'static 'speech-info-item :name "gtb577r") + (new 'static 'speech-info-item :name "gtb578r") + (new 'static 'speech-info-item :name "gtb579r") + (new 'static 'speech-info-item :name "gtb580r") + (new 'static 'speech-info-item :name "gtb581r") + (new 'static 'speech-info-item :name "gtb582r") + ) + ) + ) + +(set! (-> *speech-control* channels 6 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "gtb494r")) + :flags (speech-info-flag si0) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-jak.gc b/goal_src/jakx/engine/sound/speech/speech-jak.gc index cd6b0bd8a9..1cdfed2426 100644 --- a/goal_src/jakx/engine/sound/speech/speech-jak.gc +++ b/goal_src/jakx/engine/sound/speech/speech-jak.gc @@ -7,3 +7,698 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 1 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak117r") + (new 'static 'speech-info-item :name "jak119r") + (new 'static 'speech-info-item :name "jak120r") + (new 'static 'speech-info-item :name "jak121r") + (new 'static 'speech-info-item :name "jak122r") + (new 'static 'speech-info-item :name "jak123r") + (new 'static 'speech-info-item :name "jak124r") + (new 'static 'speech-info-item :name "jak125r") + (new 'static 'speech-info-item :name "jak126r") + (new 'static 'speech-info-item :name "jak127r") + (new 'static 'speech-info-item :name "jak128r") + (new 'static 'speech-info-item :name "jak129r") + (new 'static 'speech-info-item :name "jak130r") + (new 'static 'speech-info-item :name "jak137r") + (new 'static 'speech-info-item :name "jak138r") + (new 'static 'speech-info-item :name "jak139r") + (new 'static 'speech-info-item :name "jak140r") + (new 'static 'speech-info-item :name "jak141r") + (new 'static 'speech-info-item :name "jak143r") + (new 'static 'speech-info-item :name "jak146r") + (new 'static 'speech-info-item :name "jak150r") + (new 'static 'speech-info-item :name "jak151r") + (new 'static 'speech-info-item :name "jak152r") + (new 'static 'speech-info-item :name "jak153r") + (new 'static 'speech-info-item :name "jak154r") + (new 'static 'speech-info-item :name "jak155r") + (new 'static 'speech-info-item :name "jak162r") + (new 'static 'speech-info-item :name "jak167r") + (new 'static 'speech-info-item :name "jak168r") + (new 'static 'speech-info-item :name "jak169r") + (new 'static 'speech-info-item :name "jak170r") + (new 'static 'speech-info-item :name "jak171r") + (new 'static 'speech-info-item :name "jak173r") + (new 'static 'speech-info-item :name "jak174r") + (new 'static 'speech-info-item :name "jak178r") + (new 'static 'speech-info-item :name "jak179r") + (new 'static 'speech-info-item :name "jak180r") + (new 'static 'speech-info-item :name "jak186r") + (new 'static 'speech-info-item :name "jak187r") + (new 'static 'speech-info-item :name "jak188r") + (new 'static 'speech-info-item :name "jak189r") + (new 'static 'speech-info-item :name "jak190r") + (new 'static 'speech-info-item :name "jak191r") + (new 'static 'speech-info-item :name "jak192r") + (new 'static 'speech-info-item :name "jak193r") + (new 'static 'speech-info-item :name "jak194r") + (new 'static 'speech-info-item :name "jak195r") + (new 'static 'speech-info-item :name "jak196r") + (new 'static 'speech-info-item :name "jak197r") + (new 'static 'speech-info-item :name "jak233r") + (new 'static 'speech-info-item :name "jak242r") + (new 'static 'speech-info-item :name "jak254r") + (new 'static 'speech-info-item :name "jak268r") + (new 'static 'speech-info-item :name "jak270r") + (new 'static 'speech-info-item :name "jak341r") + (new 'static 'speech-info-item :name "jak342r") + (new 'static 'speech-info-item :name "jak343r") + (new 'static 'speech-info-item :name "jak344r") + (new 'static 'speech-info-item :name "jak345r") + (new 'static 'speech-info-item :name "jak346r") + (new 'static 'speech-info-item :name "jak347r") + (new 'static 'speech-info-item :name "jak348r") + (new 'static 'speech-info-item :name "jak349r") + (new 'static 'speech-info-item :name "jak350r") + (new 'static 'speech-info-item :name "jak351r") + (new 'static 'speech-info-item :name "jak352r") + (new 'static 'speech-info-item :name "jak353r") + (new 'static 'speech-info-item :name "jak354r") + (new 'static 'speech-info-item :name "jak358r") + (new 'static 'speech-info-item :name "jak359r") + (new 'static 'speech-info-item :name "jak362r") + (new 'static 'speech-info-item :name "jak363r") + (new 'static 'speech-info-item :name "jak365r") + (new 'static 'speech-info-item :name "jak369r") + (new 'static 'speech-info-item :name "jak372r") + (new 'static 'speech-info-item :name "jak425r") + (new 'static 'speech-info-item :name "jak427r") + (new 'static 'speech-info-item :name "jak428r") + (new 'static 'speech-info-item :name "jak434r") + (new 'static 'speech-info-item :name "jak435r") + (new 'static 'speech-info-item :name "jak436r") + (new 'static 'speech-info-item :name "jak437r") + (new 'static 'speech-info-item :name "jak438r") + (new 'static 'speech-info-item :name "jak439r") + (new 'static 'speech-info-item :name "jak440r") + (new 'static 'speech-info-item :name "jak441r") + (new 'static 'speech-info-item :name "jak442r") + (new 'static 'speech-info-item :name "jak443r") + (new 'static 'speech-info-item :name "jak444r") + (new 'static 'speech-info-item :name "jak445r") + (new 'static 'speech-info-item :name "jak446r") + (new 'static 'speech-info-item :name "jak447r") + (new 'static 'speech-info-item :name "jak448r") + (new 'static 'speech-info-item :name "jak389r") + (new 'static 'speech-info-item :name "jak390r") + (new 'static 'speech-info-item :name "jak391r") + (new 'static 'speech-info-item :name "jak392r") + (new 'static 'speech-info-item :name "jak393r") + (new 'static 'speech-info-item :name "jak395r") + (new 'static 'speech-info-item :name "jak400r") + (new 'static 'speech-info-item :name "jak404r") + (new 'static 'speech-info-item :name "jak406r") + (new 'static 'speech-info-item :name "jak108r") + (new 'static 'speech-info-item :name "jak410r") + (new 'static 'speech-info-item :name "jak411r") + (new 'static 'speech-info-item :name "jak417r") + (new 'static 'speech-info-item :name "jak366r") + (new 'static 'speech-info-item :name "jak256r") + (new 'static 'speech-info-item :name "jak419r") + (new 'static 'speech-info-item :name "jak420r") + (new 'static 'speech-info-item :name "jak272r") + (new 'static 'speech-info-item :name "jak275r") + (new 'static 'speech-info-item :name "jak282r") + (new 'static 'speech-info-item :name "jak283r") + (new 'static 'speech-info-item :name "jak288r") + (new 'static 'speech-info-item :name "jak291r") + (new 'static 'speech-info-item :name "jak294r") + (new 'static 'speech-info-item :name "jak298r") + (new 'static 'speech-info-item :name "jak301r") + (new 'static 'speech-info-item :name "jak302r") + (new 'static 'speech-info-item :name "jak303r") + (new 'static 'speech-info-item :name "jak332r") + (new 'static 'speech-info-item :name "jak333r") + (new 'static 'speech-info-item :name "jak334r") + (new 'static 'speech-info-item :name "jak335r") + (new 'static 'speech-info-item :name "jak336r") + (new 'static 'speech-info-item :name "jak337r") + (new 'static 'speech-info-item :name "jak338r") + (new 'static 'speech-info-item :name "jak339r") + (new 'static 'speech-info-item :name "jak340r") + (new 'static 'speech-info-item :name "jak307r") + (new 'static 'speech-info-item :name "jak309r") + (new 'static 'speech-info-item :name "jak310r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak201r") + (new 'static 'speech-info-item :name "jak202r") + (new 'static 'speech-info-item :name "jak203r") + (new 'static 'speech-info-item :name "jak204r") + (new 'static 'speech-info-item :name "jak205r") + (new 'static 'speech-info-item :name "jak206r") + (new 'static 'speech-info-item :name "jak207r") + (new 'static 'speech-info-item :name "jak208r") + (new 'static 'speech-info-item :name "jak209r") + (new 'static 'speech-info-item :name "jak210r") + (new 'static 'speech-info-item :name "jak211r") + (new 'static 'speech-info-item :name "jak212r") + (new 'static 'speech-info-item :name "jak213r") + (new 'static 'speech-info-item :name "jak214r") + (new 'static 'speech-info-item :name "jak215r") + (new 'static 'speech-info-item :name "jak216r") + (new 'static 'speech-info-item :name "jak217r") + (new 'static 'speech-info-item :name "jak218r") + (new 'static 'speech-info-item :name "jak219r") + (new 'static 'speech-info-item :name "jak220r") + (new 'static 'speech-info-item :name "jak221r") + (new 'static 'speech-info-item :name "jak222r") + (new 'static 'speech-info-item :name "jak223r") + (new 'static 'speech-info-item :name "jak224r") + (new 'static 'speech-info-item :name "jak225r") + (new 'static 'speech-info-item :name "jak226r") + (new 'static 'speech-info-item :name "jak227r") + (new 'static 'speech-info-item :name "jak228r") + (new 'static 'speech-info-item :name "jak116r") + (new 'static 'speech-info-item :name "jak156r") + (new 'static 'speech-info-item :name "jak161r") + (new 'static 'speech-info-item :name "jak163r") + (new 'static 'speech-info-item :name "jak432r") + (new 'static 'speech-info-item :name "jak433r") + (new 'static 'speech-info-item :name "jak360r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak385r") + (new 'static 'speech-info-item :name "jak386r") + (new 'static 'speech-info-item :name "jak387r") + (new 'static 'speech-info-item :name "jak388r") + (new 'static 'speech-info-item :name "jak394r") + (new 'static 'speech-info-item :name "jak396r") + (new 'static 'speech-info-item :name "jak397r") + (new 'static 'speech-info-item :name "jak398r") + (new 'static 'speech-info-item :name "jak399r") + (new 'static 'speech-info-item :name "jak401r") + (new 'static 'speech-info-item :name "jak402r") + (new 'static 'speech-info-item :name "jak403r") + (new 'static 'speech-info-item :name "jak405r") + (new 'static 'speech-info-item :name "jak407r") + (new 'static 'speech-info-item :name "jak408r") + (new 'static 'speech-info-item :name "jak109r") + (new 'static 'speech-info-item :name "jak110r") + (new 'static 'speech-info-item :name "jak111r") + (new 'static 'speech-info-item :name "jak112r") + (new 'static 'speech-info-item :name "jak113r") + (new 'static 'speech-info-item :name "jak114r") + (new 'static 'speech-info-item :name "jak115r") + (new 'static 'speech-info-item :name "jak135r") + (new 'static 'speech-info-item :name "jak199r") + (new 'static 'speech-info-item :name "jak200r") + (new 'static 'speech-info-item :name "jak136r") + (new 'static 'speech-info-item :name "dax116r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax117r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax118r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 2) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak409r") + (new 'static 'speech-info-item :name "jak412r") + (new 'static 'speech-info-item :name "jak413r") + (new 'static 'speech-info-item :name "jak414r") + (new 'static 'speech-info-item :name "jak415r") + (new 'static 'speech-info-item :name "jak416r") + (new 'static 'speech-info-item :name "jak418r") + (new 'static 'speech-info-item :name "jak421r") + (new 'static 'speech-info-item :name "dax121r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak385r") + (new 'static 'speech-info-item :name "jak386r") + (new 'static 'speech-info-item :name "jak387r") + (new 'static 'speech-info-item :name "jak396r") + (new 'static 'speech-info-item :name "jak397r") + (new 'static 'speech-info-item :name "jak398r") + (new 'static 'speech-info-item :name "jak399r") + (new 'static 'speech-info-item :name "jak401r") + (new 'static 'speech-info-item :name "jak402r") + (new 'static 'speech-info-item :name "jak403r") + (new 'static 'speech-info-item :name "jak407r") + (new 'static 'speech-info-item :name "jak408r") + (new 'static 'speech-info-item :name "jak109r") + (new 'static 'speech-info-item :name "jak110r") + (new 'static 'speech-info-item :name "jak111r") + (new 'static 'speech-info-item :name "jak112r") + (new 'static 'speech-info-item :name "jak114r") + (new 'static 'speech-info-item :name "jak115r") + (new 'static 'speech-info-item :name "jak135r") + (new 'static 'speech-info-item :name "jak200r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak409r") + (new 'static 'speech-info-item :name "jak412r") + (new 'static 'speech-info-item :name "jak413r") + (new 'static 'speech-info-item :name "jak414r") + (new 'static 'speech-info-item :name "jak415r") + (new 'static 'speech-info-item :name "jak416r") + (new 'static 'speech-info-item :name "jak418r") + (new 'static 'speech-info-item :name "jak421r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak229r") + (new 'static 'speech-info-item :name "jak230r") + (new 'static 'speech-info-item :name "jak231r") + (new 'static 'speech-info-item :name "jak232r") + (new 'static 'speech-info-item :name "jak234r") + (new 'static 'speech-info-item :name "jak235r") + (new 'static 'speech-info-item :name "jak236r") + (new 'static 'speech-info-item :name "jak237r") + (new 'static 'speech-info-item :name "jak238r") + (new 'static 'speech-info-item :name "jak239r") + (new 'static 'speech-info-item :name "jak240r") + (new 'static 'speech-info-item :name "jak241r") + (new 'static 'speech-info-item :name "jak243r") + (new 'static 'speech-info-item :name "jak106r") + (new 'static 'speech-info-item :name "jak132r") + (new 'static 'speech-info-item :name "jak133r") + (new 'static 'speech-info-item :name "jak142r") + (new 'static 'speech-info-item :name "jak175r") + (new 'static 'speech-info-item :name "jak176r") + (new 'static 'speech-info-item :name "jak265r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak244r") + (new 'static 'speech-info-item :name "jak245r") + (new 'static 'speech-info-item :name "jak246r") + (new 'static 'speech-info-item :name "jak247r") + (new 'static 'speech-info-item :name "jak248r") + (new 'static 'speech-info-item :name "jak249r") + (new 'static 'speech-info-item :name "jak250r") + (new 'static 'speech-info-item :name "jak251r") + (new 'static 'speech-info-item :name "jak252r") + (new 'static 'speech-info-item :name "jak253r") + (new 'static 'speech-info-item :name "jak255r") + (new 'static 'speech-info-item :name "jak257r") + (new 'static 'speech-info-item :name "jak258r") + (new 'static 'speech-info-item :name "jak259r") + (new 'static 'speech-info-item :name "jak260r") + (new 'static 'speech-info-item :name "jak261r") + (new 'static 'speech-info-item :name "jak262r") + (new 'static 'speech-info-item :name "jak263r") + (new 'static 'speech-info-item :name "jak264r") + (new 'static 'speech-info-item :name "jak266r") + (new 'static 'speech-info-item :name "jak267r") + (new 'static 'speech-info-item :name "jak320r") + (new 'static 'speech-info-item :name "jak355r") + (new 'static 'speech-info-item :name "jak356r") + (new 'static 'speech-info-item :name "jak357r") + (new 'static 'speech-info-item :name "jak364r") + (new 'static 'speech-info-item :name "jak368r") + (new 'static 'speech-info-item :name "jak370r") + (new 'static 'speech-info-item :name "jak371r") + (new 'static 'speech-info-item :name "jak430r") + (new 'static 'speech-info-item :name "jak431r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "jak373r")) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak374r") + (new 'static 'speech-info-item :name "jak375r") + (new 'static 'speech-info-item :name "jak376r") + (new 'static 'speech-info-item :name "jak377r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak378r") + (new 'static 'speech-info-item :name "jak379r") + (new 'static 'speech-info-item :name "jak380r") + (new 'static 'speech-info-item :name "jak381r") + (new 'static 'speech-info-item :name "jak382r") + (new 'static 'speech-info-item :name "jak383r") + (new 'static 'speech-info-item :name "jak384r") + (new 'static 'speech-info-item :name "jak182r") + (new 'static 'speech-info-item :name "jak183r") + (new 'static 'speech-info-item :name "jak184r") + (new 'static 'speech-info-item :name "jak185r") + (new 'static 'speech-info-item :name "jak181r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak273r") + (new 'static 'speech-info-item :name "jak274r") + (new 'static 'speech-info-item :name "jak276r") + (new 'static 'speech-info-item :name "jak277r") + (new 'static 'speech-info-item :name "jak278r") + (new 'static 'speech-info-item :name "jak279r") + (new 'static 'speech-info-item :name "jak280r") + (new 'static 'speech-info-item :name "jak281r") + (new 'static 'speech-info-item :name "jak284r") + (new 'static 'speech-info-item :name "jak285r") + (new 'static 'speech-info-item :name "jak286r") + (new 'static 'speech-info-item :name "jak287r") + (new 'static 'speech-info-item :name "jak289r") + (new 'static 'speech-info-item :name "jak290r") + (new 'static 'speech-info-item :name "jak292r") + (new 'static 'speech-info-item :name "jak293r") + (new 'static 'speech-info-item :name "jak295r") + (new 'static 'speech-info-item :name "jak296r") + (new 'static 'speech-info-item :name "jak297r") + (new 'static 'speech-info-item :name "jak299r") + (new 'static 'speech-info-item :name "jak300r") + (new 'static 'speech-info-item :name "jak304r") + (new 'static 'speech-info-item :name "jak131r") + (new 'static 'speech-info-item :name "jak159r") + (new 'static 'speech-info-item :name "jak160r") + (new 'static 'speech-info-item :name "jak166r") + (new 'static 'speech-info-item :name "dax123r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak325r") + (new 'static 'speech-info-item :name "jak326r") + (new 'static 'speech-info-item :name "jak327r") + (new 'static 'speech-info-item :name "jak328r") + (new 'static 'speech-info-item :name "jak329r") + (new 'static 'speech-info-item :name "jak330r") + (new 'static 'speech-info-item :name "jak331r") + (new 'static 'speech-info-item :name "jak101r") + (new 'static 'speech-info-item :name "jak102r") + (new 'static 'speech-info-item :name "jak103r") + (new 'static 'speech-info-item :name "jak104r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak449r") + (new 'static 'speech-info-item :name "jak450r") + (new 'static 'speech-info-item :name "jak451r") + (new 'static 'speech-info-item :name "jak452r") + (new 'static 'speech-info-item :name "jak453r") + (new 'static 'speech-info-item :name "jak454r") + (new 'static 'speech-info-item :name "jak108r") + (new 'static 'speech-info-item :name "jak114r") + (new 'static 'speech-info-item :name "jak115r") + (new 'static 'speech-info-item :name "jak117r") + (new 'static 'speech-info-item :name "jak238r") + (new 'static 'speech-info-item :name "jak244r") + (new 'static 'speech-info-item :name "jak245r") + (new 'static 'speech-info-item :name "jak246r") + (new 'static 'speech-info-item :name "jak247r") + (new 'static 'speech-info-item :name "jak250r") + (new 'static 'speech-info-item :name "jak251r") + (new 'static 'speech-info-item :name "jak258r") + (new 'static 'speech-info-item :name "jak263r") + (new 'static 'speech-info-item :name "jak264r") + (new 'static 'speech-info-item :name "jak266r") + (new 'static 'speech-info-item :name "jak267r") + (new 'static 'speech-info-item :name "jak360r") + (new 'static 'speech-info-item :name "jak367r") + (new 'static 'speech-info-item :name "jak368r") + (new 'static 'speech-info-item :name "jak371r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak104r") + (new 'static 'speech-info-item :name "jak105r") + (new 'static 'speech-info-item :name "jak333r") + (new 'static 'speech-info-item :name "jak335r") + (new 'static 'speech-info-item :name "jak336r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak201r") + (new 'static 'speech-info-item :name "jak202r") + (new 'static 'speech-info-item :name "jak204r") + (new 'static 'speech-info-item :name "jak205r") + (new 'static 'speech-info-item :name "jak206r") + (new 'static 'speech-info-item :name "jak207r") + (new 'static 'speech-info-item :name "jak208r") + (new 'static 'speech-info-item :name "jak210r") + (new 'static 'speech-info-item :name "jak211r") + (new 'static 'speech-info-item :name "jak212r") + (new 'static 'speech-info-item :name "jak213r") + (new 'static 'speech-info-item :name "jak215r") + (new 'static 'speech-info-item :name "jak216r") + (new 'static 'speech-info-item :name "jak217r") + (new 'static 'speech-info-item :name "jak219r") + (new 'static 'speech-info-item :name "jak220r") + (new 'static 'speech-info-item :name "jak221r") + (new 'static 'speech-info-item :name "jak222r") + (new 'static 'speech-info-item :name "jak223r") + (new 'static 'speech-info-item :name "jak224r") + (new 'static 'speech-info-item :name "jak225r") + (new 'static 'speech-info-item :name "jak226r") + (new 'static 'speech-info-item :name "jak228r") + (new 'static 'speech-info-item :name "jak361r") + (new 'static 'speech-info-item :name "jak156r") + (new 'static 'speech-info-item :name "jak161r") + (new 'static 'speech-info-item :name "jak163r") + (new 'static 'speech-info-item :name "jak432r") + (new 'static 'speech-info-item :name "jak433r") + (new 'static 'speech-info-item :name "jak360r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 10) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak305r") + (new 'static 'speech-info-item :name "jak306r") + (new 'static 'speech-info-item :name "jak308r") + (new 'static 'speech-info-item :name "jak311r") + (new 'static 'speech-info-item :name "jak312r") + (new 'static 'speech-info-item :name "jak313r") + (new 'static 'speech-info-item :name "jak314r") + (new 'static 'speech-info-item :name "jak315r") + (new 'static 'speech-info-item :name "jak316r") + (new 'static 'speech-info-item :name "jak317r") + (new 'static 'speech-info-item :name "jak318r") + (new 'static 'speech-info-item :name "jak319r") + (new 'static 'speech-info-item :name "jak321r") + (new 'static 'speech-info-item :name "jak322r") + (new 'static 'speech-info-item :name "jak323r") + (new 'static 'speech-info-item :name "jak324r") + (new 'static 'speech-info-item :name "jak107r") + (new 'static 'speech-info-item :name "jak158r") + (new 'static 'speech-info-item :name "jak271r") + (new 'static 'speech-info-item :name "jak144r") + (new 'static 'speech-info-item :name "jak145r") + (new 'static 'speech-info-item :name "jak269r") + (new 'static 'speech-info-item :name "dax110r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax153r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax154r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "jak367r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 22) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak165r") + (new 'static 'speech-info-item :name "jak166r") + (new 'static 'speech-info-item :name "jak198r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 26) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak305r") + (new 'static 'speech-info-item :name "jak306r") + (new 'static 'speech-info-item :name "jak308r") + (new 'static 'speech-info-item :name "jak311r") + (new 'static 'speech-info-item :name "jak312r") + (new 'static 'speech-info-item :name "jak313r") + (new 'static 'speech-info-item :name "jak314r") + (new 'static 'speech-info-item :name "jak315r") + (new 'static 'speech-info-item :name "jak316r") + (new 'static 'speech-info-item :name "jak317r") + (new 'static 'speech-info-item :name "jak318r") + (new 'static 'speech-info-item :name "jak319r") + (new 'static 'speech-info-item :name "jak321r") + (new 'static 'speech-info-item :name "jak322r") + (new 'static 'speech-info-item :name "jak323r") + (new 'static 'speech-info-item :name "jak324r") + (new 'static 'speech-info-item :name "jak107r") + (new 'static 'speech-info-item :name "jak271r") + (new 'static 'speech-info-item :name "jak144r") + (new 'static 'speech-info-item :name "jak145r") + (new 'static 'speech-info-item :name "jak269r") + (new 'static 'speech-info-item :name "dax110r") + (new 'static 'speech-info-item :name "jak147r") + (new 'static 'speech-info-item :name "jak148r") + (new 'static 'speech-info-item :name "jak149r") + (new 'static 'speech-info-item :name "jak157r") + (new 'static 'speech-info-item :name "jak158r") + (new 'static 'speech-info-item :name "jak134r") + (new 'static 'speech-info-item :name "dax153r") + (new 'static 'speech-info-item :name "dax154r") + (new 'static 'speech-info-item :name "dax155r") + (new 'static 'speech-info-item :name "dax156r") + (new 'static 'speech-info-item :name "dax157r") + (new 'static 'speech-info-item :name "dax158r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 23) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak118r") + (new 'static 'speech-info-item :name "jak172r") + (new 'static 'speech-info-item :name "jak177r") + (new 'static 'speech-info-item :name "dax411r") + (new 'static 'speech-info-item :name "dax148r") + (new 'static 'speech-info-item :name "dax149r") + ) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 24) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak429r") + (new 'static 'speech-info-item :name "dax417r") + (new 'static 'speech-info-item :name "dax418r") + (new 'static 'speech-info-item :name "dax419r") + ) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 25) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak273r") + (new 'static 'speech-info-item :name "jak274r") + (new 'static 'speech-info-item :name "jak276r") + (new 'static 'speech-info-item :name "jak277r") + (new 'static 'speech-info-item :name "jak278r") + (new 'static 'speech-info-item :name "jak279r") + (new 'static 'speech-info-item :name "jak280r") + (new 'static 'speech-info-item :name "jak281r") + (new 'static 'speech-info-item :name "jak284r") + (new 'static 'speech-info-item :name "jak285r") + (new 'static 'speech-info-item :name "jak286r") + (new 'static 'speech-info-item :name "jak287r") + (new 'static 'speech-info-item :name "jak289r") + (new 'static 'speech-info-item :name "jak290r") + (new 'static 'speech-info-item :name "jak292r") + (new 'static 'speech-info-item :name "jak293r") + (new 'static 'speech-info-item :name "jak295r") + (new 'static 'speech-info-item :name "jak296r") + (new 'static 'speech-info-item :name "jak297r") + (new 'static 'speech-info-item :name "jak299r") + (new 'static 'speech-info-item :name "jak300r") + (new 'static 'speech-info-item :name "jak304r") + (new 'static 'speech-info-item :name "jak131r") + (new 'static 'speech-info-item :name "jak160r") + (new 'static 'speech-info-item :name "jak166r") + (new 'static 'speech-info-item :name "dax123r") + (new 'static 'speech-info-item :name "jak159r") + (new 'static 'speech-info-item :name "jak199r") + (new 'static 'speech-info-item :name "jak422r") + (new 'static 'speech-info-item :name "jak424r") + (new 'static 'speech-info-item :name "dax407r") + (new 'static 'speech-info-item :name "dax408r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 27) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak229r") + (new 'static 'speech-info-item :name "jak230r") + (new 'static 'speech-info-item :name "jak231r") + (new 'static 'speech-info-item :name "jak232r") + (new 'static 'speech-info-item :name "jak233r") + (new 'static 'speech-info-item :name "jak234r") + (new 'static 'speech-info-item :name "jak235r") + (new 'static 'speech-info-item :name "jak236r") + (new 'static 'speech-info-item :name "jak237r") + (new 'static 'speech-info-item :name "jak238r") + (new 'static 'speech-info-item :name "jak239r") + (new 'static 'speech-info-item :name "jak240r") + (new 'static 'speech-info-item :name "jak241r") + (new 'static 'speech-info-item :name "jak242r") + (new 'static 'speech-info-item :name "jak243r") + (new 'static 'speech-info-item :name "jak106r") + (new 'static 'speech-info-item :name "jak132r") + (new 'static 'speech-info-item :name "jak133r") + (new 'static 'speech-info-item :name "jak142r") + (new 'static 'speech-info-item :name "jak175r") + (new 'static 'speech-info-item :name "jak176r") + (new 'static 'speech-info-item :name "jak423r") + (new 'static 'speech-info-item :name "dax415r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 28) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak426r") + (new 'static 'speech-info-item :name "dax406r") + ) + ) + ) + +(set! (-> *speech-control* channels 1 speeches 29) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn220r") + (new 'static 'speech-info-item :name "rayn216r") + (new 'static 'speech-info-item :name "rayn217r") + ) + :flags (speech-info-flag si0) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-kaeden.gc b/goal_src/jakx/engine/sound/speech/speech-kaeden.gc index 7d30c6af64..936ecde10f 100644 --- a/goal_src/jakx/engine/sound/speech/speech-kaeden.gc +++ b/goal_src/jakx/engine/sound/speech/speech-kaeden.gc @@ -7,3 +7,239 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 19 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed126r") + (new 'static 'speech-info-item :name "kaed134r") + (new 'static 'speech-info-item :name "kaed137r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed101r") + (new 'static 'speech-info-item :name "kaed102r") + (new 'static 'speech-info-item :name "kaed103r") + (new 'static 'speech-info-item :name "kaed104r") + (new 'static 'speech-info-item :name "kaed105r") + (new 'static 'speech-info-item :name "kaed106r") + (new 'static 'speech-info-item :name "kaed107r") + (new 'static 'speech-info-item :name "kaed108r") + (new 'static 'speech-info-item :name "kaed109r") + (new 'static 'speech-info-item :name "kaed110r") + (new 'static 'speech-info-item :name "kaed111r") + (new 'static 'speech-info-item :name "kaed112r") + (new 'static 'speech-info-item :name "kaed113r") + (new 'static 'speech-info-item :name "kaed114r") + (new 'static 'speech-info-item :name "kaed115r") + (new 'static 'speech-info-item :name "kaed116r") + (new 'static 'speech-info-item :name "kaed117r") + (new 'static 'speech-info-item :name "kaed118r") + (new 'static 'speech-info-item :name "kaed119r") + (new 'static 'speech-info-item :name "kaed120r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed102r") + (new 'static 'speech-info-item :name "kaed103r") + (new 'static 'speech-info-item :name "kaed104r") + (new 'static 'speech-info-item :name "kaed105r") + (new 'static 'speech-info-item :name "kaed106r") + (new 'static 'speech-info-item :name "kaed107r") + (new 'static 'speech-info-item :name "kaed108r") + (new 'static 'speech-info-item :name "kaed109r") + (new 'static 'speech-info-item :name "kaed111r") + (new 'static 'speech-info-item :name "kaed112r") + (new 'static 'speech-info-item :name "kaed113r") + (new 'static 'speech-info-item :name "kaed114r") + (new 'static 'speech-info-item :name "kaed115r") + (new 'static 'speech-info-item :name "kaed116r") + (new 'static 'speech-info-item :name "kaed117r") + (new 'static 'speech-info-item :name "kaed118r") + (new 'static 'speech-info-item :name "kaed120r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed121r") + (new 'static 'speech-info-item :name "kaed122r") + (new 'static 'speech-info-item :name "kaed123r") + (new 'static 'speech-info-item :name "kaed124r") + (new 'static 'speech-info-item :name "kaed125r") + (new 'static 'speech-info-item :name "kaed127r") + (new 'static 'speech-info-item :name "kaed128r") + (new 'static 'speech-info-item :name "kaed129r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed130r") + (new 'static 'speech-info-item :name "kaed131r") + (new 'static 'speech-info-item :name "kaed132r") + (new 'static 'speech-info-item :name "kaed133r") + (new 'static 'speech-info-item :name "kaed135r") + (new 'static 'speech-info-item :name "kaed136r") + (new 'static 'speech-info-item :name "kaed138r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed139r") + (new 'static 'speech-info-item :name "kaed140r") + (new 'static 'speech-info-item :name "kaed141r") + (new 'static 'speech-info-item :name "kaed142r") + (new 'static 'speech-info-item :name "kaed143r") + (new 'static 'speech-info-item :name "kaed144r") + (new 'static 'speech-info-item :name "kaed145r") + (new 'static 'speech-info-item :name "kaed146r") + (new 'static 'speech-info-item :name "kaed147r") + (new 'static 'speech-info-item :name "kaed148r") + (new 'static 'speech-info-item :name "kaed149r") + (new 'static 'speech-info-item :name "kaed150r") + (new 'static 'speech-info-item :name "kaed151r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed152r") + (new 'static 'speech-info-item :name "kaed153r") + (new 'static 'speech-info-item :name "kaed154r") + (new 'static 'speech-info-item :name "kaed155r") + (new 'static 'speech-info-item :name "kaed156r") + (new 'static 'speech-info-item :name "kaed157r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed158r") + (new 'static 'speech-info-item :name "kaed159r") + (new 'static 'speech-info-item :name "kaed160r") + (new 'static 'speech-info-item :name "kaed161r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "kaed163r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "kaed164r")) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed165r") + (new 'static 'speech-info-item :name "kaed166r") + (new 'static 'speech-info-item :name "kaed167r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed168r") + (new 'static 'speech-info-item :name "kaed169r") + (new 'static 'speech-info-item :name "kaed170r") + (new 'static 'speech-info-item :name "kaed171r") + (new 'static 'speech-info-item :name "kaed172r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed173r") + (new 'static 'speech-info-item :name "kaed174r") + (new 'static 'speech-info-item :name "kaed175r") + (new 'static 'speech-info-item :name "kaed176r") + (new 'static 'speech-info-item :name "kaed177r") + (new 'static 'speech-info-item :name "kaed178r") + (new 'static 'speech-info-item :name "kaed179r") + (new 'static 'speech-info-item :name "kaed180r") + (new 'static 'speech-info-item :name "kaed181r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed173r") + (new 'static 'speech-info-item :name "kaed174r") + (new 'static 'speech-info-item :name "kaed175r") + (new 'static 'speech-info-item :name "kaed176r") + (new 'static 'speech-info-item :name "kaed177r") + (new 'static 'speech-info-item :name "kaed178r") + (new 'static 'speech-info-item :name "kaed179r") + (new 'static 'speech-info-item :name "kaed180r") + (new 'static 'speech-info-item :name "kaed181r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed182r") + (new 'static 'speech-info-item :name "kaed183r") + (new 'static 'speech-info-item :name "kaed184r") + (new 'static 'speech-info-item :name "kaed185r") + (new 'static 'speech-info-item :name "kaed186r") + (new 'static 'speech-info-item :name "kaed187r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed182r") + (new 'static 'speech-info-item :name "kaed183r") + (new 'static 'speech-info-item :name "kaed184r") + (new 'static 'speech-info-item :name "kaed185r") + (new 'static 'speech-info-item :name "kaed186r") + (new 'static 'speech-info-item :name "kaed187r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed188r") + (new 'static 'speech-info-item :name "kaed189r") + (new 'static 'speech-info-item :name "kaed190r") + (new 'static 'speech-info-item :name "kaed191r") + (new 'static 'speech-info-item :name "kaed192r") + (new 'static 'speech-info-item :name "kaed193r") + (new 'static 'speech-info-item :name "kaed194r") + (new 'static 'speech-info-item :name "kaed195r") + ) + ) + ) + +(set! (-> *speech-control* channels 19 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed183r") + (new 'static 'speech-info-item :name "kaed162r") + (new 'static 'speech-info-item :name "kaed155r") + (new 'static 'speech-info-item :name "kaed162r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-keira.gc b/goal_src/jakx/engine/sound/speech/speech-keira.gc index fb634c339f..d53e487c6b 100644 --- a/goal_src/jakx/engine/sound/speech/speech-keira.gc +++ b/goal_src/jakx/engine/sound/speech/speech-keira.gc @@ -7,3 +7,521 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 3 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir108r") + (new 'static 'speech-info-item :name "keir113r") + (new 'static 'speech-info-item :name "keir116r") + (new 'static 'speech-info-item :name "keir117r") + (new 'static 'speech-info-item :name "keir120r") + (new 'static 'speech-info-item :name "keir121r") + (new 'static 'speech-info-item :name "keir122r") + (new 'static 'speech-info-item :name "keir123r") + (new 'static 'speech-info-item :name "keir124r") + (new 'static 'speech-info-item :name "keir125r") + (new 'static 'speech-info-item :name "keir126r") + (new 'static 'speech-info-item :name "keir127r") + (new 'static 'speech-info-item :name "keir129r") + (new 'static 'speech-info-item :name "keir130r") + (new 'static 'speech-info-item :name "keir131r") + (new 'static 'speech-info-item :name "keir132r") + (new 'static 'speech-info-item :name "keir133r") + (new 'static 'speech-info-item :name "keir134r") + (new 'static 'speech-info-item :name "keir135r") + (new 'static 'speech-info-item :name "keir139r") + (new 'static 'speech-info-item :name "keir140r") + (new 'static 'speech-info-item :name "keir142r") + (new 'static 'speech-info-item :name "keir143r") + (new 'static 'speech-info-item :name "keir144r") + (new 'static 'speech-info-item :name "keir146r") + (new 'static 'speech-info-item :name "keir147r") + (new 'static 'speech-info-item :name "keir148r") + (new 'static 'speech-info-item :name "keir149r") + (new 'static 'speech-info-item :name "keir150r") + (new 'static 'speech-info-item :name "keir151r") + (new 'static 'speech-info-item :name "keir152r") + (new 'static 'speech-info-item :name "keir153r") + (new 'static 'speech-info-item :name "keir154r") + (new 'static 'speech-info-item :name "keir155r") + (new 'static 'speech-info-item :name "keir157r") + (new 'static 'speech-info-item :name "keir158r") + (new 'static 'speech-info-item :name "keir162r") + (new 'static 'speech-info-item :name "keir163r") + (new 'static 'speech-info-item :name "keir164r") + (new 'static 'speech-info-item :name "keir165r") + (new 'static 'speech-info-item :name "keir166r") + (new 'static 'speech-info-item :name "keir167r") + (new 'static 'speech-info-item :name "keir168r") + (new 'static 'speech-info-item :name "keir169r") + (new 'static 'speech-info-item :name "keir170r") + (new 'static 'speech-info-item :name "keir171r") + (new 'static 'speech-info-item :name "keir172r") + (new 'static 'speech-info-item :name "keir173r") + (new 'static 'speech-info-item :name "keir174r") + (new 'static 'speech-info-item :name "keir176r") + (new 'static 'speech-info-item :name "keir177r") + (new 'static 'speech-info-item :name "keir178r") + (new 'static 'speech-info-item :name "keir182r") + (new 'static 'speech-info-item :name "keir183r") + (new 'static 'speech-info-item :name "keir188r") + (new 'static 'speech-info-item :name "keir189r") + (new 'static 'speech-info-item :name "keir190r") + (new 'static 'speech-info-item :name "keir193r") + (new 'static 'speech-info-item :name "keir194r") + (new 'static 'speech-info-item :name "keir195r") + (new 'static 'speech-info-item :name "keir196r") + (new 'static 'speech-info-item :name "keir197r") + (new 'static 'speech-info-item :name "keir198r") + (new 'static 'speech-info-item :name "keir199r") + (new 'static 'speech-info-item :name "keir200r") + (new 'static 'speech-info-item :name "keir201r") + (new 'static 'speech-info-item :name "keir202r") + (new 'static 'speech-info-item :name "keir204r") + (new 'static 'speech-info-item :name "keir205r") + (new 'static 'speech-info-item :name "keir206r") + (new 'static 'speech-info-item :name "keir207r") + (new 'static 'speech-info-item :name "keir208r") + (new 'static 'speech-info-item :name "keir209r") + (new 'static 'speech-info-item :name "keir210r") + (new 'static 'speech-info-item :name "keir211r") + (new 'static 'speech-info-item :name "keir215r") + (new 'static 'speech-info-item :name "keir218r") + (new 'static 'speech-info-item :name "keir219r") + (new 'static 'speech-info-item :name "keir220r") + (new 'static 'speech-info-item :name "keir221r") + (new 'static 'speech-info-item :name "keir222r") + (new 'static 'speech-info-item :name "keir223r") + (new 'static 'speech-info-item :name "keir224r") + (new 'static 'speech-info-item :name "keir225r") + (new 'static 'speech-info-item :name "keir226r") + (new 'static 'speech-info-item :name "keir227r") + (new 'static 'speech-info-item :name "keir228r") + (new 'static 'speech-info-item :name "keir229r") + (new 'static 'speech-info-item :name "keir230r") + (new 'static 'speech-info-item :name "keir231r") + (new 'static 'speech-info-item :name "keir232r") + (new 'static 'speech-info-item :name "keir233r") + (new 'static 'speech-info-item :name "keir269r") + (new 'static 'speech-info-item :name "keir281r") + (new 'static 'speech-info-item :name "keir289r") + (new 'static 'speech-info-item :name "keir351r") + (new 'static 'speech-info-item :name "keir352r") + (new 'static 'speech-info-item :name "keir355r") + (new 'static 'speech-info-item :name "keir356r") + (new 'static 'speech-info-item :name "keir359r") + (new 'static 'speech-info-item :name "keir360r") + (new 'static 'speech-info-item :name "keir362r") + (new 'static 'speech-info-item :name "keir402r") + (new 'static 'speech-info-item :name "keir403r") + (new 'static 'speech-info-item :name "keir404r") + (new 'static 'speech-info-item :name "keir405r") + (new 'static 'speech-info-item :name "keir406r") + (new 'static 'speech-info-item :name "keir407r") + (new 'static 'speech-info-item :name "keir409r") + (new 'static 'speech-info-item :name "keir410r") + (new 'static 'speech-info-item :name "keir411r") + (new 'static 'speech-info-item :name "keir412r") + (new 'static 'speech-info-item :name "keir413r") + (new 'static 'speech-info-item :name "keir414r") + (new 'static 'speech-info-item :name "keir415r") + (new 'static 'speech-info-item :name "keir416r") + (new 'static 'speech-info-item :name "keir417r") + (new 'static 'speech-info-item :name "keir418r") + (new 'static 'speech-info-item :name "keir419r") + (new 'static 'speech-info-item :name "keir420r") + (new 'static 'speech-info-item :name "keir421r") + (new 'static 'speech-info-item :name "keir255r") + (new 'static 'speech-info-item :name "keir256r") + (new 'static 'speech-info-item :name "keir257r") + (new 'static 'speech-info-item :name "keir259r") + (new 'static 'speech-info-item :name "keir262r") + (new 'static 'speech-info-item :name "keir271r") + (new 'static 'speech-info-item :name "keir292r") + (new 'static 'speech-info-item :name "keir295r") + (new 'static 'speech-info-item :name "keir299r") + (new 'static 'speech-info-item :name "keir302r") + (new 'static 'speech-info-item :name "keir303r") + (new 'static 'speech-info-item :name "keir304r") + (new 'static 'speech-info-item :name "keir315r") + (new 'static 'speech-info-item :name "keir316r") + (new 'static 'speech-info-item :name "keir318r") + (new 'static 'speech-info-item :name "keir319r") + (new 'static 'speech-info-item :name "keir320r") + (new 'static 'speech-info-item :name "keir321r") + (new 'static 'speech-info-item :name "keir322r") + (new 'static 'speech-info-item :name "keir323r") + (new 'static 'speech-info-item :name "keir191r") + (new 'static 'speech-info-item :name "keir325r") + (new 'static 'speech-info-item :name "keir327r") + (new 'static 'speech-info-item :name "keir328r") + (new 'static 'speech-info-item :name "keir329r") + (new 'static 'speech-info-item :name "keir337r") + (new 'static 'speech-info-item :name "keir338r") + (new 'static 'speech-info-item :name "keir347r") + (new 'static 'speech-info-item :name "keir348r") + (new 'static 'speech-info-item :name "keir349r") + (new 'static 'speech-info-item :name "keir350r") + (new 'static 'speech-info-item :name "keir105r") + (new 'static 'speech-info-item :name "keir381r") + (new 'static 'speech-info-item :name "keir382r") + (new 'static 'speech-info-item :name "keir388r") + (new 'static 'speech-info-item :name "keir389r") + (new 'static 'speech-info-item :name "keir393r") + (new 'static 'speech-info-item :name "keir106r") + (new 'static 'speech-info-item :name "keir114r") + (new 'static 'speech-info-item :name "keir395r") + (new 'static 'speech-info-item :name "keir238r") + (new 'static 'speech-info-item :name "keir239r") + (new 'static 'speech-info-item :name "keir252r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "keir358r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir234r") + (new 'static 'speech-info-item :name "keir235r") + (new 'static 'speech-info-item :name "keir236r") + (new 'static 'speech-info-item :name "keir237r") + (new 'static 'speech-info-item :name "keir238r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir239r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir240r") + (new 'static 'speech-info-item :name "keir241r") + (new 'static 'speech-info-item :name "keir242r") + (new 'static 'speech-info-item :name "keir243r") + (new 'static 'speech-info-item :name "keir244r") + (new 'static 'speech-info-item :name "keir245r") + (new 'static 'speech-info-item :name "keir246r") + (new 'static 'speech-info-item :name "keir247r") + (new 'static 'speech-info-item :name "keir248r") + (new 'static 'speech-info-item :name "keir249r") + (new 'static 'speech-info-item :name "keir250r") + (new 'static 'speech-info-item :name "keir251r") + (new 'static 'speech-info-item :name "keir252r") + (new 'static 'speech-info-item :name "keir253r") + (new 'static 'speech-info-item :name "keir254r") + (new 'static 'speech-info-item :name "keir185r") + (new 'static 'speech-info-item :name "keir353r") + (new 'static 'speech-info-item :name "keir357r") + (new 'static 'speech-info-item :name "keir408r") + (new 'static 'speech-info-item :name "keir361r") + (new 'static 'speech-info-item :name "keir115r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir258r") + (new 'static 'speech-info-item :name "keir260r") + (new 'static 'speech-info-item :name "keir261r") + (new 'static 'speech-info-item :name "keir263r") + (new 'static 'speech-info-item :name "keir264r") + (new 'static 'speech-info-item :name "keir265r") + (new 'static 'speech-info-item :name "keir266r") + (new 'static 'speech-info-item :name "keir267r") + (new 'static 'speech-info-item :name "keir268r") + (new 'static 'speech-info-item :name "keir270r") + (new 'static 'speech-info-item :name "keir136r") + (new 'static 'speech-info-item :name "keir137r") + (new 'static 'speech-info-item :name "keir138r") + (new 'static 'speech-info-item :name "keir156r") + (new 'static 'speech-info-item :name "keir203r") + (new 'static 'speech-info-item :name "keir128r") + (new 'static 'speech-info-item :name "keir141r") + (new 'static 'speech-info-item :name "keir159r") + (new 'static 'speech-info-item :name "keir179r") + (new 'static 'speech-info-item :name "keir180r") + (new 'static 'speech-info-item :name "keir363r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir272r") + (new 'static 'speech-info-item :name "keir273r") + (new 'static 'speech-info-item :name "keir274r") + (new 'static 'speech-info-item :name "keir275r") + (new 'static 'speech-info-item :name "keir276r") + (new 'static 'speech-info-item :name "keir277r") + (new 'static 'speech-info-item :name "keir278r") + (new 'static 'speech-info-item :name "keir279r") + (new 'static 'speech-info-item :name "keir280r") + (new 'static 'speech-info-item :name "keir282r") + (new 'static 'speech-info-item :name "keir283r") + (new 'static 'speech-info-item :name "keir284r") + (new 'static 'speech-info-item :name "keir285r") + (new 'static 'speech-info-item :name "keir286r") + (new 'static 'speech-info-item :name "keir287r") + (new 'static 'speech-info-item :name "keir288r") + (new 'static 'speech-info-item :name "keir290r") + (new 'static 'speech-info-item :name "keir216r") + (new 'static 'speech-info-item :name "keir217r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir291r") + (new 'static 'speech-info-item :name "keir293r") + (new 'static 'speech-info-item :name "keir294r") + (new 'static 'speech-info-item :name "keir296r") + (new 'static 'speech-info-item :name "keir297r") + (new 'static 'speech-info-item :name "keir298r") + (new 'static 'speech-info-item :name "keir300r") + (new 'static 'speech-info-item :name "keir301r") + (new 'static 'speech-info-item :name "keir305r") + (new 'static 'speech-info-item :name "keir306r") + (new 'static 'speech-info-item :name "keir307r") + (new 'static 'speech-info-item :name "keir308r") + (new 'static 'speech-info-item :name "keir309r") + (new 'static 'speech-info-item :name "keir310r") + (new 'static 'speech-info-item :name "keir311r") + (new 'static 'speech-info-item :name "keir312r") + (new 'static 'speech-info-item :name "keir313r") + (new 'static 'speech-info-item :name "keir314r") + (new 'static 'speech-info-item :name "keir317r") + (new 'static 'speech-info-item :name "keir175r") + (new 'static 'speech-info-item :name "keir118r") + (new 'static 'speech-info-item :name "keir119r") + (new 'static 'speech-info-item :name "keir181r") + (new 'static 'speech-info-item :name "keir184r") + (new 'static 'speech-info-item :name "keir186r") + (new 'static 'speech-info-item :name "keir187r") + (new 'static 'speech-info-item :name "keir192r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir324r") + (new 'static 'speech-info-item :name "keir326r") + (new 'static 'speech-info-item :name "keir330r") + (new 'static 'speech-info-item :name "keir331r") + (new 'static 'speech-info-item :name "keir332r") + (new 'static 'speech-info-item :name "keir333r") + (new 'static 'speech-info-item :name "keir334r") + (new 'static 'speech-info-item :name "keir335r") + (new 'static 'speech-info-item :name "keir336r") + (new 'static 'speech-info-item :name "keir339r") + (new 'static 'speech-info-item :name "keir340r") + (new 'static 'speech-info-item :name "keir341r") + (new 'static 'speech-info-item :name "keir354r") + (new 'static 'speech-info-item :name "keir159r") + (new 'static 'speech-info-item :name "keir160r") + (new 'static 'speech-info-item :name "keir161r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir342r") + (new 'static 'speech-info-item :name "keir343r") + (new 'static 'speech-info-item :name "keir344r") + (new 'static 'speech-info-item :name "keir345r") + (new 'static 'speech-info-item :name "keir346r") + (new 'static 'speech-info-item :name "keir101r") + (new 'static 'speech-info-item :name "keir102r") + (new 'static 'speech-info-item :name "keir103r") + (new 'static 'speech-info-item :name "keir104r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "keir364r")) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir365r") + (new 'static 'speech-info-item :name "keir366r") + (new 'static 'speech-info-item :name "keir367r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir368r") + (new 'static 'speech-info-item :name "keir369r") + (new 'static 'speech-info-item :name "keir370r") + (new 'static 'speech-info-item :name "keir371r") + (new 'static 'speech-info-item :name "keir372r") + (new 'static 'speech-info-item :name "keir373r") + (new 'static 'speech-info-item :name "keir374r") + (new 'static 'speech-info-item :name "keir375r") + (new 'static 'speech-info-item :name "keir212r") + (new 'static 'speech-info-item :name "keir213r") + (new 'static 'speech-info-item :name "keir214r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir376r") + (new 'static 'speech-info-item :name "keir377r") + (new 'static 'speech-info-item :name "keir378r") + (new 'static 'speech-info-item :name "keir379r") + (new 'static 'speech-info-item :name "keir380r") + (new 'static 'speech-info-item :name "keir383r") + (new 'static 'speech-info-item :name "keir384r") + (new 'static 'speech-info-item :name "keir385r") + (new 'static 'speech-info-item :name "keir386r") + (new 'static 'speech-info-item :name "keir387r") + (new 'static 'speech-info-item :name "keir390r") + (new 'static 'speech-info-item :name "keir391r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir392r") + (new 'static 'speech-info-item :name "keir107r") + (new 'static 'speech-info-item :name "keir109r") + (new 'static 'speech-info-item :name "keir110r") + (new 'static 'speech-info-item :name "keir112r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 2) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir394r") + (new 'static 'speech-info-item :name "keir396r") + (new 'static 'speech-info-item :name "keir397r") + (new 'static 'speech-info-item :name "keir398r") + (new 'static 'speech-info-item :name "keir399r") + (new 'static 'speech-info-item :name "keir400r") + (new 'static 'speech-info-item :name "keir401r") + (new 'static 'speech-info-item :name "keir111r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir145r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir376r") + (new 'static 'speech-info-item :name "keir377r") + (new 'static 'speech-info-item :name "keir378r") + (new 'static 'speech-info-item :name "keir379r") + (new 'static 'speech-info-item :name "keir380r") + (new 'static 'speech-info-item :name "keir383r") + (new 'static 'speech-info-item :name "keir384r") + (new 'static 'speech-info-item :name "keir385r") + (new 'static 'speech-info-item :name "keir386r") + (new 'static 'speech-info-item :name "keir387r") + (new 'static 'speech-info-item :name "keir390r") + (new 'static 'speech-info-item :name "keir392r") + (new 'static 'speech-info-item :name "keir107r") + (new 'static 'speech-info-item :name "keir109r") + (new 'static 'speech-info-item :name "keir110r") + (new 'static 'speech-info-item :name "keir112r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir394r") + (new 'static 'speech-info-item :name "keir396r") + (new 'static 'speech-info-item :name "keir397r") + (new 'static 'speech-info-item :name "keir398r") + (new 'static 'speech-info-item :name "keir399r") + (new 'static 'speech-info-item :name "keir400r") + (new 'static 'speech-info-item :name "keir401r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir422r") + (new 'static 'speech-info-item :name "keir423r") + (new 'static 'speech-info-item :name "keir424r") + (new 'static 'speech-info-item :name "keir425r") + (new 'static 'speech-info-item :name "keir426r") + (new 'static 'speech-info-item :name "keir427r") + (new 'static 'speech-info-item :name "keir106r") + (new 'static 'speech-info-item :name "keir112r") + (new 'static 'speech-info-item :name "keir114r") + (new 'static 'speech-info-item :name "keir116r") + (new 'static 'speech-info-item :name "keir120r") + (new 'static 'speech-info-item :name "keir181r") + (new 'static 'speech-info-item :name "keir184r") + (new 'static 'speech-info-item :name "keir188r") + (new 'static 'speech-info-item :name "keir190r") + (new 'static 'speech-info-item :name "keir227r") + (new 'static 'speech-info-item :name "keir263r") + (new 'static 'speech-info-item :name "keir265r") + (new 'static 'speech-info-item :name "keir266r") + (new 'static 'speech-info-item :name "keir273r") + (new 'static 'speech-info-item :name "keir274r") + (new 'static 'speech-info-item :name "keir278r") + (new 'static 'speech-info-item :name "keir279r") + (new 'static 'speech-info-item :name "keir280r") + (new 'static 'speech-info-item :name "keir281r") + (new 'static 'speech-info-item :name "keir284r") + (new 'static 'speech-info-item :name "keir286r") + (new 'static 'speech-info-item :name "keir287r") + (new 'static 'speech-info-item :name "keir288r") + (new 'static 'speech-info-item :name "keir290r") + (new 'static 'speech-info-item :name "keir295r") + (new 'static 'speech-info-item :name "keir296r") + (new 'static 'speech-info-item :name "keir297r") + (new 'static 'speech-info-item :name "keir300r") + (new 'static 'speech-info-item :name "keir313r") + (new 'static 'speech-info-item :name "keir353r") + (new 'static 'speech-info-item :name "keir358r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir104r") + (new 'static 'speech-info-item :name "keir105r") + (new 'static 'speech-info-item :name "keir342r") + (new 'static 'speech-info-item :name "keir346r") + (new 'static 'speech-info-item :name "keir347r") + (new 'static 'speech-info-item :name "keir348r") + (new 'static 'speech-info-item :name "keir350r") + ) + ) + ) + +(set! (-> *speech-control* channels 3 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir234r") + (new 'static 'speech-info-item :name "keir235r") + (new 'static 'speech-info-item :name "keir237r") + (new 'static 'speech-info-item :name "keir241r") + (new 'static 'speech-info-item :name "keir242r") + (new 'static 'speech-info-item :name "keir243r") + (new 'static 'speech-info-item :name "keir245r") + (new 'static 'speech-info-item :name "keir246r") + (new 'static 'speech-info-item :name "keir247r") + (new 'static 'speech-info-item :name "keir249r") + (new 'static 'speech-info-item :name "keir250r") + (new 'static 'speech-info-item :name "keir253r") + (new 'static 'speech-info-item :name "keir254r") + (new 'static 'speech-info-item :name "keir185r") + (new 'static 'speech-info-item :name "keir353r") + (new 'static 'speech-info-item :name "keir408r") + (new 'static 'speech-info-item :name "keir361r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-kleiver.gc b/goal_src/jakx/engine/sound/speech/speech-kleiver.gc index 488052d4f3..47719d72d9 100644 --- a/goal_src/jakx/engine/sound/speech/speech-kleiver.gc +++ b/goal_src/jakx/engine/sound/speech/speech-kleiver.gc @@ -7,3 +7,512 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 11 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev142r") + (new 'static 'speech-info-item :name "klev152r") + (new 'static 'speech-info-item :name "klev153r") + (new 'static 'speech-info-item :name "klev159r") + (new 'static 'speech-info-item :name "klev171r") + (new 'static 'speech-info-item :name "klev179r") + (new 'static 'speech-info-item :name "klev180r") + (new 'static 'speech-info-item :name "klev181r") + (new 'static 'speech-info-item :name "klev182r") + (new 'static 'speech-info-item :name "klev189r") + (new 'static 'speech-info-item :name "klev263r") + (new 'static 'speech-info-item :name "klev264r") + (new 'static 'speech-info-item :name "klev265r") + (new 'static 'speech-info-item :name "klev267r") + (new 'static 'speech-info-item :name "klev268r") + (new 'static 'speech-info-item :name "klev269r") + (new 'static 'speech-info-item :name "klev270r") + (new 'static 'speech-info-item :name "klev273r") + (new 'static 'speech-info-item :name "klev274r") + (new 'static 'speech-info-item :name "klev275r") + (new 'static 'speech-info-item :name "klev278r") + (new 'static 'speech-info-item :name "klev329r") + (new 'static 'speech-info-item :name "klev330r") + (new 'static 'speech-info-item :name "klev331r") + (new 'static 'speech-info-item :name "klev332r") + (new 'static 'speech-info-item :name "klev333r") + (new 'static 'speech-info-item :name "klev334r") + (new 'static 'speech-info-item :name "klev335r") + (new 'static 'speech-info-item :name "klev336r") + (new 'static 'speech-info-item :name "klev337r") + (new 'static 'speech-info-item :name "klev338r") + (new 'static 'speech-info-item :name "klev339r") + (new 'static 'speech-info-item :name "klev340r") + (new 'static 'speech-info-item :name "klev342r") + (new 'static 'speech-info-item :name "klev343r") + (new 'static 'speech-info-item :name "klev344r") + (new 'static 'speech-info-item :name "klev345r") + (new 'static 'speech-info-item :name "klev347r") + (new 'static 'speech-info-item :name "klev348r") + (new 'static 'speech-info-item :name "klev349r") + (new 'static 'speech-info-item :name "klev350r") + (new 'static 'speech-info-item :name "klev351r") + (new 'static 'speech-info-item :name "klev352r") + (new 'static 'speech-info-item :name "klev353r") + (new 'static 'speech-info-item :name "klev354r") + (new 'static 'speech-info-item :name "klev202r") + (new 'static 'speech-info-item :name "klev203r") + (new 'static 'speech-info-item :name "klev233r") + (new 'static 'speech-info-item :name "klev235r") + (new 'static 'speech-info-item :name "klev223r") + (new 'static 'speech-info-item :name "klev224r") + (new 'static 'speech-info-item :name "klev228r") + (new 'static 'speech-info-item :name "klev240r") + (new 'static 'speech-info-item :name "klev246r") + (new 'static 'speech-info-item :name "klev183r") + (new 'static 'speech-info-item :name "klev256r") + (new 'static 'speech-info-item :name "klev257r") + (new 'static 'speech-info-item :name "klev258r") + (new 'static 'speech-info-item :name "klev259r") + (new 'static 'speech-info-item :name "klev260r") + (new 'static 'speech-info-item :name "klev261r") + (new 'static 'speech-info-item :name "klev307r") + (new 'static 'speech-info-item :name "klev308r") + (new 'static 'speech-info-item :name "klev312r") + (new 'static 'speech-info-item :name "klev316r") + (new 'static 'speech-info-item :name "klev317r") + (new 'static 'speech-info-item :name "klev323r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "klev272r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev101r") + (new 'static 'speech-info-item :name "klev102r") + (new 'static 'speech-info-item :name "klev103r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev104r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev105r") + (new 'static 'speech-info-item :name "klev106r") + (new 'static 'speech-info-item :name "klev107r") + (new 'static 'speech-info-item :name "klev108r") + (new 'static 'speech-info-item :name "klev109r") + (new 'static 'speech-info-item :name "klev110r") + (new 'static 'speech-info-item :name "klev111r") + (new 'static 'speech-info-item :name "klev112r") + (new 'static 'speech-info-item :name "klev113r") + (new 'static 'speech-info-item :name "klev114r") + (new 'static 'speech-info-item :name "klev115r") + (new 'static 'speech-info-item :name "klev116r") + (new 'static 'speech-info-item :name "klev117r") + (new 'static 'speech-info-item :name "klev118r") + (new 'static 'speech-info-item :name "klev119r") + (new 'static 'speech-info-item :name "klev120r") + (new 'static 'speech-info-item :name "klev121r") + (new 'static 'speech-info-item :name "klev122r") + (new 'static 'speech-info-item :name "klev123r") + (new 'static 'speech-info-item :name "klev124r") + (new 'static 'speech-info-item :name "klev125r") + (new 'static 'speech-info-item :name "klev126r") + (new 'static 'speech-info-item :name "klev127r") + (new 'static 'speech-info-item :name "klev128r") + (new 'static 'speech-info-item :name "klev129r") + (new 'static 'speech-info-item :name "klev130r") + (new 'static 'speech-info-item :name "klev131r") + (new 'static 'speech-info-item :name "klev132r") + (new 'static 'speech-info-item :name "klev133r") + (new 'static 'speech-info-item :name "klev271r") + (new 'static 'speech-info-item :name "klev277r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev134r") + (new 'static 'speech-info-item :name "klev135r") + (new 'static 'speech-info-item :name "klev136r") + (new 'static 'speech-info-item :name "klev137r") + (new 'static 'speech-info-item :name "klev138r") + (new 'static 'speech-info-item :name "klev139r") + (new 'static 'speech-info-item :name "klev140r") + (new 'static 'speech-info-item :name "klev141r") + (new 'static 'speech-info-item :name "klev143r") + (new 'static 'speech-info-item :name "klev144r") + (new 'static 'speech-info-item :name "klev145r") + (new 'static 'speech-info-item :name "klev146r") + (new 'static 'speech-info-item :name "klev147r") + (new 'static 'speech-info-item :name "klev148r") + (new 'static 'speech-info-item :name "klev149r") + (new 'static 'speech-info-item :name "klev150r") + (new 'static 'speech-info-item :name "klev151r") + (new 'static 'speech-info-item :name "klev176r") + (new 'static 'speech-info-item :name "klev279r") + (new 'static 'speech-info-item :name "klev346r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev154r") + (new 'static 'speech-info-item :name "klev155r") + (new 'static 'speech-info-item :name "klev156r") + (new 'static 'speech-info-item :name "klev157r") + (new 'static 'speech-info-item :name "klev158r") + (new 'static 'speech-info-item :name "klev160r") + (new 'static 'speech-info-item :name "klev161r") + (new 'static 'speech-info-item :name "klev162r") + (new 'static 'speech-info-item :name "klev163r") + (new 'static 'speech-info-item :name "klev164r") + (new 'static 'speech-info-item :name "klev165r") + (new 'static 'speech-info-item :name "klev166r") + (new 'static 'speech-info-item :name "klev167r") + (new 'static 'speech-info-item :name "klev168r") + (new 'static 'speech-info-item :name "klev169r") + (new 'static 'speech-info-item :name "klev170r") + (new 'static 'speech-info-item :name "klev172r") + (new 'static 'speech-info-item :name "klev173r") + (new 'static 'speech-info-item :name "klev174r") + (new 'static 'speech-info-item :name "klev175r") + (new 'static 'speech-info-item :name "klev177r") + (new 'static 'speech-info-item :name "klev178r") + (new 'static 'speech-info-item :name "klev341r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev190r") + (new 'static 'speech-info-item :name "klev191r") + (new 'static 'speech-info-item :name "klev192r") + (new 'static 'speech-info-item :name "klev193r") + (new 'static 'speech-info-item :name "klev194r") + (new 'static 'speech-info-item :name "klev195r") + (new 'static 'speech-info-item :name "klev196r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev197r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev198r") + (new 'static 'speech-info-item :name "klev199r") + (new 'static 'speech-info-item :name "klev200r") + (new 'static 'speech-info-item :name "klev201r") + (new 'static 'speech-info-item :name "klev204r") + (new 'static 'speech-info-item :name "klev205r") + (new 'static 'speech-info-item :name "klev206r") + (new 'static 'speech-info-item :name "klev207r") + (new 'static 'speech-info-item :name "klev208r") + (new 'static 'speech-info-item :name "klev209r") + (new 'static 'speech-info-item :name "klev210r") + (new 'static 'speech-info-item :name "klev211r") + (new 'static 'speech-info-item :name "klev212r") + (new 'static 'speech-info-item :name "klev213r") + (new 'static 'speech-info-item :name "klev214r") + (new 'static 'speech-info-item :name "klev215r") + (new 'static 'speech-info-item :name "klev216r") + (new 'static 'speech-info-item :name "klev217r") + (new 'static 'speech-info-item :name "klev218r") + (new 'static 'speech-info-item :name "klev219r") + (new 'static 'speech-info-item :name "klev220r") + (new 'static 'speech-info-item :name "klev221r") + (new 'static 'speech-info-item :name "klev222r") + (new 'static 'speech-info-item :name "klev225r") + (new 'static 'speech-info-item :name "klev226r") + (new 'static 'speech-info-item :name "klev227r") + (new 'static 'speech-info-item :name "klev229r") + (new 'static 'speech-info-item :name "klev230r") + (new 'static 'speech-info-item :name "klev184r") + (new 'static 'speech-info-item :name "klev185r") + (new 'static 'speech-info-item :name "klev188r") + (new 'static 'speech-info-item :name "klev266r") + (new 'static 'speech-info-item :name "klev355r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev231r") + (new 'static 'speech-info-item :name "klev232r") + (new 'static 'speech-info-item :name "klev234r") + (new 'static 'speech-info-item :name "klev236r") + (new 'static 'speech-info-item :name "klev237r") + (new 'static 'speech-info-item :name "klev238r") + (new 'static 'speech-info-item :name "klev239r") + (new 'static 'speech-info-item :name "klev241r") + (new 'static 'speech-info-item :name "klev242r") + (new 'static 'speech-info-item :name "klev243r") + (new 'static 'speech-info-item :name "klev244r") + (new 'static 'speech-info-item :name "klev245r") + (new 'static 'speech-info-item :name "klev247r") + (new 'static 'speech-info-item :name "klev248r") + (new 'static 'speech-info-item :name "klev249r") + (new 'static 'speech-info-item :name "klev250r") + (new 'static 'speech-info-item :name "klev186r") + (new 'static 'speech-info-item :name "klev187r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev251r") + (new 'static 'speech-info-item :name "klev252r") + (new 'static 'speech-info-item :name "klev253r") + (new 'static 'speech-info-item :name "klev254r") + (new 'static 'speech-info-item :name "klev255r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "klev280r")) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev281r") + (new 'static 'speech-info-item :name "klev282r") + (new 'static 'speech-info-item :name "klev283r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev284r") + (new 'static 'speech-info-item :name "klev285r") + (new 'static 'speech-info-item :name "klev286r") + (new 'static 'speech-info-item :name "klev287r") + (new 'static 'speech-info-item :name "klev288r") + (new 'static 'speech-info-item :name "klev289r") + (new 'static 'speech-info-item :name "klev290r") + (new 'static 'speech-info-item :name "klev291r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev292r") + (new 'static 'speech-info-item :name "klev293r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev294r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev295r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev296r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev297r") + (new 'static 'speech-info-item :name "klev298r") + (new 'static 'speech-info-item :name "klev299r") + (new 'static 'speech-info-item :name "klev300r") + (new 'static 'speech-info-item :name "klev301r") + (new 'static 'speech-info-item :name "klev302r") + (new 'static 'speech-info-item :name "klev303r") + (new 'static 'speech-info-item :name "klev304r") + (new 'static 'speech-info-item :name "klev305r") + (new 'static 'speech-info-item :name "klev306r") + (new 'static 'speech-info-item :name "klev309r") + (new 'static 'speech-info-item :name "klev310r") + (new 'static 'speech-info-item :name "klev311r") + (new 'static 'speech-info-item :name "klev313r") + (new 'static 'speech-info-item :name "klev314r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev315r") + (new 'static 'speech-info-item :name "klev318r") + (new 'static 'speech-info-item :name "klev319r") + (new 'static 'speech-info-item :name "klev320r") + (new 'static 'speech-info-item :name "klev321r") + (new 'static 'speech-info-item :name "klev322r") + (new 'static 'speech-info-item :name "klev324r") + (new 'static 'speech-info-item :name "klev325r") + (new 'static 'speech-info-item :name "klev326r") + (new 'static 'speech-info-item :name "klev327r") + (new 'static 'speech-info-item :name "klev328r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev292r") + (new 'static 'speech-info-item :name "klev297r") + (new 'static 'speech-info-item :name "klev298r") + (new 'static 'speech-info-item :name "klev299r") + (new 'static 'speech-info-item :name "klev300r") + (new 'static 'speech-info-item :name "klev301r") + (new 'static 'speech-info-item :name "klev302r") + (new 'static 'speech-info-item :name "klev303r") + (new 'static 'speech-info-item :name "klev304r") + (new 'static 'speech-info-item :name "klev305r") + (new 'static 'speech-info-item :name "klev306r") + (new 'static 'speech-info-item :name "klev309r") + (new 'static 'speech-info-item :name "klev310r") + (new 'static 'speech-info-item :name "klev311r") + (new 'static 'speech-info-item :name "klev313r") + (new 'static 'speech-info-item :name "klev314r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev315r") + (new 'static 'speech-info-item :name "klev318r") + (new 'static 'speech-info-item :name "klev319r") + (new 'static 'speech-info-item :name "klev320r") + (new 'static 'speech-info-item :name "klev321r") + (new 'static 'speech-info-item :name "klev322r") + (new 'static 'speech-info-item :name "klev324r") + (new 'static 'speech-info-item :name "klev325r") + (new 'static 'speech-info-item :name "klev326r") + (new 'static 'speech-info-item :name "klev327r") + (new 'static 'speech-info-item :name "klev328r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev356r") + (new 'static 'speech-info-item :name "klev357r") + (new 'static 'speech-info-item :name "klev358r") + (new 'static 'speech-info-item :name "klev359r") + (new 'static 'speech-info-item :name "klev360r") + (new 'static 'speech-info-item :name "klev361r") + (new 'static 'speech-info-item :name "klev135r") + (new 'static 'speech-info-item :name "klev136r") + (new 'static 'speech-info-item :name "klev137r") + (new 'static 'speech-info-item :name "klev138r") + (new 'static 'speech-info-item :name "klev140r") + (new 'static 'speech-info-item :name "klev144r") + (new 'static 'speech-info-item :name "klev145r") + (new 'static 'speech-info-item :name "klev146r") + (new 'static 'speech-info-item :name "klev147r") + (new 'static 'speech-info-item :name "klev148r") + (new 'static 'speech-info-item :name "klev149r") + (new 'static 'speech-info-item :name "klev154r") + (new 'static 'speech-info-item :name "klev155r") + (new 'static 'speech-info-item :name "klev156r") + (new 'static 'speech-info-item :name "klev158r") + (new 'static 'speech-info-item :name "klev160r") + (new 'static 'speech-info-item :name "klev161r") + (new 'static 'speech-info-item :name "klev164r") + (new 'static 'speech-info-item :name "klev165r") + (new 'static 'speech-info-item :name "klev166r") + (new 'static 'speech-info-item :name "klev167r") + (new 'static 'speech-info-item :name "klev168r") + (new 'static 'speech-info-item :name "klev169r") + (new 'static 'speech-info-item :name "klev170r") + (new 'static 'speech-info-item :name "klev172r") + (new 'static 'speech-info-item :name "klev177r") + (new 'static 'speech-info-item :name "klev178r") + (new 'static 'speech-info-item :name "klev194r") + (new 'static 'speech-info-item :name "klev195r") + (new 'static 'speech-info-item :name "klev198r") + (new 'static 'speech-info-item :name "klev201r") + (new 'static 'speech-info-item :name "klev206r") + (new 'static 'speech-info-item :name "klev207r") + (new 'static 'speech-info-item :name "klev208r") + (new 'static 'speech-info-item :name "klev213r") + (new 'static 'speech-info-item :name "klev215r") + (new 'static 'speech-info-item :name "klev221r") + (new 'static 'speech-info-item :name "klev246r") + (new 'static 'speech-info-item :name "klev266r") + (new 'static 'speech-info-item :name "klev272r") + (new 'static 'speech-info-item :name "klev276r") + (new 'static 'speech-info-item :name "klev277r") + (new 'static 'speech-info-item :name "klev289r") + (new 'static 'speech-info-item :name "klev302r") + (new 'static 'speech-info-item :name "klev306r") + (new 'static 'speech-info-item :name "klev312r") + (new 'static 'speech-info-item :name "klev313r") + (new 'static 'speech-info-item :name "klev342r") + (new 'static 'speech-info-item :name "klev343r") + (new 'static 'speech-info-item :name "klev350r") + (new 'static 'speech-info-item :name "klev355r") + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 15) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev143r") + (new 'static 'speech-info-item :name "klev153r") + (new 'static 'speech-info-item :name "klev159r") + (new 'static 'speech-info-item :name "klev174r") + (new 'static 'speech-info-item :name "klev175r") + (new 'static 'speech-info-item :name "klev182r") + (new 'static 'speech-info-item :name "klev184r") + (new 'static 'speech-info-item :name "klev188r") + (new 'static 'speech-info-item :name "klev231r") + (new 'static 'speech-info-item :name "klev234r") + (new 'static 'speech-info-item :name "klev236r") + (new 'static 'speech-info-item :name "klev237r") + (new 'static 'speech-info-item :name "klev238r") + (new 'static 'speech-info-item :name "klev239r") + (new 'static 'speech-info-item :name "klev240r") + (new 'static 'speech-info-item :name "klev242r") + (new 'static 'speech-info-item :name "klev243r") + (new 'static 'speech-info-item :name "klev247r") + (new 'static 'speech-info-item :name "klev248r") + (new 'static 'speech-info-item :name "klev249r") + (new 'static 'speech-info-item :name "klev251r") + (new 'static 'speech-info-item :name "klev255r") + (new 'static 'speech-info-item :name "klev256r") + (new 'static 'speech-info-item :name "klev257r") + (new 'static 'speech-info-item :name "klev258r") + (new 'static 'speech-info-item :name "klev259r") + (new 'static 'speech-info-item :name "klev260r") + (new 'static 'speech-info-item :name "klev261r") + (new 'static 'speech-info-item :name "klev316r") + (new 'static 'speech-info-item :name "klev320r") + (new 'static 'speech-info-item :name "klev323r") + (new 'static 'speech-info-item :name "klev262r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 11 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev101r") + (new 'static 'speech-info-item :name "klev103r") + (new 'static 'speech-info-item :name "klev104r") + (new 'static 'speech-info-item :name "klev105r") + (new 'static 'speech-info-item :name "klev106r") + (new 'static 'speech-info-item :name "klev107r") + (new 'static 'speech-info-item :name "klev108r") + (new 'static 'speech-info-item :name "klev109r") + (new 'static 'speech-info-item :name "klev110r") + (new 'static 'speech-info-item :name "klev111r") + (new 'static 'speech-info-item :name "klev113r") + (new 'static 'speech-info-item :name "klev114r") + (new 'static 'speech-info-item :name "klev115r") + (new 'static 'speech-info-item :name "klev116r") + (new 'static 'speech-info-item :name "klev117r") + (new 'static 'speech-info-item :name "klev118r") + (new 'static 'speech-info-item :name "klev119r") + (new 'static 'speech-info-item :name "klev120r") + (new 'static 'speech-info-item :name "klev121r") + (new 'static 'speech-info-item :name "klev122r") + (new 'static 'speech-info-item :name "klev123r") + (new 'static 'speech-info-item :name "klev125r") + (new 'static 'speech-info-item :name "klev126r") + (new 'static 'speech-info-item :name "klev127r") + (new 'static 'speech-info-item :name "klev129r") + (new 'static 'speech-info-item :name "klev130r") + (new 'static 'speech-info-item :name "klev131r") + (new 'static 'speech-info-item :name "klev132r") + (new 'static 'speech-info-item :name "klev133r") + (new 'static 'speech-info-item :name "klev277r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-mizo.gc b/goal_src/jakx/engine/sound/speech/speech-mizo.gc index 5aa355b007..92c0bf9f2b 100644 --- a/goal_src/jakx/engine/sound/speech/speech-mizo.gc +++ b/goal_src/jakx/engine/sound/speech/speech-mizo.gc @@ -7,3 +7,84 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 12 speeches 22) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo101r") + (new 'static 'speech-info-item :name "mizo102r") + (new 'static 'speech-info-item :name "mizo119r") + ) + ) + ) + +(set! (-> *speech-control* channels 12 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo181r") + (new 'static 'speech-info-item :name "mizo182r") + (new 'static 'speech-info-item :name "mizo184r") + (new 'static 'speech-info-item :name "mizo187r") + (new 'static 'speech-info-item :name "mizo188r") + (new 'static 'speech-info-item :name "mizo189r") + (new 'static 'speech-info-item :name "mizo190r") + (new 'static 'speech-info-item :name "mizo191r") + (new 'static 'speech-info-item :name "mizo192r") + (new 'static 'speech-info-item :name "mizo193r") + (new 'static 'speech-info-item :name "mizo194r") + (new 'static 'speech-info-item :name "mizo183r") + (new 'static 'speech-info-item :name "mizo185r") + (new 'static 'speech-info-item :name "mizo186r") + ) + ) + ) + +(set! (-> *speech-control* channels 12 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo209r") + (new 'static 'speech-info-item :name "mizo210r") + (new 'static 'speech-info-item :name "mizo213r") + (new 'static 'speech-info-item :name "mizo214r") + (new 'static 'speech-info-item :name "mizo215r") + (new 'static 'speech-info-item :name "mizo216r") + (new 'static 'speech-info-item :name "mizo217r") + (new 'static 'speech-info-item :name "mizo218r") + (new 'static 'speech-info-item :name "mizo228r") + (new 'static 'speech-info-item :name "mizo229r") + (new 'static 'speech-info-item :name "mizo230r") + (new 'static 'speech-info-item :name "mizo231r") + (new 'static 'speech-info-item :name "mizo232r") + (new 'static 'speech-info-item :name "mizo233r") + (new 'static 'speech-info-item :name "mizo234r") + (new 'static 'speech-info-item :name "mizo235r") + ) + ) + ) + +(set! (-> *speech-control* channels 12 speeches 24) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "mizo303r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 12 speeches 28) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo266r") + (new 'static 'speech-info-item :name "mizo268r") + (new 'static 'speech-info-item :name "mizo298r") + ) + ) + ) + +(set! (-> *speech-control* channels 12 speeches 30) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo102r") + (new 'static 'speech-info-item :name "mizo129r") + (new 'static 'speech-info-item :name "mizo130r") + (new 'static 'speech-info-item :name "mizo131r") + (new 'static 'speech-info-item :name "mizo132r") + (new 'static 'speech-info-item :name "mizo264r") + (new 'static 'speech-info-item :name "mizo296r") + (new 'static 'speech-info-item :name "mizo297r") + ) + :flags (speech-info-flag si0) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-osmo.gc b/goal_src/jakx/engine/sound/speech/speech-osmo.gc index 57375d314e..4ed90cd5ef 100644 --- a/goal_src/jakx/engine/sound/speech/speech-osmo.gc +++ b/goal_src/jakx/engine/sound/speech/speech-osmo.gc @@ -7,3 +7,321 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 21 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm150r") + (new 'static 'speech-info-item :name "osm159r") + (new 'static 'speech-info-item :name "osm163r") + (new 'static 'speech-info-item :name "osm217r") + (new 'static 'speech-info-item :name "osm224r") + (new 'static 'speech-info-item :name "osm271r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm101r") + (new 'static 'speech-info-item :name "osm102r") + (new 'static 'speech-info-item :name "osm103r") + (new 'static 'speech-info-item :name "osm104r") + (new 'static 'speech-info-item :name "osm105r") + (new 'static 'speech-info-item :name "osm106r") + (new 'static 'speech-info-item :name "osm107r") + (new 'static 'speech-info-item :name "osm108r") + (new 'static 'speech-info-item :name "osm109r") + (new 'static 'speech-info-item :name "osm110r") + (new 'static 'speech-info-item :name "osm111r") + (new 'static 'speech-info-item :name "osm112r") + (new 'static 'speech-info-item :name "osm113r") + (new 'static 'speech-info-item :name "osm114r") + (new 'static 'speech-info-item :name "osm115r") + (new 'static 'speech-info-item :name "osm116r") + (new 'static 'speech-info-item :name "osm117r") + (new 'static 'speech-info-item :name "osm118r") + (new 'static 'speech-info-item :name "osm119r") + (new 'static 'speech-info-item :name "osm120r") + (new 'static 'speech-info-item :name "osm121r") + (new 'static 'speech-info-item :name "osm122r") + (new 'static 'speech-info-item :name "osm123r") + (new 'static 'speech-info-item :name "osm124r") + (new 'static 'speech-info-item :name "osm125r") + (new 'static 'speech-info-item :name "osm126r") + (new 'static 'speech-info-item :name "osm127r") + (new 'static 'speech-info-item :name "osm128r") + (new 'static 'speech-info-item :name "osm129r") + (new 'static 'speech-info-item :name "osm130r") + (new 'static 'speech-info-item :name "osm131r") + (new 'static 'speech-info-item :name "osm132r") + (new 'static 'speech-info-item :name "osm133r") + (new 'static 'speech-info-item :name "osm134r") + (new 'static 'speech-info-item :name "osm135r") + (new 'static 'speech-info-item :name "osm136r") + (new 'static 'speech-info-item :name "osm137r") + (new 'static 'speech-info-item :name "osm138r") + (new 'static 'speech-info-item :name "osm139r") + (new 'static 'speech-info-item :name "osm140r") + (new 'static 'speech-info-item :name "osm141r") + (new 'static 'speech-info-item :name "osm263r") + (new 'static 'speech-info-item :name "osm218r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm101r") + (new 'static 'speech-info-item :name "osm102r") + (new 'static 'speech-info-item :name "osm103r") + (new 'static 'speech-info-item :name "osm106r") + (new 'static 'speech-info-item :name "osm107r") + (new 'static 'speech-info-item :name "osm108r") + (new 'static 'speech-info-item :name "osm109r") + (new 'static 'speech-info-item :name "osm110r") + (new 'static 'speech-info-item :name "osm112r") + (new 'static 'speech-info-item :name "osm113r") + (new 'static 'speech-info-item :name "osm115r") + (new 'static 'speech-info-item :name "osm116r") + (new 'static 'speech-info-item :name "osm117r") + (new 'static 'speech-info-item :name "osm118r") + (new 'static 'speech-info-item :name "osm120r") + (new 'static 'speech-info-item :name "osm121r") + (new 'static 'speech-info-item :name "osm122r") + (new 'static 'speech-info-item :name "osm123r") + (new 'static 'speech-info-item :name "osm124r") + (new 'static 'speech-info-item :name "osm125r") + (new 'static 'speech-info-item :name "osm126r") + (new 'static 'speech-info-item :name "osm127r") + (new 'static 'speech-info-item :name "osm128r") + (new 'static 'speech-info-item :name "osm129r") + (new 'static 'speech-info-item :name "osm130r") + (new 'static 'speech-info-item :name "osm131r") + (new 'static 'speech-info-item :name "osm132r") + (new 'static 'speech-info-item :name "osm133r") + (new 'static 'speech-info-item :name "osm134r") + (new 'static 'speech-info-item :name "osm135r") + (new 'static 'speech-info-item :name "osm136r") + (new 'static 'speech-info-item :name "osm137r") + (new 'static 'speech-info-item :name "osm139r") + (new 'static 'speech-info-item :name "osm140r") + (new 'static 'speech-info-item :name "osm141r") + (new 'static 'speech-info-item :name "osm263r") + (new 'static 'speech-info-item :name "osm218r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm142r") + (new 'static 'speech-info-item :name "osm143r") + (new 'static 'speech-info-item :name "osm144r") + (new 'static 'speech-info-item :name "osm145r") + (new 'static 'speech-info-item :name "osm146r") + (new 'static 'speech-info-item :name "osm147r") + (new 'static 'speech-info-item :name "osm148r") + (new 'static 'speech-info-item :name "osm149r") + (new 'static 'speech-info-item :name "osm151r") + (new 'static 'speech-info-item :name "osm152r") + (new 'static 'speech-info-item :name "osm267r") + (new 'static 'speech-info-item :name "osm219r") + (new 'static 'speech-info-item :name "osm220r") + (new 'static 'speech-info-item :name "osm226r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm153r") + (new 'static 'speech-info-item :name "osm154r") + (new 'static 'speech-info-item :name "osm155r") + (new 'static 'speech-info-item :name "osm156r") + (new 'static 'speech-info-item :name "osm157r") + (new 'static 'speech-info-item :name "osm158r") + (new 'static 'speech-info-item :name "osm160r") + (new 'static 'speech-info-item :name "osm161r") + (new 'static 'speech-info-item :name "osm162r") + (new 'static 'speech-info-item :name "osm164r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm166r") + (new 'static 'speech-info-item :name "osm167r") + (new 'static 'speech-info-item :name "osm168r") + (new 'static 'speech-info-item :name "osm169r") + (new 'static 'speech-info-item :name "osm170r") + (new 'static 'speech-info-item :name "osm171r") + (new 'static 'speech-info-item :name "osm172r") + (new 'static 'speech-info-item :name "osm173r") + (new 'static 'speech-info-item :name "osm174r") + (new 'static 'speech-info-item :name "osm175r") + (new 'static 'speech-info-item :name "osm176r") + (new 'static 'speech-info-item :name "osm177r") + (new 'static 'speech-info-item :name "osm178r") + (new 'static 'speech-info-item :name "osm179r") + (new 'static 'speech-info-item :name "osm180r") + (new 'static 'speech-info-item :name "osm181r") + (new 'static 'speech-info-item :name "osm182r") + (new 'static 'speech-info-item :name "osm183r") + (new 'static 'speech-info-item :name "osm187r") + (new 'static 'speech-info-item :name "osm188r") + (new 'static 'speech-info-item :name "osm189r") + (new 'static 'speech-info-item :name "osm190r") + (new 'static 'speech-info-item :name "osm193r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm194r") + (new 'static 'speech-info-item :name "osm195r") + (new 'static 'speech-info-item :name "osm196r") + (new 'static 'speech-info-item :name "osm197r") + (new 'static 'speech-info-item :name "osm198r") + (new 'static 'speech-info-item :name "osm199r") + (new 'static 'speech-info-item :name "osm200r") + (new 'static 'speech-info-item :name "osm201r") + (new 'static 'speech-info-item :name "osm202r") + (new 'static 'speech-info-item :name "osm203r") + (new 'static 'speech-info-item :name "osm204r") + (new 'static 'speech-info-item :name "osm205r") + (new 'static 'speech-info-item :name "osm206r") + (new 'static 'speech-info-item :name "osm207r") + (new 'static 'speech-info-item :name "osm208r") + (new 'static 'speech-info-item :name "osm209r") + (new 'static 'speech-info-item :name "osm210r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm211r") + (new 'static 'speech-info-item :name "osm212r") + (new 'static 'speech-info-item :name "osm213r") + (new 'static 'speech-info-item :name "osm214r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "osm227r")) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm228r") + (new 'static 'speech-info-item :name "osm229r") + (new 'static 'speech-info-item :name "osm230r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm231r") + (new 'static 'speech-info-item :name "osm232r") + (new 'static 'speech-info-item :name "osm233r") + (new 'static 'speech-info-item :name "osm234r") + (new 'static 'speech-info-item :name "osm235r") + (new 'static 'speech-info-item :name "osm236r") + (new 'static 'speech-info-item :name "osm237r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm238r") + (new 'static 'speech-info-item :name "osm239r") + (new 'static 'speech-info-item :name "osm240r") + (new 'static 'speech-info-item :name "osm241r") + (new 'static 'speech-info-item :name "osm242r") + (new 'static 'speech-info-item :name "osm243r") + (new 'static 'speech-info-item :name "osm244r") + (new 'static 'speech-info-item :name "osm245r") + (new 'static 'speech-info-item :name "osm246r") + (new 'static 'speech-info-item :name "osm247r") + (new 'static 'speech-info-item :name "osm248r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm238r") + (new 'static 'speech-info-item :name "osm239r") + (new 'static 'speech-info-item :name "osm240r") + (new 'static 'speech-info-item :name "osm241r") + (new 'static 'speech-info-item :name "osm242r") + (new 'static 'speech-info-item :name "osm243r") + (new 'static 'speech-info-item :name "osm244r") + (new 'static 'speech-info-item :name "osm245r") + (new 'static 'speech-info-item :name "osm246r") + (new 'static 'speech-info-item :name "osm247r") + (new 'static 'speech-info-item :name "osm248r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm249r") + (new 'static 'speech-info-item :name "osm250r") + (new 'static 'speech-info-item :name "osm251r") + (new 'static 'speech-info-item :name "osm252r") + (new 'static 'speech-info-item :name "osm253r") + (new 'static 'speech-info-item :name "osm254r") + (new 'static 'speech-info-item :name "osm255r") + (new 'static 'speech-info-item :name "osm256r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm249r") + (new 'static 'speech-info-item :name "osm250r") + (new 'static 'speech-info-item :name "osm251r") + (new 'static 'speech-info-item :name "osm252r") + (new 'static 'speech-info-item :name "osm253r") + (new 'static 'speech-info-item :name "osm254r") + (new 'static 'speech-info-item :name "osm255r") + (new 'static 'speech-info-item :name "osm256r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm275r") + (new 'static 'speech-info-item :name "osm278r") + (new 'static 'speech-info-item :name "osm279r") + (new 'static 'speech-info-item :name "osm281r") + (new 'static 'speech-info-item :name "osm282r") + (new 'static 'speech-info-item :name "osm283r") + ) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "osm222r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 21 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm215r") + (new 'static 'speech-info-item :name "osm216r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-pecker.gc b/goal_src/jakx/engine/sound/speech/speech-pecker.gc index 2f97edd285..ae73994da9 100644 --- a/goal_src/jakx/engine/sound/speech/speech-pecker.gc +++ b/goal_src/jakx/engine/sound/speech/speech-pecker.gc @@ -7,3 +7,679 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 7 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec102") + (new 'static 'speech-info-item :name "pec111") + (new 'static 'speech-info-item :name "pec113") + (new 'static 'speech-info-item :name "pec115") + (new 'static 'speech-info-item :name "pec119") + (new 'static 'speech-info-item :name "pec121") + (new 'static 'speech-info-item :name "pec122") + (new 'static 'speech-info-item :name "pec128") + (new 'static 'speech-info-item :name "pec129") + (new 'static 'speech-info-item :name "pec130") + (new 'static 'speech-info-item :name "pec133") + (new 'static 'speech-info-item :name "pec134") + (new 'static 'speech-info-item :name "pec135") + (new 'static 'speech-info-item :name "pec137") + (new 'static 'speech-info-item :name "pec142") + (new 'static 'speech-info-item :name "pec144") + (new 'static 'speech-info-item :name "pec158") + (new 'static 'speech-info-item :name "pec161") + (new 'static 'speech-info-item :name "pec162") + (new 'static 'speech-info-item :name "pec165") + (new 'static 'speech-info-item :name "pec167") + (new 'static 'speech-info-item :name "pec168") + (new 'static 'speech-info-item :name "pec169") + (new 'static 'speech-info-item :name "pec171") + (new 'static 'speech-info-item :name "pec174") + (new 'static 'speech-info-item :name "pec177") + (new 'static 'speech-info-item :name "pec180") + (new 'static 'speech-info-item :name "pec185") + (new 'static 'speech-info-item :name "pec186") + (new 'static 'speech-info-item :name "pec194") + (new 'static 'speech-info-item :name "pec195") + (new 'static 'speech-info-item :name "pec196") + (new 'static 'speech-info-item :name "pec197") + (new 'static 'speech-info-item :name "pec198") + (new 'static 'speech-info-item :name "pec200") + (new 'static 'speech-info-item :name "pec201") + (new 'static 'speech-info-item :name "pec202") + (new 'static 'speech-info-item :name "pec203") + (new 'static 'speech-info-item :name "pec204") + (new 'static 'speech-info-item :name "pec205") + (new 'static 'speech-info-item :name "pec206") + (new 'static 'speech-info-item :name "pec207") + (new 'static 'speech-info-item :name "pec209") + (new 'static 'speech-info-item :name "pec210") + (new 'static 'speech-info-item :name "pec211") + (new 'static 'speech-info-item :name "pec212") + (new 'static 'speech-info-item :name "pec213") + (new 'static 'speech-info-item :name "pec214") + (new 'static 'speech-info-item :name "pec215") + (new 'static 'speech-info-item :name "pec216") + (new 'static 'speech-info-item :name "pec217") + (new 'static 'speech-info-item :name "pec218") + (new 'static 'speech-info-item :name "pec219") + (new 'static 'speech-info-item :name "pec220") + (new 'static 'speech-info-item :name "pec221") + (new 'static 'speech-info-item :name "pec222") + (new 'static 'speech-info-item :name "pec223") + (new 'static 'speech-info-item :name "pec224") + (new 'static 'speech-info-item :name "pec225") + (new 'static 'speech-info-item :name "pec229") + (new 'static 'speech-info-item :name "pec232") + (new 'static 'speech-info-item :name "pec235") + (new 'static 'speech-info-item :name "pec236") + (new 'static 'speech-info-item :name "pec239") + (new 'static 'speech-info-item :name "pec240") + (new 'static 'speech-info-item :name "pec241") + (new 'static 'speech-info-item :name "pec242") + (new 'static 'speech-info-item :name "pec243") + (new 'static 'speech-info-item :name "pec244") + (new 'static 'speech-info-item :name "pec245") + (new 'static 'speech-info-item :name "pec246") + (new 'static 'speech-info-item :name "pec247") + (new 'static 'speech-info-item :name "pec252") + (new 'static 'speech-info-item :name "pec253") + (new 'static 'speech-info-item :name "pec254") + (new 'static 'speech-info-item :name "pec256") + (new 'static 'speech-info-item :name "pec258") + (new 'static 'speech-info-item :name "pec259") + (new 'static 'speech-info-item :name "pec260") + (new 'static 'speech-info-item :name "pec261") + (new 'static 'speech-info-item :name "pec262") + (new 'static 'speech-info-item :name "pec264") + (new 'static 'speech-info-item :name "pec269") + (new 'static 'speech-info-item :name "pec272") + (new 'static 'speech-info-item :name "pec274") + (new 'static 'speech-info-item :name "pec277") + (new 'static 'speech-info-item :name "pec278") + (new 'static 'speech-info-item :name "pec282") + (new 'static 'speech-info-item :name "pec283") + (new 'static 'speech-info-item :name "pec285") + (new 'static 'speech-info-item :name "pec288") + (new 'static 'speech-info-item :name "pec289") + (new 'static 'speech-info-item :name "pec290") + (new 'static 'speech-info-item :name "pec291") + (new 'static 'speech-info-item :name "pec292") + (new 'static 'speech-info-item :name "pec293") + (new 'static 'speech-info-item :name "pec294") + (new 'static 'speech-info-item :name "pec295") + (new 'static 'speech-info-item :name "pec296") + (new 'static 'speech-info-item :name "pec298") + (new 'static 'speech-info-item :name "pec299") + (new 'static 'speech-info-item :name "pec302") + (new 'static 'speech-info-item :name "pec303") + (new 'static 'speech-info-item :name "pec304") + (new 'static 'speech-info-item :name "pec305") + (new 'static 'speech-info-item :name "pec306") + (new 'static 'speech-info-item :name "pec307") + (new 'static 'speech-info-item :name "pec309") + (new 'static 'speech-info-item :name "pec310") + (new 'static 'speech-info-item :name "pec311") + (new 'static 'speech-info-item :name "pec312") + (new 'static 'speech-info-item :name "pec314") + (new 'static 'speech-info-item :name "pec317") + (new 'static 'speech-info-item :name "pec319") + (new 'static 'speech-info-item :name "pec320") + (new 'static 'speech-info-item :name "pec321") + (new 'static 'speech-info-item :name "pec322") + (new 'static 'speech-info-item :name "pec324") + (new 'static 'speech-info-item :name "pec371r") + (new 'static 'speech-info-item :name "pec372r") + (new 'static 'speech-info-item :name "pec376r") + (new 'static 'speech-info-item :name "pec392r") + (new 'static 'speech-info-item :name "pec404") + (new 'static 'speech-info-item :name "pec405") + (new 'static 'speech-info-item :name "pec406") + (new 'static 'speech-info-item :name "pec489") + (new 'static 'speech-info-item :name "pec492") + (new 'static 'speech-info-item :name "pec493") + (new 'static 'speech-info-item :name "pec494") + (new 'static 'speech-info-item :name "pec495") + (new 'static 'speech-info-item :name "pec496") + (new 'static 'speech-info-item :name "pec497") + (new 'static 'speech-info-item :name "pec498") + (new 'static 'speech-info-item :name "pec499") + (new 'static 'speech-info-item :name "pec500") + (new 'static 'speech-info-item :name "pec501") + (new 'static 'speech-info-item :name "pec506r") + (new 'static 'speech-info-item :name "pec508") + (new 'static 'speech-info-item :name "pec509") + (new 'static 'speech-info-item :name "pec554") + (new 'static 'speech-info-item :name "pec555") + (new 'static 'speech-info-item :name "pec556") + (new 'static 'speech-info-item :name "pec557") + (new 'static 'speech-info-item :name "pec558") + (new 'static 'speech-info-item :name "pec559") + (new 'static 'speech-info-item :name "pec560") + (new 'static 'speech-info-item :name "pec561") + (new 'static 'speech-info-item :name "pec562") + (new 'static 'speech-info-item :name "pec563") + (new 'static 'speech-info-item :name "pec565") + (new 'static 'speech-info-item :name "pec566") + (new 'static 'speech-info-item :name "pec567") + (new 'static 'speech-info-item :name "pec568") + (new 'static 'speech-info-item :name "pec569") + (new 'static 'speech-info-item :name "pec570") + (new 'static 'speech-info-item :name "pec571") + (new 'static 'speech-info-item :name "pec572") + (new 'static 'speech-info-item :name "pec573") + (new 'static 'speech-info-item :name "pec574") + (new 'static 'speech-info-item :name "pec575") + (new 'static 'speech-info-item :name "pec159") + (new 'static 'speech-info-item :name "pec164") + (new 'static 'speech-info-item :name "pec166") + (new 'static 'speech-info-item :name "pec188") + (new 'static 'speech-info-item :name "pec193") + (new 'static 'speech-info-item :name "pec226") + (new 'static 'speech-info-item :name "pec251") + (new 'static 'speech-info-item :name "pec300") + (new 'static 'speech-info-item :name "pec315") + (new 'static 'speech-info-item :name "pec318") + (new 'static 'speech-info-item :name "pec323") + (new 'static 'speech-info-item :name "pec418r") + (new 'static 'speech-info-item :name "pec442r") + (new 'static 'speech-info-item :name "pec443r") + (new 'static 'speech-info-item :name "pec444r") + (new 'static 'speech-info-item :name "pec488r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 17) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec101") + (new 'static 'speech-info-item :name "pec103") + (new 'static 'speech-info-item :name "pec104") + (new 'static 'speech-info-item :name "pec105") + (new 'static 'speech-info-item :name "pec106") + (new 'static 'speech-info-item :name "pec107") + (new 'static 'speech-info-item :name "pec108") + (new 'static 'speech-info-item :name "pec109") + (new 'static 'speech-info-item :name "pec110") + (new 'static 'speech-info-item :name "pec112") + (new 'static 'speech-info-item :name "pec114") + (new 'static 'speech-info-item :name "pec117") + (new 'static 'speech-info-item :name "pec118") + (new 'static 'speech-info-item :name "pec136") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 18) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec116") + (new 'static 'speech-info-item :name "pec120") + (new 'static 'speech-info-item :name "pec123") + (new 'static 'speech-info-item :name "pec124") + (new 'static 'speech-info-item :name "pec125") + (new 'static 'speech-info-item :name "pec126") + (new 'static 'speech-info-item :name "pec127") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 19) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec263") + (new 'static 'speech-info-item :name "pec265") + (new 'static 'speech-info-item :name "pec266") + (new 'static 'speech-info-item :name "pec267") + (new 'static 'speech-info-item :name "pec268") + (new 'static 'speech-info-item :name "pec270") + (new 'static 'speech-info-item :name "pec271") + (new 'static 'speech-info-item :name "pec273") + (new 'static 'speech-info-item :name "pec275") + (new 'static 'speech-info-item :name "pec276") + (new 'static 'speech-info-item :name "pec279") + (new 'static 'speech-info-item :name "pec280") + (new 'static 'speech-info-item :name "pec281") + (new 'static 'speech-info-item :name "pec284") + (new 'static 'speech-info-item :name "pec286") + (new 'static 'speech-info-item :name "pec287") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 20) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec139") + (new 'static 'speech-info-item :name "pec140") + (new 'static 'speech-info-item :name "pec141") + (new 'static 'speech-info-item :name "pec143") + (new 'static 'speech-info-item :name "pec145") + (new 'static 'speech-info-item :name "pec147") + (new 'static 'speech-info-item :name "pec149") + (new 'static 'speech-info-item :name "pec151") + (new 'static 'speech-info-item :name "pec156") + (new 'static 'speech-info-item :name "pec157") + (new 'static 'speech-info-item :name "pec160") + (new 'static 'speech-info-item :name "pec163") + (new 'static 'speech-info-item :name "pec170") + (new 'static 'speech-info-item :name "pec172") + (new 'static 'speech-info-item :name "pec173") + (new 'static 'speech-info-item :name "pec175") + (new 'static 'speech-info-item :name "pec176") + (new 'static 'speech-info-item :name "pec178") + (new 'static 'speech-info-item :name "pec181") + (new 'static 'speech-info-item :name "pec187") + (new 'static 'speech-info-item :name "pec189") + (new 'static 'speech-info-item :name "pec190") + (new 'static 'speech-info-item :name "pec191") + (new 'static 'speech-info-item :name "pec192") + (new 'static 'speech-info-item :name "pec199") + (new 'static 'speech-info-item :name "pec227") + (new 'static 'speech-info-item :name "pec228") + (new 'static 'speech-info-item :name "pec230") + (new 'static 'speech-info-item :name "pec231") + (new 'static 'speech-info-item :name "pec234") + (new 'static 'speech-info-item :name "pec237") + (new 'static 'speech-info-item :name "pec238") + (new 'static 'speech-info-item :name "pec249") + (new 'static 'speech-info-item :name "pec250") + (new 'static 'speech-info-item :name "pec255") + (new 'static 'speech-info-item :name "pec297") + (new 'static 'speech-info-item :name "pec301") + (new 'static 'speech-info-item :name "pec308") + (new 'static 'speech-info-item :name "pec131") + (new 'static 'speech-info-item :name "pec132") + (new 'static 'speech-info-item :name "pec138") + (new 'static 'speech-info-item :name "pec146") + (new 'static 'speech-info-item :name "pec148") + (new 'static 'speech-info-item :name "pec150") + (new 'static 'speech-info-item :name "pec152" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec153" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec154" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec155" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec179" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec182" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec183") + (new 'static 'speech-info-item :name "pec208") + (new 'static 'speech-info-item :name "pec257") + (new 'static 'speech-info-item :name "pec233" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec313") + (new 'static 'speech-info-item :name "pec316") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec325r") + (new 'static 'speech-info-item :name "pec326r") + (new 'static 'speech-info-item :name "pec327r") + (new 'static 'speech-info-item :name "pec328r") + (new 'static 'speech-info-item :name "pec329r") + (new 'static 'speech-info-item :name "pec330r") + (new 'static 'speech-info-item :name "pec331r") + (new 'static 'speech-info-item :name "pec332r") + (new 'static 'speech-info-item :name "pec333r") + (new 'static 'speech-info-item :name "pec334r") + (new 'static 'speech-info-item :name "pec335r") + (new 'static 'speech-info-item :name "pec336r") + (new 'static 'speech-info-item :name "pec337r") + (new 'static 'speech-info-item :name "pec338r") + (new 'static 'speech-info-item :name "pec339r") + (new 'static 'speech-info-item :name "pec340r") + (new 'static 'speech-info-item :name "pec341r") + (new 'static 'speech-info-item :name "pec342r") + (new 'static 'speech-info-item :name "pec343r") + (new 'static 'speech-info-item :name "pec344r") + (new 'static 'speech-info-item :name "pec345r") + (new 'static 'speech-info-item :name "pec346r") + (new 'static 'speech-info-item :name "pec347r") + (new 'static 'speech-info-item :name "pec348r") + (new 'static 'speech-info-item :name "pec349r") + (new 'static 'speech-info-item :name "pec350r") + (new 'static 'speech-info-item :name "pec351r") + (new 'static 'speech-info-item :name "pec352r") + (new 'static 'speech-info-item :name "pec353r") + (new 'static 'speech-info-item :name "pec354r") + (new 'static 'speech-info-item :name "pec355r") + (new 'static 'speech-info-item :name "pec356r") + (new 'static 'speech-info-item :name "pec184r") + (new 'static 'speech-info-item :name "pec564r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec325r") + (new 'static 'speech-info-item :name "pec326r") + (new 'static 'speech-info-item :name "pec327r") + (new 'static 'speech-info-item :name "pec328r") + (new 'static 'speech-info-item :name "pec329r") + (new 'static 'speech-info-item :name "pec330r") + (new 'static 'speech-info-item :name "pec333r") + (new 'static 'speech-info-item :name "pec334r") + (new 'static 'speech-info-item :name "pec335r") + (new 'static 'speech-info-item :name "pec336r") + (new 'static 'speech-info-item :name "pec337r") + (new 'static 'speech-info-item :name "pec338r") + (new 'static 'speech-info-item :name "pec340r") + (new 'static 'speech-info-item :name "pec341r") + (new 'static 'speech-info-item :name "pec342r") + (new 'static 'speech-info-item :name "pec343r") + (new 'static 'speech-info-item :name "pec345r") + (new 'static 'speech-info-item :name "pec346r") + (new 'static 'speech-info-item :name "pec347r") + (new 'static 'speech-info-item :name "pec349r") + (new 'static 'speech-info-item :name "pec350r") + (new 'static 'speech-info-item :name "pec351r") + (new 'static 'speech-info-item :name "pec352r") + (new 'static 'speech-info-item :name "pec353r") + (new 'static 'speech-info-item :name "pec354r") + (new 'static 'speech-info-item :name "pec355r") + (new 'static 'speech-info-item :name "pec356r") + (new 'static 'speech-info-item :name "pec184r") + (new 'static 'speech-info-item :name "pec564r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec357r") + (new 'static 'speech-info-item :name "pec358r") + (new 'static 'speech-info-item :name "pec359r") + (new 'static 'speech-info-item :name "pec360r") + (new 'static 'speech-info-item :name "pec361r") + (new 'static 'speech-info-item :name "pec362r") + (new 'static 'speech-info-item :name "pec363r") + (new 'static 'speech-info-item :name "pec364r") + (new 'static 'speech-info-item :name "pec365r") + (new 'static 'speech-info-item :name "pec366r") + (new 'static 'speech-info-item :name "pec367r") + (new 'static 'speech-info-item :name "pec368r") + (new 'static 'speech-info-item :name "pec369r") + (new 'static 'speech-info-item :name "pec370r") + (new 'static 'speech-info-item :name "pec248r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec373r") + (new 'static 'speech-info-item :name "pec374r") + (new 'static 'speech-info-item :name "pec375r") + (new 'static 'speech-info-item :name "pec377r") + (new 'static 'speech-info-item :name "pec378r") + (new 'static 'speech-info-item :name "pec379r") + (new 'static 'speech-info-item :name "pec380r") + (new 'static 'speech-info-item :name "pec381r") + (new 'static 'speech-info-item :name "pec382r") + (new 'static 'speech-info-item :name "pec383r") + (new 'static 'speech-info-item :name "pec384r") + (new 'static 'speech-info-item :name "pec385r") + (new 'static 'speech-info-item :name "pec386r") + (new 'static 'speech-info-item :name "pec387r") + (new 'static 'speech-info-item :name "pec388r") + (new 'static 'speech-info-item :name "pec389r") + (new 'static 'speech-info-item :name "pec390r") + (new 'static 'speech-info-item :name "pec391r") + (new 'static 'speech-info-item :name "pec393r") + (new 'static 'speech-info-item :name "pec394r") + (new 'static 'speech-info-item :name "pec395r") + (new 'static 'speech-info-item :name "pec396r") + (new 'static 'speech-info-item :name "pec397r") + (new 'static 'speech-info-item :name "pec398r") + (new 'static 'speech-info-item :name "pec399r") + (new 'static 'speech-info-item :name "pec400r") + (new 'static 'speech-info-item :name "pec401r") + (new 'static 'speech-info-item :name "pec402r") + (new 'static 'speech-info-item :name "pec403r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec408r") + (new 'static 'speech-info-item :name "pec409r") + (new 'static 'speech-info-item :name "pec410r") + (new 'static 'speech-info-item :name "pec411r") + (new 'static 'speech-info-item :name "pec412r") + (new 'static 'speech-info-item :name "pec413r") + (new 'static 'speech-info-item :name "pec414r") + (new 'static 'speech-info-item :name "pec415r") + (new 'static 'speech-info-item :name "pec416r") + (new 'static 'speech-info-item :name "pec417r") + (new 'static 'speech-info-item :name "pec419r") + (new 'static 'speech-info-item :name "pec420r") + (new 'static 'speech-info-item :name "pec421r") + (new 'static 'speech-info-item :name "pec422r") + (new 'static 'speech-info-item :name "pec423r") + (new 'static 'speech-info-item :name "pec424r") + (new 'static 'speech-info-item :name "pec425r") + (new 'static 'speech-info-item :name "pec426r") + (new 'static 'speech-info-item :name "pec427r") + (new 'static 'speech-info-item :name "pec428r") + (new 'static 'speech-info-item :name "pec429r") + (new 'static 'speech-info-item :name "pec430r") + (new 'static 'speech-info-item :name "pec431r") + (new 'static 'speech-info-item :name "pec432r") + (new 'static 'speech-info-item :name "pec433r") + (new 'static 'speech-info-item :name "pec434r") + (new 'static 'speech-info-item :name "pec435r") + (new 'static 'speech-info-item :name "pec436r") + (new 'static 'speech-info-item :name "pec437r") + (new 'static 'speech-info-item :name "pec438r") + (new 'static 'speech-info-item :name "pec439r") + (new 'static 'speech-info-item :name "pec440r") + (new 'static 'speech-info-item :name "pec441r") + (new 'static 'speech-info-item :name "pec445r") + (new 'static 'speech-info-item :name "pec490r") + (new 'static 'speech-info-item :name "pec491r") + (new 'static 'speech-info-item :name "pec505r") + (new 'static 'speech-info-item :name "pec507r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec446r") + (new 'static 'speech-info-item :name "pec447r") + (new 'static 'speech-info-item :name "pec448r") + (new 'static 'speech-info-item :name "pec449r") + (new 'static 'speech-info-item :name "pec450r") + (new 'static 'speech-info-item :name "pec451r") + (new 'static 'speech-info-item :name "pec452r") + (new 'static 'speech-info-item :name "pec453r") + (new 'static 'speech-info-item :name "pec454r") + (new 'static 'speech-info-item :name "pec455r") + (new 'static 'speech-info-item :name "pec456r") + (new 'static 'speech-info-item :name "pec457r") + (new 'static 'speech-info-item :name "pec458r") + (new 'static 'speech-info-item :name "pec459r") + (new 'static 'speech-info-item :name "pec460r") + (new 'static 'speech-info-item :name "pec461r") + (new 'static 'speech-info-item :name "pec462r") + (new 'static 'speech-info-item :name "pec463r") + (new 'static 'speech-info-item :name "pec464r") + (new 'static 'speech-info-item :name "pec465r") + (new 'static 'speech-info-item :name "pec466r") + (new 'static 'speech-info-item :name "pec467r") + (new 'static 'speech-info-item :name "pec468r") + (new 'static 'speech-info-item :name "pec469r") + (new 'static 'speech-info-item :name "pec470r") + (new 'static 'speech-info-item :name "pec471r") + (new 'static 'speech-info-item :name "pec472r") + (new 'static 'speech-info-item :name "pec407r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec473r") + (new 'static 'speech-info-item :name "pec474r") + (new 'static 'speech-info-item :name "pec475r") + (new 'static 'speech-info-item :name "pec476r") + (new 'static 'speech-info-item :name "pec477r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "pec510r")) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec511r") + (new 'static 'speech-info-item :name "pec512r") + (new 'static 'speech-info-item :name "pec513r") + (new 'static 'speech-info-item :name "pec514r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec515r") + (new 'static 'speech-info-item :name "pec516r") + (new 'static 'speech-info-item :name "pec517r") + (new 'static 'speech-info-item :name "pec518r") + (new 'static 'speech-info-item :name "pec519r") + (new 'static 'speech-info-item :name "pec520r") + (new 'static 'speech-info-item :name "pec521r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec522r") + (new 'static 'speech-info-item :name "pec523r") + (new 'static 'speech-info-item :name "pec524r") + (new 'static 'speech-info-item :name "pec525r") + (new 'static 'speech-info-item :name "pec526r") + (new 'static 'speech-info-item :name "pec527r") + (new 'static 'speech-info-item :name "pec528r") + (new 'static 'speech-info-item :name "pec529r") + (new 'static 'speech-info-item :name "pec530r") + (new 'static 'speech-info-item :name "pec531r") + (new 'static 'speech-info-item :name "pec532r") + (new 'static 'speech-info-item :name "pec533r") + (new 'static 'speech-info-item :name "pec534r") + (new 'static 'speech-info-item :name "pec535r") + (new 'static 'speech-info-item :name "pec536r") + (new 'static 'speech-info-item :name "pec537r") + (new 'static 'speech-info-item :name "pec538r") + (new 'static 'speech-info-item :name "pec539r") + (new 'static 'speech-info-item :name "pec540r") + (new 'static 'speech-info-item :name "pec541r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec522r") + (new 'static 'speech-info-item :name "pec523r") + (new 'static 'speech-info-item :name "pec524r") + (new 'static 'speech-info-item :name "pec525r") + (new 'static 'speech-info-item :name "pec526r") + (new 'static 'speech-info-item :name "pec527r") + (new 'static 'speech-info-item :name "pec528r") + (new 'static 'speech-info-item :name "pec529r") + (new 'static 'speech-info-item :name "pec530r") + (new 'static 'speech-info-item :name "pec531r") + (new 'static 'speech-info-item :name "pec532r") + (new 'static 'speech-info-item :name "pec533r") + (new 'static 'speech-info-item :name "pec534r") + (new 'static 'speech-info-item :name "pec535r") + (new 'static 'speech-info-item :name "pec536r") + (new 'static 'speech-info-item :name "pec537r") + (new 'static 'speech-info-item :name "pec538r") + (new 'static 'speech-info-item :name "pec539r") + (new 'static 'speech-info-item :name "pec540r") + (new 'static 'speech-info-item :name "pec541r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec542r") + (new 'static 'speech-info-item :name "pec543r") + (new 'static 'speech-info-item :name "pec544r") + (new 'static 'speech-info-item :name "pec545r") + (new 'static 'speech-info-item :name "pec546r") + (new 'static 'speech-info-item :name "pec547r") + (new 'static 'speech-info-item :name "pec548r") + (new 'static 'speech-info-item :name "pec549r") + (new 'static 'speech-info-item :name "pec550r") + (new 'static 'speech-info-item :name "pec551r") + (new 'static 'speech-info-item :name "pec552r") + (new 'static 'speech-info-item :name "pec553r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec542r") + (new 'static 'speech-info-item :name "pec543r") + (new 'static 'speech-info-item :name "pec544r") + (new 'static 'speech-info-item :name "pec545r") + (new 'static 'speech-info-item :name "pec546r") + (new 'static 'speech-info-item :name "pec547r") + (new 'static 'speech-info-item :name "pec548r") + (new 'static 'speech-info-item :name "pec549r") + (new 'static 'speech-info-item :name "pec550r") + (new 'static 'speech-info-item :name "pec551r") + (new 'static 'speech-info-item :name "pec552r") + (new 'static 'speech-info-item :name "pec553r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec576r") + (new 'static 'speech-info-item :name "pec577r") + (new 'static 'speech-info-item :name "pec578r") + (new 'static 'speech-info-item :name "pec579r") + (new 'static 'speech-info-item :name "pec580r") + (new 'static 'speech-info-item :name "pec581r") + (new 'static 'speech-info-item :name "pec582r") + ) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 21) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec502r") + (new 'static 'speech-info-item :name "pec503r") + (new 'static 'speech-info-item :name "pec504r") + ) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 7 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec446r") + (new 'static 'speech-info-item :name "pec478r") + (new 'static 'speech-info-item :name "pec479r") + (new 'static 'speech-info-item :name "pec480r") + (new 'static 'speech-info-item :name "pec481r") + (new 'static 'speech-info-item :name "pec482r") + (new 'static 'speech-info-item :name "pec483r") + (new 'static 'speech-info-item :name "pec484r") + (new 'static 'speech-info-item :name "pec485r") + (new 'static 'speech-info-item :name "pec486r") + (new 'static 'speech-info-item :name "pec487r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-ratchet.gc b/goal_src/jakx/engine/sound/speech/speech-ratchet.gc index 16f1f0fcc5..1e3b30bc4f 100644 --- a/goal_src/jakx/engine/sound/speech/speech-ratchet.gc +++ b/goal_src/jakx/engine/sound/speech/speech-ratchet.gc @@ -7,3 +7,327 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 17 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat102r") + (new 'static 'speech-info-item :name "rat106r") + (new 'static 'speech-info-item :name "rat107r") + (new 'static 'speech-info-item :name "rat110r") + (new 'static 'speech-info-item :name "rat115r") + (new 'static 'speech-info-item :name "rat120r") + (new 'static 'speech-info-item :name "rat126r") + (new 'static 'speech-info-item :name "rat141r") + (new 'static 'speech-info-item :name "rat143r") + (new 'static 'speech-info-item :name "rat144r") + (new 'static 'speech-info-item :name "rat159r") + (new 'static 'speech-info-item :name "rat160r") + (new 'static 'speech-info-item :name "rat162r") + (new 'static 'speech-info-item :name "rat163r") + (new 'static 'speech-info-item :name "rat169r") + (new 'static 'speech-info-item :name "rat170r") + (new 'static 'speech-info-item :name "rat171r") + (new 'static 'speech-info-item :name "rat176r") + (new 'static 'speech-info-item :name "rat179r") + (new 'static 'speech-info-item :name "rat200r") + (new 'static 'speech-info-item :name "rat204r") + (new 'static 'speech-info-item :name "rat207r") + (new 'static 'speech-info-item :name "rat208r") + (new 'static 'speech-info-item :name "rat238r") + (new 'static 'speech-info-item :name "rat243r") + (new 'static 'speech-info-item :name "rat244r") + (new 'static 'speech-info-item :name "rat245r") + (new 'static 'speech-info-item :name "rat246r") + (new 'static 'speech-info-item :name "rat247r") + (new 'static 'speech-info-item :name "rat248r") + (new 'static 'speech-info-item :name "rat250r") + (new 'static 'speech-info-item :name "rat252r") + (new 'static 'speech-info-item :name "rat253r") + (new 'static 'speech-info-item :name "rat254r") + (new 'static 'speech-info-item :name "rat256r") + (new 'static 'speech-info-item :name "rat257r") + (new 'static 'speech-info-item :name "rat258r") + (new 'static 'speech-info-item :name "rat261r") + (new 'static 'speech-info-item :name "rat262r") + (new 'static 'speech-info-item :name "rat263r") + (new 'static 'speech-info-item :name "rat264r") + (new 'static 'speech-info-item :name "rat268r") + (new 'static 'speech-info-item :name "rat271r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat108r") + (new 'static 'speech-info-item :name "rat109r") + (new 'static 'speech-info-item :name "rat111r") + (new 'static 'speech-info-item :name "rat112r") + (new 'static 'speech-info-item :name "rat113r") + (new 'static 'speech-info-item :name "rat114r") + (new 'static 'speech-info-item :name "rat116r") + (new 'static 'speech-info-item :name "rat117r") + (new 'static 'speech-info-item :name "rat118r") + (new 'static 'speech-info-item :name "rat119r") + (new 'static 'speech-info-item :name "rat121r") + (new 'static 'speech-info-item :name "rat122r") + (new 'static 'speech-info-item :name "rat123r") + (new 'static 'speech-info-item :name "rat124r") + (new 'static 'speech-info-item :name "rat125r") + (new 'static 'speech-info-item :name "rat127r") + (new 'static 'speech-info-item :name "rat128r") + (new 'static 'speech-info-item :name "rat129r") + (new 'static 'speech-info-item :name "rat130r") + (new 'static 'speech-info-item :name "rat131r") + (new 'static 'speech-info-item :name "rat132r") + (new 'static 'speech-info-item :name "rat133r") + (new 'static 'speech-info-item :name "rat209r") + (new 'static 'speech-info-item :name "rat201r") + (new 'static 'speech-info-item :name "rat101r") + (new 'static 'speech-info-item :name "rat103r") + (new 'static 'speech-info-item :name "rat104r") + (new 'static 'speech-info-item :name "rat105r") + (new 'static 'speech-info-item :name "rat251r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat109r") + (new 'static 'speech-info-item :name "rat112r") + (new 'static 'speech-info-item :name "rat113r") + (new 'static 'speech-info-item :name "rat114r") + (new 'static 'speech-info-item :name "rat116r") + (new 'static 'speech-info-item :name "rat117r") + (new 'static 'speech-info-item :name "rat118r") + (new 'static 'speech-info-item :name "rat119r") + (new 'static 'speech-info-item :name "rat121r") + (new 'static 'speech-info-item :name "rat122r") + (new 'static 'speech-info-item :name "rat123r") + (new 'static 'speech-info-item :name "rat124r") + (new 'static 'speech-info-item :name "rat125r") + (new 'static 'speech-info-item :name "rat127r") + (new 'static 'speech-info-item :name "rat128r") + (new 'static 'speech-info-item :name "rat129r") + (new 'static 'speech-info-item :name "rat130r") + (new 'static 'speech-info-item :name "rat133r") + (new 'static 'speech-info-item :name "rat209r") + (new 'static 'speech-info-item :name "rat201r") + (new 'static 'speech-info-item :name "rat101r") + (new 'static 'speech-info-item :name "rat104r") + (new 'static 'speech-info-item :name "rat251r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat134r") + (new 'static 'speech-info-item :name "rat135r") + (new 'static 'speech-info-item :name "rat136r") + (new 'static 'speech-info-item :name "rat137r") + (new 'static 'speech-info-item :name "rat138r") + (new 'static 'speech-info-item :name "rat139r") + (new 'static 'speech-info-item :name "rat140r") + (new 'static 'speech-info-item :name "rat142r") + (new 'static 'speech-info-item :name "rat148r") + (new 'static 'speech-info-item :name "rat152r") + (new 'static 'speech-info-item :name "rat210r") + (new 'static 'speech-info-item :name "rat203r") + (new 'static 'speech-info-item :name "rat255r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat145r") + (new 'static 'speech-info-item :name "rat146r") + (new 'static 'speech-info-item :name "rat147r") + (new 'static 'speech-info-item :name "rat149r") + (new 'static 'speech-info-item :name "rat150r") + (new 'static 'speech-info-item :name "rat151r") + (new 'static 'speech-info-item :name "rat153r") + (new 'static 'speech-info-item :name "rat154r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat155r") + (new 'static 'speech-info-item :name "rat156r") + (new 'static 'speech-info-item :name "rat157r") + (new 'static 'speech-info-item :name "rat158r") + (new 'static 'speech-info-item :name "rat161r") + (new 'static 'speech-info-item :name "rat164r") + (new 'static 'speech-info-item :name "rat165r") + (new 'static 'speech-info-item :name "rat166r") + (new 'static 'speech-info-item :name "rat167r") + (new 'static 'speech-info-item :name "rat168r") + (new 'static 'speech-info-item :name "rat172r") + (new 'static 'speech-info-item :name "rat173r") + (new 'static 'speech-info-item :name "rat174r") + (new 'static 'speech-info-item :name "rat175r") + (new 'static 'speech-info-item :name "rat177r") + (new 'static 'speech-info-item :name "rat249r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat178r") + (new 'static 'speech-info-item :name "rat180r") + (new 'static 'speech-info-item :name "rat181r") + (new 'static 'speech-info-item :name "rat182r") + (new 'static 'speech-info-item :name "rat183r") + (new 'static 'speech-info-item :name "rat184r") + (new 'static 'speech-info-item :name "rat185r") + (new 'static 'speech-info-item :name "rat186r") + (new 'static 'speech-info-item :name "rat187r") + (new 'static 'speech-info-item :name "rat188r") + (new 'static 'speech-info-item :name "rat189r") + (new 'static 'speech-info-item :name "rat190r") + (new 'static 'speech-info-item :name "rat191r") + (new 'static 'speech-info-item :name "rat192r") + (new 'static 'speech-info-item :name "rat202r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat193r") + (new 'static 'speech-info-item :name "rat194r") + (new 'static 'speech-info-item :name "rat195r") + (new 'static 'speech-info-item :name "rat196r") + (new 'static 'speech-info-item :name "rat197r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "rat211r")) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat212r") + (new 'static 'speech-info-item :name "rat213r") + (new 'static 'speech-info-item :name "rat214r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat215r") + (new 'static 'speech-info-item :name "rat216r") + (new 'static 'speech-info-item :name "rat217r") + (new 'static 'speech-info-item :name "rat218r") + (new 'static 'speech-info-item :name "rat219r") + (new 'static 'speech-info-item :name "rat220r") + (new 'static 'speech-info-item :name "rat221r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat222r") + (new 'static 'speech-info-item :name "rat223r") + (new 'static 'speech-info-item :name "rat224r") + (new 'static 'speech-info-item :name "rat225r") + (new 'static 'speech-info-item :name "rat226r") + (new 'static 'speech-info-item :name "rat227r") + (new 'static 'speech-info-item :name "rat228r") + (new 'static 'speech-info-item :name "rat229r") + (new 'static 'speech-info-item :name "rat230r") + (new 'static 'speech-info-item :name "rat231r") + (new 'static 'speech-info-item :name "rat232r") + (new 'static 'speech-info-item :name "rat233r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat222r") + (new 'static 'speech-info-item :name "rat223r") + (new 'static 'speech-info-item :name "rat224r") + (new 'static 'speech-info-item :name "rat225r") + (new 'static 'speech-info-item :name "rat226r") + (new 'static 'speech-info-item :name "rat227r") + (new 'static 'speech-info-item :name "rat228r") + (new 'static 'speech-info-item :name "rat229r") + (new 'static 'speech-info-item :name "rat230r") + (new 'static 'speech-info-item :name "rat231r") + (new 'static 'speech-info-item :name "rat232r") + (new 'static 'speech-info-item :name "rat233r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat234r") + (new 'static 'speech-info-item :name "rat235r") + (new 'static 'speech-info-item :name "rat236r") + (new 'static 'speech-info-item :name "rat237r") + (new 'static 'speech-info-item :name "rat239r") + (new 'static 'speech-info-item :name "rat240r") + (new 'static 'speech-info-item :name "rat241r") + (new 'static 'speech-info-item :name "rat242r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat234r") + (new 'static 'speech-info-item :name "rat235r") + (new 'static 'speech-info-item :name "rat236r") + (new 'static 'speech-info-item :name "rat237r") + (new 'static 'speech-info-item :name "rat239r") + (new 'static 'speech-info-item :name "rat240r") + (new 'static 'speech-info-item :name "rat241r") + (new 'static 'speech-info-item :name "rat242r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat265r") + (new 'static 'speech-info-item :name "rat266r") + (new 'static 'speech-info-item :name "rat267r") + (new 'static 'speech-info-item :name "rat269r") + (new 'static 'speech-info-item :name "rat270r") + (new 'static 'speech-info-item :name "rat272r") + (new 'static 'speech-info-item :name "rat273r") + ) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 21) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat205r") + (new 'static 'speech-info-item :name "rat206r") + ) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 17 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat193r") + (new 'static 'speech-info-item :name "rat198r") + (new 'static 'speech-info-item :name "rat199r") + (new 'static 'speech-info-item :name "rat259r") + (new 'static 'speech-info-item :name "rat260r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-rayn.gc b/goal_src/jakx/engine/sound/speech/speech-rayn.gc index 5a805374b1..b00bd09316 100644 --- a/goal_src/jakx/engine/sound/speech/speech-rayn.gc +++ b/goal_src/jakx/engine/sound/speech/speech-rayn.gc @@ -7,3 +7,265 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 5 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn112r") + (new 'static 'speech-info-item :name "rayn113r") + (new 'static 'speech-info-item :name "rayn114r") + (new 'static 'speech-info-item :name "rayn115r") + (new 'static 'speech-info-item :name "rayn148r") + (new 'static 'speech-info-item :name "rayn149r") + (new 'static 'speech-info-item :name "rayn150r") + (new 'static 'speech-info-item :name "rayn151r") + (new 'static 'speech-info-item :name "rayn152r") + (new 'static 'speech-info-item :name "rayn153r") + (new 'static 'speech-info-item :name "rayn155r") + (new 'static 'speech-info-item :name "rayn156r") + (new 'static 'speech-info-item :name "rayn182r") + (new 'static 'speech-info-item :name "rayn183r") + (new 'static 'speech-info-item :name "rayn184r") + (new 'static 'speech-info-item :name "rayn185r") + (new 'static 'speech-info-item :name "rayn186r") + (new 'static 'speech-info-item :name "rayn187r") + (new 'static 'speech-info-item :name "rayn188r") + (new 'static 'speech-info-item :name "rayn189r") + (new 'static 'speech-info-item :name "rayn190r") + (new 'static 'speech-info-item :name "rayn191r") + (new 'static 'speech-info-item :name "rayn192r") + (new 'static 'speech-info-item :name "rayn193r") + (new 'static 'speech-info-item :name "rayn194r") + (new 'static 'speech-info-item :name "rayn195r") + (new 'static 'speech-info-item :name "rayn196r") + (new 'static 'speech-info-item :name "rayn197r") + (new 'static 'speech-info-item :name "rayn198r") + (new 'static 'speech-info-item :name "rayn199r") + (new 'static 'speech-info-item :name "rayn200r") + (new 'static 'speech-info-item :name "rayn201r") + (new 'static 'speech-info-item :name "rayn202r") + (new 'static 'speech-info-item :name "rayn203r") + (new 'static 'speech-info-item :name "rayn204r") + (new 'static 'speech-info-item :name "rayn205r") + (new 'static 'speech-info-item :name "rayn206r") + (new 'static 'speech-info-item :name "rayn207r") + (new 'static 'speech-info-item :name "rayn208r") + (new 'static 'speech-info-item :name "rayn209r") + (new 'static 'speech-info-item :name "rayn211r") + (new 'static 'speech-info-item :name "rayn212r") + (new 'static 'speech-info-item :name "rayn213r") + (new 'static 'speech-info-item :name "rayn214r") + (new 'static 'speech-info-item :name "rayn215r") + (new 'static 'speech-info-item :name "rayn218r") + (new 'static 'speech-info-item :name "rayn219r") + (new 'static 'speech-info-item :name "rayn135r") + (new 'static 'speech-info-item :name "rayn136r") + (new 'static 'speech-info-item :name "rayn146r") + (new 'static 'speech-info-item :name "rayn147r") + (new 'static 'speech-info-item :name "rayn175r") + (new 'static 'speech-info-item :name "rayn176r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "rayn154r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn101r") + (new 'static 'speech-info-item :name "rayn102r") + (new 'static 'speech-info-item :name "rayn103r") + (new 'static 'speech-info-item :name "rayn104r") + (new 'static 'speech-info-item :name "rayn105r") + (new 'static 'speech-info-item :name "rayn106r") + (new 'static 'speech-info-item :name "rayn107r") + (new 'static 'speech-info-item :name "rayn108r") + (new 'static 'speech-info-item :name "rayn109r") + (new 'static 'speech-info-item :name "rayn110r") + (new 'static 'speech-info-item :name "rayn111r") + (new 'static 'speech-info-item :name "rayn126r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn116r") + (new 'static 'speech-info-item :name "rayn117r") + (new 'static 'speech-info-item :name "rayn118r") + (new 'static 'speech-info-item :name "rayn119r") + (new 'static 'speech-info-item :name "rayn120r") + (new 'static 'speech-info-item :name "rayn121r") + (new 'static 'speech-info-item :name "rayn122r") + (new 'static 'speech-info-item :name "rayn123r") + (new 'static 'speech-info-item :name "rayn124r") + (new 'static 'speech-info-item :name "rayn210r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn125r") + (new 'static 'speech-info-item :name "rayn127r") + (new 'static 'speech-info-item :name "rayn128r") + (new 'static 'speech-info-item :name "rayn129r") + (new 'static 'speech-info-item :name "rayn130r") + (new 'static 'speech-info-item :name "rayn131r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn132r") + (new 'static 'speech-info-item :name "rayn133r") + (new 'static 'speech-info-item :name "rayn134r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn137r") + (new 'static 'speech-info-item :name "rayn138r") + (new 'static 'speech-info-item :name "rayn139r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn141r") + (new 'static 'speech-info-item :name "rayn142r") + (new 'static 'speech-info-item :name "rayn143r") + (new 'static 'speech-info-item :name "rayn144r") + (new 'static 'speech-info-item :name "rayn145r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "rayn157r")) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn158r") + (new 'static 'speech-info-item :name "rayn159r") + (new 'static 'speech-info-item :name "rayn160r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn161r") + (new 'static 'speech-info-item :name "rayn162r") + (new 'static 'speech-info-item :name "rayn163r") + (new 'static 'speech-info-item :name "rayn164r") + (new 'static 'speech-info-item :name "rayn165r") + (new 'static 'speech-info-item :name "rayn166r") + (new 'static 'speech-info-item :name "rayn167r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn168r") + (new 'static 'speech-info-item :name "rayn169r") + (new 'static 'speech-info-item :name "rayn170r") + (new 'static 'speech-info-item :name "rayn171r") + (new 'static 'speech-info-item :name "rayn172r") + (new 'static 'speech-info-item :name "rayn173r") + (new 'static 'speech-info-item :name "rayn174r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn178r") + (new 'static 'speech-info-item :name "rayn180r") + (new 'static 'speech-info-item :name "rayn181r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn168r") + (new 'static 'speech-info-item :name "rayn169r") + (new 'static 'speech-info-item :name "rayn170r") + (new 'static 'speech-info-item :name "rayn171r") + (new 'static 'speech-info-item :name "rayn172r") + (new 'static 'speech-info-item :name "rayn173r") + (new 'static 'speech-info-item :name "rayn174r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn178r") + (new 'static 'speech-info-item :name "rayn180r") + (new 'static 'speech-info-item :name "rayn181r") + (new 'static 'speech-info-item :name "rayn177r") + (new 'static 'speech-info-item :name "rayn179r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn117r") + (new 'static 'speech-info-item :name "rayn118r") + (new 'static 'speech-info-item :name "rayn119r") + (new 'static 'speech-info-item :name "rayn120r") + (new 'static 'speech-info-item :name "rayn121r") + (new 'static 'speech-info-item :name "rayn122r") + (new 'static 'speech-info-item :name "rayn123r") + (new 'static 'speech-info-item :name "rayn125r") + (new 'static 'speech-info-item :name "rayn127r") + (new 'static 'speech-info-item :name "rayn128r") + (new 'static 'speech-info-item :name "rayn129r") + (new 'static 'speech-info-item :name "rayn130r") + (new 'static 'speech-info-item :name "rayn135r") + (new 'static 'speech-info-item :name "rayn154r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn138r") + (new 'static 'speech-info-item :name "rayn140r") + (new 'static 'speech-info-item :name "rayn141r") + (new 'static 'speech-info-item :name "rayn144r") + (new 'static 'speech-info-item :name "rayn146r") + (new 'static 'speech-info-item :name "rayn179r") + (new 'static 'speech-info-item :name "rayn180r") + ) + ) + ) + +(set! (-> *speech-control* channels 5 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn101r") + (new 'static 'speech-info-item :name "rayn102r") + (new 'static 'speech-info-item :name "rayn103r") + (new 'static 'speech-info-item :name "rayn104r") + (new 'static 'speech-info-item :name "rayn105r") + (new 'static 'speech-info-item :name "rayn106r") + (new 'static 'speech-info-item :name "rayn108r") + (new 'static 'speech-info-item :name "rayn110r") + (new 'static 'speech-info-item :name "rayn111r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-razer.gc b/goal_src/jakx/engine/sound/speech/speech-razer.gc index aa3c9f98a5..99fda1d42f 100644 --- a/goal_src/jakx/engine/sound/speech/speech-razer.gc +++ b/goal_src/jakx/engine/sound/speech/speech-razer.gc @@ -7,3 +7,499 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 8 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz101r") + (new 'static 'speech-info-item :name "raz102r") + (new 'static 'speech-info-item :name "raz104r") + (new 'static 'speech-info-item :name "raz108r") + (new 'static 'speech-info-item :name "raz109r") + (new 'static 'speech-info-item :name "raz110r") + (new 'static 'speech-info-item :name "raz111r") + (new 'static 'speech-info-item :name "raz115r") + (new 'static 'speech-info-item :name "raz116r") + (new 'static 'speech-info-item :name "raz117r") + (new 'static 'speech-info-item :name "raz118r") + (new 'static 'speech-info-item :name "raz120r") + (new 'static 'speech-info-item :name "raz123r") + (new 'static 'speech-info-item :name "raz124r") + (new 'static 'speech-info-item :name "raz126r") + (new 'static 'speech-info-item :name "raz130r") + (new 'static 'speech-info-item :name "raz131r") + (new 'static 'speech-info-item :name "raz143r") + (new 'static 'speech-info-item :name "raz144r") + (new 'static 'speech-info-item :name "raz148r") + (new 'static 'speech-info-item :name "raz149r") + (new 'static 'speech-info-item :name "raz150r") + (new 'static 'speech-info-item :name "raz153r") + (new 'static 'speech-info-item :name "raz157r") + (new 'static 'speech-info-item :name "raz158r") + (new 'static 'speech-info-item :name "raz195r") + (new 'static 'speech-info-item :name "raz199r") + (new 'static 'speech-info-item :name "raz202r") + (new 'static 'speech-info-item :name "raz203r") + (new 'static 'speech-info-item :name "raz204r") + (new 'static 'speech-info-item :name "raz205r") + (new 'static 'speech-info-item :name "raz220r") + (new 'static 'speech-info-item :name "raz293r") + (new 'static 'speech-info-item :name "raz295r") + (new 'static 'speech-info-item :name "raz300r") + (new 'static 'speech-info-item :name "raz301r") + (new 'static 'speech-info-item :name "raz305r") + (new 'static 'speech-info-item :name "raz306r") + (new 'static 'speech-info-item :name "raz307r") + (new 'static 'speech-info-item :name "raz308r") + (new 'static 'speech-info-item :name "raz350r") + (new 'static 'speech-info-item :name "raz351r") + (new 'static 'speech-info-item :name "raz352r") + (new 'static 'speech-info-item :name "raz353r") + (new 'static 'speech-info-item :name "raz355r") + (new 'static 'speech-info-item :name "raz356r") + (new 'static 'speech-info-item :name "raz357r") + (new 'static 'speech-info-item :name "raz358r") + (new 'static 'speech-info-item :name "raz359r") + (new 'static 'speech-info-item :name "raz360r") + (new 'static 'speech-info-item :name "raz362r") + (new 'static 'speech-info-item :name "raz363r") + (new 'static 'speech-info-item :name "raz364r") + (new 'static 'speech-info-item :name "raz365r") + (new 'static 'speech-info-item :name "raz366r") + (new 'static 'speech-info-item :name "raz368r") + (new 'static 'speech-info-item :name "raz174r") + (new 'static 'speech-info-item :name "raz177r") + (new 'static 'speech-info-item :name "raz182r") + (new 'static 'speech-info-item :name "raz190r") + (new 'static 'speech-info-item :name "raz194r") + (new 'static 'speech-info-item :name "raz103r") + (new 'static 'speech-info-item :name "raz146r") + (new 'static 'speech-info-item :name "raz197r") + (new 'static 'speech-info-item :name "raz212r") + (new 'static 'speech-info-item :name "raz238r") + (new 'static 'speech-info-item :name "raz245r") + (new 'static 'speech-info-item :name "raz246r") + (new 'static 'speech-info-item :name "raz247r") + (new 'static 'speech-info-item :name "raz255r") + (new 'static 'speech-info-item :name "raz256r") + (new 'static 'speech-info-item :name "raz257r") + (new 'static 'speech-info-item :name "raz258r") + (new 'static 'speech-info-item :name "raz259r") + (new 'static 'speech-info-item :name "raz260r") + (new 'static 'speech-info-item :name "raz263r") + (new 'static 'speech-info-item :name "raz264r") + (new 'static 'speech-info-item :name "raz265r") + (new 'static 'speech-info-item :name "raz266r") + (new 'static 'speech-info-item :name "raz267r") + (new 'static 'speech-info-item :name "raz268r") + (new 'static 'speech-info-item :name "raz274r") + (new 'static 'speech-info-item :name "raz275r") + (new 'static 'speech-info-item :name "raz279r") + (new 'static 'speech-info-item :name "raz291r") + (new 'static 'speech-info-item :name "raz292r") + (new 'static 'speech-info-item :name "raz135r") + (new 'static 'speech-info-item :name "raz337r") + (new 'static 'speech-info-item :name "raz339r") + (new 'static 'speech-info-item :name "raz313r") + (new 'static 'speech-info-item :name "raz331r") + (new 'static 'speech-info-item :name "raz333r") + (new 'static 'speech-info-item :name "raz334r") + (new 'static 'speech-info-item :name "raz128r") + (new 'static 'speech-info-item :name "raz129r") + (new 'static 'speech-info-item :name "raz154r") + (new 'static 'speech-info-item :name "raz156r") + (new 'static 'speech-info-item :name "raz348r") + (new 'static 'speech-info-item :name "raz349r") + (new 'static 'speech-info-item :name "raz174r") + (new 'static 'speech-info-item :name "raz185r") + (new 'static 'speech-info-item :name "raz190r") + (new 'static 'speech-info-item :name "raz194r") + (new 'static 'speech-info-item :name "raz103r") + (new 'static 'speech-info-item :name "raz197r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz145r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz147r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz172r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz173r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz175r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz176r") + (new 'static 'speech-info-item :name "raz178r") + (new 'static 'speech-info-item :name "raz179r") + (new 'static 'speech-info-item :name "raz180r") + (new 'static 'speech-info-item :name "raz181r") + (new 'static 'speech-info-item :name "raz183r") + (new 'static 'speech-info-item :name "raz184r") + (new 'static 'speech-info-item :name "raz185r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz186r") + (new 'static 'speech-info-item :name "raz187r") + (new 'static 'speech-info-item :name "raz188r") + (new 'static 'speech-info-item :name "raz189r") + (new 'static 'speech-info-item :name "raz191r") + (new 'static 'speech-info-item :name "raz192r") + (new 'static 'speech-info-item :name "raz193r") + (new 'static 'speech-info-item :name "raz105r") + (new 'static 'speech-info-item :name "raz140r") + (new 'static 'speech-info-item :name "raz141r") + (new 'static 'speech-info-item :name "raz196r") + (new 'static 'speech-info-item :name "raz198r") + (new 'static 'speech-info-item :name "raz200r") + (new 'static 'speech-info-item :name "raz201r") + (new 'static 'speech-info-item :name "raz354r") + (new 'static 'speech-info-item :name "raz361r") + (new 'static 'speech-info-item :name "raz370r") + (new 'static 'speech-info-item :name "raz369r") + (new 'static 'speech-info-item :name "raz226r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz206r") + (new 'static 'speech-info-item :name "raz207r") + (new 'static 'speech-info-item :name "raz208r") + (new 'static 'speech-info-item :name "raz209r") + (new 'static 'speech-info-item :name "raz210r") + (new 'static 'speech-info-item :name "raz211r") + (new 'static 'speech-info-item :name "raz213r") + (new 'static 'speech-info-item :name "raz214r") + (new 'static 'speech-info-item :name "raz215r") + (new 'static 'speech-info-item :name "raz216r") + (new 'static 'speech-info-item :name "raz217r") + (new 'static 'speech-info-item :name "raz218r") + (new 'static 'speech-info-item :name "raz219r") + (new 'static 'speech-info-item :name "raz221r") + (new 'static 'speech-info-item :name "raz227r") + (new 'static 'speech-info-item :name "raz233r") + (new 'static 'speech-info-item :name "raz125r") + (new 'static 'speech-info-item :name "raz139r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz222r") + (new 'static 'speech-info-item :name "raz223r") + (new 'static 'speech-info-item :name "raz224r") + (new 'static 'speech-info-item :name "raz225r") + (new 'static 'speech-info-item :name "raz228r") + (new 'static 'speech-info-item :name "raz229r") + (new 'static 'speech-info-item :name "raz230r") + (new 'static 'speech-info-item :name "raz231r") + (new 'static 'speech-info-item :name "raz232r") + (new 'static 'speech-info-item :name "raz234r") + (new 'static 'speech-info-item :name "raz235r") + (new 'static 'speech-info-item :name "raz106r") + (new 'static 'speech-info-item :name "raz112r") + (new 'static 'speech-info-item :name "raz113r") + (new 'static 'speech-info-item :name "raz119r") + (new 'static 'speech-info-item :name "raz296r") + (new 'static 'speech-info-item :name "raz297r") + (new 'static 'speech-info-item :name "raz298r") + (new 'static 'speech-info-item :name "raz367r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz236r") + (new 'static 'speech-info-item :name "raz237r") + (new 'static 'speech-info-item :name "raz239r") + (new 'static 'speech-info-item :name "raz240r") + (new 'static 'speech-info-item :name "raz241r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz242r") + (new 'static 'speech-info-item :name "raz243r") + (new 'static 'speech-info-item :name "raz244r") + (new 'static 'speech-info-item :name "raz248r") + (new 'static 'speech-info-item :name "raz249r") + (new 'static 'speech-info-item :name "raz250r") + (new 'static 'speech-info-item :name "raz251r") + (new 'static 'speech-info-item :name "raz252r") + (new 'static 'speech-info-item :name "raz253r") + (new 'static 'speech-info-item :name "raz254r") + (new 'static 'speech-info-item :name "raz261r") + (new 'static 'speech-info-item :name "raz262r") + (new 'static 'speech-info-item :name "raz133r") + (new 'static 'speech-info-item :name "raz136r") + (new 'static 'speech-info-item :name "raz302r") + (new 'static 'speech-info-item :name "raz303r") + (new 'static 'speech-info-item :name "raz107r") + (new 'static 'speech-info-item :name "raz114r") + (new 'static 'speech-info-item :name "raz121r") + (new 'static 'speech-info-item :name "raz122r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz269r") + (new 'static 'speech-info-item :name "raz270r") + (new 'static 'speech-info-item :name "raz271r") + (new 'static 'speech-info-item :name "raz272r") + (new 'static 'speech-info-item :name "raz273r") + (new 'static 'speech-info-item :name "raz276r") + (new 'static 'speech-info-item :name "raz277r") + (new 'static 'speech-info-item :name "raz278r") + (new 'static 'speech-info-item :name "raz280r") + (new 'static 'speech-info-item :name "raz281r") + (new 'static 'speech-info-item :name "raz282r") + (new 'static 'speech-info-item :name "raz283r") + (new 'static 'speech-info-item :name "raz284r") + (new 'static 'speech-info-item :name "raz285r") + (new 'static 'speech-info-item :name "raz299r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz286r") + (new 'static 'speech-info-item :name "raz287r") + (new 'static 'speech-info-item :name "raz288r") + (new 'static 'speech-info-item :name "raz289r") + (new 'static 'speech-info-item :name "raz290r") + (new 'static 'speech-info-item :name "raz134r") + (new 'static 'speech-info-item :name "raz137r") + (new 'static 'speech-info-item :name "raz138r") + (new 'static 'speech-info-item :name "raz165r") + (new 'static 'speech-info-item :name "raz166r") + (new 'static 'speech-info-item :name "raz167r") + (new 'static 'speech-info-item :name "raz168r") + (new 'static 'speech-info-item :name "raz169r") + (new 'static 'speech-info-item :name "raz170r") + (new 'static 'speech-info-item :name "raz171r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "raz309r")) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz310r") + (new 'static 'speech-info-item :name "raz311r") + (new 'static 'speech-info-item :name "raz312r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 11) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz314r") + (new 'static 'speech-info-item :name "raz315r") + (new 'static 'speech-info-item :name "raz316r") + (new 'static 'speech-info-item :name "raz317r") + (new 'static 'speech-info-item :name "raz318r") + (new 'static 'speech-info-item :name "raz319r") + (new 'static 'speech-info-item :name "raz320r") + (new 'static 'speech-info-item :name "raz321r") + (new 'static 'speech-info-item :name "raz322r") + (new 'static 'speech-info-item :name "raz323r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz127r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz324r") + (new 'static 'speech-info-item :name "raz325r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz326r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz327r") + (new 'static 'speech-info-item :name "raz328r") + (new 'static 'speech-info-item :name "raz329r") + (new 'static 'speech-info-item :name "raz330r") + (new 'static 'speech-info-item :name "raz332r") + (new 'static 'speech-info-item :name "raz335r") + (new 'static 'speech-info-item :name "raz151r") + (new 'static 'speech-info-item :name "raz152r") + (new 'static 'speech-info-item :name "raz155r") + (new 'static 'speech-info-item :name "raz159r") + (new 'static 'speech-info-item :name "raz160r") + (new 'static 'speech-info-item :name "raz161r") + (new 'static 'speech-info-item :name "raz162r") + (new 'static 'speech-info-item :name "raz371r") + (new 'static 'speech-info-item :name "raz142r") + (new 'static 'speech-info-item :name "raz132r") + (new 'static 'speech-info-item :name "raz163r") + (new 'static 'speech-info-item :name "raz164r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz336r") + (new 'static 'speech-info-item :name "raz338r") + (new 'static 'speech-info-item :name "raz340r") + (new 'static 'speech-info-item :name "raz341r") + (new 'static 'speech-info-item :name "raz342r") + (new 'static 'speech-info-item :name "raz343r") + (new 'static 'speech-info-item :name "raz344r") + (new 'static 'speech-info-item :name "raz345r") + (new 'static 'speech-info-item :name "raz346r") + (new 'static 'speech-info-item :name "raz347r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz324r") + (new 'static 'speech-info-item :name "raz327r") + (new 'static 'speech-info-item :name "raz328r") + (new 'static 'speech-info-item :name "raz329r") + (new 'static 'speech-info-item :name "raz330r") + (new 'static 'speech-info-item :name "raz332r") + (new 'static 'speech-info-item :name "raz335r") + (new 'static 'speech-info-item :name "raz152r") + (new 'static 'speech-info-item :name "raz155r") + (new 'static 'speech-info-item :name "raz159r") + (new 'static 'speech-info-item :name "raz160r") + (new 'static 'speech-info-item :name "raz161r") + (new 'static 'speech-info-item :name "raz162r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz336r") + (new 'static 'speech-info-item :name "raz338r") + (new 'static 'speech-info-item :name "raz340r") + (new 'static 'speech-info-item :name "raz341r") + (new 'static 'speech-info-item :name "raz342r") + (new 'static 'speech-info-item :name "raz343r") + (new 'static 'speech-info-item :name "raz344r") + (new 'static 'speech-info-item :name "raz345r") + (new 'static 'speech-info-item :name "raz346r") + (new 'static 'speech-info-item :name "raz347r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz372r") + (new 'static 'speech-info-item :name "raz373r") + (new 'static 'speech-info-item :name "raz374r") + (new 'static 'speech-info-item :name "raz375r") + (new 'static 'speech-info-item :name "raz376r") + (new 'static 'speech-info-item :name "raz377r") + (new 'static 'speech-info-item :name "raz378r") + (new 'static 'speech-info-item :name "raz379r") + (new 'static 'speech-info-item :name "raz136r") + (new 'static 'speech-info-item :name "raz139r") + (new 'static 'speech-info-item :name "raz140r") + (new 'static 'speech-info-item :name "raz143r") + (new 'static 'speech-info-item :name "raz144r") + (new 'static 'speech-info-item :name "raz201r") + (new 'static 'speech-info-item :name "raz206r") + (new 'static 'speech-info-item :name "raz207r") + (new 'static 'speech-info-item :name "raz210r") + (new 'static 'speech-info-item :name "raz211r") + (new 'static 'speech-info-item :name "raz212r") + (new 'static 'speech-info-item :name "raz213r") + (new 'static 'speech-info-item :name "raz214r") + (new 'static 'speech-info-item :name "raz215r") + (new 'static 'speech-info-item :name "raz216r") + (new 'static 'speech-info-item :name "raz217r") + (new 'static 'speech-info-item :name "raz218r") + (new 'static 'speech-info-item :name "raz219r") + (new 'static 'speech-info-item :name "raz221r") + (new 'static 'speech-info-item :name "raz223r") + (new 'static 'speech-info-item :name "raz224r") + (new 'static 'speech-info-item :name "raz225r") + (new 'static 'speech-info-item :name "raz227r") + (new 'static 'speech-info-item :name "raz230r") + (new 'static 'speech-info-item :name "raz231r") + (new 'static 'speech-info-item :name "raz232r") + (new 'static 'speech-info-item :name "raz233r") + (new 'static 'speech-info-item :name "raz234r") + (new 'static 'speech-info-item :name "raz238r") + (new 'static 'speech-info-item :name "raz242r") + (new 'static 'speech-info-item :name "raz243r") + (new 'static 'speech-info-item :name "raz261r") + (new 'static 'speech-info-item :name "raz294r") + (new 'static 'speech-info-item :name "raz297r") + (new 'static 'speech-info-item :name "raz298r") + (new 'static 'speech-info-item :name "raz302r") + (new 'static 'speech-info-item :name "raz303r") + (new 'static 'speech-info-item :name "raz304r") + (new 'static 'speech-info-item :name "raz333r") + (new 'static 'speech-info-item :name "raz361r") + (new 'static 'speech-info-item :name "raz362r") + (new 'static 'speech-info-item :name "raz366r") + (new 'static 'speech-info-item :name "raz367r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz134r") + (new 'static 'speech-info-item :name "raz135r") + (new 'static 'speech-info-item :name "raz165r") + (new 'static 'speech-info-item :name "raz200r") + (new 'static 'speech-info-item :name "raz269r") + (new 'static 'speech-info-item :name "raz270r") + (new 'static 'speech-info-item :name "raz272r") + (new 'static 'speech-info-item :name "raz273r") + (new 'static 'speech-info-item :name "raz275r") + (new 'static 'speech-info-item :name "raz276r") + (new 'static 'speech-info-item :name "raz277r") + (new 'static 'speech-info-item :name "raz278r") + (new 'static 'speech-info-item :name "raz279r") + (new 'static 'speech-info-item :name "raz286r") + (new 'static 'speech-info-item :name "raz291r") + (new 'static 'speech-info-item :name "raz292r") + (new 'static 'speech-info-item :name "raz342r") + (new 'static 'speech-info-item :name "raz343r") + (new 'static 'speech-info-item :name "raz344r") + ) + ) + ) + +(set! (-> *speech-control* channels 8 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz172r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz173r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz175r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz177r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz178r") + (new 'static 'speech-info-item :name "raz179r") + (new 'static 'speech-info-item :name "raz181r") + (new 'static 'speech-info-item :name "raz184r") + (new 'static 'speech-info-item :name "raz186r") + (new 'static 'speech-info-item :name "raz188r") + (new 'static 'speech-info-item :name "raz189r") + (new 'static 'speech-info-item :name "raz192r") + (new 'static 'speech-info-item :name "raz193r") + (new 'static 'speech-info-item :name "raz140r") + (new 'static 'speech-info-item :name "raz141r") + (new 'static 'speech-info-item :name "raz196r") + (new 'static 'speech-info-item :name "raz198r") + (new 'static 'speech-info-item :name "raz200r") + (new 'static 'speech-info-item :name "raz201r") + (new 'static 'speech-info-item :name "raz354r") + (new 'static 'speech-info-item :name "raz361r") + (new 'static 'speech-info-item :name "raz370r") + (new 'static 'speech-info-item :name "raz369r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-sig.gc b/goal_src/jakx/engine/sound/speech/speech-sig.gc index c2ff56a9c3..d6ca98f7b4 100644 --- a/goal_src/jakx/engine/sound/speech/speech-sig.gc +++ b/goal_src/jakx/engine/sound/speech/speech-sig.gc @@ -7,3 +7,375 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 10 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig135r") + (new 'static 'speech-info-item :name "sig140r") + (new 'static 'speech-info-item :name "sig143r") + (new 'static 'speech-info-item :name "sig145r") + (new 'static 'speech-info-item :name "sig154r") + (new 'static 'speech-info-item :name "sig155r") + (new 'static 'speech-info-item :name "sig212r") + (new 'static 'speech-info-item :name "sig214r") + (new 'static 'speech-info-item :name "sig215r") + (new 'static 'speech-info-item :name "sig216r") + (new 'static 'speech-info-item :name "sig217r") + (new 'static 'speech-info-item :name "sig219r") + (new 'static 'speech-info-item :name "sig220r") + (new 'static 'speech-info-item :name "sig259r") + (new 'static 'speech-info-item :name "sig260r") + (new 'static 'speech-info-item :name "sig261r") + (new 'static 'speech-info-item :name "sig262r") + (new 'static 'speech-info-item :name "sig263r") + (new 'static 'speech-info-item :name "sig264r") + (new 'static 'speech-info-item :name "sig266r") + (new 'static 'speech-info-item :name "sig267r") + (new 'static 'speech-info-item :name "sig268r") + (new 'static 'speech-info-item :name "sig269r") + (new 'static 'speech-info-item :name "sig270r") + (new 'static 'speech-info-item :name "sig271r") + (new 'static 'speech-info-item :name "sig272r") + (new 'static 'speech-info-item :name "sig273r") + (new 'static 'speech-info-item :name "sig274r") + (new 'static 'speech-info-item :name "sig275r") + (new 'static 'speech-info-item :name "sig276r") + (new 'static 'speech-info-item :name "sig112r") + (new 'static 'speech-info-item :name "sig113r") + (new 'static 'speech-info-item :name "sig130r") + (new 'static 'speech-info-item :name "sig131r") + (new 'static 'speech-info-item :name "sig133r") + (new 'static 'speech-info-item :name "sig136r") + (new 'static 'speech-info-item :name "sig138r") + (new 'static 'speech-info-item :name "sig157r") + (new 'static 'speech-info-item :name "sig165r") + (new 'static 'speech-info-item :name "sig166r") + (new 'static 'speech-info-item :name "sig169r") + (new 'static 'speech-info-item :name "sig170r") + (new 'static 'speech-info-item :name "sig177r") + (new 'static 'speech-info-item :name "sig178r") + (new 'static 'speech-info-item :name "sig181r") + (new 'static 'speech-info-item :name "sig182r") + (new 'static 'speech-info-item :name "sig183r") + (new 'static 'speech-info-item :name "sig184r") + (new 'static 'speech-info-item :name "sig185r") + (new 'static 'speech-info-item :name "sig189r") + (new 'static 'speech-info-item :name "sig195r") + (new 'static 'speech-info-item :name "sig196r") + (new 'static 'speech-info-item :name "sig239r") + (new 'static 'speech-info-item :name "sig243r") + (new 'static 'speech-info-item :name "sig229r") + (new 'static 'speech-info-item :name "sig108r") + (new 'static 'speech-info-item :name "sig112r") + (new 'static 'speech-info-item :name "sig113r") + (new 'static 'speech-info-item :name "sig247r") + (new 'static 'speech-info-item :name "sig248r") + (new 'static 'speech-info-item :name "sig253r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "sig218r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig101r") + (new 'static 'speech-info-item :name "sig102r") + (new 'static 'speech-info-item :name "sig103r") + (new 'static 'speech-info-item :name "sig104r") + (new 'static 'speech-info-item :name "sig105r") + (new 'static 'speech-info-item :name "sig106r") + (new 'static 'speech-info-item :name "sig107r") + (new 'static 'speech-info-item :name "sig108r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "sig109r") + (new 'static 'speech-info-item :name "sig110r") + (new 'static 'speech-info-item :name "sig111r") + (new 'static 'speech-info-item :name "sig114r") + (new 'static 'speech-info-item :name "sig115r") + (new 'static 'speech-info-item :name "sig116r") + (new 'static 'speech-info-item :name "sig117r") + (new 'static 'speech-info-item :name "sig118r") + (new 'static 'speech-info-item :name "sig119r") + (new 'static 'speech-info-item :name "sig120r") + (new 'static 'speech-info-item :name "sig121r") + (new 'static 'speech-info-item :name "sig122r") + (new 'static 'speech-info-item :name "sig258r") + (new 'static 'speech-info-item :name "sig265r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig123r") + (new 'static 'speech-info-item :name "sig124r") + (new 'static 'speech-info-item :name "sig125r") + (new 'static 'speech-info-item :name "sig126r") + (new 'static 'speech-info-item :name "sig127r") + (new 'static 'speech-info-item :name "sig128r") + (new 'static 'speech-info-item :name "sig129r") + (new 'static 'speech-info-item :name "sig132r") + (new 'static 'speech-info-item :name "sig134r") + (new 'static 'speech-info-item :name "sig137r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig139r") + (new 'static 'speech-info-item :name "sig141r") + (new 'static 'speech-info-item :name "sig142r") + (new 'static 'speech-info-item :name "sig144r") + (new 'static 'speech-info-item :name "sig146r") + (new 'static 'speech-info-item :name "sig147r") + (new 'static 'speech-info-item :name "sig148r") + (new 'static 'speech-info-item :name "sig149r") + (new 'static 'speech-info-item :name "sig150r") + (new 'static 'speech-info-item :name "sig151r") + (new 'static 'speech-info-item :name "sig152r") + (new 'static 'speech-info-item :name "sig153r") + (new 'static 'speech-info-item :name "sig156r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig158r") + (new 'static 'speech-info-item :name "sig159r") + (new 'static 'speech-info-item :name "sig160r") + (new 'static 'speech-info-item :name "sig161r") + (new 'static 'speech-info-item :name "sig162r") + (new 'static 'speech-info-item :name "sig163r") + (new 'static 'speech-info-item :name "sig164r") + (new 'static 'speech-info-item :name "sig167r") + (new 'static 'speech-info-item :name "sig168r") + (new 'static 'speech-info-item :name "sig171r") + (new 'static 'speech-info-item :name "sig172r") + (new 'static 'speech-info-item :name "sig173r") + (new 'static 'speech-info-item :name "sig174r") + (new 'static 'speech-info-item :name "sig175r") + (new 'static 'speech-info-item :name "sig176r") + (new 'static 'speech-info-item :name "sig179r") + (new 'static 'speech-info-item :name "sig180r") + (new 'static 'speech-info-item :name "sig186r") + (new 'static 'speech-info-item :name "sig187r") + (new 'static 'speech-info-item :name "sig188r") + (new 'static 'speech-info-item :name "sig213r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig190r") + (new 'static 'speech-info-item :name "sig191r") + (new 'static 'speech-info-item :name "sig192r") + (new 'static 'speech-info-item :name "sig193r") + (new 'static 'speech-info-item :name "sig194r") + (new 'static 'speech-info-item :name "sig197r") + (new 'static 'speech-info-item :name "sig198r") + (new 'static 'speech-info-item :name "sig199r") + (new 'static 'speech-info-item :name "sig200r") + (new 'static 'speech-info-item :name "sig202r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig203r") + (new 'static 'speech-info-item :name "sig204r") + (new 'static 'speech-info-item :name "sig205r") + (new 'static 'speech-info-item :name "sig206r") + (new 'static 'speech-info-item :name "sig207r") + (new 'static 'speech-info-item :name "sig208r") + (new 'static 'speech-info-item :name "sig211r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "sig221r")) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig222r") + (new 'static 'speech-info-item :name "sig223r") + (new 'static 'speech-info-item :name "sig224r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig225r") + (new 'static 'speech-info-item :name "sig226r") + (new 'static 'speech-info-item :name "sig227r") + (new 'static 'speech-info-item :name "sig228r") + (new 'static 'speech-info-item :name "sig229r") + (new 'static 'speech-info-item :name "sig230r") + (new 'static 'speech-info-item :name "sig231r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig232r") + (new 'static 'speech-info-item :name "sig233r") + (new 'static 'speech-info-item :name "sig234r") + (new 'static 'speech-info-item :name "sig235r") + (new 'static 'speech-info-item :name "sig236r") + (new 'static 'speech-info-item :name "sig237r") + (new 'static 'speech-info-item :name "sig238r") + (new 'static 'speech-info-item :name "sig240r") + (new 'static 'speech-info-item :name "sig241r") + (new 'static 'speech-info-item :name "sig242r") + (new 'static 'speech-info-item :name "sig245r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig246r") + (new 'static 'speech-info-item :name "sig249r") + (new 'static 'speech-info-item :name "sig250r") + (new 'static 'speech-info-item :name "sig251r") + (new 'static 'speech-info-item :name "sig252r") + (new 'static 'speech-info-item :name "sig254r") + (new 'static 'speech-info-item :name "sig255r") + (new 'static 'speech-info-item :name "sig256r") + (new 'static 'speech-info-item :name "sig257r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig232r") + (new 'static 'speech-info-item :name "sig233r") + (new 'static 'speech-info-item :name "sig234r") + (new 'static 'speech-info-item :name "sig235r") + (new 'static 'speech-info-item :name "sig236r") + (new 'static 'speech-info-item :name "sig237r") + (new 'static 'speech-info-item :name "sig238r") + (new 'static 'speech-info-item :name "sig240r") + (new 'static 'speech-info-item :name "sig241r") + (new 'static 'speech-info-item :name "sig242r") + (new 'static 'speech-info-item :name "sig245r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig246r") + (new 'static 'speech-info-item :name "sig249r") + (new 'static 'speech-info-item :name "sig250r") + (new 'static 'speech-info-item :name "sig251r") + (new 'static 'speech-info-item :name "sig252r") + (new 'static 'speech-info-item :name "sig254r") + (new 'static 'speech-info-item :name "sig255r") + (new 'static 'speech-info-item :name "sig256r") + (new 'static 'speech-info-item :name "sig257r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig278r") + (new 'static 'speech-info-item :name "sig279r") + (new 'static 'speech-info-item :name "sig280r") + (new 'static 'speech-info-item :name "sig281r") + (new 'static 'speech-info-item :name "sig282r") + (new 'static 'speech-info-item :name "sig123r") + (new 'static 'speech-info-item :name "sig125r") + (new 'static 'speech-info-item :name "sig127r") + (new 'static 'speech-info-item :name "sig128r") + (new 'static 'speech-info-item :name "sig132r") + (new 'static 'speech-info-item :name "sig133r") + (new 'static 'speech-info-item :name "sig134r") + (new 'static 'speech-info-item :name "sig136r") + (new 'static 'speech-info-item :name "sig137r") + (new 'static 'speech-info-item :name "sig140r") + (new 'static 'speech-info-item :name "sig141r") + (new 'static 'speech-info-item :name "sig145r") + (new 'static 'speech-info-item :name "sig148r") + (new 'static 'speech-info-item :name "sig149r") + (new 'static 'speech-info-item :name "sig151r") + (new 'static 'speech-info-item :name "sig152r") + (new 'static 'speech-info-item :name "sig155r") + (new 'static 'speech-info-item :name "sig156r") + (new 'static 'speech-info-item :name "sig159r") + (new 'static 'speech-info-item :name "sig176r") + (new 'static 'speech-info-item :name "sig179r") + (new 'static 'speech-info-item :name "sig218r") + (new 'static 'speech-info-item :name "sig244r") + (new 'static 'speech-info-item :name "sig265r") + (new 'static 'speech-info-item :name "sig277r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig129r") + (new 'static 'speech-info-item :name "sig130r") + (new 'static 'speech-info-item :name "sig131r") + (new 'static 'speech-info-item :name "sig189r") + (new 'static 'speech-info-item :name "sig191r") + (new 'static 'speech-info-item :name "sig192r") + (new 'static 'speech-info-item :name "sig193r") + (new 'static 'speech-info-item :name "sig195r") + (new 'static 'speech-info-item :name "sig197r") + (new 'static 'speech-info-item :name "sig198r") + (new 'static 'speech-info-item :name "sig199r") + (new 'static 'speech-info-item :name "sig200r") + (new 'static 'speech-info-item :name "sig201r") + (new 'static 'speech-info-item :name "sig203r") + (new 'static 'speech-info-item :name "sig208r") + (new 'static 'speech-info-item :name "sig209r") + (new 'static 'speech-info-item :name "sig210r") + (new 'static 'speech-info-item :name "sig247r") + (new 'static 'speech-info-item :name "sig248r") + (new 'static 'speech-info-item :name "sig253r") + ) + ) + ) + +(set! (-> *speech-control* channels 10 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig101r") + (new 'static 'speech-info-item :name "sig102r") + (new 'static 'speech-info-item :name "sig104r") + (new 'static 'speech-info-item :name "sig105r") + (new 'static 'speech-info-item :name "sig106r") + (new 'static 'speech-info-item :name "sig107r") + (new 'static 'speech-info-item :name "sig109r") + (new 'static 'speech-info-item :name "sig111r") + (new 'static 'speech-info-item :name "sig114r") + (new 'static 'speech-info-item :name "sig115r") + (new 'static 'speech-info-item :name "sig116r") + (new 'static 'speech-info-item :name "sig117r") + (new 'static 'speech-info-item :name "sig118r") + (new 'static 'speech-info-item :name "sig119r") + (new 'static 'speech-info-item :name "sig120r") + (new 'static 'speech-info-item :name "sig121r") + (new 'static 'speech-info-item :name "sig122r") + (new 'static 'speech-info-item :name "sig258r") + (new 'static 'speech-info-item :name "sig265r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-taryn.gc b/goal_src/jakx/engine/sound/speech/speech-taryn.gc index d6c500f1f9..b71899f5a7 100644 --- a/goal_src/jakx/engine/sound/speech/speech-taryn.gc +++ b/goal_src/jakx/engine/sound/speech/speech-taryn.gc @@ -7,3 +7,320 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 18 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar102r") + (new 'static 'speech-info-item :name "tar103r") + (new 'static 'speech-info-item :name "tar141r") + (new 'static 'speech-info-item :name "tar197r") + (new 'static 'speech-info-item :name "tar199r") + (new 'static 'speech-info-item :name "tar201r") + (new 'static 'speech-info-item :name "tar203r") + (new 'static 'speech-info-item :name "tar204r") + (new 'static 'speech-info-item :name "tar205r") + (new 'static 'speech-info-item :name "tar236r") + (new 'static 'speech-info-item :name "tar237r") + (new 'static 'speech-info-item :name "tar238r") + (new 'static 'speech-info-item :name "tar239r") + (new 'static 'speech-info-item :name "tar240r") + (new 'static 'speech-info-item :name "tar241r") + (new 'static 'speech-info-item :name "tar243r") + (new 'static 'speech-info-item :name "tar244r") + (new 'static 'speech-info-item :name "tar245r") + (new 'static 'speech-info-item :name "tar246r") + (new 'static 'speech-info-item :name "tar247r") + (new 'static 'speech-info-item :name "tar248r") + (new 'static 'speech-info-item :name "tar249r") + (new 'static 'speech-info-item :name "tar251r") + (new 'static 'speech-info-item :name "tar252r") + (new 'static 'speech-info-item :name "tar253r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar101r") + (new 'static 'speech-info-item :name "tar104r") + (new 'static 'speech-info-item :name "tar105r") + (new 'static 'speech-info-item :name "tar106r") + (new 'static 'speech-info-item :name "tar107r") + (new 'static 'speech-info-item :name "tar108r") + (new 'static 'speech-info-item :name "tar109r") + (new 'static 'speech-info-item :name "tar110r") + (new 'static 'speech-info-item :name "tar111r") + (new 'static 'speech-info-item :name "tar112r") + (new 'static 'speech-info-item :name "tar113r") + (new 'static 'speech-info-item :name "tar114r") + (new 'static 'speech-info-item :name "tar115r") + (new 'static 'speech-info-item :name "tar116r") + (new 'static 'speech-info-item :name "tar117r") + (new 'static 'speech-info-item :name "tar118r") + (new 'static 'speech-info-item :name "tar119r") + (new 'static 'speech-info-item :name "tar120r") + (new 'static 'speech-info-item :name "tar121r") + (new 'static 'speech-info-item :name "tar122r") + (new 'static 'speech-info-item :name "tar123r") + (new 'static 'speech-info-item :name "tar124r") + (new 'static 'speech-info-item :name "tar125r") + (new 'static 'speech-info-item :name "tar126r") + (new 'static 'speech-info-item :name "tar127r") + (new 'static 'speech-info-item :name "tar128r") + (new 'static 'speech-info-item :name "tar129r") + (new 'static 'speech-info-item :name "tar130r") + (new 'static 'speech-info-item :name "tar131r") + (new 'static 'speech-info-item :name "tar132r") + (new 'static 'speech-info-item :name "tar133r") + (new 'static 'speech-info-item :name "tar198r") + (new 'static 'speech-info-item :name "tar242r") + (new 'static 'speech-info-item :name "tar146r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar101r") + (new 'static 'speech-info-item :name "tar105r") + (new 'static 'speech-info-item :name "tar106r") + (new 'static 'speech-info-item :name "tar108r") + (new 'static 'speech-info-item :name "tar109r") + (new 'static 'speech-info-item :name "tar110r") + (new 'static 'speech-info-item :name "tar111r") + (new 'static 'speech-info-item :name "tar113r") + (new 'static 'speech-info-item :name "tar114r") + (new 'static 'speech-info-item :name "tar115r") + (new 'static 'speech-info-item :name "tar116r") + (new 'static 'speech-info-item :name "tar117r") + (new 'static 'speech-info-item :name "tar118r") + (new 'static 'speech-info-item :name "tar119r") + (new 'static 'speech-info-item :name "tar120r") + (new 'static 'speech-info-item :name "tar121r") + (new 'static 'speech-info-item :name "tar122r") + (new 'static 'speech-info-item :name "tar123r") + (new 'static 'speech-info-item :name "tar124r") + (new 'static 'speech-info-item :name "tar125r") + (new 'static 'speech-info-item :name "tar126r") + (new 'static 'speech-info-item :name "tar127r") + (new 'static 'speech-info-item :name "tar128r") + (new 'static 'speech-info-item :name "tar130r") + (new 'static 'speech-info-item :name "tar131r") + (new 'static 'speech-info-item :name "tar132r") + (new 'static 'speech-info-item :name "tar133r") + (new 'static 'speech-info-item :name "tar198r") + (new 'static 'speech-info-item :name "tar242r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar134r") + (new 'static 'speech-info-item :name "tar135r") + (new 'static 'speech-info-item :name "tar136r") + (new 'static 'speech-info-item :name "tar137r") + (new 'static 'speech-info-item :name "tar138r") + (new 'static 'speech-info-item :name "tar139r") + (new 'static 'speech-info-item :name "tar140r") + (new 'static 'speech-info-item :name "tar142r") + (new 'static 'speech-info-item :name "tar200r") + (new 'static 'speech-info-item :name "tar206r") + (new 'static 'speech-info-item :name "tar150r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar143r") + (new 'static 'speech-info-item :name "tar144r") + (new 'static 'speech-info-item :name "tar145r") + (new 'static 'speech-info-item :name "tar147r") + (new 'static 'speech-info-item :name "tar148r") + (new 'static 'speech-info-item :name "tar149r") + (new 'static 'speech-info-item :name "tar151r") + (new 'static 'speech-info-item :name "tar152r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar153r") + (new 'static 'speech-info-item :name "tar154r") + (new 'static 'speech-info-item :name "tar155r") + (new 'static 'speech-info-item :name "tar156r") + (new 'static 'speech-info-item :name "tar157r") + (new 'static 'speech-info-item :name "tar158r") + (new 'static 'speech-info-item :name "tar159r") + (new 'static 'speech-info-item :name "tar160r") + (new 'static 'speech-info-item :name "tar161r") + (new 'static 'speech-info-item :name "tar162r") + (new 'static 'speech-info-item :name "tar163r") + (new 'static 'speech-info-item :name "tar164r") + (new 'static 'speech-info-item :name "tar165r") + (new 'static 'speech-info-item :name "tar166r") + (new 'static 'speech-info-item :name "tar167r") + (new 'static 'speech-info-item :name "tar168r") + (new 'static 'speech-info-item :name "tar169r") + (new 'static 'speech-info-item :name "tar170r") + (new 'static 'speech-info-item :name "tar171r") + (new 'static 'speech-info-item :name "tar172r") + (new 'static 'speech-info-item :name "tar173r") + (new 'static 'speech-info-item :name "tar174r") + (new 'static 'speech-info-item :name "tar175r") + (new 'static 'speech-info-item :name "tar176r") + (new 'static 'speech-info-item :name "tar177r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar178r") + (new 'static 'speech-info-item :name "tar179r") + (new 'static 'speech-info-item :name "tar180r") + (new 'static 'speech-info-item :name "tar181r") + (new 'static 'speech-info-item :name "tar182r") + (new 'static 'speech-info-item :name "tar183r") + (new 'static 'speech-info-item :name "tar184r") + (new 'static 'speech-info-item :name "tar185r") + (new 'static 'speech-info-item :name "tar186r") + (new 'static 'speech-info-item :name "tar187r") + (new 'static 'speech-info-item :name "tar188r") + (new 'static 'speech-info-item :name "tar189r") + (new 'static 'speech-info-item :name "tar190r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar191r") + (new 'static 'speech-info-item :name "tar192r") + (new 'static 'speech-info-item :name "tar193r") + (new 'static 'speech-info-item :name "tar194r") + (new 'static 'speech-info-item :name "tar196r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "tar207r")) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar208r") + (new 'static 'speech-info-item :name "tar209r") + (new 'static 'speech-info-item :name "tar210r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar211r") + (new 'static 'speech-info-item :name "tar212r") + (new 'static 'speech-info-item :name "tar213r") + (new 'static 'speech-info-item :name "tar214r") + (new 'static 'speech-info-item :name "tar215r") + (new 'static 'speech-info-item :name "tar216r") + (new 'static 'speech-info-item :name "tar217r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar218r") + (new 'static 'speech-info-item :name "tar219r") + (new 'static 'speech-info-item :name "tar220r") + (new 'static 'speech-info-item :name "tar221r") + (new 'static 'speech-info-item :name "tar222r") + (new 'static 'speech-info-item :name "tar223r") + (new 'static 'speech-info-item :name "tar224r") + (new 'static 'speech-info-item :name "tar225r") + (new 'static 'speech-info-item :name "tar226r") + (new 'static 'speech-info-item :name "tar227r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar218r") + (new 'static 'speech-info-item :name "tar219r") + (new 'static 'speech-info-item :name "tar220r") + (new 'static 'speech-info-item :name "tar221r") + (new 'static 'speech-info-item :name "tar222r") + (new 'static 'speech-info-item :name "tar223r") + (new 'static 'speech-info-item :name "tar224r") + (new 'static 'speech-info-item :name "tar225r") + (new 'static 'speech-info-item :name "tar226r") + (new 'static 'speech-info-item :name "tar227r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar228r") + (new 'static 'speech-info-item :name "tar229r") + (new 'static 'speech-info-item :name "tar230r") + (new 'static 'speech-info-item :name "tar231r") + (new 'static 'speech-info-item :name "tar232r") + (new 'static 'speech-info-item :name "tar233r") + (new 'static 'speech-info-item :name "tar234r") + (new 'static 'speech-info-item :name "tar235r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar228r") + (new 'static 'speech-info-item :name "tar229r") + (new 'static 'speech-info-item :name "tar230r") + (new 'static 'speech-info-item :name "tar231r") + (new 'static 'speech-info-item :name "tar232r") + (new 'static 'speech-info-item :name "tar233r") + (new 'static 'speech-info-item :name "tar234r") + (new 'static 'speech-info-item :name "tar235r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar254r") + (new 'static 'speech-info-item :name "tar255r") + (new 'static 'speech-info-item :name "tar256r") + (new 'static 'speech-info-item :name "tar257r") + (new 'static 'speech-info-item :name "tar258r") + (new 'static 'speech-info-item :name "tar259r") + (new 'static 'speech-info-item :name "tar260r") + (new 'static 'speech-info-item :name "tar261r") + (new 'static 'speech-info-item :name "tar262r") + ) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "tar202r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 18 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar191r") + (new 'static 'speech-info-item :name "tar250r") + (new 'static 'speech-info-item :name "tar142r") + (new 'static 'speech-info-item :name "tar195r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-thuga.gc b/goal_src/jakx/engine/sound/speech/speech-thuga.gc index 19ac780265..ed48140220 100644 --- a/goal_src/jakx/engine/sound/speech/speech-thuga.gc +++ b/goal_src/jakx/engine/sound/speech/speech-thuga.gc @@ -7,3 +7,318 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 14 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb199r") + (new 'static 'speech-info-item :name "thgb200r") + (new 'static 'speech-info-item :name "thgb202r") + (new 'static 'speech-info-item :name "thgb203r") + (new 'static 'speech-info-item :name "thgb235r") + (new 'static 'speech-info-item :name "thgb236r") + (new 'static 'speech-info-item :name "thgb237r") + (new 'static 'speech-info-item :name "thgb238r") + (new 'static 'speech-info-item :name "thgb239r") + (new 'static 'speech-info-item :name "thgb241r") + (new 'static 'speech-info-item :name "thgb242r") + (new 'static 'speech-info-item :name "thgb244r") + (new 'static 'speech-info-item :name "thgb245r") + (new 'static 'speech-info-item :name "thgb246r") + (new 'static 'speech-info-item :name "thgb247r") + (new 'static 'speech-info-item :name "thgb248r") + (new 'static 'speech-info-item :name "thgb249r") + (new 'static 'speech-info-item :name "thgb250r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb101r") + (new 'static 'speech-info-item :name "thgb102r") + (new 'static 'speech-info-item :name "thgb103r") + (new 'static 'speech-info-item :name "thgb104r") + (new 'static 'speech-info-item :name "thgb105r") + (new 'static 'speech-info-item :name "thgb106r") + (new 'static 'speech-info-item :name "thgb107r") + (new 'static 'speech-info-item :name "thgb108r") + (new 'static 'speech-info-item :name "thgb109r") + (new 'static 'speech-info-item :name "thgb110r") + (new 'static 'speech-info-item :name "thgb111r") + (new 'static 'speech-info-item :name "thgb112r") + (new 'static 'speech-info-item :name "thgb113r") + (new 'static 'speech-info-item :name "thgb114r") + (new 'static 'speech-info-item :name "thgb115r") + (new 'static 'speech-info-item :name "thgb116r") + (new 'static 'speech-info-item :name "thgb117r") + (new 'static 'speech-info-item :name "thgb118r") + (new 'static 'speech-info-item :name "thgb119r") + (new 'static 'speech-info-item :name "thgb120r") + (new 'static 'speech-info-item :name "thgb121r") + (new 'static 'speech-info-item :name "thgb122r") + (new 'static 'speech-info-item :name "thgb123r") + (new 'static 'speech-info-item :name "thgb124r") + (new 'static 'speech-info-item :name "thgb125r") + (new 'static 'speech-info-item :name "thgb126r") + (new 'static 'speech-info-item :name "thgb127r") + (new 'static 'speech-info-item :name "thgb128r") + (new 'static 'speech-info-item :name "thgb129r") + (new 'static 'speech-info-item :name "thgb130r") + (new 'static 'speech-info-item :name "thgb131r") + (new 'static 'speech-info-item :name "thgb197r") + (new 'static 'speech-info-item :name "thgb240r") + (new 'static 'speech-info-item :name "thgb145r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb102r") + (new 'static 'speech-info-item :name "thgb103r") + (new 'static 'speech-info-item :name "thgb105r") + (new 'static 'speech-info-item :name "thgb106r") + (new 'static 'speech-info-item :name "thgb107r") + (new 'static 'speech-info-item :name "thgb108r") + (new 'static 'speech-info-item :name "thgb109r") + (new 'static 'speech-info-item :name "thgb110r") + (new 'static 'speech-info-item :name "thgb111r") + (new 'static 'speech-info-item :name "thgb112r") + (new 'static 'speech-info-item :name "thgb113r") + (new 'static 'speech-info-item :name "thgb114r") + (new 'static 'speech-info-item :name "thgb115r") + (new 'static 'speech-info-item :name "thgb116r") + (new 'static 'speech-info-item :name "thgb117r") + (new 'static 'speech-info-item :name "thgb118r") + (new 'static 'speech-info-item :name "thgb119r") + (new 'static 'speech-info-item :name "thgb120r") + (new 'static 'speech-info-item :name "thgb121r") + (new 'static 'speech-info-item :name "thgb122r") + (new 'static 'speech-info-item :name "thgb123r") + (new 'static 'speech-info-item :name "thgb124r") + (new 'static 'speech-info-item :name "thgb125r") + (new 'static 'speech-info-item :name "thgb126r") + (new 'static 'speech-info-item :name "thgb128r") + (new 'static 'speech-info-item :name "thgb129r") + (new 'static 'speech-info-item :name "thgb130r") + (new 'static 'speech-info-item :name "thgb131r") + (new 'static 'speech-info-item :name "thgb197r") + (new 'static 'speech-info-item :name "thgb240r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb132r") + (new 'static 'speech-info-item :name "thgb133r") + (new 'static 'speech-info-item :name "thgb134r") + (new 'static 'speech-info-item :name "thgb135r") + (new 'static 'speech-info-item :name "thgb136r") + (new 'static 'speech-info-item :name "thgb137r") + (new 'static 'speech-info-item :name "thgb138r") + (new 'static 'speech-info-item :name "thgb140r") + (new 'static 'speech-info-item :name "thgb141r") + (new 'static 'speech-info-item :name "thgb243r") + (new 'static 'speech-info-item :name "thgb149r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb142r") + (new 'static 'speech-info-item :name "thgb143r") + (new 'static 'speech-info-item :name "thgb144r") + (new 'static 'speech-info-item :name "thgb146r") + (new 'static 'speech-info-item :name "thgb147r") + (new 'static 'speech-info-item :name "thgb148r") + (new 'static 'speech-info-item :name "thgb150r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb151r") + (new 'static 'speech-info-item :name "thgb152r") + (new 'static 'speech-info-item :name "thgb153r") + (new 'static 'speech-info-item :name "thgb154r") + (new 'static 'speech-info-item :name "thgb155r") + (new 'static 'speech-info-item :name "thgb156r") + (new 'static 'speech-info-item :name "thgb157r") + (new 'static 'speech-info-item :name "thgb158r") + (new 'static 'speech-info-item :name "thgb159r") + (new 'static 'speech-info-item :name "thgb160r") + (new 'static 'speech-info-item :name "thgb161r") + (new 'static 'speech-info-item :name "thgb162r") + (new 'static 'speech-info-item :name "thgb163r") + (new 'static 'speech-info-item :name "thgb164r") + (new 'static 'speech-info-item :name "thgb165r") + (new 'static 'speech-info-item :name "thgb166r") + (new 'static 'speech-info-item :name "thgb167r") + (new 'static 'speech-info-item :name "thgb168r") + (new 'static 'speech-info-item :name "thgb169r") + (new 'static 'speech-info-item :name "thgb170r") + (new 'static 'speech-info-item :name "thgb171r") + (new 'static 'speech-info-item :name "thgb172r") + (new 'static 'speech-info-item :name "thgb173r") + (new 'static 'speech-info-item :name "thgb174r") + (new 'static 'speech-info-item :name "thgb175r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb176r") + (new 'static 'speech-info-item :name "thgb177r") + (new 'static 'speech-info-item :name "thgb178r") + (new 'static 'speech-info-item :name "thgb179r") + (new 'static 'speech-info-item :name "thgb180r") + (new 'static 'speech-info-item :name "thgb181r") + (new 'static 'speech-info-item :name "thgb182r") + (new 'static 'speech-info-item :name "thgb183r") + (new 'static 'speech-info-item :name "thgb184r") + (new 'static 'speech-info-item :name "thgb185r") + (new 'static 'speech-info-item :name "thgb186r") + (new 'static 'speech-info-item :name "thgb187r") + (new 'static 'speech-info-item :name "thgb198r") + (new 'static 'speech-info-item :name "thgb188r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb189r") + (new 'static 'speech-info-item :name "thgb190r") + (new 'static 'speech-info-item :name "thgb191r") + (new 'static 'speech-info-item :name "thgb192r") + (new 'static 'speech-info-item :name "thgb195r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgb204r")) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb205r") + (new 'static 'speech-info-item :name "thgb206r") + (new 'static 'speech-info-item :name "thgb207r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb208r") + (new 'static 'speech-info-item :name "thgb209r") + (new 'static 'speech-info-item :name "thgb210r") + (new 'static 'speech-info-item :name "thgb211r") + (new 'static 'speech-info-item :name "thgb212r") + (new 'static 'speech-info-item :name "thgb213r") + (new 'static 'speech-info-item :name "thgb214r") + (new 'static 'speech-info-item :name "thgb215r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb216r") + (new 'static 'speech-info-item :name "thgb217r") + (new 'static 'speech-info-item :name "thgb218r") + (new 'static 'speech-info-item :name "thgb219r") + (new 'static 'speech-info-item :name "thgb220r") + (new 'static 'speech-info-item :name "thgb221r") + (new 'static 'speech-info-item :name "thgb222r") + (new 'static 'speech-info-item :name "thgb223r") + (new 'static 'speech-info-item :name "thgb224r") + (new 'static 'speech-info-item :name "thgb225r") + (new 'static 'speech-info-item :name "thgb226r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb216r") + (new 'static 'speech-info-item :name "thgb217r") + (new 'static 'speech-info-item :name "thgb218r") + (new 'static 'speech-info-item :name "thgb219r") + (new 'static 'speech-info-item :name "thgb220r") + (new 'static 'speech-info-item :name "thgb221r") + (new 'static 'speech-info-item :name "thgb222r") + (new 'static 'speech-info-item :name "thgb223r") + (new 'static 'speech-info-item :name "thgb224r") + (new 'static 'speech-info-item :name "thgb225r") + (new 'static 'speech-info-item :name "thgb226r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb227r") + (new 'static 'speech-info-item :name "thgb228r") + (new 'static 'speech-info-item :name "thgb229r") + (new 'static 'speech-info-item :name "thgb230r") + (new 'static 'speech-info-item :name "thgb231r") + (new 'static 'speech-info-item :name "thgb232r") + (new 'static 'speech-info-item :name "thgb233r") + (new 'static 'speech-info-item :name "thgb234r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb227r") + (new 'static 'speech-info-item :name "thgb228r") + (new 'static 'speech-info-item :name "thgb229r") + (new 'static 'speech-info-item :name "thgb230r") + (new 'static 'speech-info-item :name "thgb231r") + (new 'static 'speech-info-item :name "thgb232r") + (new 'static 'speech-info-item :name "thgb233r") + (new 'static 'speech-info-item :name "thgb234r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb251r") + (new 'static 'speech-info-item :name "thgb252") + (new 'static 'speech-info-item :name "thgb253") + (new 'static 'speech-info-item :name "thgb254r") + (new 'static 'speech-info-item :name "thgb255r") + (new 'static 'speech-info-item :name "thgb256r") + (new 'static 'speech-info-item :name "thgb257r") + (new 'static 'speech-info-item :name "thgb258r") + (new 'static 'speech-info-item :name "thgb259r") + (new 'static 'speech-info-item :name "thgb260r") + (new 'static 'speech-info-item :name "thgb261r") + ) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgb201r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 14 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb193r") + (new 'static 'speech-info-item :name "thgb194r") + (new 'static 'speech-info-item :name "thgb228r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-thugb.gc b/goal_src/jakx/engine/sound/speech/speech-thugb.gc index 331cf24bba..c54a92b8c8 100644 --- a/goal_src/jakx/engine/sound/speech/speech-thugb.gc +++ b/goal_src/jakx/engine/sound/speech/speech-thugb.gc @@ -7,3 +7,306 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 15 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc135r") + (new 'static 'speech-info-item :name "thgc190r") + (new 'static 'speech-info-item :name "thgc192r") + (new 'static 'speech-info-item :name "thgc193r") + (new 'static 'speech-info-item :name "thgc194r") + (new 'static 'speech-info-item :name "thgc196r") + (new 'static 'speech-info-item :name "thgc197r") + (new 'static 'speech-info-item :name "thgc198r") + (new 'static 'speech-info-item :name "thgc199r") + (new 'static 'speech-info-item :name "thgc229r") + (new 'static 'speech-info-item :name "thgc230r") + (new 'static 'speech-info-item :name "thgc231r") + (new 'static 'speech-info-item :name "thgc232r") + (new 'static 'speech-info-item :name "thgc233r") + (new 'static 'speech-info-item :name "thgc234r") + (new 'static 'speech-info-item :name "thgc236r") + (new 'static 'speech-info-item :name "thgc237r") + (new 'static 'speech-info-item :name "thgc238r") + (new 'static 'speech-info-item :name "thgc239r") + (new 'static 'speech-info-item :name "thgc240r") + (new 'static 'speech-info-item :name "thgc241r") + (new 'static 'speech-info-item :name "thgc242r") + (new 'static 'speech-info-item :name "thgc243r") + (new 'static 'speech-info-item :name "thgc244r") + (new 'static 'speech-info-item :name "thgc245r") + (new 'static 'speech-info-item :name "thgc246r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc101r") + (new 'static 'speech-info-item :name "thgc102r") + (new 'static 'speech-info-item :name "thgc103r") + (new 'static 'speech-info-item :name "thgc104r") + (new 'static 'speech-info-item :name "thgc105r") + (new 'static 'speech-info-item :name "thgc106r") + (new 'static 'speech-info-item :name "thgc107r") + (new 'static 'speech-info-item :name "thgc108r") + (new 'static 'speech-info-item :name "thgc109r") + (new 'static 'speech-info-item :name "thgc110r") + (new 'static 'speech-info-item :name "thgc111r") + (new 'static 'speech-info-item :name "thgc112r") + (new 'static 'speech-info-item :name "thgc113r") + (new 'static 'speech-info-item :name "thgc114r") + (new 'static 'speech-info-item :name "thgc115r") + (new 'static 'speech-info-item :name "thgc116r") + (new 'static 'speech-info-item :name "thgc117r") + (new 'static 'speech-info-item :name "thgc118r") + (new 'static 'speech-info-item :name "thgc119r") + (new 'static 'speech-info-item :name "thgc120r") + (new 'static 'speech-info-item :name "thgc121r") + (new 'static 'speech-info-item :name "thgc122r") + (new 'static 'speech-info-item :name "thgc123r") + (new 'static 'speech-info-item :name "thgc124r") + (new 'static 'speech-info-item :name "thgc125r") + (new 'static 'speech-info-item :name "thgc126r") + (new 'static 'speech-info-item :name "thgc127r") + (new 'static 'speech-info-item :name "thgc191r") + (new 'static 'speech-info-item :name "thgc235r") + (new 'static 'speech-info-item :name "thgc141r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc102r") + (new 'static 'speech-info-item :name "thgc103r") + (new 'static 'speech-info-item :name "thgc105r") + (new 'static 'speech-info-item :name "thgc106r") + (new 'static 'speech-info-item :name "thgc107r") + (new 'static 'speech-info-item :name "thgc108r") + (new 'static 'speech-info-item :name "thgc109r") + (new 'static 'speech-info-item :name "thgc110r") + (new 'static 'speech-info-item :name "thgc111r") + (new 'static 'speech-info-item :name "thgc112r") + (new 'static 'speech-info-item :name "thgc113r") + (new 'static 'speech-info-item :name "thgc114r") + (new 'static 'speech-info-item :name "thgc115r") + (new 'static 'speech-info-item :name "thgc116r") + (new 'static 'speech-info-item :name "thgc117r") + (new 'static 'speech-info-item :name "thgc118r") + (new 'static 'speech-info-item :name "thgc119r") + (new 'static 'speech-info-item :name "thgc120r") + (new 'static 'speech-info-item :name "thgc121r") + (new 'static 'speech-info-item :name "thgc122r") + (new 'static 'speech-info-item :name "thgc123r") + (new 'static 'speech-info-item :name "thgc126r") + (new 'static 'speech-info-item :name "thgc127r") + (new 'static 'speech-info-item :name "thgc191r") + (new 'static 'speech-info-item :name "thgc235r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc128r") + (new 'static 'speech-info-item :name "thgc129r") + (new 'static 'speech-info-item :name "thgc130r") + (new 'static 'speech-info-item :name "thgc131r") + (new 'static 'speech-info-item :name "thgc132r") + (new 'static 'speech-info-item :name "thgc133r") + (new 'static 'speech-info-item :name "thgc134r") + (new 'static 'speech-info-item :name "thgc136r") + (new 'static 'speech-info-item :name "thgc137r") + (new 'static 'speech-info-item :name "thgc145r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc138r") + (new 'static 'speech-info-item :name "thgc139r") + (new 'static 'speech-info-item :name "thgc140r") + (new 'static 'speech-info-item :name "thgc142r") + (new 'static 'speech-info-item :name "thgc143r") + (new 'static 'speech-info-item :name "thgc144r") + (new 'static 'speech-info-item :name "thgc146r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc147r") + (new 'static 'speech-info-item :name "thgc148r") + (new 'static 'speech-info-item :name "thgc149r") + (new 'static 'speech-info-item :name "thgc150r") + (new 'static 'speech-info-item :name "thgc151r") + (new 'static 'speech-info-item :name "thgc152r") + (new 'static 'speech-info-item :name "thgc153r") + (new 'static 'speech-info-item :name "thgc154r") + (new 'static 'speech-info-item :name "thgc155r") + (new 'static 'speech-info-item :name "thgc156r") + (new 'static 'speech-info-item :name "thgc157r") + (new 'static 'speech-info-item :name "thgc158r") + (new 'static 'speech-info-item :name "thgc159r") + (new 'static 'speech-info-item :name "thgc160r") + (new 'static 'speech-info-item :name "thgc161r") + (new 'static 'speech-info-item :name "thgc162r") + (new 'static 'speech-info-item :name "thgc163r") + (new 'static 'speech-info-item :name "thgc164r") + (new 'static 'speech-info-item :name "thgc165r") + (new 'static 'speech-info-item :name "thgc166r") + (new 'static 'speech-info-item :name "thgc167r") + (new 'static 'speech-info-item :name "thgc168r") + (new 'static 'speech-info-item :name "thgc169r") + (new 'static 'speech-info-item :name "thgc170r") + (new 'static 'speech-info-item :name "thgc171r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc172r") + (new 'static 'speech-info-item :name "thgc173r") + (new 'static 'speech-info-item :name "thgc174r") + (new 'static 'speech-info-item :name "thgc175r") + (new 'static 'speech-info-item :name "thgc176r") + (new 'static 'speech-info-item :name "thgc177r") + (new 'static 'speech-info-item :name "thgc178r") + (new 'static 'speech-info-item :name "thgc179r") + (new 'static 'speech-info-item :name "thgc180r") + (new 'static 'speech-info-item :name "thgc181r") + (new 'static 'speech-info-item :name "thgc182r") + (new 'static 'speech-info-item :name "thgc183r") + (new 'static 'speech-info-item :name "thgc184r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc185r") + (new 'static 'speech-info-item :name "thgc186r") + (new 'static 'speech-info-item :name "thgc187r") + (new 'static 'speech-info-item :name "thgc188r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgc200r")) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc201r") + (new 'static 'speech-info-item :name "thgc202r") + (new 'static 'speech-info-item :name "thgc203r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc204r") + (new 'static 'speech-info-item :name "thgc205r") + (new 'static 'speech-info-item :name "thgc206r") + (new 'static 'speech-info-item :name "thgc207r") + (new 'static 'speech-info-item :name "thgc208r") + (new 'static 'speech-info-item :name "thgc209r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc210r") + (new 'static 'speech-info-item :name "thgc211r") + (new 'static 'speech-info-item :name "thgc212r") + (new 'static 'speech-info-item :name "thgc213r") + (new 'static 'speech-info-item :name "thgc214r") + (new 'static 'speech-info-item :name "thgc215r") + (new 'static 'speech-info-item :name "thgc216r") + (new 'static 'speech-info-item :name "thgc217r") + (new 'static 'speech-info-item :name "thgc218r") + (new 'static 'speech-info-item :name "thgc219r") + (new 'static 'speech-info-item :name "thgc220r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc210r") + (new 'static 'speech-info-item :name "thgc211r") + (new 'static 'speech-info-item :name "thgc212r") + (new 'static 'speech-info-item :name "thgc213r") + (new 'static 'speech-info-item :name "thgc214r") + (new 'static 'speech-info-item :name "thgc215r") + (new 'static 'speech-info-item :name "thgc216r") + (new 'static 'speech-info-item :name "thgc217r") + (new 'static 'speech-info-item :name "thgc218r") + (new 'static 'speech-info-item :name "thgc219r") + (new 'static 'speech-info-item :name "thgc220r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc221r") + (new 'static 'speech-info-item :name "thgc222r") + (new 'static 'speech-info-item :name "thgc223r") + (new 'static 'speech-info-item :name "thgc224r") + (new 'static 'speech-info-item :name "thgc225r") + (new 'static 'speech-info-item :name "thgc226r") + (new 'static 'speech-info-item :name "thgc227r") + (new 'static 'speech-info-item :name "thgc228r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc221r") + (new 'static 'speech-info-item :name "thgc222r") + (new 'static 'speech-info-item :name "thgc223r") + (new 'static 'speech-info-item :name "thgc224r") + (new 'static 'speech-info-item :name "thgc225r") + (new 'static 'speech-info-item :name "thgc226r") + (new 'static 'speech-info-item :name "thgc227r") + (new 'static 'speech-info-item :name "thgc228r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc247r") + (new 'static 'speech-info-item :name "thgc248r") + (new 'static 'speech-info-item :name "thgc249r") + (new 'static 'speech-info-item :name "thgc250r") + (new 'static 'speech-info-item :name "thgc251r") + (new 'static 'speech-info-item :name "thgc252r") + ) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgc195r")) + :flags (speech-info-flag si0) + ) + ) + +(set! (-> *speech-control* channels 15 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc189r") + (new 'static 'speech-info-item :name "thgc222r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-thugc.gc b/goal_src/jakx/engine/sound/speech/speech-thugc.gc index 18598cf628..cbd559bbc2 100644 --- a/goal_src/jakx/engine/sound/speech/speech-thugc.gc +++ b/goal_src/jakx/engine/sound/speech/speech-thugc.gc @@ -7,3 +7,376 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 16 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug122r") + (new 'static 'speech-info-item :name "thug123r") + (new 'static 'speech-info-item :name "thug124r") + (new 'static 'speech-info-item :name "thug125r") + (new 'static 'speech-info-item :name "thug126r") + (new 'static 'speech-info-item :name "thug127r") + (new 'static 'speech-info-item :name "thug129r") + (new 'static 'speech-info-item :name "thug130r") + (new 'static 'speech-info-item :name "thug131r") + (new 'static 'speech-info-item :name "thug133r") + (new 'static 'speech-info-item :name "thug134r") + (new 'static 'speech-info-item :name "thug135r") + (new 'static 'speech-info-item :name "thug137r") + (new 'static 'speech-info-item :name "thug138r") + (new 'static 'speech-info-item :name "thug139r") + (new 'static 'speech-info-item :name "thug140r") + (new 'static 'speech-info-item :name "thug141r") + (new 'static 'speech-info-item :name "thug142r") + (new 'static 'speech-info-item :name "thug143r") + (new 'static 'speech-info-item :name "thug144r") + (new 'static 'speech-info-item :name "thug145r") + (new 'static 'speech-info-item :name "thug166r") + (new 'static 'speech-info-item :name "thug236r") + (new 'static 'speech-info-item :name "thug237r") + (new 'static 'speech-info-item :name "thug238r") + (new 'static 'speech-info-item :name "thug239r") + (new 'static 'speech-info-item :name "thug241r") + (new 'static 'speech-info-item :name "thug242r") + (new 'static 'speech-info-item :name "thug243r") + (new 'static 'speech-info-item :name "thug244r") + (new 'static 'speech-info-item :name "thug245r") + (new 'static 'speech-info-item :name "thug246r") + (new 'static 'speech-info-item :name "thug247r") + (new 'static 'speech-info-item :name "thug248r") + (new 'static 'speech-info-item :name "thug249r") + (new 'static 'speech-info-item :name "thug291r") + (new 'static 'speech-info-item :name "thug292r") + (new 'static 'speech-info-item :name "thug293r") + (new 'static 'speech-info-item :name "thug294r") + (new 'static 'speech-info-item :name "thug295r") + (new 'static 'speech-info-item :name "thug296r") + (new 'static 'speech-info-item :name "thug297r") + (new 'static 'speech-info-item :name "thug298r") + (new 'static 'speech-info-item :name "thug299r") + (new 'static 'speech-info-item :name "thug300r") + (new 'static 'speech-info-item :name "thug301r") + (new 'static 'speech-info-item :name "thug303r") + (new 'static 'speech-info-item :name "thug304r") + (new 'static 'speech-info-item :name "thug305r") + (new 'static 'speech-info-item :name "thug306r") + (new 'static 'speech-info-item :name "thug307r") + (new 'static 'speech-info-item :name "thug308r") + (new 'static 'speech-info-item :name "thug309r") + (new 'static 'speech-info-item :name "thug311r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug101r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug102r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug103r") + (new 'static 'speech-info-item :name "thug104r") + (new 'static 'speech-info-item :name "thug105r") + (new 'static 'speech-info-item :name "thug106r") + (new 'static 'speech-info-item :name "thug107r") + (new 'static 'speech-info-item :name "thug108r") + (new 'static 'speech-info-item :name "thug109r") + (new 'static 'speech-info-item :name "thug110r") + (new 'static 'speech-info-item :name "thug111r") + (new 'static 'speech-info-item :name "thug112r") + (new 'static 'speech-info-item :name "thug113r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug114r") + (new 'static 'speech-info-item :name "thug115r") + (new 'static 'speech-info-item :name "thug117r") + (new 'static 'speech-info-item :name "thug118r") + (new 'static 'speech-info-item :name "thug119r") + (new 'static 'speech-info-item :name "thug120r") + (new 'static 'speech-info-item :name "thug121r") + (new 'static 'speech-info-item :name "thug128r") + (new 'static 'speech-info-item :name "thug132r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug136r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug302r") + (new 'static 'speech-info-item :name "thug310r") + (new 'static 'speech-info-item :name "thug172r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug101r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug102r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug103r") + (new 'static 'speech-info-item :name "thug104r") + (new 'static 'speech-info-item :name "thug105r") + (new 'static 'speech-info-item :name "thug106r") + (new 'static 'speech-info-item :name "thug107r") + (new 'static 'speech-info-item :name "thug108r") + (new 'static 'speech-info-item :name "thug109r") + (new 'static 'speech-info-item :name "thug110r") + (new 'static 'speech-info-item :name "thug111r") + (new 'static 'speech-info-item :name "thug112r") + (new 'static 'speech-info-item :name "thug113r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug114r") + (new 'static 'speech-info-item :name "thug115r") + (new 'static 'speech-info-item :name "thug117r") + (new 'static 'speech-info-item :name "thug118r") + (new 'static 'speech-info-item :name "thug119r") + (new 'static 'speech-info-item :name "thug120r") + (new 'static 'speech-info-item :name "thug121r") + (new 'static 'speech-info-item :name "thug128r") + (new 'static 'speech-info-item :name "thug132r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug136r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug302r") + (new 'static 'speech-info-item :name "thug310r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 4) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug146r") + (new 'static 'speech-info-item :name "thug147r") + (new 'static 'speech-info-item :name "thug148r") + (new 'static 'speech-info-item :name "thug149r") + (new 'static 'speech-info-item :name "thug150r") + (new 'static 'speech-info-item :name "thug151r") + (new 'static 'speech-info-item :name "thug152r") + (new 'static 'speech-info-item :name "thug153r") + (new 'static 'speech-info-item :name "thug154r") + (new 'static 'speech-info-item :name "thug155r") + (new 'static 'speech-info-item :name "thug156r") + (new 'static 'speech-info-item :name "thug157r") + (new 'static 'speech-info-item :name "thug158r") + (new 'static 'speech-info-item :name "thug159r") + (new 'static 'speech-info-item :name "thug160r") + (new 'static 'speech-info-item :name "thug161r") + (new 'static 'speech-info-item :name "thug162r") + (new 'static 'speech-info-item :name "thug163r") + (new 'static 'speech-info-item :name "thug164r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug165r") + (new 'static 'speech-info-item :name "thug173r") + (new 'static 'speech-info-item :name "thug178r") + (new 'static 'speech-info-item :name "thug179r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug167r") + (new 'static 'speech-info-item :name "thug168r") + (new 'static 'speech-info-item :name "thug169r") + (new 'static 'speech-info-item :name "thug170r") + (new 'static 'speech-info-item :name "thug171r") + (new 'static 'speech-info-item :name "thug175r") + (new 'static 'speech-info-item :name "thug176r") + (new 'static 'speech-info-item :name "thug177r") + (new 'static 'speech-info-item :name "thug180r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug181r") + (new 'static 'speech-info-item :name "thug182r") + (new 'static 'speech-info-item :name "thug183r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug184r") + (new 'static 'speech-info-item :name "thug185r") + (new 'static 'speech-info-item :name "thug186r") + (new 'static 'speech-info-item :name "thug187r") + (new 'static 'speech-info-item :name "thug188r") + (new 'static 'speech-info-item :name "thug189r") + (new 'static 'speech-info-item :name "thug190r") + (new 'static 'speech-info-item :name "thug191r") + (new 'static 'speech-info-item :name "thug192r") + (new 'static 'speech-info-item :name "thug193r") + (new 'static 'speech-info-item :name "thug194r") + (new 'static 'speech-info-item :name "thug197r") + (new 'static 'speech-info-item :name "thug198r") + (new 'static 'speech-info-item :name "thug199r") + (new 'static 'speech-info-item :name "thug200r") + (new 'static 'speech-info-item :name "thug201r") + (new 'static 'speech-info-item :name "thug202r") + (new 'static 'speech-info-item :name "thug203r") + (new 'static 'speech-info-item :name "thug204r") + (new 'static 'speech-info-item :name "thug205r") + (new 'static 'speech-info-item :name "thug206r") + (new 'static 'speech-info-item :name "thug207r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 10) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug209r") + (new 'static 'speech-info-item :name "thug210r") + (new 'static 'speech-info-item :name "thug211r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug212r") + (new 'static 'speech-info-item :name "thug213r") + (new 'static 'speech-info-item :name "thug214r") + (new 'static 'speech-info-item :name "thug215r") + (new 'static 'speech-info-item :name "thug216r") + (new 'static 'speech-info-item :name "thug217r") + (new 'static 'speech-info-item :name "thug218r") + (new 'static 'speech-info-item :name "thug219r") + (new 'static 'speech-info-item :name "thug220r") + (new 'static 'speech-info-item :name "thug221r") + (new 'static 'speech-info-item :name "thug222r") + (new 'static 'speech-info-item :name "thug223r") + (new 'static 'speech-info-item :name "thug224r") + (new 'static 'speech-info-item :name "thug225r") + (new 'static 'speech-info-item :name "thug226r") + (new 'static 'speech-info-item :name "thug227r") + (new 'static 'speech-info-item :name "thug174r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug228r") + (new 'static 'speech-info-item :name "thug229r") + (new 'static 'speech-info-item :name "thug230r") + (new 'static 'speech-info-item :name "thug231r") + (new 'static 'speech-info-item :name "thug234r") + (new 'static 'speech-info-item :name "thug235r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug228r") + (new 'static 'speech-info-item :name "thug232r") + (new 'static 'speech-info-item :name "thug233r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thug250r")) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug251r") + (new 'static 'speech-info-item :name "thug252r") + (new 'static 'speech-info-item :name "thug253r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 11) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug254r") + (new 'static 'speech-info-item :name "thug255r") + (new 'static 'speech-info-item :name "thug256r") + (new 'static 'speech-info-item :name "thug257r") + (new 'static 'speech-info-item :name "thug258r") + (new 'static 'speech-info-item :name "thug259r") + (new 'static 'speech-info-item :name "thug260r") + (new 'static 'speech-info-item :name "thug261r") + (new 'static 'speech-info-item :name "thug262r") + (new 'static 'speech-info-item :name "thug263r") + (new 'static 'speech-info-item :name "thug264r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug265r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug266r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug267r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug268r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug269r") + (new 'static 'speech-info-item :name "thug270r") + (new 'static 'speech-info-item :name "thug271r") + (new 'static 'speech-info-item :name "thug272r") + (new 'static 'speech-info-item :name "thug273r") + (new 'static 'speech-info-item :name "thug274r") + (new 'static 'speech-info-item :name "thug275r") + (new 'static 'speech-info-item :name "thug276r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 14) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug265r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug266r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug267r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug268r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug269r") + (new 'static 'speech-info-item :name "thug270r") + (new 'static 'speech-info-item :name "thug271r") + (new 'static 'speech-info-item :name "thug272r") + (new 'static 'speech-info-item :name "thug273r") + (new 'static 'speech-info-item :name "thug274r") + (new 'static 'speech-info-item :name "thug275r") + (new 'static 'speech-info-item :name "thug276r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug277r") + (new 'static 'speech-info-item :name "thug278r") + (new 'static 'speech-info-item :name "thug279r") + (new 'static 'speech-info-item :name "thug280r") + (new 'static 'speech-info-item :name "thug281r") + (new 'static 'speech-info-item :name "thug282r") + (new 'static 'speech-info-item :name "thug283r") + (new 'static 'speech-info-item :name "thug284r") + (new 'static 'speech-info-item :name "thug285r") + (new 'static 'speech-info-item :name "thug286r") + (new 'static 'speech-info-item :name "thug287r") + (new 'static 'speech-info-item :name "thug288r") + (new 'static 'speech-info-item :name "thug289r") + (new 'static 'speech-info-item :name "thug290r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug277r") + (new 'static 'speech-info-item :name "thug278r") + (new 'static 'speech-info-item :name "thug279r") + (new 'static 'speech-info-item :name "thug280r") + (new 'static 'speech-info-item :name "thug281r") + (new 'static 'speech-info-item :name "thug282r") + (new 'static 'speech-info-item :name "thug283r") + (new 'static 'speech-info-item :name "thug284r") + (new 'static 'speech-info-item :name "thug285r") + (new 'static 'speech-info-item :name "thug286r") + (new 'static 'speech-info-item :name "thug287r") + (new 'static 'speech-info-item :name "thug288r") + (new 'static 'speech-info-item :name "thug289r") + (new 'static 'speech-info-item :name "thug290r") + ) + ) + ) + +(set! (-> *speech-control* channels 16 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug313r") + (new 'static 'speech-info-item :name "thug314r") + (new 'static 'speech-info-item :name "thug315r") + (new 'static 'speech-info-item :name "thug316r") + (new 'static 'speech-info-item :name "thug317r") + (new 'static 'speech-info-item :name "thug318r") + (new 'static 'speech-info-item :name "thug240r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-torn.gc b/goal_src/jakx/engine/sound/speech/speech-torn.gc index 09120b449b..4e61525ddf 100644 --- a/goal_src/jakx/engine/sound/speech/speech-torn.gc +++ b/goal_src/jakx/engine/sound/speech/speech-torn.gc @@ -7,3 +7,466 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 9 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn108r") + (new 'static 'speech-info-item :name "torn116r") + (new 'static 'speech-info-item :name "torn121r") + (new 'static 'speech-info-item :name "torn122r") + (new 'static 'speech-info-item :name "torn123r") + (new 'static 'speech-info-item :name "torn124r") + (new 'static 'speech-info-item :name "torn125r") + (new 'static 'speech-info-item :name "torn126r") + (new 'static 'speech-info-item :name "torn127r") + (new 'static 'speech-info-item :name "torn129r") + (new 'static 'speech-info-item :name "torn130r") + (new 'static 'speech-info-item :name "torn131r") + (new 'static 'speech-info-item :name "torn132r") + (new 'static 'speech-info-item :name "torn133r") + (new 'static 'speech-info-item :name "torn134r") + (new 'static 'speech-info-item :name "torn135r") + (new 'static 'speech-info-item :name "torn139r") + (new 'static 'speech-info-item :name "torn140r") + (new 'static 'speech-info-item :name "torn141r") + (new 'static 'speech-info-item :name "torn142r") + (new 'static 'speech-info-item :name "torn143r") + (new 'static 'speech-info-item :name "torn144r") + (new 'static 'speech-info-item :name "torn146r") + (new 'static 'speech-info-item :name "torn147r") + (new 'static 'speech-info-item :name "torn148r") + (new 'static 'speech-info-item :name "torn149r") + (new 'static 'speech-info-item :name "torn150r") + (new 'static 'speech-info-item :name "torn151r") + (new 'static 'speech-info-item :name "torn152r") + (new 'static 'speech-info-item :name "torn153r") + (new 'static 'speech-info-item :name "torn154r") + (new 'static 'speech-info-item :name "torn155r") + (new 'static 'speech-info-item :name "torn157r") + (new 'static 'speech-info-item :name "torn158r") + (new 'static 'speech-info-item :name "torn159r") + (new 'static 'speech-info-item :name "torn160r") + (new 'static 'speech-info-item :name "torn163r") + (new 'static 'speech-info-item :name "torn164r") + (new 'static 'speech-info-item :name "torn165r") + (new 'static 'speech-info-item :name "torn166r") + (new 'static 'speech-info-item :name "torn167r") + (new 'static 'speech-info-item :name "torn168r") + (new 'static 'speech-info-item :name "torn169r") + (new 'static 'speech-info-item :name "torn170r") + (new 'static 'speech-info-item :name "torn172r") + (new 'static 'speech-info-item :name "torn173r") + (new 'static 'speech-info-item :name "torn174r") + (new 'static 'speech-info-item :name "torn175r") + (new 'static 'speech-info-item :name "torn177r") + (new 'static 'speech-info-item :name "torn178r") + (new 'static 'speech-info-item :name "torn179r") + (new 'static 'speech-info-item :name "torn180r") + (new 'static 'speech-info-item :name "torn182r") + (new 'static 'speech-info-item :name "torn183r") + (new 'static 'speech-info-item :name "torn184r") + (new 'static 'speech-info-item :name "torn185r") + (new 'static 'speech-info-item :name "torn187r") + (new 'static 'speech-info-item :name "torn188r") + (new 'static 'speech-info-item :name "torn189r") + (new 'static 'speech-info-item :name "torn190r") + (new 'static 'speech-info-item :name "torn194r") + (new 'static 'speech-info-item :name "torn196r") + (new 'static 'speech-info-item :name "torn197r") + (new 'static 'speech-info-item :name "torn198r") + (new 'static 'speech-info-item :name "torn199r") + (new 'static 'speech-info-item :name "torn200r") + (new 'static 'speech-info-item :name "torn201r") + (new 'static 'speech-info-item :name "torn202r") + (new 'static 'speech-info-item :name "torn203r") + (new 'static 'speech-info-item :name "torn205r") + (new 'static 'speech-info-item :name "torn206r") + (new 'static 'speech-info-item :name "torn207r") + (new 'static 'speech-info-item :name "torn208r") + (new 'static 'speech-info-item :name "torn209r") + (new 'static 'speech-info-item :name "torn210r") + (new 'static 'speech-info-item :name "torn211r") + (new 'static 'speech-info-item :name "torn212r") + (new 'static 'speech-info-item :name "torn216r") + (new 'static 'speech-info-item :name "torn219r") + (new 'static 'speech-info-item :name "torn220r") + (new 'static 'speech-info-item :name "torn221r") + (new 'static 'speech-info-item :name "torn222r") + (new 'static 'speech-info-item :name "torn223r") + (new 'static 'speech-info-item :name "torn224r") + (new 'static 'speech-info-item :name "torn225r") + (new 'static 'speech-info-item :name "torn227r") + (new 'static 'speech-info-item :name "torn228r") + (new 'static 'speech-info-item :name "torn229r") + (new 'static 'speech-info-item :name "torn230r") + (new 'static 'speech-info-item :name "torn231r") + (new 'static 'speech-info-item :name "torn232r") + (new 'static 'speech-info-item :name "torn233r") + (new 'static 'speech-info-item :name "torn234r") + (new 'static 'speech-info-item :name "torn316r") + (new 'static 'speech-info-item :name "torn319r") + (new 'static 'speech-info-item :name "torn320r") + (new 'static 'speech-info-item :name "torn321r") + (new 'static 'speech-info-item :name "torn324r") + (new 'static 'speech-info-item :name "torn326r") + (new 'static 'speech-info-item :name "torn361r") + (new 'static 'speech-info-item :name "torn362r") + (new 'static 'speech-info-item :name "torn363r") + (new 'static 'speech-info-item :name "torn364r") + (new 'static 'speech-info-item :name "torn365r") + (new 'static 'speech-info-item :name "torn366r") + (new 'static 'speech-info-item :name "torn368r") + (new 'static 'speech-info-item :name "torn369r") + (new 'static 'speech-info-item :name "torn370r") + (new 'static 'speech-info-item :name "torn371r") + (new 'static 'speech-info-item :name "torn372r") + (new 'static 'speech-info-item :name "torn373r") + (new 'static 'speech-info-item :name "torn374r") + (new 'static 'speech-info-item :name "torn376r") + (new 'static 'speech-info-item :name "torn377r") + (new 'static 'speech-info-item :name "torn378r") + (new 'static 'speech-info-item :name "torn282r") + (new 'static 'speech-info-item :name "torn283r") + (new 'static 'speech-info-item :name "torn284r") + (new 'static 'speech-info-item :name "torn291r") + (new 'static 'speech-info-item :name "torn292r") + (new 'static 'speech-info-item :name "torn293r") + (new 'static 'speech-info-item :name "torn353r") + (new 'static 'speech-info-item :name "torn315r") + (new 'static 'speech-info-item :name "torn105r") + (new 'static 'speech-info-item :name "torn345r") + (new 'static 'speech-info-item :name "torn347r") + (new 'static 'speech-info-item :name "torn349r") + (new 'static 'speech-info-item :name "torn106r") + (new 'static 'speech-info-item :name "torn114r") + (new 'static 'speech-info-item :name "torn323r") + (new 'static 'speech-info-item :name "torn355r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn236r") + (new 'static 'speech-info-item :name "torn237r") + (new 'static 'speech-info-item :name "torn238r") + (new 'static 'speech-info-item :name "torn239r") + (new 'static 'speech-info-item :name "torn240r") + (new 'static 'speech-info-item :name "torn241r") + (new 'static 'speech-info-item :name "torn242r") + (new 'static 'speech-info-item :name "torn243r") + (new 'static 'speech-info-item :name "torn244r") + (new 'static 'speech-info-item :name "torn245r") + (new 'static 'speech-info-item :name "torn115r") + (new 'static 'speech-info-item :name "torn186r") + (new 'static 'speech-info-item :name "torn191r") + (new 'static 'speech-info-item :name "torn235r") + (new 'static 'speech-info-item :name "torn317r") + (new 'static 'speech-info-item :name "torn260r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn246r") + (new 'static 'speech-info-item :name "torn247r") + (new 'static 'speech-info-item :name "torn248r") + (new 'static 'speech-info-item :name "torn249r") + (new 'static 'speech-info-item :name "torn250r") + (new 'static 'speech-info-item :name "torn251r") + (new 'static 'speech-info-item :name "torn252r") + (new 'static 'speech-info-item :name "torn253r") + (new 'static 'speech-info-item :name "torn254r") + (new 'static 'speech-info-item :name "torn255r") + (new 'static 'speech-info-item :name "torn256r") + (new 'static 'speech-info-item :name "torn136r") + (new 'static 'speech-info-item :name "torn137r") + (new 'static 'speech-info-item :name "torn138r") + (new 'static 'speech-info-item :name "torn156r") + (new 'static 'speech-info-item :name "torn181r") + (new 'static 'speech-info-item :name "torn204r") + (new 'static 'speech-info-item :name "torn325r") + (new 'static 'speech-info-item :name "torn128r") + (new 'static 'speech-info-item :name "torn171r") + (new 'static 'speech-info-item :name "torn327r") + (new 'static 'speech-info-item :name "torn264r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn257r") + (new 'static 'speech-info-item :name "torn258r") + (new 'static 'speech-info-item :name "torn259r") + (new 'static 'speech-info-item :name "torn261r") + (new 'static 'speech-info-item :name "torn262r") + (new 'static 'speech-info-item :name "torn263r") + (new 'static 'speech-info-item :name "torn265r") + (new 'static 'speech-info-item :name "torn217r") + (new 'static 'speech-info-item :name "torn218r") + (new 'static 'speech-info-item :name "torn226r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn266r") + (new 'static 'speech-info-item :name "torn267r") + (new 'static 'speech-info-item :name "torn268r") + (new 'static 'speech-info-item :name "torn269r") + (new 'static 'speech-info-item :name "torn270r") + (new 'static 'speech-info-item :name "torn271r") + (new 'static 'speech-info-item :name "torn272r") + (new 'static 'speech-info-item :name "torn273r") + (new 'static 'speech-info-item :name "torn274r") + (new 'static 'speech-info-item :name "torn275r") + (new 'static 'speech-info-item :name "torn276r") + (new 'static 'speech-info-item :name "torn277r") + (new 'static 'speech-info-item :name "torn278r") + (new 'static 'speech-info-item :name "torn279r") + (new 'static 'speech-info-item :name "torn280r") + (new 'static 'speech-info-item :name "torn281r") + (new 'static 'speech-info-item :name "torn285r") + (new 'static 'speech-info-item :name "torn286r") + (new 'static 'speech-info-item :name "torn287r") + (new 'static 'speech-info-item :name "torn288r") + (new 'static 'speech-info-item :name "torn289r") + (new 'static 'speech-info-item :name "torn290r") + (new 'static 'speech-info-item :name "torn294r") + (new 'static 'speech-info-item :name "torn295r") + (new 'static 'speech-info-item :name "torn117r") + (new 'static 'speech-info-item :name "torn176r") + (new 'static 'speech-info-item :name "torn193r") + (new 'static 'speech-info-item :name "torn118r") + (new 'static 'speech-info-item :name "torn119r") + (new 'static 'speech-info-item :name "torn192r") + (new 'static 'speech-info-item :name "torn195r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn296r") + (new 'static 'speech-info-item :name "torn297r") + (new 'static 'speech-info-item :name "torn298r") + (new 'static 'speech-info-item :name "torn299r") + (new 'static 'speech-info-item :name "torn300r") + (new 'static 'speech-info-item :name "torn301r") + (new 'static 'speech-info-item :name "torn302r") + (new 'static 'speech-info-item :name "torn303r") + (new 'static 'speech-info-item :name "torn304r") + (new 'static 'speech-info-item :name "torn305r") + (new 'static 'speech-info-item :name "torn306r") + (new 'static 'speech-info-item :name "torn307r") + (new 'static 'speech-info-item :name "torn308r") + (new 'static 'speech-info-item :name "torn161r") + (new 'static 'speech-info-item :name "torn162r") + (new 'static 'speech-info-item :name "torn318r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn309r") + (new 'static 'speech-info-item :name "torn310r") + (new 'static 'speech-info-item :name "torn311r") + (new 'static 'speech-info-item :name "torn312r") + (new 'static 'speech-info-item :name "torn313r") + (new 'static 'speech-info-item :name "torn314r") + (new 'static 'speech-info-item :name "torn101r") + (new 'static 'speech-info-item :name "torn102r") + (new 'static 'speech-info-item :name "torn103r") + (new 'static 'speech-info-item :name "torn104r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "torn328r")) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn329r") + (new 'static 'speech-info-item :name "torn330r") + (new 'static 'speech-info-item :name "torn331r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn332r") + (new 'static 'speech-info-item :name "torn333r") + (new 'static 'speech-info-item :name "torn334r") + (new 'static 'speech-info-item :name "torn335r") + (new 'static 'speech-info-item :name "torn336r") + (new 'static 'speech-info-item :name "torn337r") + (new 'static 'speech-info-item :name "torn338r") + (new 'static 'speech-info-item :name "torn213r") + (new 'static 'speech-info-item :name "torn214r") + (new 'static 'speech-info-item :name "torn215r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn339r") + (new 'static 'speech-info-item :name "torn340r") + (new 'static 'speech-info-item :name "torn341r") + (new 'static 'speech-info-item :name "torn342r") + (new 'static 'speech-info-item :name "torn343r") + (new 'static 'speech-info-item :name "torn344r") + (new 'static 'speech-info-item :name "torn346r") + (new 'static 'speech-info-item :name "torn348r") + (new 'static 'speech-info-item :name "torn350r") + (new 'static 'speech-info-item :name "torn351r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "torn107r") + (new 'static 'speech-info-item :name "torn109r") + (new 'static 'speech-info-item :name "torn110r") + (new 'static 'speech-info-item :name "torn112r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 2) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn352r") + (new 'static 'speech-info-item :name "torn354r") + (new 'static 'speech-info-item :name "torn356r") + (new 'static 'speech-info-item :name "torn357r") + (new 'static 'speech-info-item :name "torn358r") + (new 'static 'speech-info-item :name "torn359r") + (new 'static 'speech-info-item :name "torn360r") + (new 'static 'speech-info-item :name "torn111r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "torn145r" :flags (speech-info-flag si0)) + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn339r") + (new 'static 'speech-info-item :name "torn340r") + (new 'static 'speech-info-item :name "torn341r") + (new 'static 'speech-info-item :name "torn342r") + (new 'static 'speech-info-item :name "torn343r") + (new 'static 'speech-info-item :name "torn344r") + (new 'static 'speech-info-item :name "torn346r") + (new 'static 'speech-info-item :name "torn348r") + (new 'static 'speech-info-item :name "torn350r") + (new 'static 'speech-info-item :name "torn107r") + (new 'static 'speech-info-item :name "torn109r") + (new 'static 'speech-info-item :name "torn110r") + (new 'static 'speech-info-item :name "torn112r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn352r") + (new 'static 'speech-info-item :name "torn354r") + (new 'static 'speech-info-item :name "torn356r") + (new 'static 'speech-info-item :name "torn357r") + (new 'static 'speech-info-item :name "torn358r") + (new 'static 'speech-info-item :name "torn359r") + (new 'static 'speech-info-item :name "torn360r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn379r") + (new 'static 'speech-info-item :name "torn380r") + (new 'static 'speech-info-item :name "torn381r") + (new 'static 'speech-info-item :name "torn382r") + (new 'static 'speech-info-item :name "torn106r") + (new 'static 'speech-info-item :name "torn113r") + (new 'static 'speech-info-item :name "torn114r") + (new 'static 'speech-info-item :name "torn120r") + (new 'static 'speech-info-item :name "torn247r") + (new 'static 'speech-info-item :name "torn248r") + (new 'static 'speech-info-item :name "torn249r") + (new 'static 'speech-info-item :name "torn250r") + (new 'static 'speech-info-item :name "torn251r") + (new 'static 'speech-info-item :name "torn252r") + (new 'static 'speech-info-item :name "torn258r") + (new 'static 'speech-info-item :name "torn259r") + (new 'static 'speech-info-item :name "torn263r") + (new 'static 'speech-info-item :name "torn264r") + (new 'static 'speech-info-item :name "torn265r") + (new 'static 'speech-info-item :name "torn267r") + (new 'static 'speech-info-item :name "torn268r") + (new 'static 'speech-info-item :name "torn269r") + (new 'static 'speech-info-item :name "torn271r") + (new 'static 'speech-info-item :name "torn280r") + (new 'static 'speech-info-item :name "torn285r") + (new 'static 'speech-info-item :name "torn286r") + (new 'static 'speech-info-item :name "torn287r") + (new 'static 'speech-info-item :name "torn305r") + (new 'static 'speech-info-item :name "torn322r") + (new 'static 'speech-info-item :name "torn323r") + (new 'static 'speech-info-item :name "torn367r") + (new 'static 'speech-info-item :name "torn375r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn102r") + (new 'static 'speech-info-item :name "torn104r") + (new 'static 'speech-info-item :name "torn105r") + (new 'static 'speech-info-item :name "torn254r") + (new 'static 'speech-info-item :name "torn255r") + (new 'static 'speech-info-item :name "torn296r") + (new 'static 'speech-info-item :name "torn299r") + (new 'static 'speech-info-item :name "torn300r") + (new 'static 'speech-info-item :name "torn301r") + (new 'static 'speech-info-item :name "torn303r") + (new 'static 'speech-info-item :name "torn304r") + (new 'static 'speech-info-item :name "torn306r") + (new 'static 'speech-info-item :name "torn307r") + (new 'static 'speech-info-item :name "torn309r") + (new 'static 'speech-info-item :name "torn313r") + (new 'static 'speech-info-item :name "torn314r") + (new 'static 'speech-info-item :name "torn315r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn236r") + (new 'static 'speech-info-item :name "torn237r") + (new 'static 'speech-info-item :name "torn239r") + (new 'static 'speech-info-item :name "torn240r") + (new 'static 'speech-info-item :name "torn241r") + (new 'static 'speech-info-item :name "torn242r") + (new 'static 'speech-info-item :name "torn243r") + (new 'static 'speech-info-item :name "torn244r") + (new 'static 'speech-info-item :name "torn245r") + (new 'static 'speech-info-item :name "torn186r") + (new 'static 'speech-info-item :name "torn191r") + (new 'static 'speech-info-item :name "torn317r") + ) + ) + ) + +(set! (-> *speech-control* channels 9 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "torn322r")) + :flags (speech-info-flag si0) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-ur86.gc b/goal_src/jakx/engine/sound/speech/speech-ur86.gc index 3b492b4e07..46f644c71b 100644 --- a/goal_src/jakx/engine/sound/speech/speech-ur86.gc +++ b/goal_src/jakx/engine/sound/speech/speech-ur86.gc @@ -7,3 +7,202 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 13 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86101r") + (new 'static 'speech-info-item :name "ur86102r") + (new 'static 'speech-info-item :name "ur86103r") + (new 'static 'speech-info-item :name "ur86104r") + (new 'static 'speech-info-item :name "ur86105r") + (new 'static 'speech-info-item :name "ur86106r") + (new 'static 'speech-info-item :name "ur86107r") + (new 'static 'speech-info-item :name "ur86108r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86101r") + (new 'static 'speech-info-item :name "ur86102r") + (new 'static 'speech-info-item :name "ur86103r") + (new 'static 'speech-info-item :name "ur86104r") + (new 'static 'speech-info-item :name "ur86105r") + (new 'static 'speech-info-item :name "ur86106r") + (new 'static 'speech-info-item :name "ur86107r") + (new 'static 'speech-info-item :name "ur86108r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86109r") + (new 'static 'speech-info-item :name "ur86110r") + (new 'static 'speech-info-item :name "ur86111r") + (new 'static 'speech-info-item :name "ur86112r") + (new 'static 'speech-info-item :name "ur86113r") + (new 'static 'speech-info-item :name "ur86114r") + (new 'static 'speech-info-item :name "ur86115r") + (new 'static 'speech-info-item :name "ur86116r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86117r") + (new 'static 'speech-info-item :name "ur86118r") + (new 'static 'speech-info-item :name "ur86119r") + (new 'static 'speech-info-item :name "ur86120r") + (new 'static 'speech-info-item :name "ur86121r") + (new 'static 'speech-info-item :name "ur86122r") + (new 'static 'speech-info-item :name "ur86123r") + (new 'static 'speech-info-item :name "ur86142r") + (new 'static 'speech-info-item :name "ur86143r") + (new 'static 'speech-info-item :name "ur86144r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86124r") + (new 'static 'speech-info-item :name "ur86126r") + (new 'static 'speech-info-item :name "ur86127r") + (new 'static 'speech-info-item :name "ur86128r") + (new 'static 'speech-info-item :name "ur86129r") + (new 'static 'speech-info-item :name "ur86130r") + (new 'static 'speech-info-item :name "ur86131r") + (new 'static 'speech-info-item :name "ur86138r") + (new 'static 'speech-info-item :name "ur86139r") + (new 'static 'speech-info-item :name "ur86140r") + (new 'static 'speech-info-item :name "ur86141r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86132r") + (new 'static 'speech-info-item :name "ur86133r") + (new 'static 'speech-info-item :name "ur86134r") + (new 'static 'speech-info-item :name "ur86135r") + (new 'static 'speech-info-item :name "ur86136r") + (new 'static 'speech-info-item :name "ur86137r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86152r") + (new 'static 'speech-info-item :name "ur86153r") + (new 'static 'speech-info-item :name "ur86154r") + (new 'static 'speech-info-item :name "ur86155r") + (new 'static 'speech-info-item :name "ur86156r") + (new 'static 'speech-info-item :name "ur86157r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86152r") + (new 'static 'speech-info-item :name "ur86153r") + (new 'static 'speech-info-item :name "ur86154r") + (new 'static 'speech-info-item :name "ur86155r") + (new 'static 'speech-info-item :name "ur86156r") + (new 'static 'speech-info-item :name "ur86157r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86158r") + (new 'static 'speech-info-item :name "ur86159r") + (new 'static 'speech-info-item :name "ur86160r") + (new 'static 'speech-info-item :name "ur86161r") + (new 'static 'speech-info-item :name "ur86162r") + (new 'static 'speech-info-item :name "ur86163r") + (new 'static 'speech-info-item :name "ur86164r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86158r") + (new 'static 'speech-info-item :name "ur86159r") + (new 'static 'speech-info-item :name "ur86160r") + (new 'static 'speech-info-item :name "ur86161r") + (new 'static 'speech-info-item :name "ur86162r") + (new 'static 'speech-info-item :name "ur86163r") + (new 'static 'speech-info-item :name "ur86164r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86172r") + (new 'static 'speech-info-item :name "ur86173r") + (new 'static 'speech-info-item :name "ur86174r") + (new 'static 'speech-info-item :name "ur86175r") + (new 'static 'speech-info-item :name "ur86176r") + (new 'static 'speech-info-item :name "ur86177r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "ur86145r")) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86146r") + (new 'static 'speech-info-item :name "ur86147r") + (new 'static 'speech-info-item :name "ur86148r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86149r") + (new 'static 'speech-info-item :name "ur86150r") + (new 'static 'speech-info-item :name "ur86151r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86178r") + (new 'static 'speech-info-item :name "ur86179r") + (new 'static 'speech-info-item :name "ur86180r") + (new 'static 'speech-info-item :name "ur86181r") + (new 'static 'speech-info-item :name "ur86182r") + (new 'static 'speech-info-item :name "ur86183r") + (new 'static 'speech-info-item :name "ur86184r") + (new 'static 'speech-info-item :name "ur86185r") + ) + ) + ) + +(set! (-> *speech-control* channels 13 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86165r") + (new 'static 'speech-info-item :name "ur86166r") + (new 'static 'speech-info-item :name "ur86167r") + (new 'static 'speech-info-item :name "ur86168r") + (new 'static 'speech-info-item :name "ur86169r") + (new 'static 'speech-info-item :name "ur86170r") + (new 'static 'speech-info-item :name "ur86171r") + ) + ) + ) diff --git a/goal_src/jakx/engine/sound/speech/speech-ximon.gc b/goal_src/jakx/engine/sound/speech/speech-ximon.gc index c2dbac864e..c14cc9e65e 100644 --- a/goal_src/jakx/engine/sound/speech/speech-ximon.gc +++ b/goal_src/jakx/engine/sound/speech/speech-ximon.gc @@ -7,3 +7,345 @@ ;; DECOMP BEGINS +(set! (-> *speech-control* channels 20 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim228r") + (new 'static 'speech-info-item :name "xim230r") + (new 'static 'speech-info-item :name "xim232r") + (new 'static 'speech-info-item :name "xim284r") + (new 'static 'speech-info-item :name "xim295r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim101r") + (new 'static 'speech-info-item :name "xim102r") + (new 'static 'speech-info-item :name "xim103r") + (new 'static 'speech-info-item :name "xim104r") + (new 'static 'speech-info-item :name "xim105r") + (new 'static 'speech-info-item :name "xim106r") + (new 'static 'speech-info-item :name "xim107r") + (new 'static 'speech-info-item :name "xim108r") + (new 'static 'speech-info-item :name "xim109r") + (new 'static 'speech-info-item :name "xim110r") + (new 'static 'speech-info-item :name "xim111r") + (new 'static 'speech-info-item :name "xim112r") + (new 'static 'speech-info-item :name "xim113r") + (new 'static 'speech-info-item :name "xim114r") + (new 'static 'speech-info-item :name "xim115r") + (new 'static 'speech-info-item :name "xim116r") + (new 'static 'speech-info-item :name "xim117r") + (new 'static 'speech-info-item :name "xim118r") + (new 'static 'speech-info-item :name "xim119r") + (new 'static 'speech-info-item :name "xim120r") + (new 'static 'speech-info-item :name "xim121r") + (new 'static 'speech-info-item :name "xim122r") + (new 'static 'speech-info-item :name "xim123r") + (new 'static 'speech-info-item :name "xim124r") + (new 'static 'speech-info-item :name "xim125r") + (new 'static 'speech-info-item :name "xim126r") + (new 'static 'speech-info-item :name "xim127r") + (new 'static 'speech-info-item :name "xim128r") + (new 'static 'speech-info-item :name "xim129r") + (new 'static 'speech-info-item :name "xim130r") + (new 'static 'speech-info-item :name "xim131r") + (new 'static 'speech-info-item :name "xim132r") + (new 'static 'speech-info-item :name "xim133r") + (new 'static 'speech-info-item :name "xim134r") + (new 'static 'speech-info-item :name "xim135r") + (new 'static 'speech-info-item :name "xim136r") + (new 'static 'speech-info-item :name "xim137r") + (new 'static 'speech-info-item :name "xim138r") + (new 'static 'speech-info-item :name "xim139r") + (new 'static 'speech-info-item :name "xim140r") + (new 'static 'speech-info-item :name "xim141r") + (new 'static 'speech-info-item :name "xim142r") + (new 'static 'speech-info-item :name "xim143r") + (new 'static 'speech-info-item :name "xim276r") + (new 'static 'speech-info-item :name "xim225r") + (new 'static 'speech-info-item :name "xim164r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim101r") + (new 'static 'speech-info-item :name "xim103r") + (new 'static 'speech-info-item :name "xim104r") + (new 'static 'speech-info-item :name "xim105r") + (new 'static 'speech-info-item :name "xim106r") + (new 'static 'speech-info-item :name "xim107r") + (new 'static 'speech-info-item :name "xim108r") + (new 'static 'speech-info-item :name "xim109r") + (new 'static 'speech-info-item :name "xim110r") + (new 'static 'speech-info-item :name "xim112r") + (new 'static 'speech-info-item :name "xim113r") + (new 'static 'speech-info-item :name "xim115r") + (new 'static 'speech-info-item :name "xim116r") + (new 'static 'speech-info-item :name "xim118r") + (new 'static 'speech-info-item :name "xim119r") + (new 'static 'speech-info-item :name "xim120r") + (new 'static 'speech-info-item :name "xim121r") + (new 'static 'speech-info-item :name "xim123r") + (new 'static 'speech-info-item :name "xim124r") + (new 'static 'speech-info-item :name "xim125r") + (new 'static 'speech-info-item :name "xim126r") + (new 'static 'speech-info-item :name "xim127r") + (new 'static 'speech-info-item :name "xim128r") + (new 'static 'speech-info-item :name "xim129r") + (new 'static 'speech-info-item :name "xim130r") + (new 'static 'speech-info-item :name "xim131r") + (new 'static 'speech-info-item :name "xim132r") + (new 'static 'speech-info-item :name "xim133r") + (new 'static 'speech-info-item :name "xim134r") + (new 'static 'speech-info-item :name "xim135r") + (new 'static 'speech-info-item :name "xim136r") + (new 'static 'speech-info-item :name "xim137r") + (new 'static 'speech-info-item :name "xim138r") + (new 'static 'speech-info-item :name "xim139r") + (new 'static 'speech-info-item :name "xim140r") + (new 'static 'speech-info-item :name "xim142r") + (new 'static 'speech-info-item :name "xim143r") + (new 'static 'speech-info-item :name "xim276r") + (new 'static 'speech-info-item :name "xim225r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim144r") + (new 'static 'speech-info-item :name "xim145r") + (new 'static 'speech-info-item :name "xim146r") + (new 'static 'speech-info-item :name "xim147r") + (new 'static 'speech-info-item :name "xim148r") + (new 'static 'speech-info-item :name "xim149r") + (new 'static 'speech-info-item :name "xim150r") + (new 'static 'speech-info-item :name "xim151r") + (new 'static 'speech-info-item :name "xim152r") + (new 'static 'speech-info-item :name "xim153r") + (new 'static 'speech-info-item :name "xim154r") + (new 'static 'speech-info-item :name "xim155r") + (new 'static 'speech-info-item :name "xim156r") + (new 'static 'speech-info-item :name "xim157r") + (new 'static 'speech-info-item :name "xim224r") + (new 'static 'speech-info-item :name "xim233r") + (new 'static 'speech-info-item :name "xim231r") + (new 'static 'speech-info-item :name "xim227r") + (new 'static 'speech-info-item :name "xim169r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim158r") + (new 'static 'speech-info-item :name "xim159r") + (new 'static 'speech-info-item :name "xim160r") + (new 'static 'speech-info-item :name "xim161r") + (new 'static 'speech-info-item :name "xim162r") + (new 'static 'speech-info-item :name "xim163r") + (new 'static 'speech-info-item :name "xim165r") + (new 'static 'speech-info-item :name "xim166r") + (new 'static 'speech-info-item :name "xim167r") + (new 'static 'speech-info-item :name "xim168r") + (new 'static 'speech-info-item :name "xim170r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim171r") + (new 'static 'speech-info-item :name "xim172r") + (new 'static 'speech-info-item :name "xim173r") + (new 'static 'speech-info-item :name "xim174r") + (new 'static 'speech-info-item :name "xim175r") + (new 'static 'speech-info-item :name "xim176r") + (new 'static 'speech-info-item :name "xim177r") + (new 'static 'speech-info-item :name "xim178r") + (new 'static 'speech-info-item :name "xim179r") + (new 'static 'speech-info-item :name "xim180r") + (new 'static 'speech-info-item :name "xim181r") + (new 'static 'speech-info-item :name "xim182r") + (new 'static 'speech-info-item :name "xim183r") + (new 'static 'speech-info-item :name "xim184r") + (new 'static 'speech-info-item :name "xim185r") + (new 'static 'speech-info-item :name "xim186r") + (new 'static 'speech-info-item :name "xim187r") + (new 'static 'speech-info-item :name "xim188r") + (new 'static 'speech-info-item :name "xim189r") + (new 'static 'speech-info-item :name "xim190r") + (new 'static 'speech-info-item :name "xim191r") + (new 'static 'speech-info-item :name "xim192r") + (new 'static 'speech-info-item :name "xim193r") + (new 'static 'speech-info-item :name "xim194r") + (new 'static 'speech-info-item :name "xim195r") + (new 'static 'speech-info-item :name "xim196r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim197r") + (new 'static 'speech-info-item :name "xim198r") + (new 'static 'speech-info-item :name "xim199r") + (new 'static 'speech-info-item :name "xim200r") + (new 'static 'speech-info-item :name "xim201r") + (new 'static 'speech-info-item :name "xim202r") + (new 'static 'speech-info-item :name "xim203r") + (new 'static 'speech-info-item :name "xim204r") + (new 'static 'speech-info-item :name "xim205r") + (new 'static 'speech-info-item :name "xim206r") + (new 'static 'speech-info-item :name "xim207r") + (new 'static 'speech-info-item :name "xim208r") + (new 'static 'speech-info-item :name "xim209r") + (new 'static 'speech-info-item :name "xim210r") + (new 'static 'speech-info-item :name "xim211r") + (new 'static 'speech-info-item :name "xim212r") + (new 'static 'speech-info-item :name "xim213r") + (new 'static 'speech-info-item :name "xim214r") + (new 'static 'speech-info-item :name "xim226r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim215r") + (new 'static 'speech-info-item :name "xim219r") + (new 'static 'speech-info-item :name "xim220r") + (new 'static 'speech-info-item :name "xim221r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "xim234r")) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim235r") + (new 'static 'speech-info-item :name "xim236r") + (new 'static 'speech-info-item :name "xim237r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim238r") + (new 'static 'speech-info-item :name "xim239r") + (new 'static 'speech-info-item :name "xim240r") + (new 'static 'speech-info-item :name "xim241r") + (new 'static 'speech-info-item :name "xim242r") + (new 'static 'speech-info-item :name "xim243r") + (new 'static 'speech-info-item :name "xim244r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim245r") + (new 'static 'speech-info-item :name "xim246r") + (new 'static 'speech-info-item :name "xim247r") + (new 'static 'speech-info-item :name "xim248r") + (new 'static 'speech-info-item :name "xim249r") + (new 'static 'speech-info-item :name "xim250r") + (new 'static 'speech-info-item :name "xim251r") + (new 'static 'speech-info-item :name "xim252r") + (new 'static 'speech-info-item :name "xim254r") + (new 'static 'speech-info-item :name "xim255r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim245r") + (new 'static 'speech-info-item :name "xim246r") + (new 'static 'speech-info-item :name "xim247r") + (new 'static 'speech-info-item :name "xim248r") + (new 'static 'speech-info-item :name "xim249r") + (new 'static 'speech-info-item :name "xim250r") + (new 'static 'speech-info-item :name "xim251r") + (new 'static 'speech-info-item :name "xim252r") + (new 'static 'speech-info-item :name "xim254r") + (new 'static 'speech-info-item :name "xim255r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim258r") + (new 'static 'speech-info-item :name "xim259r") + (new 'static 'speech-info-item :name "xim260r") + (new 'static 'speech-info-item :name "xim261r") + (new 'static 'speech-info-item :name "xim262r") + (new 'static 'speech-info-item :name "xim263r") + (new 'static 'speech-info-item :name "xim264r") + (new 'static 'speech-info-item :name "xim265r") + (new 'static 'speech-info-item :name "xim266r") + (new 'static 'speech-info-item :name "xim267r") + (new 'static 'speech-info-item :name "xim268r") + (new 'static 'speech-info-item :name "xim269r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim258r") + (new 'static 'speech-info-item :name "xim259r") + (new 'static 'speech-info-item :name "xim260r") + (new 'static 'speech-info-item :name "xim261r") + (new 'static 'speech-info-item :name "xim262r") + (new 'static 'speech-info-item :name "xim263r") + (new 'static 'speech-info-item :name "xim264r") + (new 'static 'speech-info-item :name "xim265r") + (new 'static 'speech-info-item :name "xim266r") + (new 'static 'speech-info-item :name "xim267r") + (new 'static 'speech-info-item :name "xim268r") + (new 'static 'speech-info-item :name "xim269r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim288r") + (new 'static 'speech-info-item :name "xim289r") + (new 'static 'speech-info-item :name "xim290r") + (new 'static 'speech-info-item :name "xim291r") + (new 'static 'speech-info-item :name "xim292r") + (new 'static 'speech-info-item :name "xim294r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim222r") + (new 'static 'speech-info-item :name "xim223r") + (new 'static 'speech-info-item :name "xim216r") + (new 'static 'speech-info-item :name "xim217r") + (new 'static 'speech-info-item :name "xim218r") + ) + ) + ) + +(set! (-> *speech-control* channels 20 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "xim229r")) + :flags (speech-info-flag si0) + ) + ) diff --git a/goal_src/jakx/engine/spatial-hash/actor-hash.gc b/goal_src/jakx/engine/spatial-hash/actor-hash.gc index 5ab10d7c0f..3331730eb3 100644 --- a/goal_src/jakx/engine/spatial-hash/actor-hash.gc +++ b/goal_src/jakx/engine/spatial-hash/actor-hash.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jakx/engine/spatial-hash/spatial-hash-h.gc b/goal_src/jakx/engine/spatial-hash/spatial-hash-h.gc index 0e851437d1..7daf3b4b5a 100644 --- a/goal_src/jakx/engine/spatial-hash/spatial-hash-h.gc +++ b/goal_src/jakx/engine/spatial-hash/spatial-hash-h.gc @@ -121,3 +121,6 @@ (spatial-hash-method-41 () none) ) ) + +;; og:preserve-this +(define-extern *actor-hash* spatial-hash) \ No newline at end of file diff --git a/goal_src/jakx/engine/target/target-h.gc b/goal_src/jakx/engine/target/target-h.gc index a2ebfd68c1..9f42a31a17 100644 --- a/goal_src/jakx/engine/target/target-h.gc +++ b/goal_src/jakx/engine/target/target-h.gc @@ -5,5 +5,103 @@ ;; name in dgo: target-h ;; dgos: ENGINE, GAME +;; +++target-flags +(defenum target-flags + :type uint32 + :bitfield #t + (tf0 0) + (tf1 1) + (tf2 2) + (tinvuln1 3) + (tf4 4) + (tf5 5) + (tf6 6) + (prevent-jump 7) + (prevent-attack 8) + (prevent-duck 9) + (tf10 10) + (tf11 11) + (tf12 12) + (tf13 13) + (tf14 14) + (tf15 15) + (tf16 16) + (prevent-board 17) + (prevent-gun 18) + (lleg-still 19) + (rleg-still 20) + (lleg-no-ik 21) + (rleg-no-ik 22) + (prevent-double-jump 23) + (disable-attacks 24) + (tinvuln2 25) + (tf26 26) + (tf27 27) + (invisible 28) + (tf29 29) + (tf30 30) + (tf31 31) + ) +;; ---target-flags + ;; DECOMP BEGINS +(deftype target (process-focusable) + ((control collide-shape-moving :overlay-at root) + (vehicle uint64) + (target-flags target-flags :overlay-at state-flags) + (game game-info) + (init-time uint64) + (teleport-time uint64) + (state-hook-time uint64) + (state-hook (function none :behavior target)) + (cam-user-mode symbol) + (anim-seed uint64) + (alt-cam-pos vector :inline) + (current-level level) + (saved-pos transformq :inline) + (saved-owner uint64) + (excitement float) + (shock-effect-time uint64) + (fp-hud uint64) + (no-load-wait uint64) + (no-look-around-wait uint64) + (burn-proc uint64) + (pre-joint-hook (function none :behavior target)) + (notify uint64) + (mode-cache symbol) + (mode-param1 uint64) + (mode-param2 uint64) + (mode-param3 uint64) + (major-mode-exit-hook (function none :behavior target)) + (major-mode-event-hook (function process int symbol event-message-block object :behavior target)) + (sub-mode-exit-hook (function none :behavior target)) + (target-effect uint64) + (color-effect symbol) + (color-effect-start-time uint64) + (color-effect-duration uint64) + (yes-state basic) + (no-state basic) + (state-object object 4) + (state-uint32 uint32 4 :overlay-at (-> state-object 0)) + (state-float float 4 :overlay-at (-> state-object 0)) + (state-button uint32 4) + (state-vector vector 4 :inline) + (pad1 uint32 6) + (state-smush smush-control :inline) + (state-sound uint32 4) + (state-handle handle 4) + (state-impact impact-control 1 :inline) + ) + (:methods + (target-method-59 () none) + ) + (:states + target-continue + target-float + target-intro + target-introb + target-pilot-start + target-title + ) + ) diff --git a/goal_src/jakx/engine/ui/hud-h.gc b/goal_src/jakx/engine/ui/hud-h.gc index f928f2e8da..abd7e2f6e6 100644 --- a/goal_src/jakx/engine/ui/hud-h.gc +++ b/goal_src/jakx/engine/ui/hud-h.gc @@ -28,5 +28,126 @@ ) ;; ---hud-sprite-flags +;; +++hud-flags +(defenum hud-flags + :type uint32 + :bitfield #t + (disable 0) + (should-die 1) + (show 2) + ) +;; ---hud-flags + ;; DECOMP BEGINS +(deftype hud-string (structure) + ((text string) + (scale float) + (width float) + (height float) + (color font-color) + (flags uint16) + (pos vector4w :inline) + (alpha float) + (time float) + (effect uint8) + (effect-color uint8) + (text-length int32) + ) + (:methods + (hud-string-method-9 () none) + ) + ) + + +(deftype hud-corners (structure) + ((data uint64 4) + ) + (:methods + (hud-corners-method-9 () none) + ) + ) + + +(deftype hud-sprite (structure) + ((pos vector4w :inline) + (offset-x float :overlay-at (-> pos data 0)) + (offset-y float :overlay-at (-> pos data 1)) + (color vector4w :inline) + (flags hud-sprite-flags) + (scale-x float) + (width float :overlay-at scale-x) + (scale-y float) + (height float :overlay-at scale-y) + (angle float) + (tex texture) + (tid texture-id :overlay-at tex) + ) + (:methods + (hud-sprite-method-9 () none) + (hud-sprite-method-10 () none) + ) + ) + + +(deftype hud-box (structure) + ((box bounding-box2 :inline) + (min vector2 :inline :overlay-at (-> box min)) + (max vector2 :inline :overlay-at (-> box max)) + (color vector4w :inline) + ) + (:methods + (hud-box-method-9 () none) + (hud-box-method-10 () none) + (hud-box-method-11 () none) + (hud-box-method-12 () none) + ) + ) + + +(deftype hud-icon (structure) + ((icon (pointer manipy)) + (pos vector4w :inline) + (scale-x float) + (scale-y float) + ) + ) + + +(deftype hud (process) + ((trigger-time uint64) + (last-hide-time uint64) + (offset float) + (flags hud-flags) + (strings hud-string 45 :inline) + (sprites hud-sprite 50 :inline) + (icons hud-icon 2 :inline) + (num-strings int32) + (num-sprites int32) + (gui-id sound-id) + ) + (:methods + (hud-method-15 () none) + (hud-method-16 () none) + (hud-method-17 () none) + (hud-method-18 () none) + (hud-method-19 () none) + (hud-method-20 () none) + (hud-method-21 () none) + (hud-method-22 () none) + (hud-method-23 () none) + (hud-method-24 () none) + (hud-method-25 () none) + (hud-method-26 () none) + (hud-method-27 () none) + (hud-method-28 () none) + (hud-method-29 () none) + ) + ) + + +(deftype hud-map (hud) + ((x float) + (y float) + ) + ) diff --git a/goal_src/jakx/engine/ui/menu2-h.gc b/goal_src/jakx/engine/ui/menu2-h.gc index 68555e98e8..b4c3b9cbac 100644 --- a/goal_src/jakx/engine/ui/menu2-h.gc +++ b/goal_src/jakx/engine/ui/menu2-h.gc @@ -7,3 +7,473 @@ ;; DECOMP BEGINS +(deftype menu-string (hud-string) + ((pad int32) + ) + ) + + +(deftype menu-option-info (structure) + ((display-name-id uint32) + (sym basic) + (extra basic) + (extra-object basic :overlay-at extra) + (extra-int int32 :overlay-at extra) + ) + ) + + +(deftype strings-extra-struct (structure) + ((text uint8 128) + (extra basic) + (extra-object basic :overlay-at extra) + (extra-int int32 :overlay-at extra) + (extra-int16 int16 2 :overlay-at extra) + ) + ) + + +(deftype menu-selection-struct (structure) + ((array-ptr basic) + (selection-index int32) + (last-sym basic) + ) + ) + + +(deftype animation-info (structure) + ((enter-anim int32) + (exit-anim int32) + (running-anim int32) + (anim-speed float) + (enter-delay uint32) + (3d-offset vector :inline) + (3d-offset-x float :overlay-at (-> 3d-offset data 0)) + (3d-offset-y float :overlay-at (-> 3d-offset data 1)) + (3d-offset-z float :overlay-at (-> 3d-offset data 2)) + (3d-offset-w float :overlay-at (-> 3d-offset data 3)) + ) + ) + + +(deftype base-menu-info (structure) + ((menu-type basic) + (children basic) + (name-symbol basic) + (3d-menu-type basic) + (trans-info animation-info) + (joint-index int8) + (joint-index-2 int8) + (box-index int8) + (flags uint8) + (joints basic) + (anim-delay uint32) + (width int32) + (height int32) + (scale-y float) + (scale-x float) + (user-data uint32) + ) + ) + + +(deftype base-menu (process-drawable) + ((child-handles basic) + (info-ptr base-menu-info) + (focused? basic) + (3d-menu-2d-offset vector :inline) + (pos-x float) + (pos-y float) + (pos-z float) + (menu-time uint32) + (width int32) + (height int32) + (width-array basic) + (height-array basic) + (joint-mat matrix :inline) + (offset-matrix matrix :inline) + (j-mod joint-mod-set-world :inline) + (extra-offset vector :inline) + (pad int8) + (hidden? basic) + ) + (:methods + (base-menu-method-50 () none) + (base-menu-method-51 () none) + (base-menu-method-52 () none) + (base-menu-method-53 () none) + (base-menu-method-54 () none) + (base-menu-method-55 () none) + (base-menu-method-56 () none) + (base-menu-method-57 () none) + (base-menu-method-58 () none) + (base-menu-method-59 () none) + (base-menu-method-60 () none) + (base-menu-method-61 () none) + (base-menu-method-62 () none) + (base-menu-method-63 () none) + (base-menu-method-64 () none) + ) + ) + + +(deftype jakx-logo-menu (base-menu) + () + ) + + +(define *jakx-logo-seen?* #f) + +(deftype map-menu (base-menu) + () + (:methods + (map-menu-method-65 () none) + ) + ) + + +(deftype selection-menu-manager (base-menu) + ((selection-index int32) + (prev-selection-index int32) + (enabled basic) + ) + (:methods + (selection-menu-manager-method-65 () none) + (selection-menu-manager-method-66 () none) + ) + ) + + +(deftype sprite-info (structure) + ((offset vector :inline) + (offset-x float :overlay-at (-> offset data 0)) + (offset-y float :overlay-at (-> offset data 1)) + (offset-z float :overlay-at (-> offset data 2)) + (offset-w float :overlay-at (-> offset data 3)) + (pos-z int32) + (tex-name basic) + (tex-id uint32) + (scale-x float) + (scale-y float) + (flags uint16) + (offset-from-index int8) + (offset-dir uint8) + (texture-index int8) + ) + ) + + +(deftype transition-info (animation-info) + ((enter-pos-x float) + (enter-pos-y float) + (enter-alpha float) + (running-alpha float) + (exit-alpha float) + (running-pos-x float) + (running-pos-y float) + (exit-pos-x float) + (exit-pos-y float) + (move-rate float) + (scroll-offset-x int32) + (scroll-offset-y int32) + (scroll-rate float) + ) + :pack-me + ) + + +(deftype sprite-menu-info (base-menu-info) + ((trans-info transition-info :override) + (sprites-info basic) + (color uint32) + ) + ) + + +(deftype hud-sprite-array (inline-array-class) + ((data hud-sprite :inline :dynamic) + ) + ) + + +(set! (-> hud-sprite-array heap-base) (the-as uint 64)) + +(deftype sprite-menu (base-menu) + ((sprites basic) + (alpha float) + ) + (:methods + (sprite-menu-method-65 () none) + ) + ) + + +(deftype menu-prim-strip-client (prim-client) + ((strip basic) + ) + (:methods + (menu-prim-strip-client-method-10 () none) + ) + ) + + +(deftype prim-strip-menu (sprite-menu) + ((p-client-array basic) + (colors basic) + ) + (:methods + (prim-strip-menu-method-66 () none) + ) + ) + + +(deftype sprite-ptr-info (sprite-info) + ((sprite-ptr basic) + ) + ) + + +(deftype sprite-ptr-menu-info (sprite-menu-info) + () + ) + + +(deftype sprite-ptr-menu (prim-strip-menu) + () + ) + + +(deftype index-sprite-list-menu-info (sprite-menu-info) + ((pad1 uint32 2) + (index-list basic) + (horiz-list? basic) + (item-offset int32) + (color-array basic) + ) + ) + + +(deftype index-sprite-list-menu (prim-strip-menu) + ((index-list basic) + ) + ) + + +(deftype string-info (structure) + ((offset vector :inline) + (offset-x float :overlay-at (-> offset data 0)) + (offset-y float :overlay-at (-> offset data 1)) + (offset-z float :overlay-at (-> offset data 2)) + (offset-w float :overlay-at (-> offset data 3)) + (pos-z int32) + (id uint32) + (font-scale float) + (width float) + (height float) + (string-ptr basic) + (string-ptr-needs-format basic) + (font-flags uint16) + (font-color uint8) + (font-color-2 uint8) + (font-color-3 uint8) + (offset-dir uint8) + (offset-from-index int8) + (offset-type-from int8) + (is-player-string basic) + (tmp-talking int32) + (extra-arg basic) + ) + ) + + +(deftype menu-string-array (inline-array-class) + ((data menu-string :inline :dynamic) + ) + ) + + +(set! (-> menu-string-array heap-base) (the-as uint 80)) + +(deftype string-menu-info (sprite-menu-info) + ((strings-info basic) + (text-ids basic) + ) + ) + + +(deftype string-menu (prim-strip-menu) + ((strings basic) + (text-ids basic) + ) + (:methods + (string-menu-method-67 () none) + (string-menu-method-68 () none) + ) + ) + + +(deftype options-bar-indicator (string-menu) + () + ) + + +(deftype game-text-menu-info (string-menu-info) + ((text-id uint32) + ) + ) + + +(deftype game-text-menu (string-menu) + ((text-id uint32) + ) + ) + + +(deftype dynamic-string-menu (string-menu) + () + ) + + +(deftype dynamic-driver-info (dynamic-string-menu) + () + ) + + +(deftype dropdown-trans-info (transition-info) + ((selected-offset vector) + ) + ) + + +(deftype dropdown-item-info (string-menu-info) + ((trans-info dropdown-trans-info :override) + (selection-box-width int32) + (selection-box-height int32) + (selection-type basic) + (selection-extra int32) + (selection-box-offset vector :inline) + (selection-box-offset-x float :overlay-at (-> selection-box-offset data 0)) + (selection-box-offset-y float :overlay-at (-> selection-box-offset data 1)) + (selection-box-offset-z float :overlay-at (-> selection-box-offset data 2)) + (selection-box-offset-w float :overlay-at (-> selection-box-offset data 3)) + (selection-box-color uint32) + (down-index-modifier int8) + (up-index-modifier int8) + (left-index-modifier int8) + (right-index-modifier int8) + (selection-box-texture-index int8) + (reset-pad uint8) + ) + ) + + +(deftype dropdown-item (string-menu) + ((selected basic) + (p-client-selection basic) + (prev-selection int32) + (enabled basic) + (selected-offset vector :inline) + ) + (:methods + (dropdown-item-method-69 () none) + ) + ) + + +(deftype item-list-selection-info (dropdown-item-info) + ((menu-options-info-sym basic) + (add-string uint32) + ) + ) + + +(deftype item-list-selection (dropdown-item) + ((menu-options-info-ptr menu-selection-struct) + (selection-type basic) + (selection-index int32) + ) + ) + + +(deftype item-list-driver-selection (item-list-selection) + () + ) + + +(deftype item-num-selection-info (item-list-selection-info) + ((pad1 uint32) + ) + ) + + +(deftype menu-num-info (structure) + ((min int32) + (max int32) + (current-num int32) + (last-num int32) + ) + ) + + +(deftype item-num-selection (item-list-selection) + ((num-selection int32) + (sound-id uint32) + ) + ) + + +(deftype item-num-max-selection (item-num-selection) + ((pad1 uint32) + ) + ) + + +(deftype games-list-selection (string-menu) + ((selection-index int8) + ) + ) + + +(deftype player-ct-string-menu (string-menu) + () + ) + + +(deftype string-list-selection (dropdown-item) + ((selection-index int8) + ) + ) + + +(deftype basic-list-selection-info (string-menu-info) + ((menu-options-info-sym basic) + ) + ) + + +(deftype basic-list-selection (string-menu) + ((menu-options-info-ptr basic) + (selection-index int8) + ) + ) + + +(deftype big-text-menu-info (sprite-menu-info) + ((string-info string-info) + (text basic) + (off-2d-x float) + (off-2d-y float) + ) + ) + + +(deftype big-text-menu (sprite-menu) + ((big-text basic) + (vert-offset float) + (vert-extent float) + (temp-string basic) + ) + (:methods + (big-text-menu-method-66 () none) + ) + ) diff --git a/goal_src/jakx/engine/ui/text-h.gc b/goal_src/jakx/engine/ui/text-h.gc index 56f9b99d93..84c3238f68 100644 --- a/goal_src/jakx/engine/ui/text-h.gc +++ b/goal_src/jakx/engine/ui/text-h.gc @@ -25,7 +25,7 @@ (text-data uint32) ) (:methods - (game-text-info-method-9 () none) + (lookup-text! (_type_ text-id symbol) string) (game-text-info-method-10 () none) (game-text-info-method-11 () none) (game-text-info-method-12 () none) diff --git a/goal_src/jakx/engine/util/stream-media-h.gc b/goal_src/jakx/engine/util/stream-media-h.gc index 94c1883db7..185b344023 100644 --- a/goal_src/jakx/engine/util/stream-media-h.gc +++ b/goal_src/jakx/engine/util/stream-media-h.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jakx/engine/vehicle/car-info-h.gc b/goal_src/jakx/engine/vehicle/car-info-h.gc index d3d40e41c9..fce23e9206 100644 --- a/goal_src/jakx/engine/vehicle/car-info-h.gc +++ b/goal_src/jakx/engine/vehicle/car-info-h.gc @@ -27,6 +27,508 @@ ) ;; ---vehicle-type +(declare-type wcar-base wvehicle) +(declare-type v-mongoose wcar-base) +(declare-type v-falcon wcar-base) +(declare-type v-wombat wcar-base) +(declare-type v-possum wcar-base) +(declare-type v-bobcat wcar-base) +(declare-type v-cougar wcar-base) +(declare-type v-wolf wcar-base) +(declare-type v-bear wcar-base) +(declare-type v-leopard wcar-base) +(declare-type v-panther wcar-base) +(declare-type v-tiger wcar-base) +(declare-type v-cheetah wcar-base) +(declare-type v-gila wcar-base) +(declare-type v-snake wcar-base) +(declare-type v-daxtermobile wcar-base) +(declare-type v-drone wcar-base) + + ;; DECOMP BEGINS +(define *car-type-names* (new 'static 'boxed-array :type string + "mongoose" + "falcon" + "wombat" + "possum" + "bobcat" + "cougar" + "wolf" + "bear" + "leopard" + "panther" + "tiger" + "cheetah" + "gila" + "snake" + "daxtermobile" + ) + ) + +(defun type-from-vehicle-type ((arg0 vehicle-type)) + (case arg0 + (((vehicle-type mongoose)) + v-mongoose + ) + (((vehicle-type falcon)) + v-falcon + ) + (((vehicle-type wombat)) + v-wombat + ) + (((vehicle-type possum)) + v-possum + ) + (((vehicle-type bobcat)) + v-bobcat + ) + (((vehicle-type cougar)) + v-cougar + ) + (((vehicle-type wolf)) + v-wolf + ) + (((vehicle-type bear)) + v-bear + ) + (((vehicle-type leopard)) + v-leopard + ) + (((vehicle-type panther)) + v-panther + ) + (((vehicle-type tiger)) + v-tiger + ) + (((vehicle-type cheetah)) + v-cheetah + ) + (((vehicle-type gila)) + v-gila + ) + (((vehicle-type snake)) + v-snake + ) + (((vehicle-type daxtermobile)) + v-daxtermobile + ) + (((vehicle-type drone)) + v-drone + ) + (else + (the-as type #f) + ) + ) + ) + +(defun level-name-from-vehicle-type ((arg0 vehicle-type)) + (case arg0 + (((vehicle-type mongoose)) + 'mongl + ) + (((vehicle-type falcon)) + 'falcl + ) + (((vehicle-type wombat)) + 'wombl + ) + (((vehicle-type possum)) + 'possl + ) + (((vehicle-type bobcat)) + 'bobcl + ) + (((vehicle-type cougar)) + 'cougl + ) + (((vehicle-type wolf)) + 'wolfl + ) + (((vehicle-type bear)) + 'bearl + ) + (((vehicle-type leopard)) + 'leopl + ) + (((vehicle-type panther)) + 'pantl + ) + (((vehicle-type tiger)) + 'tigel + ) + (((vehicle-type cheetah)) + 'cheel + ) + (((vehicle-type gila)) + 'gilal + ) + (((vehicle-type snake)) + 'snakl + ) + (((vehicle-type daxtermobile)) + 'daxtl + ) + (((vehicle-type drone)) + 'drone + ) + (else + #f + ) + ) + ) + +;; WARN: Return type mismatch int vs vehicle-type. +(defun car-type-from-vehicle-type ((arg0 int)) + (the-as vehicle-type (if (< (the-as uint arg0) (the-as uint 15)) + arg0 + -1 + ) + ) + ) + +(defun vehicle-type-from-car-type ((arg0 int)) + "does nothing, returns input" + arg0 + ) + +;; WARN: Return type mismatch int vs vehicle-type. +(defun car-type-from-level-name ((arg0 symbol)) + (let ((v1-0 arg0)) + (the-as vehicle-type (cond + ((= v1-0 'mongl) + 0 + ) + ((= v1-0 'falcl) + 1 + ) + ((= v1-0 'wombl) + 2 + ) + ((= v1-0 'possl) + 3 + ) + ((= v1-0 'bobcl) + 4 + ) + ((= v1-0 'cougl) + 5 + ) + ((= v1-0 'wolfl) + 6 + ) + ((= v1-0 'bearl) + 7 + ) + ((= v1-0 'leopl) + 8 + ) + ((= v1-0 'pantl) + 9 + ) + ((= v1-0 'tigel) + 10 + ) + ((= v1-0 'cheel) + 11 + ) + ((= v1-0 'gilal) + 12 + ) + ((= v1-0 'snakl) + 13 + ) + ((= v1-0 'daxtl) + 14 + ) + (else + -1 + ) + ) + ) + ) + ) + +;; WARN: Return type mismatch vehicle-type vs int. +(defun vehicle-type-from-level-name ((arg0 symbol)) + (the-as int (car-type-from-level-name arg0)) + ) + +(defun vehicle-type-from-name ((arg0 string)) + (cond + ((string= arg0 "mongoose") + 0 + ) + ((string= arg0 "falcon") + 1 + ) + ((string= arg0 "wombat") + 2 + ) + ((string= arg0 "possum") + 3 + ) + ((string= arg0 "bobcat") + 4 + ) + ((string= arg0 "cougar") + 5 + ) + ((string= arg0 "wolf") + 6 + ) + ((string= arg0 "bear") + 7 + ) + ((string= arg0 "leopard") + 8 + ) + ((string= arg0 "panther") + 9 + ) + ((string= arg0 "tiger") + 10 + ) + ((string= arg0 "cheetah") + 11 + ) + ((string= arg0 "gila") + 12 + ) + ((string= arg0 "snake") + 13 + ) + ((string= arg0 "daxtermobile") + 14 + ) + (else + (the-as int #f) + ) + ) + ) + +(define *car-part-names* (new 'static 'boxed-array :type string + "lf-fender" + "rf-fender" + "lr-fender" + "rr-fender" + "l-door" + "r-door" + "f-bumper" + "r-bumper" + "hood" + "trunk" + "roof" + "wheel" + "antenna" + "helmet" + ) + ) + +(deftype car-layer-textures (structure) + ((data basic 6) + (dest basic :overlay-at (-> data 0)) + (base basic :overlay-at (-> data 1)) + (stripe basic :overlay-at (-> data 2)) + (detail basic :overlay-at (-> data 3)) + (damage basic :overlay-at (-> data 4)) + (wheel-dest basic :overlay-at (-> data 0)) + (wheel-base basic :overlay-at (-> data 1)) + (wheel-blur basic :overlay-at (-> data 2)) + (tread-dest basic :overlay-at (-> data 3)) + (tread-base basic :overlay-at (-> data 4)) + (tread-blur basic :overlay-at (-> data 5)) + ) + :pack-me + ) + + +(deftype car-textures (structure) + ((data car-layer-textures 14 :inline) + ) + ) + + +(deftype car-rgb-color (vector4w) + ((red int32 :overlay-at (-> data 0)) + (green int32 :overlay-at (-> data 1)) + (blue int32 :overlay-at (-> data 2)) + (alpha int32 :overlay-at (-> data 3)) + ) + (:methods + (car-rgb-color-method-9 () none) + (car-rgb-color-method-10 () none) + (car-rgb-color-method-11 () none) + ) + ) + + +(deftype car-hsv-color (vector) + ((hue float :overlay-at (-> data 0)) + (saturation float :overlay-at (-> data 1)) + (value float :overlay-at (-> data 2)) + ) + (:methods + (car-hsv-color-method-9 () none) + ) + ) + + +(deftype car-part-info (structure) + ((short-name-id uint32) + (name-id uint32) + (task uint16) + (flags uint8) + (medal uint8) + (part-id uint8) + (pad uint8) + ) + ) + + +(deftype tuning-info (uint32) + () + ) + +(deftype upgrade-info (structure) + ((cost float) + (base uint8) + (max uint8) + (rookie uint8) + (pro uint8) + (cost-increment float) + ) + ) + + +(deftype upgrade-info-array (structure) + ((data upgrade-info 4 :inline) + ) + ) + + +(deftype car-upgrade-info-array (structure) + ((data upgrade-info-array 15 :inline) + ) + ) + + +(deftype car-info (structure) + ((base-color car-rgb-color :inline) + (stripe-color car-rgb-color :inline) + (car-type int8) + (current-parts int8 11) + (tuning uint32) + (flags uint32) + ) + ) + + +(deftype car-info-save (structure) + ((car-type int8) + (base-color uint32) + (stripe-color uint32) + (parts int8 11) + (tuning uint32) + (flags uint32) + ) + ) + + +(deftype car-info-full (car-info) + ((level basic) + (wheel-blur float) + (tread-texture basic) + (textures car-textures) + (first-tbp uint32) + (last-tbp uint32) + (damage int8 14) + (lights vu-lights :inline) + (shield-vu-lights vu-lights :inline) + (shield-light-group light-group :inline) + ) + (:methods + (car-info-full-method-9 () none) + (car-info-full-method-10 () none) + (car-info-full-method-11 () none) + (car-info-full-method-12 () none) + (car-info-full-method-13 () none) + (car-info-full-method-14 () none) + (car-info-full-method-15 () none) + (car-info-full-method-16 () none) + (car-info-full-method-17 () none) + (car-info-full-method-18 () none) + (car-info-full-method-19 () none) + (car-info-full-method-20 () none) + (car-info-full-method-21 () none) + ) + ) + + +(deftype car-info-array (structure) + ((data car-info 15 :inline) + ) + ) + + +(deftype car-level-array (basic) + ((data car-info-full 6 :inline) + (textures car-textures 6 :inline) + ) + (:methods + (car-level-array-method-9 () none) + ) + ) + + +(define *car-part-translate-array* + (new 'static 'boxed-array :type uint8 #x0 #x0 #x1 #x1 #x2 #x2 #x3 #x4 #x5 #x6 #x7 #x8 #x9 #xa) + ) + +(define *car-part-translate-names* (new 'static 'boxed-array :type string + "f-fender" + "r-fender" + "door" + "f-bumper" + "r-bumper" + "hood" + "trunk" + "roof" + "wheel" + "antenna" + "helmet" + ) + ) + +(define *car-look-names* (new 'static 'boxed-array :type string + "none" + "a" + "b" + "c" + "d" + "e" + "f" + "g" + "h" + "i" + "j" + "k" + "l" + "m" + "n" + "o" + "p" + "q" + "r" + "s" + "t" + "u" + "v" + ) + ) + +(define *car-layer-names* (new 'static 'boxed-array :type string "dest" "base" "stripe" "detail" "damage")) + +(define *car-string-name* (new 'global 'string 40 (the-as string #f))) diff --git a/goal_src/jakx/engine/vehicle/race-ai-tuning-h.gc b/goal_src/jakx/engine/vehicle/race-ai-tuning-h.gc index bf9113bdf4..e885fab6b4 100644 --- a/goal_src/jakx/engine/vehicle/race-ai-tuning-h.gc +++ b/goal_src/jakx/engine/vehicle/race-ai-tuning-h.gc @@ -7,3 +7,27 @@ ;; DECOMP BEGINS +(deftype race-ai-tuning-entry (structure) + ((player-ahead-distance float) + (ahead-speed-delta float) + (behind-speed-delta float) + ) + ) + + +(deftype race-ai-base-speed-info (structure) + ((adventure-minimum float) + (adventure-diff-mod float) + (exhibition-rookie float) + (exhibition-pro float) + ) + ) + + +(deftype race-ai-tuning-info (structure) + ((tuning-entry race-ai-tuning-entry 6 :inline) + (ahead-threshold float) + (behind-threshold float) + (base-speed race-ai-base-speed-info) + ) + ) diff --git a/goal_src/jakx/engine/vehicle/race-control.gc b/goal_src/jakx/engine/vehicle/race-control.gc index c367e7103e..5a5b39c3cc 100644 --- a/goal_src/jakx/engine/vehicle/race-control.gc +++ b/goal_src/jakx/engine/vehicle/race-control.gc @@ -7,3 +7,17 @@ ;; DECOMP BEGINS +(deftype race-control (structure) + ((state race-state :offset-assert 0) + (racer-state racer-state :offset-assert 4) + (mesh race-mesh :offset-assert 8) ;; guessed by decompiler + (line race-line :offset-assert 12) + ) + :pack-me + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (race-control-method-9 (_type_ symbol race-state racer-state) none) ;; 9 ;; (race-control-method-9 (_type_ int vector) none) + ) + ) \ No newline at end of file diff --git a/goal_src/jakx/engine/vehicle/race-h.gc b/goal_src/jakx/engine/vehicle/race-h.gc index 07ad649a5c..e25a4d1147 100644 --- a/goal_src/jakx/engine/vehicle/race-h.gc +++ b/goal_src/jakx/engine/vehicle/race-h.gc @@ -7,3 +7,56 @@ ;; DECOMP BEGINS +(deftype racer-state (structure) + ((position vector :inline) + (start-position vector :inline) + (last-race-mesh-position vector :inline) + (racer uint64) + (lap-distance float) + (lap float) + (prev-racer-lap float) + (next-racer-lap float) + (end-of-race-dist float) + (max-speed float) + (last-race-line race-line) + (last-slice int16) + (flags uint16) + (rank int8) + (ai-rank int8) + (lap-count int8) + (lap-quadrant int8) + ) + (:methods + (racer-state-method-9 () none) + (racer-state-method-10 () none) + (racer-state-method-11 () none) + ) + ) + + +(deftype race-state (structure) + ((start-sphere sphere :inline) + (start-dir vector :inline) + (finish-sphere sphere :inline) + (finish-dir vector :inline) + (race-state uint8) + (racer-count int8) + (lap-count int8) + (start-time int32) + (min-player-lap float) + (max-player-lap float) + (ai-tuning-indices basic) + (first-place-human-id int32) + (rubberband-ref-lap float) + (mesh basic) + (race-ai-tuning basic) + (race-ai-tuning-indices basic) + (longest-race-line-dist float) + (racer-array racer-state 10 :inline) + ) + (:methods + (race-state-method-9 () none) + (race-state-method-10 () none) + (race-state-method-11 () none) + ) + ) diff --git a/goal_src/jakx/engine/vehicle/race-line-h.gc b/goal_src/jakx/engine/vehicle/race-line-h.gc index 7ab89a5f55..8faf336c8a 100644 --- a/goal_src/jakx/engine/vehicle/race-line-h.gc +++ b/goal_src/jakx/engine/vehicle/race-line-h.gc @@ -7,3 +7,50 @@ ;; DECOMP BEGINS +(deftype race-line-slice-mapping (structure) + ((valid-entries uint16) + (index-entries uint32) + ) + ) + + +(deftype race-line-query-info (structure) + ((query-position vector :inline) + (nearest-position vector :inline) + (ahead-position vector :inline) + (ahead-direction vector :inline) + (direction vector :inline) + (angle-sum-distance float) + (look-ahead-distance float) + (current-slice int32) + (current-line basic) + (total-angle-delta float) + (skip-gaps? symbol) + ) + ) + + +(deftype race-line (structure) + ((scale vector :inline) + (offset vector :inline) + (length float) + (flags uint16) + (points-per-slice int16) + (point-count int16) + (gap-index-count int16) + (slice-count int16) + (extra-points int16) + (points uint32) + (gap-indices uint32) + (slices uint32) + (pad uint32) + ) + (:methods + (race-line-method-9 () none) + (race-line-method-10 () none) + (race-line-method-11 () none) + (race-line-method-12 () none) + (race-line-method-13 () none) + (race-line-method-14 () none) + ) + ) diff --git a/goal_src/jakx/engine/vehicle/race-mesh-h.gc b/goal_src/jakx/engine/vehicle/race-mesh-h.gc index c14584c617..15699a6041 100644 --- a/goal_src/jakx/engine/vehicle/race-mesh-h.gc +++ b/goal_src/jakx/engine/vehicle/race-mesh-h.gc @@ -7,3 +7,91 @@ ;; DECOMP BEGINS +(deftype race-mesh-hash-search (structure) + ((best-dist float) + (debug-cells-searched int32) + (debug-slices-searched int32) + (bounds bounding-box4w :inline) + (cell-quads vector 2 :inline) + (slice-quads vector 4 :inline) + (cell-bits vector16ub 2 :inline :overlay-at cell-quads) + (slice-bits vector16ub 2 :inline :overlay-at slice-quads) + ) + ) + + +(deftype race-mesh-slice-query (structure) + ((search-sphere sphere :inline) + (slice-range uint16 2) + (race-line race-line) + (pt-on-slice vector :inline) + (slice-corners vector 4 :inline) + (lap-dist float) + (slice-id int16) + ) + ) + + +(deftype race-mesh-edge (structure) + ((left vector :inline) + (right vector :inline) + (lap-dist float :overlay-at (-> left data 3)) + ) + ) + + +(deftype race-mesh-slice (structure) + ((edge-index-array uint16 2) + (start-edge int16 :overlay-at (-> edge-index-array 0)) + (end-edge int16 :overlay-at (-> edge-index-array 1)) + ) + ) + + +(deftype race-mesh-hash-cell (structure) + ((first-slice int16) + (slice-count uint8) + (pad uint8) + ) + ) + + +(deftype race-mesh-hash (structure) + ((cells-wide int8) + (cells-tall int8) + (cell-length float) + (cells (inline-array race-mesh-hash-cell)) + (slice-table (inline-array race-mesh-slice)) + (origin vector :inline) + ) + ) + + +(deftype race-mesh (basic) + ((version uint8) + (flags uint8) + (slice-count int16) + (edge-count int16) + (race-line-count int16) + (ai-valid-mask int16) + (pad uint8 2) + (slices (inline-array race-mesh-slice)) + (edges (inline-array race-mesh-edge)) + (hash race-mesh-hash) + (race-lines uint32) + ) + (:methods + (race-mesh-method-9 () none) + (race-mesh-method-10 () none) + (race-mesh-method-11 () none) + (race-mesh-method-12 () none) + (race-mesh-method-13 () none) + (race-mesh-method-14 () none) + (race-mesh-method-15 () none) + (race-mesh-method-16 () none) + (race-mesh-method-17 () none) + (race-mesh-method-18 () none) + (race-mesh-method-19 () none) + (race-mesh-method-20 () none) + ) + ) diff --git a/goal_src/jakx/engine/vehicle/vehicle-effects.gc b/goal_src/jakx/engine/vehicle/vehicle-effects.gc index 543ee54f53..901efe434d 100644 --- a/goal_src/jakx/engine/vehicle/vehicle-effects.gc +++ b/goal_src/jakx/engine/vehicle/vehicle-effects.gc @@ -7,3 +7,4 @@ ;; DECOMP BEGINS +(define-extern *vehicle-particle-common-info* vehicle-particle-common-info) \ No newline at end of file diff --git a/goal_src/jakx/engine/vehicle/vehicle-h.gc b/goal_src/jakx/engine/vehicle/vehicle-h.gc index 8370ac6a47..34dcb6be7a 100644 --- a/goal_src/jakx/engine/vehicle/vehicle-h.gc +++ b/goal_src/jakx/engine/vehicle/vehicle-h.gc @@ -5,5 +5,778 @@ ;; name in dgo: vehicle-h ;; dgos: ENGINE, GAME +;; +++vehicle-wheel-flag +(defenum vehicle-wheel-flag + :type uint64 + :bitfield #t + (vwf0 0) + (vwf1 1) + (vwf2 2) + (vwf3 3) + (vwf4 4) + (vwf5 5) + ) +;; ---vehicle-wheel-flag + +;; +++vehicle-seat-flag +(defenum vehicle-seat-flag + :type uint8 + :bitfield #t + (vsf0 0) + (vsf1 1) + (vsf2 2) + ) +;; ---vehicle-seat-flag + +;; +++vehicle-flag +(defenum vehicle-flag + :type uint64 + :bitfield #t + (enable-collision 0) + (disturbed 1) + (damaged 2) + (dead 3) + (suppress-physics 4) + (in-air 5) + (on-ground 6) + (riding 7) + (player-grabbed 8) + (player-driving 9) + (player-owned 10) + (remote-control 11) + (ai-driving 12) + (ignition 13) + (nav-spheres 14) + (turbo-boost 15) + (reverse-gear 16) + (camera 17) + (camera-inside-view 18) + (camera-look-mode 19) + (sounds 20) + (particles 21) + (joints 22) + (lights-on 23) + (lights-update 24) + (lights-dead 25) + (overturned 26) + (ignore-damage 27) + (ignore-impulse 28) + (highspeed-collision 29) + (oil-slick 30) + (turbo-pad 31) + (fragile 32) + (fragile-death 33) + (ignore-powerups 34) + (turbo-toggle 35) + (start-boost-latch 36) + (start-boost 37) + (shield 38) + (respawn-invul 39) + (draw-marks 40) + (temp 41) + (dark-eco-boost-triggered 42) + (ai-off-nav-mesh 43) + (oversteer 44) + (ghost 45) + (wheel-fire 46) + (stuck 47) + (sinking 48) + (no-color-mod 49) + (suppress-look 50) + (disable-weapons 51) + (superhero 52) + ) +;; ---vehicle-flag + ;; DECOMP BEGINS +(deftype vehicle-handling-info (structure) + ((brake-factor float) + (turbo-boost-factor float) + (turbo-boost-half-gain-speed float) + (tire-steering-angle float) + (tire-steering-speed-factor float) + (tire-steering-speed-bias float) + (ackermann-factor float) + (tire-static-friction float) + (tire-static-friction-speed meters) + (tire-dynamic-friction float) + (tire-dynamic-friction-speed meters) + (tire-arcade-factor float) + (drag-force-factor float) + (rolling-resistance float) + (downforce-factor float) + (roll-control-factor float) + (jump-thrust-factor float) + (buoyancy-factor float) + (water-drag-factor float) + (air-roll-torque float) + (air-pitch-torque float) + (air-angular-damping float) + (hop-turn-torque float) + (ground-torque-scale float) + (cos-ground-effect-angle float) + (ai-steering-factor float) + (ai-throttle-factor float) + ) + :pack-me + ) + + +(deftype vehicle-engine-info (structure) + ((max-torque float) + (inertia float) + (drag float) + (idle-rpm float) + (clutch-min-rpm float) + (clutch-max-rpm float) + (min-rpm float) + (max-rpm float) + (peak-torque-rpm float) + (powerband-width-rpm float) + (torque-data uint8 16) + ) + :pack-me + ) + + +(deftype vehicle-transmission-info (structure) + ((inertia float) + (upshift-rpm float) + (downshift-rpm float) + (final-drive-ratio float) + (gear-ratio-array float 8) + (gear-count int8) + ) + :pack-me + ) + + +(deftype vehicle-wheel-info (structure) + ((local-pos vector :inline) + (flags vehicle-wheel-flag) + (callback function) + (inertia float) + (radius float) + (susp-arm-length float) + (steer-arm-length float) + (scale float) + (travel float) + (probe-x-offset float) + (probe-y-offset float) + (suspension-spring float) + (suspension-damping float) + (forward-grip float) + (side-grip float) + (max-brake-torque float) + (camber float) + (x-scale float) + (probe-radius float) + (width float) + (settle-pos float) + ) + :pack-me + ) + + +(deftype vehicle-physics-model-info (structure) + ((front-wheel vehicle-wheel-info :inline) + (rear-wheel vehicle-wheel-info :inline) + ) + :pack-me + ) + + +(deftype vehicle-camera-info (structure) + ((string-min-height meters) + (string-max-height meters) + (string-min-length meters) + (string-max-length meters) + (min-fov float) + (max-fov float) + (head-offset float) + (foot-offset float) + (look-pos-array vector 4 :inline) + (look-front vector :inline :overlay-at (-> look-pos-array 0)) + (look-left vector :inline :overlay-at (-> look-pos-array 1)) + (look-right vector :inline :overlay-at (-> look-pos-array 2)) + (look-rear vector :inline :overlay-at (-> look-pos-array 3)) + ) + :pack-me + ) + + +(deftype vehicle-sound-loop-info (structure) + ((sound uint16) + (speed float) + (min-speed float) + (max-speed float) + (pitch-offset float) + (pitch-scale float) + (min-pitch float) + (max-pitch float) + ) + :pack-me + ) + + +(deftype vehicle-sound-engine-loop-info (structure) + ((sound-array uint16 3) + (base-sound uint16 :overlay-at (-> sound-array 0)) + (load-sound uint16 :overlay-at (-> sound-array 1)) + (ai-sound uint16 :overlay-at (-> sound-array 2)) + (original-rpm float) + (min-rpm float) + (max-rpm float) + (pitch-scale float) + ) + :pack-me + ) + + +(deftype vehicle-sound-info (structure) + ((water-sound uint16) + (jump-sound uint16) + (turbo-sound uint16) + (susp-creak-sound uint16) + (susp-bottom-out-sound uint16) + (susp-speed-threshold float) + (rpm-scale float) + (engine-loop-count int8) + (engine-loop-array (inline-array vehicle-sound-engine-loop-info)) + (tire-roll-sounds vehicle-sound-loop-info 6 :inline :offset 28) + (tire-slide-sounds vehicle-sound-loop-info 2 :inline) + (tire-roll-hum-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 0)) + (tire-roll-dirt-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 1)) + (tire-roll-sand-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 2)) + (tire-roll-snow-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 3)) + (tire-roll-grass-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 4)) + (tire-roll-knobby-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 5)) + (tire-slide-road-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-slide-sounds 0)) + (tire-slide-dirt-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-slide-sounds 1)) + ) + :pack-me + ) + + +(deftype vehicle-particle-info (structure) + ((headlight-count int8) + (taillight-count int8) + (thruster-count int8) + (thruster-flame-width meters) + (thruster-flame-length meters) + (thruster-local-pos vector) + (exhaust-local-pos vector 2 :inline) + (exhaust-local-dir vector 2 :inline) + (smoke-local-pos vector 2 :inline) + (smoke-local-vel vector 2 :inline) + (headlight-local-pos vector 3 :inline) + (taillight-local-pos vector 2 :inline) + ) + :pack-me + ) + + +(deftype vehicle-section-info (structure) + ((rbody rigid-body-object-constants) + (hinge-axis vector :inline) + (color rgbaf :inline) + (joint-local matrix :inline) + (min-angle float) + (max-angle float) + (inv-hit-points float) + (hit-points float) + (rattle-sound uint16) + (impact-sound uint16) + ) + :pack-me + ) + + +(deftype vehicle-damage-info (structure) + ((inv-toughness-factor float) + (hit-points float) + (inv-hit-points float) + (hit-threshold float) + (impact-damage-factor float) + (section-mask uint32) + (section-array vehicle-section-info 12 :inline) + (section-lf-fender vehicle-section-info :inline :overlay-at (-> section-array 0)) + (section-rf-fender vehicle-section-info :inline :offset 176) + (section-lr-fender vehicle-section-info :inline :offset 320) + (section-rr-fender vehicle-section-info :inline :offset 464) + (section-l-door vehicle-section-info :inline :offset 608) + (section-r-door vehicle-section-info :inline :offset 752) + (section-hood vehicle-section-info :inline :offset 1184) + (section-trunk vehicle-section-info :inline :offset 1328) + (section-f-bumper vehicle-section-info :inline :offset 896) + (section-r-bumper vehicle-section-info :inline :offset 1040) + (section-roof vehicle-section-info :inline :offset 1472) + (section-cockpit vehicle-section-info :inline :offset 1616) + ) + :pack-me + ) + + +(deftype vehicle-setup-info (structure) + ((settle-height float) + (settle-rot-x float) + (idle-settle-height float) + (idle-settle-rot-x float) + (shadow-bot-clip float) + (shadow-locus-dist float) + (look-select uint8) + (rp-node-count int8) + (color-option-count int8) + (color-option-select int8) + (unknown vector) + ) + :pack-me + ) + + +(deftype vehicle-pilot-info (structure) + ((player-turn-anim-bias float) + (player-turn-anim-min float) + (player-turn-anim-max float) + (pilot-x-accel-factor float) + (pilot-y-accel-factor float) + (pilot-z-accel-factor float) + ) + :pack-me + ) + + +(deftype vehicle-seat-info (structure) + ((data uint8 16) + (position vector :inline :overlay-at (-> data 0)) + (pos-x float :overlay-at (-> data 0)) + (pos-y float :overlay-at (-> data 4)) + (pos-z float :overlay-at (-> data 8)) + (angle int16 :overlay-at (-> data 12)) + (flags vehicle-seat-flag :overlay-at (-> data 14)) + (mask uint16 :overlay-at (-> data 14)) + ) + :pack-me + ) + + +(deftype vehicle-daxter-info (structure) + ((data (inline-array vector) 3) + (counts int8 3) + (chassis-seats (inline-array vector) :overlay-at (-> data 0)) + (trunk-seats (inline-array vector) :overlay-at (-> data 1)) + (roof-seats (inline-array vector) :overlay-at (-> data 2)) + (chassis-seat-count int8 :overlay-at (-> counts 0)) + (trunk-seat-count int8 :overlay-at (-> counts 1)) + (roof-seat-count int8 :overlay-at (-> counts 2)) + ) + :pack-me + ) + + +(deftype vehicle-rider-info (structure) + ((seat-count int8) + (attach-point-count int8) + (seat-array vehicle-seat-info 2 :inline) + (rider-hand-offset vector 2 :inline) + (attach-point-array (inline-array vector)) + (attach-node-array (inline-array vector)) + ) + :pack-me + ) + + +(deftype vehicle-hardpoint-info (structure) + ((local-pos-array (inline-array vector)) + (flag-attach vector :inline) + (antenna-attach vector :inline) + (nodes int8 7) + (left-gun int8 :overlay-at (-> nodes 0)) + (right-gun int8 :overlay-at (-> nodes 1)) + (mine-launcher int8 :overlay-at (-> nodes 2)) + (trunk int8 :overlay-at (-> nodes 3)) + (super-turbo-attach int8 3 :overlay-at (-> nodes 4)) + (shield-anim int16) + ) + :pack-me + ) + + +(deftype vehicle-explosion-info (joint-exploder-static-params) + ((skel skeleton-group) + (skel-name string) + (anim int32) + ) + :pack-me + ) + + +(deftype vehicle-particle-common-info (structure) + ((sp-system2d sparticle-system) + (sp-system3d sparticle-system) + (part-thruster sparticle-launcher) + (part-thruster-x sp-field-init-spec) + (part-spec2 sp-field-init-spec) + (part-quat quaternion) + (part-vel vector) + (pad uint32 2) + (headlight-glow-template sprite-glow-data) + (taillight-glow-template sprite-glow-data) + (thruster-glow-template sprite-glow-data) + (pad2 uint32 6) + (thrust-tex-id uint32) + (dark-thrust-tex-id uint32) + (pad3 uint32 9) + (rgb rgbaf :inline) + (lights vu-lights) + (pad4 uint32 2) + ) + :pack-me + (:methods + (vehicle-particle-common-info-method-9 () none) + ) + ) + + +(deftype vehicle-shield-info (structure) + ((inner ellipsoid :inline) + (offset vector :inline) + (outer-multiple float) + ) + :pack-me + ) + + +(deftype rigid-body-vehicle-constants (rigid-body-object-constants) + ((flags uint32) + (vehicle-type uint8) + (engine vehicle-engine-info :inline) + (transmission vehicle-transmission-info :inline) + (handling vehicle-handling-info :inline) + (pilot vehicle-pilot-info :inline) + (camera vehicle-camera-info :inline) + (sound vehicle-sound-info :inline) + (particles vehicle-particle-info :inline) + (damage vehicle-damage-info :inline) + (physics-model vehicle-physics-model-info :inline) + (setup vehicle-setup-info) + (rider vehicle-rider-info :inline) + (daxter vehicle-daxter-info) + (hardpoint vehicle-hardpoint-info :inline) + (shield vehicle-shield-info :inline) + (explosion vehicle-explosion-info) + (explosion-part int32) + (debris debris-static-params) + (name-text text-id) + (helmet-offset vector) + (particle-common vehicle-particle-common-info) + ) + (:methods + (rigid-body-vehicle-constants-method-10 () none) + ) + ) + + +(deftype vehicle-section (structure) + ((vel vector :inline) + (info vehicle-section-info) + (node-list basic) + (draw basic) + (car-info car-info-full) + (debris uint64) + (damage float) + (angle float) + (d-angle float) + (node-index int8) + (parent-node-index int8) + (flags uint8) + (car-part int8) + ) + (:methods + (vehicle-section-method-9 () none) + (vehicle-section-method-10 () none) + (vehicle-section-method-11 () none) + (vehicle-section-method-12 () none) + (vehicle-section-method-13 () none) + (vehicle-section-method-14 () none) + (vehicle-section-method-15 () none) + (vehicle-section-method-16 () none) + (vehicle-section-method-17 () none) + (vehicle-section-method-18 () none) + (vehicle-section-method-19 () none) + ) + ) + + +(deftype vehicle-controls (structure) + ((dataf float 5) + (dataw uint32 5 :overlay-at (-> dataf 0)) + (steering float :overlay-at (-> dataf 0)) + (throttle float :overlay-at (-> dataf 1)) + (brake float :overlay-at (-> dataf 2)) + (lean-z float :overlay-at (-> dataf 3)) + (handbrake float :overlay-at (-> dataf 4)) + (flags uint8) + (prev-flags uint8) + (pad0 uint8 2) + ) + :pack-me + ) + + +(deftype vehicle-particle (structure) + ((birth-accum uint32 2) + (launcher basic) + ) + ) + + +(deftype vehicle (rigid-body-object) + ((info rigid-body-vehicle-constants :override) + (car-info car-info-full :overlay-at perf) + (v-flags vehicle-flag :overlay-at flags) + (pad1 uint32 2) + (damage-matrix matrix 2 :inline) + (damage-direction vector :inline) + (camera-pos vector :inline) + (pad2 uint32 2) + (control-hook (function vehicle vehicle-controls)) + (control-mask vehicle-controls) + (impact-callback basic) + (controls vehicle-controls :inline) + (prev-controls vehicle-controls :inline) + (impact rigid-body-impact :inline) + (target-acceleration vector :inline) + (impact-local-pos vector :inline) + (lin-acceleration vector :inline) + (max-impact-impulse float) + (sum-impact-impulse float) + (underside-y float) + (side-x float) + (health float) + (damage-factor float) + (pad3 uint32) + (speed-factor float) + (pad4 uint32 6) + (behavior uint64) + (cam-view int8) + (pad5 uint32) + (cam-speed-interp float) + (camera-dist float) + (pad6 uint32 3) + (impact-proc uint64) + (net-player uint64) + (pad7 uint32) + (impact-time uint32) + (prev-impact-time uint32) + (pad8 uint32 3) + (offscreen-time uint32) + (pad9 uint32 3) + (physics-enabled-time uint32) + (pad10 uint32 7) + (water-height float) + (pad11 uint32 236) + (pred net-predictor-sphcol :inline) + (next-reliable-send-time int32) + (player-id int8) + (killed-by int8) + (killed-with int8) + (pad12 uint32 2) + (last-warp-time int32) + (last-sent-vehicle-control-flags uint8) + ) + (:methods + (vehicle-method-89 () none) + (vehicle-method-90 () none) + (vehicle-method-91 () none) + (vehicle-method-92 () none) + (vehicle-method-93 () none) + (vehicle-method-94 () none) + (vehicle-method-95 () none) + (vehicle-method-96 () none) + (vehicle-method-97 () none) + (vehicle-method-98 () none) + (vehicle-method-99 () none) + (vehicle-method-100 () none) + (vehicle-method-101 () none) + (vehicle-method-102 () none) + (vehicle-method-103 () none) + (vehicle-method-104 () none) + (vehicle-method-105 () none) + (vehicle-method-106 () none) + (vehicle-method-107 () none) + (vehicle-method-108 () none) + (vehicle-method-109 () none) + (vehicle-method-110 () none) + (vehicle-method-111 () none) + (vehicle-method-112 () none) + (vehicle-method-113 () none) + (vehicle-method-114 () none) + (vehicle-method-115 (_type_) none) + (vehicle-method-116 () none) + (vehicle-method-117 () none) + (vehicle-method-118 () none) + (vehicle-method-119 () none) + (vehicle-method-120 () none) + (vehicle-method-121 () none) + (vehicle-method-122 () none) + (vehicle-method-123 () none) + (vehicle-method-124 () none) + (vehicle-method-125 () none) + (vehicle-method-126 () none) + (vehicle-method-127 () none) + (vehicle-method-128 () none) + (vehicle-method-129 () none) + (vehicle-method-130 () none) + (vehicle-method-131 () none) + (vehicle-method-132 () none) + (vehicle-method-133 () none) + (vehicle-method-134 () none) + (vehicle-method-135 () none) + (vehicle-method-136 () none) + (vehicle-method-137 () none) + (vehicle-method-138 () none) + (vehicle-method-139 () none) + (vehicle-method-140 () none) + (vehicle-method-141 () none) + (vehicle-method-142 () none) + (vehicle-method-143 () none) + (vehicle-method-144 () none) + (vehicle-method-145 () none) + (vehicle-method-146 () none) + (vehicle-method-147 () none) + (vehicle-method-148 () none) + (vehicle-method-149 () none) + (vehicle-method-150 () none) + (vehicle-method-151 () none) + (vehicle-method-152 () none) + (vehicle-method-153 () none) + (vehicle-method-154 () none) + (vehicle-method-155 () none) + (vehicle-method-156 () none) + (vehicle-method-157 () none) + (vehicle-method-158 () none) + (vehicle-method-159 () none) + (vehicle-method-160 () none) + (vehicle-method-161 () none) + (vehicle-method-162 () none) + (vehicle-method-163 () none) + (vehicle-method-164 () none) + (vehicle-method-165 () none) + (vehicle-method-166 () none) + (vehicle-method-167 () none) + (vehicle-method-168 () none) + (vehicle-method-169 () none) + (vehicle-method-170 () none) + (vehicle-method-171 () none) + (vehicle-method-172 () none) + (vehicle-method-173 () none) + (vehicle-method-174 () none) + (vehicle-method-175 () none) + (vehicle-method-176 () none) + (vehicle-method-177 () none) + (vehicle-method-178 () none) + (vehicle-method-179 () none) + (vehicle-method-180 () none) + (vehicle-method-181 () none) + (vehicle-method-182 () none) + (vehicle-method-183 () none) + (vehicle-method-184 () none) + (vehicle-method-185 () none) + (vehicle-method-186 () none) + (vehicle-method-187 () none) + (vehicle-method-188 () none) + (vehicle-method-189 () none) + (vehicle-method-190 () none) + (vehicle-method-191 () none) + (vehicle-method-192 () none) + (vehicle-method-193 () none) + (vehicle-method-194 () none) + (vehicle-method-195 () none) + (vehicle-method-196 () none) + (vehicle-method-197 () none) + (vehicle-method-198 () none) + (vehicle-method-199 () none) + (vehicle-method-200 () none) + (vehicle-method-201 () none) + (vehicle-method-202 () none) + (vehicle-method-203 () none) + ) + ) + + +(defbehavior vehicle-init-remote vehicle ((arg0 int)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self arg0) + (process-nettable-method-36 self) + 0 + (none) + ) + +(defmethod process-nettable-method-41 ((this vehicle) (arg0 int)) + (ppointer->process (process-spawn vehicle :init vehicle-init-remote arg0 :name "vehicle")) + ) + +(defmethod process-nettable-method-37 ((this vehicle) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'weapon-acquired) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'drone-change-target) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'seismic-discharge) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'tractor-fire) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'make-drone) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'weapon-trigger) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +(define *msg-map-vehicle* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +(define *net-process-class-info-vehicle* (new 'static 'net-process-class-info)) + +(set! (-> *net-process-class-info-vehicle* msg-map) *msg-map-vehicle*) + +(write-msg-map-rec vehicle *net-process-class-info-vehicle*) + +(set! (-> *net-process-class-info-vehicle* owner-type) vehicle) + +(net-process-class-register *net-process-class-info-vehicle*) + +(defmethod process-nettable-method-40 ((this vehicle)) + *net-process-class-info-vehicle* + ) + +(defun vehicle-get-flag-attach-point ((arg0 vehicle)) + (-> arg0 info hardpoint flag-attach) + ) + +(deftype vehicle-draw-thruster-params (structure) + ((quat quaternion :inline) + (trans vector :inline) + (thrust-rgb rgbaf :inline) + (glow-rgb rgbaf :inline) + (tex-id uint32) + (thrust float) + (width float) + (length float) + (fog-fade float) + ) + ) + + +(defun meters-per-sec->mph ((arg0 float)) + (* 0.00031568037 arg0) + ) + +(deftype debug-vehicle-work (basic) + ((impact-time time-frame) + (impact rigid-body-impact :inline) + (prim-sphere1 sphere :inline) + (prim-sphere2 sphere :inline) + ) + ) diff --git a/goal_src/jakx/engine/vehicle/vehicle-part.gc b/goal_src/jakx/engine/vehicle/vehicle-part.gc index e85d1c0337..880d904640 100644 --- a/goal_src/jakx/engine/vehicle/vehicle-part.gc +++ b/goal_src/jakx/engine/vehicle/vehicle-part.gc @@ -5,5 +5,1103 @@ ;; name in dgo: vehicle-part ;; dgos: ENGINE, GAME +(define-extern *vehicle-particle-common-info* vehicle-particle-common-info) + ;; DECOMP BEGINS +(defpart 243 + :init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x1)) + (:birth-func 'birth-func-laser-pointer) + (:num 1.0) + (:scale-x (meters 0.075) (meters 0.05)) + (:scale-y (meters 40)) + (:r 255.0) + (:g 0.0) + (:b :copy g) + (:a 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 right-multiply-quat)) + ) + ) + +(defpart 244 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #x4)) + (:num 1.0) + (:scale-x (meters 0.2) (meters 0.15)) + (:rot-x (degrees 1.125)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0 128.0) + (:b :copy g) + (:a 128.0) + (:rotvel-z (degrees 0.3)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + ) + ) + +(defpart 245 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 0.5) (meters 0.25)) + (:rot-x (degrees 1.125)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g 0.0) + (:b :copy g) + (:a 48.0 16.0) + (:rotvel-z (degrees 0.3)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + ) + ) + +(defpart 246 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #x4)) + (:num 1.0) + (:scale-x (meters 0.2) (meters 0.025)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g 32.0) + (:b :copy g) + (:a 128.0) + (:rotvel-z (degrees 0.3)) + (:fade-g -1.0666667) + (:fade-b -1.0666667) + (:fade-a -8.533334) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + ) + ) + +(defun sparticle-vehicle-direction-light ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((a1-1 (new 'stack-no-clear 'quaternion)) + (s5-0 (new 'stack-no-clear 'matrix)) + ) + (let* ((v1-0 a1-1) + (a0-1 arg2) + (f0-0 (-> a0-1 conerot x)) + (f1-0 (-> a0-1 conerot y)) + (f2-0 (-> a0-1 conerot z)) + ) + (set! (-> v1-0 x) f0-0) + (set! (-> v1-0 y) f1-0) + (set! (-> v1-0 z) f2-0) + (set! (-> v1-0 w) (sqrtf (- (- (- 1.0 (square f2-0)) (square f1-0)) (square f0-0)))) + ) + (quaternion->matrix s5-0 a1-1) + (calc-particle-directional-color + (&-> arg2 rotate-x) + (-> *vehicle-particle-common-info* lights) + (-> s5-0 uvec) + ) + ) + (set! (-> arg2 rotate-x) (* 64.0 (-> arg2 rotate-x))) + (set! (-> arg2 rotate-y) (* 64.0 (-> arg2 rotate-y))) + (set! (-> arg2 rotate-z) (* 64.0 (-> arg2 rotate-z))) + (set! (-> arg2 coneradius) (* 128.0 (-> arg2 coneradius))) + #t + ) + +(defun sparticle-sparks-birth ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (birth-func-texture-group (the-as int arg0) arg1 arg2) + (let ((v1-1 (-> *particle-birth-work* vel-range))) + (+! (-> arg1 vel-sxvel x) (-> v1-1 0 x)) + (+! (-> arg1 vel-sxvel y) (-> v1-1 0 y)) + (+! (-> arg1 vel-sxvel z) (-> v1-1 0 z)) + ) + (let* ((v1-4 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-5 (the-as number (logior #x3f800000 v1-4))) + (f1-4 (+ -1.0 (the-as float v1-5))) + (f0-8 (-> arg2 launchrot w)) + (f0-9 (if (< 0.99 f1-4) + (+ 2457.6 f0-8) + (+ f0-8 (* 204.8 f1-4)) + ) + ) + ) + (set! (-> arg2 launchrot w) f0-9) + (set! (-> arg2 conerot w) f0-9) + ) + 0 + (none) + ) + +(defpart 247 + :init-specs ((:texture (new 'static 'texture-id :index #x7d :page #x4)) + (:birth-func 'sparticle-sparks-birth) + (:num 0.5) + (:x (meters 0) (meters 1)) + (:scale-x (meters 0.3) (meters 0.6)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.3) (meters 0.6)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-x (degrees -2) (degrees 4)) + (:rotvel-y (degrees -1) (degrees 2)) + (:rotvel-z (degrees -2) (degrees 4)) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 + 20 + 1 + 0 + #x407d00 + #x407e00 + #x407f00 + #x40ac00 + #x407d00 + #x407e00 + #x407f00 + #x40ac00 + #x40ad00 + ) + ) + (:func 'sparticle-vehicle-direction-light) + (:conerot-x (degrees 0) (degrees 60)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 248 + :init-specs ((:texture (new 'static 'texture-id :index #x7d :page #x4)) + (:birth-func 'sparticle-sparks-birth) + (:num 0.5) + (:x (meters 0) (meters 1)) + (:scale-x (meters 0.05) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.05) (meters 0.2)) + (:r 32.0 32.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -3.0000002) (degrees 6.0000005)) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 20 1 0 #x407d00 #x407e00 #x407f00 #x40ac00)) + (:conerot-x (degrees 0) (degrees 60)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 249 + :init-specs ((:texture (new 'static 'texture-id :index #x4e :page #x4)) + (:num 5.0 2.0) + (:scale-x (meters 1.5)) + (:rot-x 4) + (:scale-y (meters 0.025) (meters 0.01)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 64.0 64.0) + (:omega (degrees 0.03375) (degrees 0.0225)) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-r -0.85 -0.85) + (:fade-g -1.7 -1.7) + (:fade-b -8.0) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.96) + (:timer (seconds 0.167) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + ) + ) + +(defpartgroup group-vehicle-part-fire-trail-wheel + :id 42 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 250 :flags (sp6)) (sp-item 251 :flags (sp6))) + ) + +(defpart 252 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #x4)) + (:num 1.0) + (:scale-x (meters 3)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0) + (:b 0.0) + (:a 10.0) + (:omega (degrees 9011.25)) + (:fade-a -0.4) + (:timer (seconds 0.25)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 1.0) + ) + ) + +(defpart 250 + :init-specs ((:texture (new 'static 'texture-id :index #x11 :page #x4)) + (:num 2.0) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1) (meters 1)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters -0.0033333334) (meters -0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 253) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 253 + :init-specs ((:fade-a -2.55 -2.55)) + ) + +(defpart 251 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:num 0.5) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +(defpartgroup group-vehicle-part-fire-trail-panels + :id 43 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 254 :flags (sp6)) (sp-item 255 :flags (sp6))) + ) + +(defpart 254 + :init-specs ((:texture (new 'static 'texture-id :index #x11 :page #x4)) + (:num 2.0) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1) (meters 1)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters -0.0033333334) (meters -0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 253) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 255 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:num 0.5) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +(defpartgroup group-vehicle-part-fire-trail-bits + :id 44 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 256 :flags (sp6))) + ) + +(defpart 256 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:num 1.0) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +(defpartgroup group-vehicle-part-fire-trail-chasis + :id 45 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 257 :flags (sp6)) (sp-item 258 :flags (sp6))) + ) + +(defpart 259 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #x4)) + (:num 1.0) + (:scale-x (meters 6)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0) + (:b 0.0) + (:a 10.0) + (:omega (degrees 9011.25)) + (:fade-a -0.4) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 1.0) + ) + ) + +(defpart 257 + :init-specs ((:texture (new 'static 'texture-id :index #x11 :page #x4)) + (:num 5.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 1)) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 2) (meters 2)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters -0.006666667) (meters -0.013333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.001)) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 260) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 260 + :init-specs ((:fade-a -2.55 -0.85)) + ) + +(defpart 258 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:num 1.0) + (:y (meters 0) (meters 1)) + (:scale-x (meters 2) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 2.56 2.56) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 0.085)) + (:next-launcher 261) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +(defpart 261 + :init-specs ((:fade-a -0.128 -0.128)) + ) + +(defpart 262 + :init-specs ((:texture (new 'static 'texture-id :index #x89 :page #x4)) + (:num 1.0) + (:scale-x (meters 0.4)) + (:scale-y (meters 3)) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 128.0 64.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 right-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 263 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:birth-func 'birth-func-set-vel) + (:num 1.0) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 60.0) + (:g 60.0) + (:b 85.0) + (:a 16.0) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335) + (:accel-y (meters 0.00016666666) (meters 0.00006666667)) + (:friction 0.96 0.01) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:conerot-y (degrees 0) (degrees 10)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +(defpart 264 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 50.0 50.0) + (:vel-y (meters 0)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.22222222) + (:accel-y (meters 0.00006666667) (meters 0.00006666667)) + (:friction 0.99) + (:timer (seconds 1.5)) + (:flags (sp-cpuinfo-flag-2)) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + (:conerot-radius (meters 0.1)) + ) + ) + +(defpart 265 + :init-specs ((:texture (new 'static 'texture-id :index #xbb :page #x4)) + (:birth-func 'birth-func-add-vel) + (:num 3.0) + (:x (meters -0.2) (meters 0.4)) + (:y (meters 0) (meters 0.7)) + (:scale-x (meters 0.6) (meters 0.3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.6) (meters 0.3)) + (:r 200.0) + (:g 100.0) + (:b 64.0) + (:a 32.0) + (:vel-y (meters 0)) + (:scalevel-x (meters -0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y (meters -0.0033333334)) + (:fade-a -0.128 -0.128) + (:accel-y (meters 0.00033333333) (meters 0.00066666666)) + (:timer (seconds 0.835)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 266 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 50.0 50.0) + (:vel-y (meters 0.0033333334)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.53333336) + (:accel-y (meters 0.00016666666) (meters 0.0005)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2)) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + (:conerot-radius (meters 0.1)) + ) + ) + +(defpart 267 + :init-specs ((:texture (new 'static 'texture-id :index #xbb :page #x4)) + (:birth-func 'birth-func-add-vel) + (:num 2.0) + (:x (meters -0.2) (meters 0.4)) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 0.5) (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.5) (meters 0.1)) + (:r 200.0) + (:g 100.0) + (:b 64.0) + (:a 32.0) + (:vel-y (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-x (meters -0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y (meters -0.0033333334)) + (:fade-a -0.128 -0.128) + (:accel-y (meters 0.00066666666)) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 268 + :init-specs ((:texture (new 'static 'texture-id :index #x78 :page #x4)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 50.0 50.0) + (:vel-y (meters 0.0033333334)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.53333336) + (:accel-y (meters 0.00016666666) (meters 0.0005)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2)) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + (:conerot-radius (meters 0.1)) + ) + ) + +(defpart 269 + :init-specs ((:texture (new 'static 'texture-id :index #xbb :page #x4)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:x (meters -0.1) (meters 0.2)) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 0.2) (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.2) (meters 0.1)) + (:r 200.0) + (:g 100.0) + (:b 64.0) + (:a 64.0 64.0) + (:vel-y (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-x (meters -0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y (meters -0.0033333334)) + (:fade-a -0.42666668) + (:accel-y (meters 0.00066666666)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpartgroup group-vehicle-explosion + :id 46 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :parts ((sp-item 270 :flags (sp5) :period (seconds 3) :length (seconds 0.017)) + (sp-item 271 :flags (sp5) :period (seconds 3) :length (seconds 0.017)) + (sp-item 272 :period (seconds 3) :length (seconds 0.05)) + (sp-item 273 :fade-after (meters 60) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 274 :fade-after (meters 60) :falloff-to (meters 60) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 275 :fade-after (meters 200) :falloff-to (meters 200) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 276 :fade-after (meters 150) :falloff-to (meters 150) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +(defpart 271 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 2)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 24.0) + (:scalevel-x (meters 0.10666667)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -4.266667) + (:fade-b -4.266667) + (:fade-a 0.0) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:next-time (seconds 0.25)) + (:next-launcher 277) + ) + ) + +(defpart 277 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.85333335) + (:fade-g -1.7066667) + (:fade-b -1.7066667) + (:fade-a -0.64) + ) + ) + +(defpart 276 + :init-specs ((:texture (new 'static 'texture-id :index #xf :page #x4)) + (:num 2.0 0.2) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 3600) :store) + (:scale-y (meters 0.8) (meters 0.2)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.085)) + (:next-launcher 278) + (:conerot-x '*sp-temp*) + ) + ) + +(defpart 275 + :init-specs ((:texture (new 'static 'texture-id :index #x10 :page #x4)) + (:birth-func 'birth-func-texture-group) + (:num 1.0 0.2) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:vel-y (meters 0.02) (meters 0.01)) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2)) + (:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #x400a00 #x401000)) + (:next-time (seconds 0.085)) + (:next-launcher 278) + (:conerot-x (degrees 0) (degrees 360)) + ) + ) + +(defpart 278 + :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.017) (seconds 0.065)) (:next-launcher 279)) + ) + +(defpart 279 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.44) + (:fade-g -2.36) + (:fade-b -2.64) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 280) + ) + ) + +(defpart 280 + :init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -1.2944444) + (:fade-g -0.7111111) + (:fade-b -0.094444446) + (:fade-a -0.06545454 -0.06545454) + (:next-time (seconds 0.5) (seconds 0.097)) + (:next-launcher 281) + ) + ) + +(defpart 281 + :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.1125)) + ) + +(defpart 270 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 5)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 96.0) + (:scalevel-x (meters 0.5)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -1.28) + (:fade-b -5.1) + (:fade-a 0.0) + (:timer (seconds 0.217)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:next-time (seconds 0.1)) + (:next-launcher 282) + ) + ) + +(defpart 282 + :init-specs ((:scalevel-x (meters -0.2857143)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -3.6571429) + (:fade-b 0.0) + (:fade-a -2.7428572) + ) + ) + +(defpart 274 + :init-specs ((:texture (new 'static 'texture-id :index #x5b :page #x4)) + (:num 8.0 2.0) + (:x (meters 0.25)) + (:scale-x (meters 1) (meters 0.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 16.0 48.0) + (:vel-y (meters 0.083333336) (meters 0.083333336)) + (:scalevel-x (meters 0.006666667) (meters 0.0016666667)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.18) + (:fade-b -2.12) + (:accel-y (meters -0.00016666666) (meters -0.00033333333)) + (:friction 0.87) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 283) + (:conerot-x (degrees 0) (degrees 360)) + ) + ) + +(defpart 283 + :init-specs ((:scalevel-x (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g 0.02) + (:fade-b 0.23555556) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 284) + ) + ) + +(defpart 284 + :init-specs ((:fade-r -0.5543478) (:fade-g -0.5543478) (:fade-a -0.13913043)) + ) + +(defpart 272 + :init-specs ((:texture (new 'static 'texture-id :index #xa :page #x4)) + (:num 2.0 1.0) + (:x (meters 0) (meters 0.6)) + (:scale-x (meters 2.5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0 20.0) + (:g 70.0 20.0) + (:b 70.0 20.0) + (:a 0.0 40.0) + (:vel-y (meters 0) (meters 0.1)) + (:scalevel-x (meters 0.033333335) (meters 0.02)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 3.3) + (:fade-g 3.12) + (:fade-b 1.18) + (:fade-a 1.76) + (:friction 0.88) + (:timer (seconds 2.367)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 285) + (:conerot-x (degrees -1440) (degrees 2880)) + ) + ) + +(defpart 285 + :init-specs ((:scalevel-x (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.53333336) + (:fade-g -1.9666667) + (:fade-b -2.2) + (:fade-a -0.41666666) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 286) + ) + ) + +(defpart 286 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.38833332) + (:fade-g -0.21333334) + (:fade-b -0.028333334) + (:fade-a -0.38833332) + ) + ) + +(defpart 273 + :init-specs ((:texture (new 'static 'texture-id :index #x4e :page #x4)) + (:num 4.0 2.0) + (:scale-x (meters 0.2) (meters 0.5)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.2) (meters 0.1)) + (:r 128.0 128.0) + (:g 96.0) + (:b 64.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.13333334) (meters 0.02)) + (:fade-g 1.6) + (:fade-b 3.2) + (:fade-a -1.6) + (:timer (seconds 0.3)) + (:flags (sp-cpuinfo-flag-2)) + ) + ) + +(defpartgroup group-vehicle-engine-start + :id 47 + :duration (seconds 0.535) + :linger-duration (seconds 1) + :flags (sp0 sp4 sp6) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :parts ((sp-item 287 :flags (sp6) :period (seconds 1) :length (seconds 0.017)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.535)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.335)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.235)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.135)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.067)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.05)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.035)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.017)) + (sp-item 289 :flags (sp6) :period (seconds 1) :length (seconds 0.035)) + (sp-item 290 :period (seconds 1) :length (seconds 0.017)) + ) + ) + +(defpart 290 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0) + (:scalevel-x (meters 0.1)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -6.4) + (:fade-b -12.75) + (:fade-a -1.6) + (:timer (seconds 0.067)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + ) + ) + +(defpart 289 + :init-specs ((:texture (new 'static 'texture-id :index #x4e :page #x4)) + (:num 3.0 3.0) + (:scale-x (meters 1.5)) + (:rot-x 4) + (:scale-y (meters 0.025) (meters 0.01)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 64.0 64.0) + (:omega (degrees 0.03375) (degrees 0.0225)) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-r -0.85 -0.85) + (:fade-g -1.7 -1.7) + (:fade-b -8.0) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.96) + (:timer (seconds 0.167) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees -20) (degrees 40)) + (:conerot-y (degrees 0) (degrees 360)) + ) + ) + +(defpart 287 + :init-specs ((:texture (new 'static 'texture-id :index #xa :page #x4)) + (:num 16.0) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 196.0) + (:g 160.0) + (:b 96.0) + (:a 64.0 64.0) + (:vel-y (meters 0.013333334) (meters 0.013333334)) + (:scalevel-x (meters 0.006666667)) + (:rotvel-z (degrees -0.6) (degrees 1.2)) + (:scalevel-y :copy scalevel-x) + (:fade-r -2.0) + (:fade-g -1.0) + (:fade-b 1.0) + (:fade-a -0.21333334 -0.85333335) + (:accel-y (meters 0.00033333333) (meters 0.0005)) + (:friction 0.92 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.085)) + (:next-launcher 291) + (:conerot-x (degrees -30) (degrees 30)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 291 + :init-specs ((:fade-r 0.0 -0.85333335) (:fade-g :copy fade-r) (:fade-b :copy fade-g)) + ) + +(defpart 288 + :init-specs ((:texture (new 'static 'texture-id :index #xa :page #x4)) + (:num 1.0) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 196.0) + (:g 160.0) + (:b 96.0) + (:a 32.0 32.0) + (:vel-y (meters 0.006666667) (meters 0.013333334)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.6) (degrees 1.2)) + (:scalevel-y :copy scalevel-x) + (:fade-r -2.0) + (:fade-g -1.0) + (:fade-b 1.0) + (:fade-a -0.21333334 -0.85333335) + (:accel-y (meters 0.00033333333) (meters 0.0005)) + (:friction 0.92 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.085)) + (:next-launcher 291) + (:conerot-x (degrees -10) (degrees 20)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpartgroup group-forcefield-burst + :id 48 + :duration (seconds 0.135) + :linger-duration (seconds 0.135) + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 292 :flags (is-3d sp6) :period (seconds 0.135) :length (seconds 0.135))) + ) + +(defpart 292 + :init-specs ((:texture (new 'static 'texture-id :index #x26 :page #x4)) + (:num 2.0) + (:scale-x (meters 1) (meters 2)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 90)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 64.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.16666667) (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.28) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + ) + ) diff --git a/goal_src/jakx/engine/vehicle/wcar-skel-template.gc b/goal_src/jakx/engine/vehicle/wcar-skel-template.gc index a5daf30a55..f68c442178 100644 --- a/goal_src/jakx/engine/vehicle/wcar-skel-template.gc +++ b/goal_src/jakx/engine/vehicle/wcar-skel-template.gc @@ -7,3 +7,42 @@ ;; DECOMP BEGINS +(defskelgroup skel-car-part-temp falcon-hood-a 1 5 + ((2 (meters 20)) (3 (meters 40)) (4 (meters 999999))) + :bounds (static-spherem 0 0 0 2.8) + ) + +(defskelgroup skel-car-part2-temp-l falcon-door-a 1 5 + ((2 (meters 20)) (3 (meters 40)) (4 (meters 999999))) + :bounds (static-spherem 0 0 0 3.2) + ) + +(defskelgroup skel-car-part2-temp-r falcon-door-a 6 10 + ((7 (meters 20)) (8 (meters 40)) (9 (meters 999999))) + :bounds (static-spherem 0 0 0 3.2) + ) + +(define *car-part-temp-string* "123456789012345678901234567890") + +;; (defun get-car-skel-part ((arg0 level) (arg1 string) (arg2 art-group)) +;; (let ((gp-0 (the-as art-group #f))) +;; (let ((s2-0 *car-part-temp-string*) +;; (s1-0 0) +;; ) +;; (b! #t cfg-4 :delay (nop!)) +;; (label cfg-1) +;; (format (clear s2-0) "~S-~C" arg1 (+ s1-0 97)) +;; (b! (not ((method-of-object arg0 level-method-21))) cfg-3 :delay (empty-form)) +;; (format 0 "~S~%" s2-0) +;; (set! (-> arg2 data 0) (the-as art-element s2-0)) +;; (set! gp-0 arg2) +;; (b! #t cfg-6 :delay (nop!)) +;; (label cfg-3) +;; (+! s1-0 1) +;; (label cfg-4) +;; (b! (< s1-0 5) cfg-1) +;; ) +;; (label cfg-6) +;; gp-0 +;; ) +;; ) diff --git a/goal_src/jakx/engine/vehicle/wvehicle-h.gc b/goal_src/jakx/engine/vehicle/wvehicle-h.gc index ebed021b50..69fd759c0b 100644 --- a/goal_src/jakx/engine/vehicle/wvehicle-h.gc +++ b/goal_src/jakx/engine/vehicle/wvehicle-h.gc @@ -7,3 +7,343 @@ ;; DECOMP BEGINS +(deftype wvehicle-sound-loop-state (structure) + ((id sound-id) + (vol float) + (pitch float) + ) + ) + + +(deftype vehicle-wheel-state (structure) + ((info vehicle-wheel-info) + (flags uint8) + (prev-flags uint8) + (handle uint64) + (probe-local-pos vector :inline) + (probe-local-dir vector :inline) + (local-axis vector :inline) + (surface-pos vector :inline) + (ground-pos vector :inline) + (ground-normal vector :inline) + (trans vector :inline) + (quat quaternion :inline) + (trail-pos vector 2 :inline) + (surface rigid-body-surface) + (pos float) + (pos2 float) + (inertia float) + (steer-angle float) + (angle float) + (rev float) + (x-scale float) + (torque float) + (braking-torque float) + (up-force float) + (drive-diff float) + (side-vel float) + (up-vel float) + (forward-vel float) + (forward-slip-vel float) + (friction-coef float) + (sink-depth float) + (sin-susp-ang float) + (cos-susp-ang float) + (part-birth-accum sparticle-launch-control 4) + (tread-time uint32) + (tread-tracker uint64) + ) + :pack-me + ) + + +(deftype wvehicle-net-extra (structure) + ((desired-steering float) + (desired-throttle float) + (desired-wheel-rev float) + ) + :pack-me + ) + + +(deftype wvehicle-ai-destination (structure) + ((final-position vector :inline) + (position vector :inline) + (velocity vector :inline) + (nav-location nav-location :inline) + (handle uint64) + ) + ) + + +(deftype wvehicle-ai-state (structure) + ((destination wvehicle-ai-destination :inline) + (nav-location nav-location :inline) + (current-travel vector :inline) + (previous-steering-error float) + (no-physics-speed float) + (blocked-timer float) + (reverse-timer float) + (flags uint32) + (desired-speed float) + (weapon-timer uint64) + (weapon-aggression float) + (mode uint8) + ) + ) + + +(deftype wvehicle-engine-loop-state (structure) + ((id uint32) + (index int8) + ) + ) + + +(deftype wvehicle-engine-mix-state (structure) + ((loops wvehicle-engine-loop-state 2 :inline) + ) + ) + + +(deftype v-wpn-turbo-lightning-info (structure) + ((pt-start vector :inline) + (pt-end vector :inline) + (next-start vector :inline) + (next-end vector :inline) + (next-recomp-time uint64) + ) + ) + + +(deftype wvehicle-weapon-sync-blob (structure) + ((data int8 4) + (wpn-left-type int8 :overlay-at (-> data 0)) + (wpn-right-type int8 :overlay-at (-> data 1)) + (wpn-left-powerup int8 :overlay-at (-> data 2)) + (wpn-right-powerup int8 :overlay-at (-> data 3)) + (blob int32 :overlay-at (-> data 0)) + ) + :pack-me + ) + + +(deftype wvehicle (vehicle) + ((net-extra wvehicle-net-extra :inline) + (antenna uint64) + (fire-tracker uint64) + (race race-control :inline) + (ai wvehicle-ai-state :inline) + (engine-rev float) + (engine-inertia float) + (engine-torque float) + (engine-max-torque float) + (engine-rpm float) + (engine-load float) + (sound-engine-rpm float) + (sound-engine-load float) + (sound-engine-envelope float) + (wheel-rev float) + (wheel-inertia float) + (wheel-torque float) + (wheel-braking-torque float) + (wheel-ground-torque float) + (clutch-grab float) + (gear-ratio float) + (final-drive-ratio float) + (total-gear-ratio float) + (inv-total-gear-ratio float) + (avg-drive-wheel-radius float) + (drive-wheel-inertia float) + (clutch-inertia float) + (idle-throttle float) + (wheelbase float) + (f-track-width float) + (r-track-width float) + (susp-spring-control float) + (jump-control float) + (shortcut-speed-factor float) + (path-deviation float) + (turbo-supply float :overlay-at (-> pad4 0)) + (turbo-ready float) + (slide-factor float) + (slide-time uint32) + (max-speed float) + (shift-state uint8) + (gear-select int8) + (next-gear-select int8) + (shift-time uint32) + (wheel vehicle-wheel-state 4 :inline) + (gravity-dir vector :inline) + (surface-velocity vector :inline) + (tire-roll-loop-state wvehicle-sound-loop-state 6 :inline) + (tire-slide-loop-state wvehicle-sound-loop-state 2 :inline) + (engine-mix-state-array wvehicle-engine-mix-state 2 :inline) + (min-load-engine-mix-state wvehicle-engine-mix-state :inline :overlay-at (-> engine-mix-state-array 0)) + (max-load-engine-mix-state wvehicle-engine-mix-state :inline :overlay-at (-> engine-mix-state-array 1)) + (damage-sound-id sound-id) + (water-sound-id sound-id) + (wheel-fire-sound-id uint32) + (oil-sound-id uint32) + (turbo-sound-id sound-id) + (turbo-sound2-id uint32) + (car-fire-loop uint32) + (hang-time-sound-id uint32) + (overturned-time uint32) + (engine-steady-time uint32) + (splash-time uint32) + (knobby-time uint32) + (susp-creak-time uint32) + (ground-time uint32) + (jump-time uint32) + (no-slide-time uint32) + (slide-distance float) + (power-slide-hud uint64) + (hang-time-hud uint64) + (hang-time float) + (next-slide-sound-play-distance float) + (attached-array handle 16) + (eng-pitch-offset float) + (eng-pitch-variance float) + (eng-pitch-variance-seek float) + (eng-vol-variance float) + (eng-vol-variance-seek float) + (turbo-pitch float) + (health-pickup-multiplier float) + (jmod-steering-wheel joint-mod-rotate-local :inline) + (jmod-frame joint-mod-set-local 2 :inline) + (jmod-axles joint-mod-trans-rot-local 4 :inline) + (water-sound-envelope float) + (pad13 uint32 5) + (wpn-current-target handle) + (wpn-current-target-acquired handle) + (wpn-left handle) + (wpn-right handle) + (wpn-shield handle) + (wpn-drone handle) + (wpn-oil handle) + (wpn-turbo handle) + (wpn-bulldog-gun handle) + (wpn-drawables handle 2) + (wpn-drawable-left handle :overlay-at (-> wpn-drawables 0)) + (wpn-drawable-right handle :overlay-at (-> wpn-drawables 1)) + (wpn-spin-done-left int32) + (wpn-spin-done-right int32) + (prev-wpn-sync wvehicle-weapon-sync-blob :inline) + (turbo-suppressor-particle basic) + (dark-seeking-me basic) + (dark-suck-sound-pending int8) + (vehicle-exhaust-subsampler uint32 2) + (wheel-launcher uint32 4) + (wheel-fire-launcher uint32 4) + (hack-armed-right basic) + (hack-armed-left basic) + (shake-amount float) + (whoosh-sound-id uint32) + (sink-sound-id uint32) + ) + (:methods + (wvehicle-method-204 () none) + (wvehicle-method-205 () none) + (wvehicle-method-206 () none) + (wvehicle-method-207 () none) + (wvehicle-method-208 () none) + (wvehicle-method-209 () none) + (wvehicle-method-210 () none) + (wvehicle-method-211 () none) + (wvehicle-method-212 () none) + (wvehicle-method-213 () none) + (wvehicle-method-214 () none) + (wvehicle-method-215 () none) + (wvehicle-method-216 () none) + (wvehicle-method-217 () none) + (wvehicle-method-218 () none) + (wvehicle-method-219 () none) + (wvehicle-method-220 () none) + (wvehicle-method-221 () none) + (wvehicle-method-222 () none) + (wvehicle-method-223 () none) + (wvehicle-method-224 () none) + (wvehicle-method-225 () none) + (wvehicle-method-226 () none) + (wvehicle-method-227 () none) + (wvehicle-method-228 () none) + (wvehicle-method-229 () none) + (wvehicle-method-230 () none) + (wvehicle-method-231 () none) + (wvehicle-method-232 () none) + (wvehicle-method-233 () none) + (wvehicle-method-234 () none) + (wvehicle-method-235 () none) + (wvehicle-method-236 () none) + (wvehicle-method-237 () none) + (wvehicle-method-238 () none) + (wvehicle-method-239 () none) + (wvehicle-method-240 () none) + (wvehicle-method-241 () none) + (wvehicle-method-242 () none) + (wvehicle-method-243 () none) + (wvehicle-method-244 () none) + (wvehicle-method-245 () none) + (wvehicle-method-246 () none) + (wvehicle-method-247 () none) + (wvehicle-method-248 () none) + (wvehicle-method-249 () none) + (wvehicle-method-250 () none) + (wvehicle-method-251 () none) + (wvehicle-method-252 () none) + (wvehicle-method-253 () none) + (wvehicle-method-254 () none) + (wvehicle-method-255 () none) + (wvehicle-method-256 () none) + (wvehicle-method-257 () none) + (wvehicle-method-258 () none) + (wvehicle-method-259 () none) + (wvehicle-method-260 () none) + (wvehicle-method-261 () none) + (wvehicle-method-262 () none) + (wvehicle-method-263 () none) + (wvehicle-method-264 () none) + (wvehicle-method-265 () none) + (wvehicle-method-266 () none) + (wvehicle-method-267 () none) + (wvehicle-method-268 () none) + (wvehicle-method-269 () none) + (wvehicle-method-270 () none) + (wvehicle-method-271 () none) + ) + ) + + +;; WARN: Return type mismatch float vs degrees. +(defun rpm->radians-per-sec ((arg0 float)) + (the-as degrees (* 0.10471976 arg0)) + ) + +(defun radians-per-sec->rpm ((arg0 degrees)) + (* 9.549297 arg0) + ) + +(deftype vehicle-antenna-init-params (structure) + ((pos vector :inline) + (tilt float) + (vehicle basic) + (skel basic) + (level basic) + ) + ) + + +;; (defskelgroup skel-vehicle-explosion vehicle-explosion vehicle-explosion-lod0-jg vehicle-explosion-idle-ja +;; ((vehicle-explosion-lod0-mg (meters 999999))) +;; :bounds (static-spherem 0 0 0 50) +;; :texture-level 18 +;; ) + +;; WARN: Return type mismatch object vs symbol. +(defun vehicle-shielded? ((arg0 wvehicle)) + (the-as + symbol + (or (logtest? (vehicle-flag ignore-damage) (-> arg0 v-flags)) (handle->process (-> arg0 wpn-shield))) + ) + ) diff --git a/goal_src/jakx/kernel/gcommon.gc b/goal_src/jakx/kernel/gcommon.gc index 7454953796..843d88dcb9 100644 --- a/goal_src/jakx/kernel/gcommon.gc +++ b/goal_src/jakx/kernel/gcommon.gc @@ -257,6 +257,18 @@ This is the main vector type." #f ) +(defmacro as-type (this type) + "If this is the specified type, return this cast to that type. Otherwise, return #f." + (with-gensyms (obj) + `(the ,type (let ((,obj ,this)) + (if (type? ,obj ,type) + ,obj + ) + ) + ) + ) + ) + (defun find-parent-method ((typ type) (method-id int)) "Find the closest parent type that has a different implementation of the given method and return that method. If it does not exist, return `nothing` function. diff --git a/goal_src/jakx/kernel/gkernel-h.gc b/goal_src/jakx/kernel/gkernel-h.gc index c758160ccf..e4d77f8df8 100644 --- a/goal_src/jakx/kernel/gkernel-h.gc +++ b/goal_src/jakx/kernel/gkernel-h.gc @@ -76,6 +76,43 @@ ) ;; ---gkernel-h:process-mask +;; +++process-mask +(defenum process-mask + :type uint32 + :bitfield #t + (execute 0) + (freeze 1) + (pause 2) + (menu 3) + (progress 4) + (actor-pause 5) + (sleep 6) + (sleep-code 7) + (process-tree 8) + (heap-shrunk 9) + (going 10) + (kernel-run 11) + (no-kill 12) + (movie 13) + (dark-effect 14) + (target 15) + + (sidekick 16) + (crate 17) + (collectable 18) + (enemy 19) + (camera 20) + (platform 21) + (ambient 22) + (entity 23) + (projectile 24) + (bot 25) + (death 26) + (vehicle 27) + (network 28) + ) +;; ---process-mask + ;; DECOMP BEGINS (deftype kernel-context (basic) diff --git a/goal_src/jakx/kernel/gkernel.gc b/goal_src/jakx/kernel/gkernel.gc index 930100e86c..82a41ebb0d 100644 --- a/goal_src/jakx/kernel/gkernel.gc +++ b/goal_src/jakx/kernel/gkernel.gc @@ -2844,6 +2844,8 @@ (change-parent (define *mid-pool* (new 'global 'process-tree "mid-pool")) *active-pool*) +(change-parent (define *locker-pool* (new 'global 'process-tree "locker-pool")) *active-pool*) + (change-parent (define *pusher-pool* (new 'global 'process-tree "pusher-pool")) *active-pool*) (set! (-> *pusher-pool* mask) (process-mask freeze pause menu progress process-tree entity)) diff --git a/goal_src/jakx/kernel/gstate.gc b/goal_src/jakx/kernel/gstate.gc index a52f953d2b..92bd678d1d 100644 --- a/goal_src/jakx/kernel/gstate.gc +++ b/goal_src/jakx/kernel/gstate.gc @@ -277,3 +277,32 @@ ;; DECOMP BEGINS +(defun send-event-function ((arg0 process-tree) (arg1 event-message-block)) + (with-pp + ;; og:preserve-this check that we have a _valid_ process. originally this just checked + ;; that type != process-tree, but sometimes we might get stale process ref (jak1 qbert-plat-master) + (when (and (valid? arg0 process (the-as string #f) #f 0) + (nonzero? (-> (the-as process arg0) pid)) + (-> (the-as process arg0) event-hook) (-> arg1 from)) + (let ((gp-0 pp)) + (set! pp (the-as process arg0)) + (let ((v0-0 ((-> (the-as process arg0) event-hook) (-> arg1 from 0) (-> arg1 num-params) (-> arg1 message) arg1))) + (set! pp gp-0) + v0-0 + ) + ) + ) + ) + ) + +(defmacro send-event (proc msg &key (from (with-pp pp)) &rest params) + "Send an event to a process. This should be used over send-event-function" + `(let ((event-data (new 'stack-no-clear 'event-message-block))) + (set! (-> event-data from) (process->ppointer ,from)) + (set! (-> event-data num-params) ,(length params)) + (set! (-> event-data message) ,msg) + ,@(apply-i (lambda (x i) `(set! (-> event-data param ,i) (the-as uint ,x))) params) + (send-event-function ,proc event-data) + ) + ) + diff --git a/goal_src/jakx/levels/common/wvehicle-hud-h.gc b/goal_src/jakx/levels/common/wvehicle-hud-h.gc index 543149c840..1ee5a4deef 100644 --- a/goal_src/jakx/levels/common/wvehicle-hud-h.gc +++ b/goal_src/jakx/levels/common/wvehicle-hud-h.gc @@ -7,3 +7,118 @@ ;; DECOMP BEGINS +(deftype fx-struct (structure) + ((offset-x int32) + (offset-y int32) + (scale-x basic) + (scale-y basic) + (alpha basic) + (angle basic) + (total-time uint32) + ) + ) + + +(deftype hud-vehicle (hud) + ((weapon-texture texture 49 :offset-assert 6364) + (gun-texture basic :offset 6364) + (missile-texture basic :offset 6368) + (grenade-texture basic :offset 6372) + (taserram-texture basic :offset 6376) + (mine-texture basic :offset 6380) + (shield-texture basic :offset 6384) + (target-texture basic 2 :offset-assert 6560) + (slot-roulette-active? symbol 2 :offset-assert 6568) + (button-out? symbol 2 :offset-assert 6576) + (weapon-picked? symbol 2 :offset-assert 6584) + (slot-roulette-start-time uint32 2 :offset-assert 6592) + (roulette-counter uint32 2 :offset-assert 6600) + (weapon-color uint8 2 :offset-assert 6608) + (selected-weapon uint8 2 :offset-assert 6610) + (powerup-level int32 :offset-assert 6612) + (last-light-level int8 :offset-assert 6616) + (light-bar-part-right-init basic :offset-assert 6620) + (light-bar-part-right-filled basic :offset-assert 6624) + (light-bar-part-left-init basic :offset-assert 6628) + (light-bar-part-left-filled basic :offset-assert 6632) + (current-light-eco float :offset-assert 6636) + (current-green-eco float :offset-assert 6640) + (current-blue-eco float :offset-assert 6644) + (slot-weapon-color uint16 2 :offset-assert 6648) + (incoming? basic :offset-assert 6652) + (light-eco-level float :offset-assert 6656) + (light-eco-level-fx-start-time uint32 :offset-assert 6660) + (split-screen-offset-left-x float :offset-assert 6664) + (split-screen-offset-right-x float :offset-assert 6668) + (split-screen-offset-y float :offset-assert 6672) + (hud-right-ammo-counter-1 hud-sprite :inline :offset 3056) + (hud-right-ammo-counter-2 hud-sprite :inline :offset 3120) + (hud-right-light-underlay hud-sprite :inline :offset 3184) + (hud-right-light-ctrl-1 hud-sprite :inline :offset 3248) + (hud-right-light-ctrl-2 hud-sprite :inline :offset 3312) + (hud-right-light-ctrl-3 hud-sprite :inline :offset 3376) + (hud-right-light-bar hud-sprite :inline :offset 3440) + (hud-right-turbo-underlay hud-sprite :inline :offset 3504) + (hud-right-turbo-ctrl-1 hud-sprite :inline :offset 3568) + (hud-right-turbo-ctrl-2 hud-sprite :inline :offset 3632) + (hud-right-turbo-bar hud-sprite :inline :offset 3696) + (hud-right-display-weapon-field hud-sprite :inline :offset 3760) + (hud-right-upper-left hud-sprite :inline :offset 3824) + (hud-right-upper-right hud-sprite :inline :offset 3888) + (hud-right-lower-right hud-sprite :inline :offset 3952) + (hud-right-lower-left hud-sprite :inline :offset 4016) + (hud-right-ammo-counter-overlay hud-sprite :inline :offset 4080) + (hud-right-ammo-counter-overlay-2 hud-sprite :inline :offset 4144) + (hud-right-weapon-icon-shadow hud-sprite :inline :offset 4208) + (hud-right-weapon-icon hud-sprite :inline :offset 4272) + (hud-right-display-shine hud-sprite :inline :offset 4336) + (hud-left-ammo-counter-1 hud-sprite :inline :offset 4400) + (hud-left-ammo-counter-2 hud-sprite :inline :offset 4464) + (hud-left-light-underlay hud-sprite :inline :offset 4528) + (hud-left-light-ctrl-1 hud-sprite :inline :offset 4592) + (hud-left-light-ctrl-2 hud-sprite :inline :offset 4656) + (hud-left-light-ctrl-3 hud-sprite :inline :offset 4720) + (hud-left-light-bar hud-sprite :inline :offset 4784) + (hud-left-health-underlay hud-sprite :inline :offset 4848) + (hud-left-health-ctrl-1 hud-sprite :inline :offset 4912) + (hud-left-health-ctrl-2 hud-sprite :inline :offset 4976) + (hud-left-health-bar hud-sprite :inline :offset 5040) + (hud-left-display-weapon-field hud-sprite :inline :offset 5104) + (hud-left-upper-left hud-sprite :inline :offset 5168) + (hud-left-upper-right hud-sprite :inline :offset 5232) + (hud-left-lower-left hud-sprite :inline :offset 5296) + (hud-left-lower-right hud-sprite :inline :offset 5360) + (hud-left-ammo-counter-overlay hud-sprite :inline :offset 5424) + (hud-left-ammo-counter-overlay-2 hud-sprite :inline :offset 5488) + (hud-left-weapon-icon-shadow hud-sprite :inline :offset 5552) + (hud-left-weapon-icon hud-sprite :inline :offset 5616) + (hud-left-display-shine hud-sprite :inline :offset 5680) + (hud-turbo-disabled hud-sprite :inline :offset 5744) + ) + :method-count-assert 40 + :size-assert #x1a14 + :flag-assert #x2819901a14 + (:methods + (hud-vehicle-method-30 () none) ;; 30 + (hud-vehicle-method-31 () none) ;; 31 + (hud-vehicle-method-32 () none) ;; 32 + (hud-vehicle-method-33 () none) ;; 33 + (hud-vehicle-method-34 () none) ;; 34 + (hud-vehicle-method-35 () none) ;; 35 + (hud-vehicle-method-36 () none) ;; 36 + (hud-vehicle-method-37 () none) ;; 37 + (hud-vehicle-method-38 () none) ;; 38 + (hud-vehicle-method-39 () none) ;; 39 + ) + ) + +(define *default-fast-curve* (new 'global 'curve2d-fast)) + +(if #t + (set! *default-fast-curve* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 2.0 3.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) diff --git a/goal_src/jakx/levels/desert/desert-ocean.gc b/goal_src/jakx/levels/desert/desert-ocean.gc index ee0c947d86..858ee7c161 100644 --- a/goal_src/jakx/levels/desert/desert-ocean.gc +++ b/goal_src/jakx/levels/desert/desert-ocean.gc @@ -7,3 +7,10541 @@ ;; DECOMP BEGINS +(define *ocean-colors-desert* + (new 'static 'ocean-colors :colors (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x2d :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x31 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x32 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x22 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x23 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x26 :g #x34 :b #x30 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x33 :b #x31 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x1d :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x35 :b #x32 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2c :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2b :b #x2c :a #x80) + (new 'static 'rgba :r #x19 :g #x28 :b #x24 :a #x80) + (new 'static 'rgba :r #x1d :g #x2c :b #x26 :a #x80) + (new 'static 'rgba :r #x1e :g #x2d :b #x29 :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1b :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2d :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2c :b #x2a :a #x80) + (new 'static 'rgba :r #x21 :g #x2a :b #x20 :a #x80) + (new 'static 'rgba :r #x23 :g #x2a :b #x1e :a #x80) + (new 'static 'rgba :r #x23 :g #x2a :b #x1f :a #x80) + (new 'static 'rgba :r #x23 :g #x2c :b #x22 :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1d :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x19 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x2d :b #x29 :a #x80) + (new 'static 'rgba :r #x26 :g #x2a :b #x1b :a #x80) + (new 'static 'rgba :r #x2a :g #x2b :b #x1a :a #x80) + (new 'static 'rgba :r #x2b :g #x2c :b #x1b :a #x80) + (new 'static 'rgba :r #x2b :g #x2c :b #x1b :a #x80) + (new 'static 'rgba :r #x25 :g #x2c :b #x21 :a #x80) + (new 'static 'rgba :r #x20 :g #x30 :b #x2d :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x19 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1c :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x20 :g #x2d :b #x27 :a #x80) + (new 'static 'rgba :r #x2d :g #x2b :b #x17 :a #x80) + (new 'static 'rgba :r #x31 :g #x2c :b #x16 :a #x80) + (new 'static 'rgba :r #x32 :g #x2d :b #x17 :a #x80) + (new 'static 'rgba :r #x32 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x2e :g #x2d :b #x1a :a #x80) + (new 'static 'rgba :r #x25 :g #x2e :b #x24 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x32 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x2d :b #x24 :a #x80) + (new 'static 'rgba :r #x32 :g #x2c :b #x15 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x13 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2e :b #x16 :a #x80) + (new 'static 'rgba :r #x2b :g #x2d :b #x1d :a #x80) + (new 'static 'rgba :r #x22 :g #x31 :b #x2d :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x24 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1f :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x21 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x2a :g #x2e :b #x20 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x2f :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x24 :g #x2e :b #x25 :a #x80) + (new 'static 'rgba :r #x1d :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x1a :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2c :a #x80) + (new 'static 'rgba :r #x25 :g #x2f :b #x28 :a #x80) + (new 'static 'rgba :r #x2e :g #x2e :b #x1c :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x33 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x28 :g #x2c :b #x1f :a #x80) + (new 'static 'rgba :r #x20 :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x19 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x21 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x26 :g #x2f :b #x26 :a #x80) + (new 'static 'rgba :r #x30 :g #x2e :b #x1a :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x2d :g #x2c :b #x1b :a #x80) + (new 'static 'rgba :r #x22 :g #x2f :b #x2a :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x2d :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2c :a #x80) + (new 'static 'rgba :r #x26 :g #x30 :b #x28 :a #x80) + (new 'static 'rgba :r #x31 :g #x2e :b #x19 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x2f :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x23 :g #x2d :b #x26 :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x22 :g #x33 :b #x31 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x2f :b #x29 :a #x80) + (new 'static 'rgba :r #x30 :g #x2e :b #x1a :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x15 :a #x80) + (new 'static 'rgba :r #x29 :g #x2c :b #x1d :a #x80) + (new 'static 'rgba :r #x20 :g #x30 :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x35 :g #x40 :b #x3a :a #x80) + (new 'static 'rgba :r #x2f :g #x3d :b #x37 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x36 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x23 :g #x2f :b #x28 :a #x80) + (new 'static 'rgba :r #x2d :g #x2d :b #x1c :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x32 :g #x2d :b #x17 :a #x80) + (new 'static 'rgba :r #x24 :g #x2e :b #x27 :a #x80) + (new 'static 'rgba :r #x1c :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x31 :b #x30 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x22 :g #x2f :b #x28 :a #x80) + (new 'static 'rgba :r #x2d :g #x2e :b #x1e :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x15 :a #x80) + (new 'static 'rgba :r #x2d :g #x2d :b #x1b :a #x80) + (new 'static 'rgba :r #x23 :g #x30 :b #x2a :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x1a :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x33 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x32 :a #x80) + (new 'static 'rgba :r #x1d :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2e :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2a :a #x80) + (new 'static 'rgba :r #x2a :g #x2e :b #x1f :a #x80) + (new 'static 'rgba :r #x31 :g #x2e :b #x19 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x15 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x33 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x2f :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x24 :g #x2c :b #x21 :a #x80) + (new 'static 'rgba :r #x1a :g #x2a :b #x29 :a #x80) + (new 'static 'rgba :r #x1c :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1d :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x36 :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x32 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x1c :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x21 :g #x2f :b #x29 :a #x80) + (new 'static 'rgba :r #x2b :g #x2d :b #x1d :a #x80) + (new 'static 'rgba :r #x31 :g #x2d :b #x18 :a #x80) + (new 'static 'rgba :r #x33 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x30 :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x27 :g #x2d :b #x20 :a #x80) + (new 'static 'rgba :r #x22 :g #x31 :b #x2d :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x35 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x37 :g #x42 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x35 :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x22 :g #x2d :b #x24 :a #x80) + (new 'static 'rgba :r #x2a :g #x2d :b #x1d :a #x80) + (new 'static 'rgba :r #x30 :g #x2c :b #x17 :a #x80) + (new 'static 'rgba :r #x2e :g #x2c :b #x18 :a #x80) + (new 'static 'rgba :r #x24 :g #x2b :b #x20 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x2f :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x30 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x36 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x31 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x32 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x30 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x35 :g #x42 :b #x3d :a #x80) + (new 'static 'rgba :r #x2a :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x38 :g #x42 :b #x3e :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x2e :a #x80) + (new 'static 'rgba :r #x2d :g #x35 :b #x2b :a #x80) + (new 'static 'rgba :r #x2a :g #x2c :b #x1c :a #x80) + (new 'static 'rgba :r #x2d :g #x2c :b #x19 :a #x80) + (new 'static 'rgba :r #x2e :g #x32 :b #x25 :a #x80) + (new 'static 'rgba :r #x21 :g #x32 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2f :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x32 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2d :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3d :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x30 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x36 :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x2e :b #x2d :a #x80) + (new 'static 'rgba :r #x2d :g #x36 :b #x2c :a #x80) + (new 'static 'rgba :r #x2e :g #x33 :b #x25 :a #x80) + (new 'static 'rgba :r #x2e :g #x35 :b #x2a :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x2f :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x30 :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x2a :g #x3d :b #x39 :a #x80) + (new 'static 'rgba :r #x2a :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x32 :a #x80) + (new 'static 'rgba :r #x25 :g #x33 :b #x2e :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x33 :g #x42 :b #x3d :a #x80) + (new 'static 'rgba :r #x2d :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x36 :g #x43 :b #x3d :a #x80) + (new 'static 'rgba :r #x2e :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3b :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1c :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2e :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x34 :g #x42 :b #x3c :a #x80) + (new 'static 'rgba :r #x2e :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x2e :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x33 :g #x41 :b #x3c :a #x80) + (new 'static 'rgba :r #x2c :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x36 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2e :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x30 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x30 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x29 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x3b :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x33 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1d :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x16 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x2d :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x34 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x21 :g #x3a :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2f :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x21 :g #x3a :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x3b :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x35 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2f :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x27 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x24 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x21 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x34 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3d :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x23 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x25 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x24 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x33 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x37 :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x3a :a #x80) + (new 'static 'rgba :r #x25 :g #x35 :b #x33 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1d :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x33 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x22 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3b :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x32 :a #x80) + (new 'static 'rgba :r #x21 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x3b :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x3a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x27 :a #x80) + (new 'static 'rgba :r #x19 :g #x2d :b #x2d :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1b :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x39 :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x1d :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x32 :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x38 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x32 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +(define *ocean-near-indices-desert* + (new 'static 'ocean-near-indices + :data (new 'static 'inline-array ocean-near-index 400 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xffff #xffff #xffff #x2) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x3 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x16 #x0 #x0 #x0 #x4) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xb + #x6 + #x6 + #xc + #x17 + #xffff + #xffff + #x18 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x19 #x9 #x1a #x0 #xffff #xffff #xffff #x27) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x28 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x9 #x29 #xffff #x2a) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x1b #x0 #x0 #xffff #xffff #x2b #x2c) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x6 #x7 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x2d #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x2e) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x6 #x1c #x6 #x2a #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x11 #x0 #x0 #x0 #x2a #x2b #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xd #x0 #x1d #x1e #x1f #x9 #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x5 + #x6 + #x7 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x2f) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x11 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #xf #x9 #x0 #x20 #xffff #xffff #x0 #x30 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x10 #x11 #x12 #x0 #xffff #x21 #x22 #x0 #xffff #xffff #x31 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x32 #x6 #x6 #x11) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x23 #x6 #x0 #x33 #x34 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x11 #x0 #x0 #x0 #x35 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x8 #x9 #xa #x0 #x13 #xffff #x14 #x0 #x24 #xffff #x25 #x0 #x0 #x36 #x37) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x15 #x0 #x0 #x0 #x26 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xffff #x0 #x0 #x0 #x4b #x0 #x0 #x0 #x58 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x59 + #xffff + #xffff + #xffff + #x58 + #x65 + #x66 + #x67 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x38 + #xffff + #x4c + #x4d + #x44 + #x5a + #x5b + #x0 + #x0 + #x68 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x39 + #xffff + #xffff + #xffff + #x4e + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x8 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x3a + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x2c + #x6 + #x2e + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x3c + #x11 + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x1a + #x0 + #x0 + #x8 + #xffff + #xffff + #x5c + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x2e + #x9 + #x9 + #x10 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x1b + #x0 + #x0 + #x0 + #xffff + #x3a + #x9 + #x9 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x3d + #xffff + #x8 + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x3e + #x6 + #x6 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x3f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x40 #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #xffff #x5d #x69 #x56 #xffff #x47) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x41 #x42 #xffff #x0 #x0 #x4f #x42 #x0 #x0 #x0 #x5e #x9 #x9 #x6a #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x43 #x44 #x0 #x50 #x51 #x0 #x0 #x37 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x45 + #x52 + #xffff + #xffff + #xe + #x34 + #xffff + #x5f + #x60 + #x6b + #x6c + #x6d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x46 + #xffff + #xffff + #x0 + #x53 + #x54 + #xffff + #x0 + #x0 + #x61 + #xffff + #x0 + #x0 + #x63 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x47 + #x48 + #x0 + #x0 + #xffff + #xffff + #xffff + #x3a + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x55 #x0 #x0 #x0 #x57 #x62 #x0 #x0 #xffff #x5d #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x8 + #x9 + #x0 + #x8 + #x56 + #xffff + #x0 + #x63 + #xffff + #xffff + #x0 + #x6e + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x49 + #x4a + #x0 + #x0 + #xffff + #x57 + #x11 + #x0 + #xffff + #xffff + #x64 + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x7f #x0 #x0 #x7f #x34) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x6f + #x6 + #x0 + #x8 + #xffff + #xffff + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x70 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x71 + #x6 + #x72 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x56 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x73 #x74 #x0 #x7a #x7b #x0 #x0 #xe #x0 #x0 #x0 #x85 #x86 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x75 #x76 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xf) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x77 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x80 + #xffff + #xffff + #x50 + #xffff + #xffff + #xffff + #x5d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5f #x78 #x0 #x0 #x7c #x0 #x0 #x0 #x81 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x79 #xffff #x0 #x0 #x7d #x42 #x0 #x0 #x0 #x82 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #xffff #x31 #x0 #xffff #x25 #x7e #x0 #x83 #x84 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8a #x9 #x9 #x9 #x1f) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x62 + #x0 + #x89 + #xffff + #xffff + #xffff + #x1f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x8 + #x6 + #x1f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x87 + #x6 + #x11 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #x5 #x11 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x6 #x6 #x0 #x0 #xffff #xffff #x0 #x0 #x8b #xffff #x0 #x0 #x3b #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x72 + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x47 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x88 + #x6 + #x72 + #x10 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x2d #x0 #x0 #x0 #x5 #x11 #x0 #x0 #xffff #x45 #x0 #x0 #xffff #xffff #x8d #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x9 #x9 #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8c #x48 #x0 #x0 #xffff #x45 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x8e #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x8a #x1f) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x8f + #x6 + #x6 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x90 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x91 + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x47 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x9 #x9 #x92 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x46 #xffff #x0 #x0 #x46 #xffff #x0 #x0 #x94 #x52 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x93 + #x0 + #xffff + #xffff + #xe + #x0 + #xffff + #xffff + #x95 + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x4c + #x96 + #x0 + #xffff + #x95 + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + #xffff + #x97 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x4 #x0 #x0 #x99 #xffff #x0 #x0 #x46 #xffff #x0 #x0 #x53 #x9a) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x98 #x0 #x0 #xffff #x98 #x0 #x0 #xffff #x98 #x0 #x0 #x4c #x74 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x9b #x0 #x0 #x0 #x4 #x0 #x0 #x34 #xffff #x0 #x3d #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x9f + #xa0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #x66 + #x66 + #x9e + #x44 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x95 #x0 #x0 #x0 #x9c #x0 #x0 #x0 #x44 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xa4 + #x9a + #xffff + #x0 + #x0 + #x9b + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xa2 + #xffff + #xffff + #xffff + #xa5 + #xffff + #xffff + #x5f + #xa6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5a #xa1 #x0 #x0 #xa3 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xa7 #x54 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xa8 + #x0 + #xffff + #xffff + #xaa + #x0 + #xffff + #xffff + #x9c + #x0 + #xffff + #xab + #x44 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xa9 #x0 #x0 #x80 #xffff #x0 #x8 #x34 #xffff #x0 #xac #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x11 + #x0 + #x0 + #xffff + #x47 + #x48 + #x0 + #xffff + #xffff + #x45 + #x0 + #xffff + #xffff + #x47 + #xad + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xae #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x54 + #xffff + #xffff + #xffff + #xb0 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #xb5 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #xb6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #xaf #x0 #x0 #xb1 #x44 #x0 #x0 #x81 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xb4 + #xffff + #xffff + #x0 + #xb7 + #x42 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #xb2 + #xffff + #xffff + #xffff + #xe + #xffff + #xffff + #xffff + #xb8 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xb9 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #x54 + #xffff + #xffff + #x0 + #xbe + #xbf + #xffff + #x0 + #x0 + #x58 + #xc0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x54 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x45 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xc1 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xba #xbb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #xffff #xffff #xb6 #xbc #x6c #x83 #xbd #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xc2 #x65 #xc3 #xffff #x0 #x0 #xc5 #xc6 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xc9 + #xca + #xcb + #xffff + #x0 + #x0 + #x58 + #xce + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x65 + #x54 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x3e + #xc4 + #x0 + #xffff + #xffff + #x19 + #xc7 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xc8 + #x0 + #x0 + #x0 + #xffff + #x2 + #xcc + #x6 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xcd #x0 #x0 #x0 #xffff #xcf #xc4 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x1d #xd3 #x0 #x0 #xd5 #xffff #x0 #x0 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x9 + #x10 + #x11 + #x0 + #xffff + #xffff + #x19 + #xd6 + #xffff + #xffff + #xffff + #x19 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xd6 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xd0 #xd1 #x66 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xd4 + #x54 + #xffff + #xffff + #x0 + #xbe + #xbf + #xffff + #x0 + #x0 + #x58 + #xd9 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x6c + #xda + #xdb + #xdb + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdc + #x52 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x73 + #xdd + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xde + #xdb + #xdb + #xdb + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #xdf + #x6c + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x25 + #xe0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xd2 + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xd7 + #xd8 + #x0 + #xe1 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xffff #xffff #x0 #x0 #xe6 #xffff #x0 #x0 #xee #x9a #x0 #x0 #x0 #x54) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x19 + #xe2 + #x0 + #x0 + #xffff + #x57 + #x11 + #x0 + #xffff + #xffff + #xef + #x0 + #xffff + #xffff + #x45 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8a #x0 #x0 #x0 #x34) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xe7 + #x9 + #xe8 + #xc4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x3a #x9 #xf0 #xf1 #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xf3 #x7 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xbe #x54 #xffff #x0 #x0 #xbe #x54 #x0 #x0 #x0 #xbe #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x54 + #xffff + #xffff + #x0 + #xf4 + #xd1 + #xbf + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xf5 + #x6c + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x6c + #x6c + #x6c + #xf6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xdb + #xdb + #xdb + #xf7 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xe9 + #x66 + #x9f + #xea + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x4c #xe3 #xbd #x0 #xea #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #xeb #xec #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xe4 + #xcb + #xffff + #xffff + #x0 + #x75 + #xed + #xffff + #x0 + #x0 + #x75 + #xffff + #x0 + #x0 + #x0 + #xf8 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x66 + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #xcb + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xf5 + #xf9 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x25 #xe5 #x0 #x5f #xe5 #x0 #x0 #xf2 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x104 #x0 #x0 #x0 #x58 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x10d + #xffff + #xffff + #xffff + #x116 + #x117 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x19 + #xfa + #xffff + #xffff + #xffff + #x105 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #xe + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x1 #xffff #x0 #x0 #x30 #xffff #x0 #x0 #x46 #xffff #x0 #x0 #x46 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x19 + #xe8 + #xc4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x6 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x2d + #x0 + #x0 + #x75 + #xffff + #xf3 + #x11 + #x0 + #xffff + #xffff + #x10e + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xfb + #xffff + #xffff + #xffff + #x0 + #x106 + #xffff + #xffff + #x0 + #x75 + #xffff + #xffff + #x0 + #x0 + #x9b + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x2 + #x118 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xfc + #x56 + #xffff + #xffff + #x107 + #x42 + #xffff + #xffff + #x0 + #x10f + #x110 + #x6c + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xfd #x0 #x0 #x0 #xffff #x108 #x0 #x0 #x111 #x44 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xfe #xdb #xdb #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xe1 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xff #xdb #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x100 #x101 #x66 #xffff #x0 #x0 #x0 #x109 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x6c + #xbb + #xcb + #xffff + #x0 + #x0 + #x58 + #xdb + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #x100 + #x112 + #x113 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x66 + #x66 + #x114 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x10a + #x6c + #x6c + #x6c + #xe5 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x10b + #x6c + #x6c + #x10c + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x9d #x102 #x103 #x0 #x44 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x62 #x0 #x115 #xffff #x47 #x0 #x46 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x55 #x0 #x0 #x0 #x98 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x119 #x6c #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xcb #xffff #xffff #x11a #x58 #x120 #x121 #x44 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x124 + #xffff + #x0 + #x0 + #xb3 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x122 + #xffff + #x0 + #x0 + #xb3 + #xffff + #x0 + #x0 + #xb3 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x11b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xc4 + #x0 + #x0 + #x0 + #xffff + #x2 + #x9 + #x1a + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x123 + #x72 + #x9 + #x9 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xf0 + #x7 + #x0 + #x0 + #xffff + #x5 + #xc4 + #x0 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x129 #x9 #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x9 #x9 #x9 #x3b) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xb #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x36 + #x11c + #x36 + #x11d + #x0 + #x0 + #x0 + #x0 + #x6 + #x6 + #x6 + #x6 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x6 #x6 #x6 #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x125 + #x9 + #x126 + #x127 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x128 #x0 #x0 #xffff #xffff #x12a #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x2c #xc4 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x11e #x66 #x11f #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xe7 #x2e) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #xb3 + #xffff + #x0 + #x0 + #x12d + #xffff + #x0 + #x8a + #xffff + #xffff + #x3b + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #xe + #x0 + #xffff + #xffff + #x19 + #x12e + #xffff + #xffff + #xffff + #x130 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x123 + #x12b + #xffff + #x0 + #x46 + #xffff + #xffff + #x0 + #x12f + #xffff + #xffff + #x11 + #x0 + #xd1 + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x67 + #xc6 + #x66 + #x42 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x67 + #x131 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #x66 + #xcb + #xffff + #x44 + #x0 + #x75 + #x52 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x2b + #x9 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x12c + #x6 + #x7 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x129 + #x9 + #x88 + #xc4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x3a #x9 #xc7 #xc4 #xffff #xffff #xffff #x2) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x88 #x6 #x6 #x6) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x6 #x6 #x6) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #xc4 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x28 + #xffff + #x0 + #x3d + #xffff + #xffff + #x3d + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x132 + #x2e + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x133 + #x0 + #x0 + #x0 + #x85 + #x11 + #x0 + #x0 + #xffff + #x2b + #xe8 + #xc4 + #xffff + #xffff + #xffff + #x19 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xf4 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xf0 #xf1 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x110 #x6c #x6c #x6c #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x13b #x9 #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x6c #x134 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x13c #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x135 #x34 #x0 #x0 #x75 #x139 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x120 + #xffff + #xffff + #xffff + #x0 + #x52 + #xffff + #xffff + #x0 + #x46 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x19 + #x6a + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x136 + #x137 + #x9 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xf0 + #x138 + #x0 + #x0 + #xffff + #x19 + #x13a + #x0 + #xffff + #xffff + #x85 + #xc4 + #xffff + #xffff + #xffff + #x13d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x13e #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x141 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xfd + #x0 + #x0 + #xffff + #xffff + #xffff + #x140 + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x80 + #x142 + #x6 + #x3d + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x13f + #xffff + #xffff + #xffff + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x104 #x0 #x0 #x0 #x144 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + #x0 + #x59 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x143 + #xffff + #xffff + #xffff + #x98 + #xffff + #xffff + #xffff + #x146 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xc4 #x0 #x0 #x0 #x147 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x58 #xf8 #xffff #x0 #x0 #x0 #x148 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x54 + #xffff + #xffff + #xffff + #x116 + #x54 + #xffff + #xffff + #x0 + #x14a + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x95 #x0 #x0 #x0 #x31 #x0 #x0 #x0 #x149 #x0 #x0 #x0 #xffff #x14b #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x52 #xffff #x0 #x0 #x14e #xffff #x0 #x0 #x0 #xffff #x0 #x0 #x0 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #x14f + #xffff + #xffff + #xffff + #x151 + #x4c + #x66 + #x9e + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x66 #x66 #x66 #xffff #x0 #x0 #x0 #x150 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #x110 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x14c + #x14d + #x0 + #xffff + #xffff + #x35 + #x0 + #xffff + #xffff + #x152 + #xc4 + #xffff + #xffff + #xffff + #x153 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x1 + #xffff + #x0 + #x154 + #x155 + #xffff + #x0 + #xac + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x157 + #xffff + #xffff + #x159 + #x26 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x14f #x0 #x0 #x0 #x156 #x0 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x135 + #xffff + #xffff + #x0 + #x155 + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x158 + #xffff + #xffff + #xffff + #x5d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x135 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x73 + #xffff + #xffff + #x5a + #x15b + #xffff + #x4c + #x15d + #x0 + #xffff + #x14f + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x67 #x6c #x65 #x66 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + #x0 + #xdb + #xdb + #x52 + #x0 + #x0 + #x0 + #x46 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x15a + #x0 + #xffff + #xb1 + #x103 + #x0 + #x4c + #x15e + #x0 + #x0 + #x160 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x123 #x3f #x0 #x135 #x155 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x15c + #xffff + #xffff + #xffff + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x31 + #xffff + #xffff + #x5f + #x7e + #xffff + #xffff + #x15f + #x0 + #xffff + #x161 + #x103 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x162 #x0 #x0 #x0 #x34 #x0 #x0 #x0 #x169 #x0 #x0 #x0 #x116) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x16c + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x5d + #x0 + #x0 + #xffff + #x45 + #x0 + #x0 + #xffff + #xffff + #x16a + #x0 + #xffff + #xffff + #x16d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5f + #xffff + #xffff + #xffff + #x165 + #xffff + #xffff + #x5f + #x26 + #xffff + #xffff + #x165 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x26 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x99 #x0 #x0 #x135 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x13f + #x163 + #xffff + #xffff + #x166 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x167 + #xffff + #xffff + #x16b + #x44 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x73 #x67 #xbb #x66 #x168 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x66 #x67 #x6c #x66 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x164 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x16e + #xffff + #xffff + #xffff + #x0 + #x145 + #xffff + #xffff + #x0 + #x0 + #x175 + #xffff + #x0 + #x0 + #x58 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xe + #x0 + #xffff + #xffff + #xffff + #x171 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xf1 + #x0 + #x0 + #x0 + #xffff + #x19 + #x9 + #x9 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x135 + #xffff + #x0 + #x172 + #x155 + #xffff + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x16f + #x0 + #xffff + #x173 + #x44 + #x0 + #xffff + #xb6 + #x0 + #x0 + #x4c + #x51 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x170 #xffff #x0 #x0 #x174 #xffff #x0 #x0 #x176 #xffff #x0 #x0 #x0 #xf8) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x177 + #x0 + #xffff + #x4c + #x178 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x135 + #xffff + #x0 + #x135 + #x155 + #xffff + #x181 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9f + #x6c + #x66 + #x179 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x73 + #x179 + #xffff + #x17c + #xbd + #x0 + #x25 + #x17f + #x0 + #x0 + #x182 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x17a #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xf8 + #xffff + #xffff + #xffff + #x0 + #xf8 + #xffff + #xffff + #x0 + #x0 + #xf8 + #x42 + #x0 + #x0 + #x0 + #xf4 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xbf + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x17d + #x17e + #xffff + #x180 + #x103 + #x0 + #x43 + #x103 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x50 #x17b #x0 #x0 #xbd #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x99 #x0 #x0 #x0 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x183 + #x155 + #x185 + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x14f + #xffff + #xffff + #xffff + #x186 + #xffff + #xffff + #x5f + #x188 + #xffff + #x5a + #x17a + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xff + #x54 + #xffff + #xffff + #x0 + #x187 + #xffff + #xffff + #x0 + #xff + #xbf + #xffff + #x0 + #x0 + #x7d + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #xb6 + #xffff + #xffff + #xffff + #x189 + #xffff + #xffff + #x16b + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x184 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xffff #x0 #x0 #x0 #x52 #x0 #x0 #x0 #x14e #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #xffff + #x5a + #x139 + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xcb + #xffff + #xffff + #xffff + #x18c + #xdb + #x6c + #xc6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x54 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5f #x17f #x0 #x0 #xb6 #x0 #x0 #x0 #x45 #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x135 + #xffff + #x0 + #x0 + #x18b + #xffff + #x0 + #x0 + #x18d + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x18a + #x0 + #xffff + #x161 + #x103 + #x0 + #x173 + #x103 + #x0 + #x0 + #x95 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x145 #xffff #xffff #x0 #x0 #x120 #x117 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x66 + #xffff + #x4c + #x67 + #x0 + #xdb + #x190 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5a #x18e #x0 #x0 #x18e #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xf4 #x65 #xffff #x0 #x0 #x0 #x52 #x0 #x0 #x0 #x122 #x0 #x0 #x0 #xb3) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x5f + #xffff + #xffff + #xffff + #xb6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xb6 #x0 #x0 #x0 #x9c #x0 #x0 #x0 #x191 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x18f #x0 #x0 #x0 #xff #x0 #x0 #x0 #x192 #x0 #x0 #x0 #x193) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #x50 + #x17b + #xffff + #xffff + #x31 + #x0 + #xffff + #xab + #x44 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x51 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x144 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x135) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x45 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x195 #x0 #x0 #x0 #x85 #xc4 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xffff #x0 #x0 #x0 #xffff #x0 #x0 #x0 #xffff #x0 #x0 #x192 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x31 #x0 #x0 #x5f #x194 #x0 #x0 #xe #x0 #x0 #x0 #x19 #x196 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x170 #x0 #x0 #x0 #x34 #x0 #x0 #x89 #xffff #x0 #x0 #xac #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x197 + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + #xffff + #x85 + #xc4 + #x0 + #xffff + #xffff + #x19a + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x193 + #xffff + #x0 + #x198 + #xffff + #xffff + #x99 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x98 + #x0 + #x0 + #xffff + #x199 + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x162 #x9 #x0 #x0 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x19e #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x19f + #xffff + #x0 + #x135 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x4c + #x19b + #xffff + #xffff + #x95 + #x0 + #xffff + #xffff + #xaf + #x0 + #xffff + #x157 + #x103 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x135 #xf #x0 #x1a0 #x56 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x19c + #x0 + #x135 + #x90 + #xffff + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x43 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #x18f + #xffff + #x73 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xcb + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #x73 + #x17b + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x19d #x0 #x0 #x5f #x26 #x0 #x0 #x17b #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x59 #xffff #x0 #x0 #x18c #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1a1 #x0 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xb3 + #xffff + #xffff + #x0 + #x46 + #xffff + #xffff + #x0 + #x34 + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x67 + #x1b2 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x1a7 + #xdb + #xf5 + #x17a + #x0 + #x0 + #x103 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x157 #x103 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x135 + #x155 + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #x5f + #x6c + #x121 + #xffff + #x1ad + #x0 + #x0 + #xffff + #x85 + #xc4 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x1a8 + #xffff + #xffff + #xffff + #xff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x10a + #x1a9 + #x65 + #x66 + #x5d + #x0 + #x0 + #x0 + #x5d + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x43 + #xbd + #xcb + #x4c + #x1aa + #x0 + #xff + #x85 + #xc4 + #x135 + #x0 + #xed + #x2b + #x56 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xff #x1a2 #x17f #x0 #x0 #x0 #x0 #x1ae #x1af #x0 #x0 #xffff #x1b3 #x1b4 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x1a3 + #x52 + #xffff + #xffff + #x0 + #x1ab + #xffff + #xffff + #x0 + #x1b0 + #xffff + #xffff + #x0 + #x1b5 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x1b1 + #xffff + #x4c + #x1b6 + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x4c + #x66 + #x164 + #xdb + #x190 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1a4 #x1a5 #x1a6 #x0 #x1ac #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x89 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #x1c0 + #xffff + #xffff + #xffff + #x58 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #xb6 + #xffff + #xffff + #x4c + #x1c5 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x25 #x134 #x0 #x0 #x51 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x135 #x0 #x0 #x0 #x1c1 #x0 #x0 #x192 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x170 + #xffff + #xffff + #xffff + #x34 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x151 + #x0 + #xffff + #x173 + #x103 + #x0 + #xffff + #x19 + #x1c2 + #x0 + #xffff + #xffff + #x1c6 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x65 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xcb + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x130 + #x1b7 + #x0 + #x0 + #xffff + #x19 + #x1bb + #x0 + #xffff + #xffff + #x4c + #x1c3 + #xffff + #xffff + #xe + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x1b8 #x42 #xffff #x0 #x0 #x18d #xbb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x25 #x1b9 #x0 #x0 #x1bc #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x1ba + #xffff + #xffff + #x1bd + #x90 + #xffff + #xffff + #x65 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x9f + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x1ad + #x0 + #x0 + #xffff + #x1be + #x1bf + #x0 + #x4c + #x1c4 + #x0 + #x0 + #x1c7 + #x1bf + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x154) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x123 #x28 #x1cd #x0 #x34 #xffff #xffff #x1d3) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x52 + #xffff + #xffff + #x0 + #x14e + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x1a1 + #x0 + #xffff + #x5a + #x188 + #x0 + #x4c + #x1ce + #x0 + #x0 + #x1d4 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xff #xbf #x0 #x0 #x0 #xff #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x1c9 + #xffff + #xffff + #xffff + #x7d + #x54 + #xffff + #xffff + #x0 + #x187 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x1ca + #x0 + #xffff + #x73 + #x1cf + #x0 + #xffff + #x1d5 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xff #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x54 + #xffff + #x19 + #x92 + #x1cb + #xffff + #xffff + #x19d + #x187 + #xffff + #xffff + #x1d0 + #xff + #x110 + #x54 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x5d #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x192 + #xffff + #xffff + #xffff + #x1cc + #xffff + #xffff + #xffff + #x187 + #xffff + #x1d1 + #xdc + #x1a3 + #x6c + #x26 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x1c8 #x190 #x0 #x173 #x103 #x0 #x0 #x1d2 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x1d6 #x0 #x0 #x0 #x1db #x0 #x0 #x1d7 #xffff #x0 #x0 #x193 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xe + #xffff + #xffff + #xffff + #xe + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1df #x0 #x0 #x0 #x199 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1e0 #x3b #x0 #x0 #xac #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x1d7 + #xffff + #xffff + #x1dc + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xb6 + #xffff + #xffff + #xffff + #x1dd + #xffff + #xffff + #x173 + #x103 + #xffff + #xffff + #x11a + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xff + #xffff + #xffff + #x0 + #x0 + #x52 + #xffff + #x0 + #x0 + #x187 + #xffff + #x0 + #x0 + #x1e1 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #x1de + #xffff + #xffff + #xffff + #x19d + #xffff + #xffff + #xffff + #x199 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x1d8 #x1d9 #x0 #x0 #xf4 #x1ac #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1da #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x1e0 + #x1e2 + #xffff + #x0 + #xb3 + #xffff + #xffff + #x0 + #xb3 + #xffff + #xffff + #x0 + #xb3 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5d #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x39 + #xffff + #x0 + #x0 + #x1c0 + #xffff + #x0 + #x0 + #xff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x16b + #x103 + #x0 + #xffff + #x15a + #x0 + #x0 + #x16b + #x103 + #x0 + #x0 + #x1c5 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x52 #x0 #x0 #x0 #x116 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x42 + #xffff + #xffff + #xffff + #xf4 + #x65 + #xffff + #xffff + #x0 + #x0 + #xe6 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x164 + #x1ec + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x9 + #x92 + #x0 + #x1e3 + #xffff + #xffff + #x3a + #xffff + #x9d + #x1e8 + #x66 + #x1e8 + #x103 + #x1ed + #x0 + #xff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x1e4 + #x1e5 + #x62 + #x1e6 + #xffff + #xffff + #xffff + #xffff + #x73 + #x1e9 + #x42 + #xffff + #xbd + #x0 + #x1ee + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xc4 #x0 #x0 #x0 #x5d #x0 #x1e7 #x0 #x19 #x1ea #x1eb #x0 #xffff #x4c #x1ef #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xff #x1f0 #xffff #x0 #x0 #x16e #xffff #x0 #x0 #x0 #x120 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x5a + #x1f4 + #x66 + #x67 + #x18e + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1ad #x0 #x0 #x0 #x17f #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x162) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x162 #x9 #xf0 #xc4 #xffff #xffff #xffff #x3c) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x1f1 #x0 #x0 #x0 #x14e #x0 #x0 #x0 #x0 #xc4 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + #x0 + #x145 + #x54 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x73 + #x1f6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x4c + #x1d4 + #xffff + #x4c + #x1d4 + #x0 + #x5a + #x17a + #x0 + #x0 + #xbd + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x7d #x42 #x0 #x0 #x0 #x1f3 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xc6 + #xffff + #xffff + #xffff + #x0 + #xf8 + #xffff + #xffff + #x0 + #x0 + #x18f + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x5a + #x139 + #xffff + #x25 + #x1f5 + #x0 + #x1f7 + #x51 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x9d #x1f2 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xdb #x190 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x174 #x0 #x0 #x0 #x18c #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x1fb + #xffff + #x4c + #x1d4 + #x18c + #xdb + #x190 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x98 #x0 #x0 #x0 #x1fa #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x1f8 #x120 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x6c #x139 #x1a6 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xbf + #xffff + #xffff + #xffff + #xff + #x113 + #xc6 + #x66 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #x66 + #x1fc + #x139 + #x103 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x73 #x66 #x9f #x164 #x1a6 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1f9 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + ) + ) + ) + +(define *ocean-trans-indices-desert* + (new 'static 'ocean-trans-indices :data (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x1fd :child 1) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent #x1fe :child 3) + (new 'static 'ocean-trans-index :child 4) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 5) + (new 'static 'ocean-trans-index :parent #x1ff :child 6) + (new 'static 'ocean-trans-index :parent #x1fe :child 7) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index :parent #x200 :child 9) + (new 'static 'ocean-trans-index :parent 26 :child 10) + (new 'static 'ocean-trans-index :child 11) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 13) + (new 'static 'ocean-trans-index :parent #x1fd :child 14) + (new 'static 'ocean-trans-index :child 15) + (new 'static 'ocean-trans-index :parent #x1fd :child 16) + (new 'static 'ocean-trans-index :parent 31 :child 17) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x201 :child 18) + (new 'static 'ocean-trans-index :parent #x201 :child 19) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 21) + (new 'static 'ocean-trans-index :child 22) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x202 :child 23) + (new 'static 'ocean-trans-index :parent #xec :child 24) + (new 'static 'ocean-trans-index :child 25) + (new 'static 'ocean-trans-index :parent 15 :child 26) + (new 'static 'ocean-trans-index :child 27) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x203 :child 28) + (new 'static 'ocean-trans-index :child 29) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child 30) + (new 'static 'ocean-trans-index :parent #x204 :child 31) + (new 'static 'ocean-trans-index :parent #x205 :child 32) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x206 :child 33) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 42 :child 34) + (new 'static 'ocean-trans-index :parent #x201 :child 35) + (new 'static 'ocean-trans-index :parent #x207 :child 36) + (new 'static 'ocean-trans-index :parent #x208 :child 37) + (new 'static 'ocean-trans-index :parent #x209 :child 38) + (new 'static 'ocean-trans-index :parent #x20a :child 39) + (new 'static 'ocean-trans-index :parent #x20b :child 40) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 41) + (new 'static 'ocean-trans-index :parent 34 :child 42) + (new 'static 'ocean-trans-index :child 43) + (new 'static 'ocean-trans-index :parent #x20d :child 44) + (new 'static 'ocean-trans-index :parent #x116 :child 45) + (new 'static 'ocean-trans-index :parent #x1ac :child 46) + (new 'static 'ocean-trans-index :parent #x20e :child 47) + (new 'static 'ocean-trans-index :parent #x20f :child 48) + (new 'static 'ocean-trans-index :parent #x210 :child 49) + (new 'static 'ocean-trans-index :parent 72 :child 50) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x211 :child 51) + (new 'static 'ocean-trans-index :parent #x212 :child 52) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 53) + (new 'static 'ocean-trans-index :parent #x213 :child 54) + (new 'static 'ocean-trans-index :parent 31 :child 55) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 56) + (new 'static 'ocean-trans-index :parent 31 :child 57) + (new 'static 'ocean-trans-index :parent #x1ac :child 58) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 59) + (new 'static 'ocean-trans-index :parent #x214 :child 60) + (new 'static 'ocean-trans-index :child 61) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child 62) + (new 'static 'ocean-trans-index :parent 68 :child 63) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 64) + (new 'static 'ocean-trans-index :child 65) + (new 'static 'ocean-trans-index :parent #x215 :child 66) + (new 'static 'ocean-trans-index :parent #x216 :child 67) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 68) + (new 'static 'ocean-trans-index :child 69) + (new 'static 'ocean-trans-index :parent #x217 :child 70) + (new 'static 'ocean-trans-index :parent #x216 :child 71) + (new 'static 'ocean-trans-index :parent 42 :child 72) + (new 'static 'ocean-trans-index :parent #x201 :child 73) + (new 'static 'ocean-trans-index :parent #xec :child 74) + (new 'static 'ocean-trans-index :child 75) + (new 'static 'ocean-trans-index :parent 72 :child 76) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 77) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 78) + (new 'static 'ocean-trans-index :parent 34 :child 79) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x218 :child 80) + (new 'static 'ocean-trans-index :child 81) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 65 :child 82) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x191 :child 83) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 84) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 100 :child 85) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x219 :child 86) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21a :child 87) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x1e7 :child 88) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child 89) + (new 'static 'ocean-trans-index :parent 54 :child 90) + (new 'static 'ocean-trans-index :child 91) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x21c :child 92) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21d :child 93) + (new 'static 'ocean-trans-index :child 94) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 95) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 56 :child 96) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x21e :child 97) + (new 'static 'ocean-trans-index :parent #x212 :child 98) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 99) + (new 'static 'ocean-trans-index :parent #x206 :child 100) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21f :child #x65) + (new 'static 'ocean-trans-index :parent #x1ac :child #x66) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x220 :child #x67) + (new 'static 'ocean-trans-index :parent #x221 :child #x68) + (new 'static 'ocean-trans-index :child #x69) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x222 :child #x6a) + (new 'static 'ocean-trans-index :parent #x10d :child #x6b) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x223 :child #x6c) + (new 'static 'ocean-trans-index :child #x6d) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x6e) + (new 'static 'ocean-trans-index :parent #x224 :child #x6f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x70) + (new 'static 'ocean-trans-index :parent #x225 :child #x71) + (new 'static 'ocean-trans-index :parent #x107 :child #x72) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x1c3 :child #x73) + (new 'static 'ocean-trans-index :parent #x20a :child #x74) + (new 'static 'ocean-trans-index :parent 72 :child #x75) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x1e7 :child #x76) + (new 'static 'ocean-trans-index :parent #x226 :child #x77) + (new 'static 'ocean-trans-index :child #x78) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x79) + (new 'static 'ocean-trans-index :parent #x227 :child #x7a) + (new 'static 'ocean-trans-index :parent #x228 :child #x7b) + (new 'static 'ocean-trans-index :parent #x107 :child #x7c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x229 :child #x7d) + (new 'static 'ocean-trans-index :parent #x228 :child #x7e) + (new 'static 'ocean-trans-index :parent #x228 :child #x7f) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x229 :child #x80) + (new 'static 'ocean-trans-index :parent #x22a :child #x81) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x82 :child #x82) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x212 :child #x83) + (new 'static 'ocean-trans-index :child #x84) + (new 'static 'ocean-trans-index :parent #x209 :child #x85) + (new 'static 'ocean-trans-index :parent 3 :child #x86) + (new 'static 'ocean-trans-index :child #x87) + (new 'static 'ocean-trans-index :parent #x116 :child #x88) + (new 'static 'ocean-trans-index :parent #x22b :child #x89) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x229 :child #x8a) + (new 'static 'ocean-trans-index :parent #x228 :child #x8b) + (new 'static 'ocean-trans-index :parent #x22c :child #x8c) + (new 'static 'ocean-trans-index :parent #xe4 :child #x8d) + (new 'static 'ocean-trans-index :child #x8e) + (new 'static 'ocean-trans-index :child #x8f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x22d :child #x90) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child #x91) + (new 'static 'ocean-trans-index :parent #x107 :child #x92) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x22e :child #x93) + (new 'static 'ocean-trans-index :parent #x1ac :child #x94) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x95) + (new 'static 'ocean-trans-index :parent #x100 :child #x96) + (new 'static 'ocean-trans-index :parent #x22f :child #x97) + (new 'static 'ocean-trans-index :parent 4 :child #x98) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child #x99) + (new 'static 'ocean-trans-index :parent #x201 :child #x9a) + (new 'static 'ocean-trans-index :parent #x212 :child #x9b) + (new 'static 'ocean-trans-index :parent #x230 :child #x9c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x191 :child #x9d) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x231 :child #x9e) + (new 'static 'ocean-trans-index :parent #x232 :child #x9f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xa0) + (new 'static 'ocean-trans-index :child #xa1) + (new 'static 'ocean-trans-index :child #xa2) + (new 'static 'ocean-trans-index :parent #x116 :child #xa3) + (new 'static 'ocean-trans-index :parent #xbd :child #xa4) + (new 'static 'ocean-trans-index :parent 54 :child #xa5) + (new 'static 'ocean-trans-index :parent 54 :child #xa6) + (new 'static 'ocean-trans-index :parent #xd9 :child #xa7) + (new 'static 'ocean-trans-index :parent #xd9 :child #xa8) + (new 'static 'ocean-trans-index :child #xa9) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x233 :child #xaa) + (new 'static 'ocean-trans-index :child #xab) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xac) + (new 'static 'ocean-trans-index :parent #x234 :child #xad) + (new 'static 'ocean-trans-index :parent 4 :child #xae) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x191 :child #xaf) + (new 'static 'ocean-trans-index :parent 4 :child #xb0) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 42 :child #xb1) + (new 'static 'ocean-trans-index :parent #x235 :child #xb2) + (new 'static 'ocean-trans-index :parent #x209 :child #xb3) + (new 'static 'ocean-trans-index :parent #x20a :child #xb4) + (new 'static 'ocean-trans-index :child #xb5) + (new 'static 'ocean-trans-index :child #xb6) + (new 'static 'ocean-trans-index :parent 3 :child #xb7) + (new 'static 'ocean-trans-index :parent 3 :child #xb8) + (new 'static 'ocean-trans-index :parent 3 :child #xb9) + (new 'static 'ocean-trans-index :parent 3 :child #xba) + (new 'static 'ocean-trans-index :parent 26 :child #xbb) + (new 'static 'ocean-trans-index :child #xbc) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xbd) + (new 'static 'ocean-trans-index :child #xbe) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xbf) + (new 'static 'ocean-trans-index :parent #x236 :child #xc0) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x237 :child #xc1) + (new 'static 'ocean-trans-index :parent #x238 :child #xc2) + (new 'static 'ocean-trans-index :parent #x228 :child #xc3) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child #xc4) + (new 'static 'ocean-trans-index :parent #x225 :child #xc5) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x239 :child #xc6) + (new 'static 'ocean-trans-index :parent #x201 :child #xc7) + (new 'static 'ocean-trans-index :parent #x209 :child #xc8) + (new 'static 'ocean-trans-index :parent #x1fe :child #xc9) + (new 'static 'ocean-trans-index :child #xca) + (new 'static 'ocean-trans-index :child #xcb) + (new 'static 'ocean-trans-index :child #xcc) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x23a :child #xcd) + (new 'static 'ocean-trans-index :parent 34 :child #xce) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x23b :child #xcf) + (new 'static 'ocean-trans-index :child #xd0) + (new 'static 'ocean-trans-index :child #xd1) + (new 'static 'ocean-trans-index :child #xd2) + (new 'static 'ocean-trans-index :child #xd3) + (new 'static 'ocean-trans-index :parent #xdf :child #xd4) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child #xd5) + (new 'static 'ocean-trans-index :parent #x201 :child #xd6) + (new 'static 'ocean-trans-index :parent #x23c :child #xd7) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xd8) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x146 :child #xd9) + (new 'static 'ocean-trans-index :parent #x23d :child #xda) + (new 'static 'ocean-trans-index :parent #x23e :child #xdb) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x221 :child #xdc) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xdd) + (new 'static 'ocean-trans-index :parent #x100 :child #xde) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x223 :child #xdf) + (new 'static 'ocean-trans-index :child #xe0) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #xe1) + (new 'static 'ocean-trans-index :parent #xdf :child #xe2) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 72 :child #xe3) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #xe4) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x23f :child #xe5) + (new 'static 'ocean-trans-index :parent #x116 :child #xe6) + (new 'static 'ocean-trans-index :parent #x240 :child #xe7) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x241 :child #xe8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x236 :child #xe9) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x22e :child #xea) + (new 'static 'ocean-trans-index :child #xeb) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x242 :child #xec) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x221 :child #xed) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x206 :child #xee) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x243 :child #xef) + (new 'static 'ocean-trans-index :child #xf0) + (new 'static 'ocean-trans-index :parent #x244 :child #xf1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 68 :child #xf2) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #xf3) + (new 'static 'ocean-trans-index :parent #x245 :child #xf4) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x246 :child #xf5) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xf6) + (new 'static 'ocean-trans-index :parent #x247 :child #xf7) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 38 :child #xf8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 84) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x248 :child #xf9) + (new 'static 'ocean-trans-index :child #xfa) + (new 'static 'ocean-trans-index :parent 15 :child #xfb) + (new 'static 'ocean-trans-index :parent #x249 :child #xfc) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #xda :child #xfd) + (new 'static 'ocean-trans-index :child #xfe) + (new 'static 'ocean-trans-index :child #xff) + (new 'static 'ocean-trans-index :child #x100) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x24a :child #x101) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x207 :child #x102) + (new 'static 'ocean-trans-index :parent #x20a :child #x103) + (new 'static 'ocean-trans-index :parent #x141 :child #x104) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x24b :child #x105) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x124 :child #x106) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 56 :child #x107) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x24c :child #x108) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x109) + (new 'static 'ocean-trans-index :parent #x228 :child #x10a) + (new 'static 'ocean-trans-index :parent 68 :child #x10b) + (new 'static 'ocean-trans-index :child #x10c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x24d :child #x10d) + (new 'static 'ocean-trans-index :parent #x10d :child #x10e) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x24e :child #x10f) + (new 'static 'ocean-trans-index :child #x110) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x111) + (new 'static 'ocean-trans-index :parent #x24f :child #x112) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x250 :child #x113) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x251 :child #x114) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x252 :child #x115) + (new 'static 'ocean-trans-index :child #x116) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x117) + (new 'static 'ocean-trans-index :parent #x10d :child #x118) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x253 :child #x119) + (new 'static 'ocean-trans-index :parent #x204 :child #x11a) + (new 'static 'ocean-trans-index :parent #x107 :child #x11b) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :child #x11c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #x11d) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 68 :child #x11e) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x11e :child #x11f) + (new 'static 'ocean-trans-index :parent #xc9 :child #x120) + (new 'static 'ocean-trans-index :child #x121) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x122) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21f :child #x123) + (new 'static 'ocean-trans-index :child #x124) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x125) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x246 :child #x126) + (new 'static 'ocean-trans-index :child #x127) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x128) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x254 :child #x129) + (new 'static 'ocean-trans-index :child #x12a) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #x12b) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x1ac :child #x12c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #xd5 :child #x12d) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x255 :child #x12e) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x12f) + (new 'static 'ocean-trans-index :parent #x256 :child #x130) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 100 :child #x131) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x137 :child #x132) + (new 'static 'ocean-trans-index :child #x133) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 97 :child #x134) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 56 :child #x135) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x136) + (new 'static 'ocean-trans-index :parent #x257 :child #x137) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x138) + (new 'static 'ocean-trans-index :parent #x258 :child #x139) + (new 'static 'ocean-trans-index :parent #x10d :child #x13a) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x22e :child #x13b) + (new 'static 'ocean-trans-index :parent #x1ac :child #x13c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x13d) + (new 'static 'ocean-trans-index :child #x13e) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x259 :child #x13f) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child #x140) + (new 'static 'ocean-trans-index :parent #xbc :child #x141) + (new 'static 'ocean-trans-index :child #x142) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x25a :child #x143) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x25b :child #x144) + (new 'static 'ocean-trans-index :parent #x25c :child #x145) + (new 'static 'ocean-trans-index :parent #xd9 :child #x146) + (new 'static 'ocean-trans-index :parent #x103 :child #x147) + (new 'static 'ocean-trans-index :parent 72 :child #x148) + (new 'static 'ocean-trans-index :parent #x25d :child #x149) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x253 :child #x14a) + (new 'static 'ocean-trans-index :parent #xd9 :child #x14b) + (new 'static 'ocean-trans-index :child #x14c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x206 :child #x14d) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21d :child #x14e) + (new 'static 'ocean-trans-index :child #x14f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x150) + (new 'static 'ocean-trans-index :parent #x23e :child #x151) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x25e :child #x152) + (new 'static 'ocean-trans-index :parent #x25f :child #x153) + (new 'static 'ocean-trans-index :parent #x212 :child #x154) + (new 'static 'ocean-trans-index :parent #x116 :child #x155) + (new 'static 'ocean-trans-index :child #x156) + (new 'static 'ocean-trans-index :parent #x242 :child #x157) + (new 'static 'ocean-trans-index :parent #x229 :child #x158) + (new 'static 'ocean-trans-index :parent #x260 :child #x159) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x15a) + (new 'static 'ocean-trans-index :parent #x261 :child #x15b) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x25d :child #x15c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x109) + (new 'static 'ocean-trans-index :parent 68 :child #x15d) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x15e) + (new 'static 'ocean-trans-index :parent #xdf :child #x15f) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x262 :child #x160) + (new 'static 'ocean-trans-index :child #x161) + (new 'static 'ocean-trans-index :parent #x263 :child #x162) + (new 'static 'ocean-trans-index :child #x163) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x264 :child #x164) + (new 'static 'ocean-trans-index :parent #x1ac :child #x165) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #xd5 :child #x166) + (new 'static 'ocean-trans-index :parent #x254 :child #x167) + (new 'static 'ocean-trans-index :child #x168) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x169) + (new 'static 'ocean-trans-index :parent #x249 :child #x16a) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x248 :child #x16b) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x20f :child #x16c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x221 :child #x16d) + (new 'static 'ocean-trans-index :child #x100) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x16e) + (new 'static 'ocean-trans-index :child #x16f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x265 :child #x170) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :child #x171) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #x172) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x109) + (new 'static 'ocean-trans-index :parent #x260 :child #x173) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x174) + (new 'static 'ocean-trans-index :parent #x266 :child #x175) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x267 :child #x176) + (new 'static 'ocean-trans-index :parent #x268 :child #x177) + (new 'static 'ocean-trans-index :parent #x269 :child #x178) + (new 'static 'ocean-trans-index :parent 72 :child #x179) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 65 :child #x17a) + (new 'static 'ocean-trans-index :parent #x8b :child #x17b) + (new 'static 'ocean-trans-index :child #x17c) + (new 'static 'ocean-trans-index :parent #x1fe :child #x17d) + (new 'static 'ocean-trans-index :child #x17e) + (new 'static 'ocean-trans-index :parent #x26a :child #x17f) + (new 'static 'ocean-trans-index :parent #x229 :child #x180) + (new 'static 'ocean-trans-index :parent 68 :child #x181) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x182) + (new 'static 'ocean-trans-index :parent #x266 :child #x183) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x24e :child #x184) + (new 'static 'ocean-trans-index :child #x185) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x186) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x187) + (new 'static 'ocean-trans-index :parent #x26b :child #x188) + (new 'static 'ocean-trans-index :child #x189) + (new 'static 'ocean-trans-index :child #x18a) + (new 'static 'ocean-trans-index :child #x18b) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x15e) + (new 'static 'ocean-trans-index :parent #x244 :child #x18c) + (new 'static 'ocean-trans-index :parent #x8b :child #x18d) + (new 'static 'ocean-trans-index :parent #x1ac :child #x18e) + (new 'static 'ocean-trans-index :child #x18f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +(define *ocean-mid-indices-desert* (new 'static 'ocean-mid-indices :data (new 'static 'array uint16 36 + #x26c + #x26d + #x26e + #x26f + #x270 + #x271 + #x272 + #xffff + #xffff + #xffff + #xffff + #x273 + #x274 + #x275 + #x276 + #x277 + #x278 + #x279 + #x27a + #x27b + #x27c + #xffff + #xffff + #x27d + #x27e + #x27f + #x280 + #x281 + #x282 + #x0 + #x283 + #x284 + #x285 + #x286 + #x0 + #x0 + ) + ) + ) + +(define *ocean-mid-masks-desert* + (new 'static 'ocean-mid-masks + :data (new 'static 'inline-array ocean-mid-mask 648 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #xf #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xc0 #xc0 #xe8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xfc #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xc #x1c)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe8 #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xfc #xfc #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xbf #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #xe #xf #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x80 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x80 #xf8 #xfc #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc1 #xe1 #xe1 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3c #x7f #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xfc #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xe0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x1 #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x1f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x78 #x7c #x7c #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x80 #xfc #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x1 #x3 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x1f #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #xf #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #x3f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xc0 #xc0 #xe0 #xe0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x1 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x7f #x7f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #x3 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #xf #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf8 #xf8 #xf8 #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x3 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfc #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x40 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x73 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc1 #xe3 #xe3 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xfc #xe0 #xe0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x1 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x1f #x1f #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #xb #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x80 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x1c #x1c #xc #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x80 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xbf #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe0 #xe0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf8 #xf8 #xf8 #xfc #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x3 #x1 #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #x98 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xc #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #x3 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe0 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xfc #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x7f #x7f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xb8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x1 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xfe #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x2f #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x3 #x1 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe6 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #xf #xf #x7 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xe8 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x7f #xff #xff #x7f #x3f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #x88 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xfc #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe1 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x1 #x3 #xf #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x98 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xe0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x4 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xc2 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xc0 #xc0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x7f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe1 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #xf #xf #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x58 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xf8 #xf8 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf2 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xf0 #xf8 #xf8 #xf8 #xf8 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x80 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x3f #x3f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfc #xfc #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x3f #x1f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x20 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #x1f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x7 #x7 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf3 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #x1f #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x1f #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x23 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xff #x3 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x3 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xfc #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #x1f #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x20 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xfc #xf8 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x27 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf0 #xf0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #x1f #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xfc #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x3 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf8 #xf8 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfc #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x83 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x4 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfe #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #xf #xf #xf #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #x8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3f #x3f #x3f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3f #x1f #x1f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xfc #xf8 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x3f #x3f #x1f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x2 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #xf #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe3 #xe1 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #xf #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x1f #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x40 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x80 #xc0 #xc0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x7 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3f #x3f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x1 #x3 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xb #x1f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf #xf #x7 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x2 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #x1f #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xfc #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xfc #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x1f #x1f #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x88 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x43 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x7 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xc0 #xc0 #xc0 #xe8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #xf #xf #xf #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfe #xff #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x7 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x7 #x7 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x7 #x7 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe2 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x3f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xe0 #xc0 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x1 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3f #x3f #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x3 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x3f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x40 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfc #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x1f #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xf #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x3 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x1 #x1 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #xf #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #xf #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xfe #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #xf #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xf0 #xf8 #xf8 #xf8 #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x7 #x7 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x1 #x1 #x3 #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xfe #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x1 #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #x1f #x3f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x88 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xc0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #xf #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #x1f #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1f #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xf2 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe2 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x1 #x3 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #x7 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xf8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xfc #xf8 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x3 #xf #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x3 #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #xf #x1f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x1f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xf8 #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xb #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x80 #x80 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x1f #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x80 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x80 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x1f #x1f #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x83 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfc #xf8 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xf #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1f #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #xff #xff #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xfc #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1f #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xe #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xe0 #xe0 #xe0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #x1f #x3f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x7f #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xf8 #xfc #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #xff #xff #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe8 #xf8 #xf8 #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xf #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x1f #xf #xf #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x60 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x1f #xf #xf #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xf8 #xf8 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xff #xff #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x63 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #xf #x3f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #x1f #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xe8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xc0 #xc0 #xc0 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xff #xff #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xc #x1c #x18 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xff #xff #xfe #xfe #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xf6 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3 #x3 #x1 #x1 #x3 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x3f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x3 #x3 #x3 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #xc0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xf8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xf7 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x8 #x78 #x7c #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xf8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x8 #x1c #x8 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xf7 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe3 #xe3 #xc1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x80 #xc0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7c #x78 #x78 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x60 #x40 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xc0 #xc0 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #xf #xe #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfe #xff #xff #xfe #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xc0 #xc0 #x80 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xfe #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #xf #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xe8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf6 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf4 #xf4 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf1 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xfb #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf1 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf4 #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf6 #xf2 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf3 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfc #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xf6 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfe #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfc #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #xf7 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf0 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfc #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf7 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf4 #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf6 #xf0 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfc #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfc #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xfc #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf1 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf8 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf3 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf3 #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf3 #xf3 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xff #xff #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf3 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf1 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf3 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfc #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf3 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xf1 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfc #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf1 #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf1 #xf1 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf6 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf2 #xf6 #xf6 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xf2 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xff #xff #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfb #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xff #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #xf2 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x80 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x6 #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xfc #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x7 #xcf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf0 #xf0 #xf0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x3 #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x10 #x80 #x80 #x80 #xc0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf8 #xf0 #xe1 #xe7 #x47 #xf #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xfe #xfc #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x8f #x0 #x0 #x0 #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf9 #x0 #x0 #x7 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x0 #x0 #x0 #x1 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf1 #xf1 #xf1 #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x8f #x87 #x87 #xc3 #xe3 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #xf #xf #xf #xf #x1 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x20 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7e #x3e #x3e #x7e #x7e #x1e #xe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x80 #x80 #x80 #x80 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x7f #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x3f #x3f #x3f #x1c #x4 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x10 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x6 #x6 #x3 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xc0 #x80 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x7 #x7 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +(define *ocean-map-desert* + (new 'static 'ocean-map + :start-corner (new 'static 'vector :data (new 'static 'array float 4 -1048576.0 36864.0 -1048576.0 1.0)) + :far-color (new 'static 'vector :data (new 'static 'array float 4 20.078432 47.184315 52.705883 112.94118)) + ) + ) + +(set! (-> *ocean-map-desert* ocean-colors) *ocean-colors-desert*) + +(set! (-> *ocean-map-desert* ocean-mid-masks) *ocean-mid-masks-desert*) + +(set! (-> *ocean-map-desert* ocean-mid-indices) *ocean-mid-indices-desert*) + +(set! (-> *ocean-map-desert* ocean-trans-indices) *ocean-trans-indices-desert*) + +(set! (-> *ocean-map-desert* ocean-near-indices) *ocean-near-indices-desert*) diff --git a/goal_src/jakx/levels/desert/wvehicle/wcar.gc b/goal_src/jakx/levels/desert/wvehicle/wcar.gc index 1b33fa6b3a..8f130e342f 100644 --- a/goal_src/jakx/levels/desert/wvehicle/wcar.gc +++ b/goal_src/jakx/levels/desert/wvehicle/wcar.gc @@ -7,3 +7,9497 @@ ;; DECOMP BEGINS +(define *wcar-explosion-info* + (new 'static 'vehicle-explosion-info + :joints (new 'static 'boxed-array :type joint-exploder-static-joint-params + (new 'static 'joint-exploder-static-joint-params :joint-index 3 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 4 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 5 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 6 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 7 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 8 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 9 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 10 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 11 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 12 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 13 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 14 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 15 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 16 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 17 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 18 :parent-joint-index -1) + ) + :collide-spec (collide-spec backgnd) + :art-level 'cars + :skel #f + :skel-name "skel-vehicle-explosion" + :anim 2 + ) + ) + +(define *v-mongoose-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-mongoose-constants* + :flags #xf + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 550.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 550.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 5500.0 + :downshift-rpm 3000.0 + :final-drive-ratio 3.3048 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 82899.766 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.47 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.3 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7819706 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1 #x1 #xa) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x277 #x278 #x279) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2 #x6 #xb) + :original-rpm 3000.0 + :min-rpm 2000.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3 #x7 #xc) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4 #x8 #xd) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x5 #x9 #xe) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 1261.568 -16433.152 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 409.6 1638.4 -17612.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -409.6 1638.4 -17612.8 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 -2048.0 15564.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -2048.0 15564.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 -1638.4 -18227.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -1638.4 -18227.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xbb3 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2048.0 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2048.0 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2867.2 -1638.4 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 0.7) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -1638.4 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 0.7) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 2.7) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.7) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -14563.556 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1.8) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3072.0 -1638.4 15073.28 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6963.2 + :scale 1.0 + :travel 5324.8 + :probe-y-offset -1228.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 0.9 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7809 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 8806.4 -1638.4 -7782.4 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length -4382.72 + :steer-arm-length 1638.4 + :scale 1.2 + :travel 6553.6 + :probe-y-offset 6371.5557 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7628 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 8123.187 + :settle-rot-x 778.25824 + :idle-settle-height 8123.187 + :idle-settle-rot-x 778.25824 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 27 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 81.92 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 81.92 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000000029903406 + 0.000000000000000000000007862878 + 0.000000000000000000002066044 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 3 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 6430.72 -5447.68 (the-as float #x444))) + ) + :trunk-seats (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 0.0 9912.32 -9830.4 (the-as float #x1fbbc))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6348.8 -9830.4 (the-as float #x2fb06))) + (new 'static 'vector :data (new 'static 'array float 4 -7372.8 -286.72 819.2 (the-as float #x4fb06))) + ) + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -6553.6 1.0)) + :nodes (new 'static 'array int8 7 33 36 17 41 37 32 35) + :shield-anim 5 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -6963.2 0.0 1.0)) + ) + ) + +(set! (-> *v-mongoose-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-mongoose-constants* debris) #f) + +(define *v-falcon-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 2662.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-falcon-constants* + :flags #xf + :vehicle-type #x1 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.0294 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 73688.68 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.36 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 6144.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xf #xf #x18) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x10 #x14 #x19) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x11 #x15 #x1a) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x12 #x16 #x1b) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x13 #x17 #x1c) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 3 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1228.8 1638.4 -16793.6 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 4915.2 1433.6 -19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4915.2 1433.6 -19660.8 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 3686.4 -409.6 19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3686.4 -409.6 19660.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 -1638.4 -18227.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -1638.4 -18227.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3c + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 1638.4 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.5) (meters 7)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 1638.4 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.5) (meters 7)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 -4096.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -1699.84 17408.0 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6553.6 + :steer-arm-length 1433.6 + :scale 1.0 + :travel 5324.8 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.6 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5424 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2457.6 -204.8 -12083.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 8192.0 + :steer-arm-length 1638.4 + :scale 1.114 + :travel 6553.6 + :probe-x-offset -1228.8 + :probe-y-offset -1638.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.4 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6637.568 + :settle-rot-x 189.27162 + :idle-settle-height 4592.435 + :idle-settle-rot-x -241.2635 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000000000048172363 + 0.0000000000000000000001274669 + 0.00000000000000000003348188 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 4 5) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 3686.4 -16588.8 0.0)) + ) + :trunk-seats (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 8888.32 -8396.8 (the-as float #x111c7))) + (new 'static 'vector :data (new 'static 'array float 4 -6266.88 6758.4 -10076.16 (the-as float #x20222))) + (new 'static 'vector :data (new 'static 'array float 4 -6266.88 8724.48 -19496.96 (the-as float #x4f99a))) + (new 'static 'vector :data (new 'static 'array float 4 -4096.0 10035.2 -13926.4 (the-as float #x8fdde))) + ) + :roof-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 7127.04 1638.4 (the-as float #x10f8e4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6266.88 -409.6 (the-as float #x200aaa))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8601.6 -1556.48 (the-as float #x40fdde))) + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 5447.68 -12451.84 (the-as float #x40000))) + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 6062.08 -16588.8 (the-as float #x80000))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 409.6 1.0)) + :nodes (new 'static 'array int8 7 40 39 35 34 38 36 37) + :shield-anim 8 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3276.8 0.0 1.0)) + ) + ) + +(set! (-> *v-falcon-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-falcon-constants* debris) #f) + +(define *v-wombat-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-wombat-constants* + :flags #xf + :vehicle-type #x2 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.2840326 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 117441.34 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.8343816 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1d #x1d #x26) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1e #x22 #x27) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1f #x23 #x28) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x20 #x24 #x29) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x21 #x25 #x2a) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 4513.792 -14061.568 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5795.84 3817.472 -17301.504 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5795.84 3817.472 -17301.504 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 -3686.4 18841.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 -3686.4 18841.6 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 2457.6 -14336.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 2457.6 -14336.0 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.3) (meters 0.8) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 819.2 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.3) (meters 0.8) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 2048.0 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 2048.0 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 819.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 4096.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -3276.8 17408.0 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 7782.4 + :steer-arm-length 1638.4 + :scale 1.0 + :travel 5324.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7834 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 737.28 901.12 -12083.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 10240.0 + :steer-arm-length 819.2 + :scale 1.2 + :travel 6963.2 + :probe-x-offset -819.2 + :probe-y-offset -3686.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7598 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 7817.216 + :settle-rot-x 221.83937 + :idle-settle-height 7817.216 + :idle-settle-rot-x 221.83937 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000020528607 + 0.0000000000000000005425129 + 0.00000000000000014236636 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 2 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -3194.88 6512.64 -7372.8 (the-as float #xfd28))) + ) + :trunk-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10444.8 -14131.2 (the-as float #x10ccc))) + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10158.08 -18432.0 (the-as float #x2038e))) + ) + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 8437.76 -2048.0 (the-as float #x40666))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6635.52 1843.2 (the-as float #x809f4))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 819.2 1.0)) + :nodes (new 'static 'array int8 7 21 25 24 38 42 41 43) + :shield-anim 11 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -6553.6 0.0 1.0)) + ) + ) + +(set! (-> *v-wombat-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-wombat-constants* debris) #f) + +(define *v-possum-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 12.0 + :inv-mass 0.083333336 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 4096.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 6) (meters 4) (meters 10.1)) + :gravity 245760.0 + ) + :name '*v-possum-constants* + :flags #xf + :vehicle-type #x3 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 600.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 600.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.7944422 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 99786.75 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.45 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4.5) + :string-min-length (meters 5) + :string-max-length (meters 10) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.6666666 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2b #x2b #x36) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2c #x31 #x37) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2d #x32 #x38) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2e #x33 #x39) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2f #x34 #x3a) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x30 #x35 #x3b) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.5) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 4710.4 -14929.92 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 6635.5205 8017.9204 -11612.16 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6635.5205 8017.9204 -11612.16 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 -3276.8 21708.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 -3276.8 21708.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3481.6 1843.2 -19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3481.6 1843.2 -19660.8 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xb33 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1228.8 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1228.8 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 819.2 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 2.5) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 819.2 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 2.5) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1638.4 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2.5) (meters 0.9) (meters 2.9)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -14563.556 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2.5) (meters 0.7) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5170.1763 -4147.2 17418.24 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6082.56 + :steer-arm-length 2211.84 + :scale 1.35 + :travel 7168.0 + :suspension-spring 0.9 + :suspension-damping 0.5 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7845 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3428.352 -1382.4 -10506.24 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6635.5205 + :steer-arm-length 2211.84 + :scale 1.35 + :travel 7168.0 + :probe-y-offset -2211.84 + :suspension-spring 0.9 + :suspension-damping 0.5 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7988 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 9488.384 + :settle-rot-x -167.64473 + :idle-settle-height 9488.384 + :idle-settle-rot-x -167.64473 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 23 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 491.52 737.28 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 491.52 737.28 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000003327095 + 0.000000000000000008789052 + 0.0000000000000023057262 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 5 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -4710.4 7045.12 -7372.8 (the-as float #xfdde))) + ) + :trunk-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 9216.0 -7372.8 (the-as float #x1fd28))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10895.36 -4915.2 (the-as float #x2fdde))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9338.88 -6144.0 (the-as float #x4fd28))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9830.4 -7782.4 (the-as float #x8fb06))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8601.6 -6307.84 (the-as float #x1002d8))) + ) + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 409.6 1.0)) + :nodes (new 'static 'array int8 7 19 21 26 27 3 3 3) + :shield-anim 14 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -8192.0 0.0 1.0)) + ) + ) + +(set! (-> *v-possum-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-possum-constants* debris) #f) + +(define *v-bobcat-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 5.0 + :inv-mass 0.2 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 3686.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 7.5)) + :gravity 245760.0 + ) + :name '*v-bobcat-constants* + :flags #xf + :vehicle-type #x4 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 2.7259 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4004.9778 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.675 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.5 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3c #x3c #x45) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3d #x41 #x46) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3e #x42 #x47) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3f #x43 #x48) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x40 #x44 #x49) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 4 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 3) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1228.8 819.2 -7782.4 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 -1638.4 14745.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 -1638.4 14745.6 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 3891.2 -7782.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 3891.2 -7782.4 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xd3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 2048.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 1228.8 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 -819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 -819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 2867.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.7) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 4710.4 -1622.016 12185.6 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 5734.4 + :scale 0.9 + :travel 5324.8 + :probe-y-offset -819.2 + :suspension-spring 0.9 + :suspension-damping 0.6 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 0.75 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.6567 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3932.16 -696.32 -6144.0 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 5324.8 + :steer-arm-length 1638.4 + :scale 1.08 + :travel 6963.2 + :probe-y-offset -1638.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 0.75 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.788 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 7153.664 + :settle-rot-x 1068.255 + :idle-settle-height 7153.664 + :idle-settle-rot-x 1068.255 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 28 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000000019527441 + 0.0000000000000000000005131893 + 0.00000000000000000013477788 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 7782.4 -3276.8 (the-as float #xdc72))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 9912.32 -2048.0 (the-as float #x1fd28))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9707.52 -983.04 (the-as float #x20222))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 7987.2 -1843.2 1.0)) + :nodes (new 'static 'array int8 7 44 45 20 0 35 37 38) + :shield-anim 20 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5734.4 0.0 1.0)) + ) + ) + +(set! (-> *v-bobcat-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-bobcat-constants* debris) #f) + +(define *v-cougar-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2457.6 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 7) (meters 5) (meters 7.5)) + :gravity 245760.0 + ) + :name '*v-cougar-constants* + :flags #xf + :vehicle-type #x5 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 600.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 600.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 2.9694974 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4551.1113 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.55 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.6666666 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6c #x6c #x77) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6d #x72 #x78) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6e #x73 #x79) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6f #x74 #x7a) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x70 #x75 #x7b) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x71 #x76 #x7c) + :original-rpm 5500.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 4 + :thruster-flame-width (meters 1.7) + :thruster-flame-length (meters 4) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 2867.2 6553.6 -11468.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2662.4 3891.2 23756.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2662.4 3891.2 23756.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 6758.4 -15155.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 6758.4 -15155.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xdff + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 2457.6 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 2457.6 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 3686.4 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1.2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -3686.4 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1.2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.8) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.8) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1638.4 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5231.7393 -1228.8 16588.8 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 5813.0435 + :steer-arm-length 1228.8 + :scale 1.04 + :travel 5324.8 + :probe-y-offset -819.2 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.4645 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3633.152 -749.568 -6553.6 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6539.674 + :steer-arm-length 2048.0 + :scale 1.12 + :travel 6144.0 + :probe-y-offset -1228.8 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.4198 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4549.0176 + :settle-rot-x 16.18375 + :idle-settle-height 4549.0176 + :idle-settle-rot-x 16.18375 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 29 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x107d2))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -122.88 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -122.88 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000000000012042458 + 0.000000000000000000000031659118 + 0.000000000000000000008317323 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 12001.28 -3604.48 0.0)) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 11468.8 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 42 43 18 0 33 34 35) + :shield-anim 32 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +(set! (-> *v-cougar-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-cougar-constants* debris) #f) + +(define *v-wolf-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 7.5)) + :gravity 245760.0 + ) + :name '*v-wolf-constants* + :flags #xf + :vehicle-type #x6 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 650.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 650.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.033825 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4004.9778 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.55 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.5461216 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x5e #x5e #x67) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x5f #x63 #x68) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x60 #x64 #x69) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x61 #x65 #x6a) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x62 #x66 #x6b) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 4096.0 6553.6 -11468.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 4915.2 0.0 13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4915.2 0.0 13926.4 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3276.8 -9420.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3276.8 -9420.8 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xdf0 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 0.0 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 819.2 0.0 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1228.8 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 -3686.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5816.32 -1638.4 12943.36 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 4915.2 + :steer-arm-length 1638.4 + :scale 1.05 + :travel 5324.8 + :probe-y-offset -2048.0 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5592 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 4464.64 -749.568 -7987.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6553.6 + :steer-arm-length 2048.0 + :scale 1.14 + :travel 6963.2 + :probe-y-offset -2048.0 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.5579 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6698.189 + :settle-rot-x 9.6483555 + :idle-settle-height 6698.189 + :idle-settle-rot-x 9.6483555 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 30 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x104fa))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 -204.8 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 -204.8 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000000019527441 + 0.0000000000000000000005131893 + 0.00000000000000000013477788 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 3) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10854.4 -4505.6 (the-as float #xf8e4))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10854.4 -4505.6 (the-as float #x1f8e4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10076.16 3276.8 (the-as float #x409f4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10076.16 3276.8 (the-as float #x809f4))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 10240.0 -2662.4 1.0)) + :nodes (new 'static 'array int8 7 44 45 20 0 35 36 37) + :shield-anim 23 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5734.4 0.0 1.0)) + ) + ) + +(set! (-> *v-wolf-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-wolf-constants* debris) #f) + +(define *v-bear-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 16.0 + :inv-mass 0.0625 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2048.0 3481.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 7.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-bear-constants* + :flags #xf + :vehicle-type #x7 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 4.2342324 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x9f #x9f #xaa) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa1 #xa6 #xac) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa2 #xa7 #xad) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa3 #xa8 #xae) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa4 #xa9 #xaf) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 8601.6 -12288.0 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 6144.0 -1228.8 17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6144.0 -1228.8 17203.2 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3481.6 5734.4 -12697.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3481.6 5734.4 -12697.6 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2867.2 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2867.2 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -4096.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 2.5) (meters 1)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1228.8 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 8192.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5160.96 -491.52 17612.8 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6963.2 + :steer-arm-length 2048.0 + :scale 1.5 + :travel 5324.8 + :probe-y-offset -2457.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7834 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2129.92 -1105.92 -11223.04 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 10240.0 + :steer-arm-length 2048.0 + :scale 1.5 + :travel 6963.2 + :probe-y-offset -1638.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7598 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 7817.216 + :settle-rot-x 221.83937 + :idle-settle-height 7817.216 + :idle-settle-rot-x 221.83937 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 0.000000000000000000539138 0.00000000000000014236636 0.00000000000003733745 0.0) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 5 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10772.48 -4505.6 (the-as float #x71c))) + ) + :trunk-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 11919.36 -6307.84 (the-as float #x1fdde))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 12533.76 -6471.68 (the-as float #x2ff4a))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 11059.2 -7208.96 (the-as float #x4fa50))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 11837.44 -8028.16 (the-as float #x802d8))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10772.48 -10649.6 (the-as float #x10fb06))) + ) + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 21 23 28 29 25 26 27) + :shield-anim 39 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -6553.6 0.0 1.0)) + ) + ) + +(set! (-> *v-bear-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-bear-constants* debris) #f) + +(define *v-leopard-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 12.0 + :inv-mass 0.083333336 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-leopard-constants* + :flags #xf + :vehicle-type #x8 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.995916 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.55 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5.5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x8e #x8e #x99) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x90 #x95 #x9b) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x91 #x96 #x9c) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x92 #x97 #x9d) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x93 #x98 #x9e) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 9011.2 -16384.0 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2932.736 11792.384 -15380.48 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2932.736 11792.384 -15380.48 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3686.4 4096.0 13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3686.4 4096.0 13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 6963.2 -819.2 19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6963.2 -819.2 19660.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 2457.6 -14336.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 2457.6 -14336.0 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xd3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 1228.8 -409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 -409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -3276.8 5734.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 6144.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 4997.12 -1228.8 16588.8 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6553.6 + :steer-arm-length 1638.4 + :scale 1.2 + :travel 6144.0 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7904 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3645.44 204.8 -10854.4 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 7782.4 + :steer-arm-length 1638.4 + :scale 1.45 + :travel 6963.2 + :probe-y-offset -1228.8 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7645 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6406.144 + :settle-rot-x -55.96046 + :idle-settle-height 6406.144 + :idle-settle-rot-x -55.96046 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 30 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x1071c))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000000000012042458 + 0.000000000000000000000031659118 + 0.000000000000000000008317323 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 13803.52 -6963.2 (the-as float #xfbbc))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 14745.6 -5324.8 (the-as float #x1ff4a))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 14827.52 -4915.2 (the-as float #x2fdde))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 12288.0 -5734.4 1.0)) + :nodes (new 'static 'array int8 7 42 43 46 0 34 35 36) + :shield-anim 29 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5734.4 0.0 1.0)) + ) + ) + +(set! (-> *v-leopard-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-leopard-constants* debris) #f) + +(define *v-panther-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 16.0 + :inv-mass 0.0625 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 3276.8 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 8.5) (meters 5) (meters 12)) + :gravity 245760.0 + ) + :name '*v-panther-constants* + :flags #xf + :vehicle-type #x9 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.9205766 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 3640.889 + :tire-steering-speed-factor 65245.184 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.52 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.768868 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x7d #x7d #x88) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x7f #x84 #x8a) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x80 #x85 #x8b) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x81 #x86 #x8c) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x82 #x87 #x8d) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 2867.2 10444.8 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3686.4 10240.0 -12288.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3686.4 10240.0 -12288.0 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 3686.4 16384.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 3686.4 16384.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 6144.0 -11468.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 6144.0 -11468.8 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xdf0 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 1228.8 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.9) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.9) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.2) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 -4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.5) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3481.6 3276.8 14796.801 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 9748.48 + :steer-arm-length 2048.0 + :scale 1.2112501 + :travel 7372.8 + :probe-y-offset -2457.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7798 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3133.44 6922.24 -10514.433 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 9922.561 + :steer-arm-length 3686.4 + :scale 1.3806635 + :travel 8192.0 + :probe-x-offset -2867.2 + :probe-y-offset -5324.8 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7642 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4532.634 + :settle-rot-x -278.80106 + :idle-settle-height 4532.634 + :idle-settle-rot-x -278.80106 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 30 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10666))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 983.04 -450.56 901.12 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -983.04 -450.56 901.12 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000000019527441 + 0.0000000000000000000005131893 + 0.00000000000000000013477788 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 12779.52 -7208.96 (the-as float #x71c))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -4587.52 8273.92 3276.8 (the-as float #x1fe94))) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 12779.52 -7208.96 (the-as float #x2071c))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 3481.6 12288.0 -6144.0 1.0)) + :nodes (new 'static 'array int8 7 45 46 20 0 35 36 37) + :shield-anim 26 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +(set! (-> *v-panther-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-panther-constants* debris) #f) + +(define *v-tiger-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 614.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-tiger-constants* + :flags #xf + :vehicle-type #xa + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 650.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 650.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.2511978 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 92110.85 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.27 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.6509434 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4a #x4a #x57) + :original-rpm 1039.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4c #x52 #x59) + :original-rpm 2000.0 + :min-rpm 1040.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4d #x53 #x5a) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4e #x54 #x5b) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4f #x55 #x5c) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 6500.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 4505.6 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 3891.2 -2048.0 18432.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3891.2 -2048.0 18432.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 4710.4 1638.4 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4710.4 1638.4 -17203.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 4096.0 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 1.5) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 4096.0 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 1.5) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2048.0 -819.2 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2048.0 -819.2 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -2048.0 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 8192.0 1228.8 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1) (meters 1)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 7516.16 -2088.96 16179.2 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :steer-arm-length 4096.0 + :scale 1.08 + :travel 5324.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 0.75 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7977 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 6553.6 2539.52 -15093.76 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :steer-arm-length 4096.0 + :scale 1.18 + :travel 6963.2 + :probe-y-offset -4096.0 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.05 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7427 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6538.445 + :settle-rot-x 131.0538 + :idle-settle-height 6538.445 + :idle-settle-rot-x 131.0538 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000000029702246 + 0.000000000000000000000007862878 + 0.000000000000000000002066044 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 7495.68 -8601.6 (the-as float #xf82e))) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 34 35 30 16 11 12 13) + :shield-anim 17 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5324.8 0.0 1.0)) + ) + ) + +(set! (-> *v-tiger-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-tiger-constants* debris) #f) + +(define *v-cheetah-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 5324.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-cheetah-constants* + :flags #xf + :vehicle-type #xb + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.0386183 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.8343816 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb0 #xb0 #xbb) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb2 #xb7 #xbd) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb3 #xb8 #xbe) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb4 #xb9 #xbf) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb5 #xba #xc0) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 4423.68 8847.36 -13107.2 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 5324.8 -819.2 18432.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5324.8 -819.2 18432.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 3276.8 -14336.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 3276.8 -14336.0 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 -2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 -2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1.5) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2.5) (meters 0.8) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -1638.4 17530.88 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 7864.32 + :steer-arm-length 1638.4 + :scale 0.9260999 + :travel 5324.8 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5212 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -163.84 -7536.64 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 9830.4 + :steer-arm-length 2048.0 + :scale 1.125 + :travel 6963.2 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.1 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.6327 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4646.5024 + :settle-rot-x -105.476555 + :idle-settle-height 4646.5024 + :idle-settle-rot-x -105.476555 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 24 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x104fa))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -40.96 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -40.96 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000007811381 + 0.000000000000000000002066044 + 0.0000000000000000005425129 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 5) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 8396.8 -6144.0 (the-as float #xfbbc))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10731.52 -4096.0 (the-as float #x1ff4a))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8396.8 -6553.6 (the-as float #x2fb06))) + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 11141.12 -6553.6 (the-as float #x4fb06))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8396.8 -6553.6 (the-as float #x809f4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9871.36 -7372.8 (the-as float #x100000))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -204.8 1.0)) + :nodes (new 'static 'array int8 7 38 39 37 0 40 41 42) + :shield-anim 35 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +(set! (-> *v-cheetah-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-cheetah-constants* debris) #f) + +(define *v-gila-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 16.0 + :inv-mass 0.0625 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 3276.8 2867.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-gila-constants* + :flags #xf + :vehicle-type #xc + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 650.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 650.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 2.9888606 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 117441.34 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.572327 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc1 #xc1 #xcc) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc2 #xc2 #xcd) + :original-rpm 2000.0 + :min-rpm 1023.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc3 #xc8 #xce) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc4 #xc9 #xcf) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc5 #xca #xd0) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5499.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc6 #xcb #xd1) + :original-rpm 5500.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -17203.2 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 6144.0 -2048.0 18432.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6144.0 -2048.0 18432.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 4915.2 2457.6 -16793.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4915.2 2457.6 -16793.6 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xe7f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 4096.0 -3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -4096.0 -3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 2867.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 2) (meters 1.2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.8) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -2048.0 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.5) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3379.2002 -1556.48 15687.68 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6758.4004 + :steer-arm-length 1843.2 + :scale 1.1 + :travel 5324.8 + :probe-y-offset -1228.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.785 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 1847.296 0.0 -11468.8 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 8560.64 + :steer-arm-length 1638.4 + :scale 1.21 + :travel 6963.2 + :probe-y-offset -819.2 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7604 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6470.451 + :settle-rot-x -326.78796 + :idle-settle-height 6470.451 + :idle-settle-rot-x -326.78796 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 23 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10b60))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -40.96 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -40.96 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000003327095 + 0.000000000000000008789052 + 0.0000000000000023057262 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10403.84 -14131.2 (the-as float #xf778))) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 10240.0 -7782.4 1.0)) + :nodes (new 'static 'array int8 7 20 22 26 27 0 24 25) + :shield-anim 41 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5324.8 0.0 1.0)) + ) + ) + +(set! (-> *v-gila-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-gila-constants* debris) #f) + +(define *v-snake-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 3276.8 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 8)) + :gravity 245760.0 + ) + :name '*v-snake-constants* + :flags #xf + :vehicle-type #xd + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.127298 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.42 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 6144.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd2 #xd2 #xdd) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd4 #xd9 #xdf) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd5 #xda #xe0) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd6 #xdb #xe1) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd7 #xdc #xe2) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 4) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 4505.6 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -15974.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -15974.4 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 819.2 9011.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 819.2 9011.2 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3276.8 3276.8 -14131.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3276.8 3276.8 -14131.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xd70 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 819.2 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.5) (meters 1)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 0.7) (meters 1.2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.7) (meters 2.2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 1843.2 901.12 7864.32 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 5939.2 + :steer-arm-length 1638.4 + :scale 0.9 + :travel 5324.8 + :probe-y-offset -2048.0 + :suspension-spring 0.9 + :suspension-damping 0.6 + :forward-grip 0.9 + :side-grip 1.0 + :max-brake-torque 1.0 + :camber 546.13336 + :x-scale 0.8 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7903 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 1351.68 1638.4 -12083.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3 vwf5) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 7782.4 + :steer-arm-length 1638.4 + :scale 1.15 + :travel 6553.6 + :probe-y-offset -2457.6 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :camber 1820.4445 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7566 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 5521.408 + :settle-rot-x 221.5663 + :idle-settle-height 5521.408 + :idle-settle-rot-x 221.5663 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 8 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 -2252.8 819.2 -720.896 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 (new 'static 'vector)) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 7741.44 -12451.84 (the-as float #xf1c8))) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -6963.2 1.0)) + :nodes (new 'static 'array int8 7 19 20 3 3 3 3 3) + :shield-anim 5 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -4096.0 0.0 1.0)) + ) + ) + +(set! (-> *v-snake-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-snake-constants* debris) #f) + +(define *v-daxtermobile-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 5324.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-daxtermobile-constants* + :flags #xf + :vehicle-type #xe + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.0386183 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.8343816 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe3 #xe3 #xee) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe5 #xea #xf0) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe6 #xeb #xf1) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe7 #xec #xf2) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe8 #xed #xf3) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 1.4) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 4657.152 -10240.0 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 3481.6 819.2 20480.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3481.6 819.2 20480.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 2662.4 -10649.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 2662.4 -10649.6 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf4c + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.2) (meters 0.9) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.2) (meters 0.9) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2048.0 -4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 0.5) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -1638.4 17530.88 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 7864.32 + :steer-arm-length 1638.4 + :scale 0.9260999 + :travel 5324.8 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5212 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -163.84 -7536.64 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 9830.4 + :steer-arm-length 2048.0 + :scale 1.125 + :travel 6963.2 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.6327 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4646.5024 + :settle-rot-x -105.476555 + :idle-settle-height 4646.5024 + :idle-settle-rot-x -105.476555 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 24 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -40.96 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -40.96 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000007811381 + 0.000000000000000000002066044 + 0.0000000000000000005425129 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 2 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -3194.88 6512.64 -7372.8 (the-as float #xfd28))) + ) + :trunk-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10444.8 -14131.2 (the-as float #x10ccc))) + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10158.08 -18432.0 (the-as float #x2038e))) + ) + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 8437.76 -2048.0 (the-as float #x40666))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6635.52 1843.2 (the-as float #x809f4))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 38 39 35 40 41 0 0) + :shield-anim 37 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +(set! (-> *v-daxtermobile-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-daxtermobile-constants* debris) #f) + +(define *v-drone-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-drone-constants* + :flags #xf + :vehicle-type #xf + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 5500.0 + :min-rpm 750.0 + :max-rpm 7500.0 + :peak-torque-rpm 3700.0 + :powerband-width-rpm 3900.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 5500.0 + :downshift-rpm 3000.0 + :final-drive-ratio 4.0 + :gear-ratio-array (new 'static 'array float 8 -2.9 4.0 2.66 1.78 1.3 1.0 0.0 0.0) + :gear-count 6 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 204800.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.27 + :tire-static-friction 1.2193999 + :tire-static-friction-speed (meters 2) + :tire-dynamic-friction 0.60969996 + :tire-dynamic-friction-speed (meters 4) + :drag-force-factor 0.05 + :rolling-resistance 0.3 + :downforce-factor 1.0 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :ground-torque-scale 0.3 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 3) + :string-min-length (meters 5) + :string-max-length (meters 14) + :min-fov 16930.133 + :max-fov 19296.71 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 6144.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -20480.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 20480.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 20480.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.0 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3c #x3c #x45) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3d #x41 #x46) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3e #x42 #x47) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3f #x43 #x48) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x40 #x44 #x49) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 2) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 4505.6 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -15974.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -15974.4 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 4096.0 2457.6 20480.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4096.0 2457.6 20480.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3276.8 0.0 -19251.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3276.8 0.0 -19251.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 10.0 + :inv-hit-points 0.1 + :hit-threshold 8192.0 + :impact-damage-factor 1.0 + :section-mask #x800 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -983.04004 19415.041 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 11968.512 + :steer-arm-length 1966.0801 + :scale 1.2 + :travel 6389.7603 + :probe-y-offset -4915.2 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :camber 546.13336 + :x-scale 1.0 + :probe-radius 1638.4 + :width 3276.8 + :settle-pos 0.795 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -983.04004 -18112.512 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3 vwf5) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 10813.44 + :steer-arm-length 1966.0801 + :scale 1.5 + :travel 8355.841 + :probe-y-offset -4915.2 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :camber 1820.4445 + :x-scale 1.0 + :probe-radius 1638.4 + :width 3276.8 + :settle-pos 0.746 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 9641.984 + :settle-rot-x 321.67252 + :idle-settle-height 9641.984 + :idle-settle-rot-x 321.67252 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 -2252.8 819.2 -720.896 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1310.72 409.6 -614.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1310.72 409.6 -409.6 1.0)) + ) + :attach-point-array #f + :attach-node-array #f + ) + :daxter (new 'static 'vehicle-daxter-info :chassis-seats #f :trunk-seats #f :roof-seats #f) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -4096.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 3 3 3 3 3 3 3) + :shield-anim 5 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + ) + ) + +(set! (-> *v-drone-constants* explosion) *wcar-explosion-info*) + +(set! (-> *v-drone-constants* debris) #f) diff --git a/goal_src/jakx/levels/desert/wvehicle/wvehicle-part.gc b/goal_src/jakx/levels/desert/wvehicle/wvehicle-part.gc index 3841e20e0d..06008c4f4f 100644 --- a/goal_src/jakx/levels/desert/wvehicle/wvehicle-part.gc +++ b/goal_src/jakx/levels/desert/wvehicle/wvehicle-part.gc @@ -7,3 +7,2034 @@ ;; DECOMP BEGINS +(defpartgroup group-waterfall-splash + :id 225 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 764 :flags (sp3 sp6))) + ) + +(defpart 764 + :init-specs ((:texture (new 'static 'texture-id :index #x63 :page #x4)) + (:num 80.0) + (:y (meters 0) (meters 2)) + (:z (meters 3) (meters 6)) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-z (meters 0.16666667) (meters 0.26666668)) + (:scalevel-x (meters 0.05)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters -0.0026666666)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:conerot-y (degrees 8) (degrees 5)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +(defun birth-func-set-pos-vel ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (let ((v1-0 *particle-birth-work*) + (s5-0 (new 'stack-no-clear 'inline-array 'vector 2)) + ) + (vector-float*! (-> s5-0 0) (-> v1-0 d-pos) (-> v1-0 tt)) + (+! (-> v1-0 tt) (-> v1-0 t-step)) + (+! (-> arg2 launchrot x) (-> s5-0 0 x)) + (+! (-> arg2 launchrot y) (-> s5-0 0 y)) + (+! (-> arg2 launchrot z) (-> s5-0 0 z)) + (set! (-> s5-0 1 quad) (-> *particle-birth-work* vel-range 0 quad)) + (when (< 1.0 (-> s5-0 1 w)) + (+! (-> s5-0 1 x) (* 2.0 (-> s5-0 1 w) (+ -0.5 (rand-vu)))) + (+! (-> s5-0 1 y) (* 2.0 (-> s5-0 1 w) (+ -0.5 (rand-vu)))) + (+! (-> s5-0 1 z) (* 2.0 (-> s5-0 1 w) (+ -0.5 (rand-vu)))) + ) + (set! (-> arg1 vel-sxvel x) (-> s5-0 1 x)) + (set! (-> arg1 vel-sxvel y) (-> s5-0 1 y)) + (set! (-> arg1 vel-sxvel z) (-> s5-0 1 z)) + ) + 0 + (none) + ) + +;; WARN: Return type mismatch vector vs none. +(defun birth-func-adopt-velocity-vehicle ((arg0 sparticle-system) + (arg1 sparticle-cpuinfo) + (arg2 sprite-vec-data-3d) + (arg3 sparticle-launcher) + (arg4 sparticle-launch-state) + ) + (let ((a0-1 (-> arg4 control proc))) + (when a0-1 + (let ((v1-1 (new 'stack-no-clear 'vector))) + (set! (-> v1-1 x) (-> arg1 vel-sxvel x)) + (set! (-> v1-1 y) (-> arg1 vel-sxvel y)) + (set! (-> v1-1 z) (-> arg1 vel-sxvel z)) + (set! (-> v1-1 w) 1.0) + (vector+float*! v1-1 v1-1 (-> a0-1 root transv) 0.0033333334) + (set! (-> arg1 vel-sxvel x) (-> v1-1 x)) + (set! (-> arg1 vel-sxvel y) (-> v1-1 y)) + (set! (-> arg1 vel-sxvel z) (-> v1-1 z)) + ) + (-> arg1 vel-sxvel) + ) + ) + (none) + ) + +(defun sparticle-adopt-accel-vehicle ((arg0 sparticle-system) (arg1 sparticle-cpuinfo)) + (let ((a3-0 (-> arg1 key 0 proc))) + (when a3-0 + (let ((v1-2 (new 'stack-no-clear 'vector))) + (set! (-> v1-2 x) (-> arg1 vel-sxvel x)) + (set! (-> v1-2 y) (-> arg1 vel-sxvel y)) + (set! (-> v1-2 z) (-> arg1 vel-sxvel z)) + (set! (-> v1-2 w) 1.0) + (vector+float*! v1-2 v1-2 (the-as vector (&-> a3-0 stack 512)) (* 0.0033333334 (seconds-per-frame))) + (set! (-> arg1 vel-sxvel x) (-> v1-2 x)) + (set! (-> arg1 vel-sxvel y) (-> v1-2 y)) + (set! (-> arg1 vel-sxvel z) (-> v1-2 z)) + ) + (-> arg1 vel-sxvel) + ) + ) + ) + +(defpartgroup group-vehicle-wheel-fire + :id 226 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 765 :falloff-to (meters 600) :flags (sp6))) + ) + +(defpart 765 + :init-specs ((:texture (new 'static 'texture-id :index #xbb :page #x4)) + (:birth-func 'birth-func-adopt-velocity-vehicle) + (:num 1.0) + (:scale-x (meters 3) (meters 2)) + (:rot-z (degrees 0) 1 (degrees 180)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:scalevel-x (meters -0.016666668) (meters -0.016666668)) + (:rotvel-z (degrees -0.06666667) (degrees 0.13333334)) + (:scalevel-y :copy scalevel-x) + (:fade-g -1.0) + (:fade-b -2.0) + (:fade-a 0.85333335 0.85333335) + (:accel-y (meters 0.001) (meters 0.00066666666)) + (:friction 0.99) + (:timer (seconds 0.167) (seconds 0.83)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-adopt-accel-vehicle) + (:next-time (seconds 0.25)) + (:next-launcher 766) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 766 + :init-specs ((:fade-a -0.8 -1.7066667)) + ) + +(defpartgroup group-vehicle-wheel-oil + :id 227 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 767 :flags (sp6))) + ) + +(defpart 767 + :init-specs ((:texture (new 'static 'texture-id :index #x63 :page #x4)) + (:birth-func 'birth-func-adopt-velocity-vehicle) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 255.0) + (:scalevel-x (meters 0.016666668) (meters 0.026666667)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0013333333)) + (:friction 0.97) + (:timer (seconds 0.5)) + (:flags (glow)) + (:func 'sparticle-adopt-accel-vehicle) + ) + ) + +(defpartgroup group-kg-big-explosion + :id 228 + :duration (seconds 4) + :linger-duration (seconds 3) + :flags (sp0) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 769 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 770 :period (seconds 30) :length (seconds 0.035)) + (sp-item 771 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 772 :period (seconds 30) :length (seconds 0.035)) + (sp-item 773 :period (seconds 30) :length (seconds 0.035)) + (sp-item 774 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 775 :period (seconds 30) :length (seconds 0.167)) + (sp-item 776 :period (seconds 30) :length (seconds 0.5)) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + ) + ) + +(defpart 769 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #x4)) + (:num 1.0) + (:scale-x (meters 20)) + (:rot-x (degrees 225)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:fade-a -0.10666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + ) + ) + +(defpart 770 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #x4)) + (:num 10.0 10.0) + (:scale-x (meters 0.8) (meters 1.2)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.16666667) (meters 0.33333334)) + (:scalevel-x (meters -0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.9) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 771 + :init-specs ((:texture (new 'static 'texture-id :index #x10 :page #x4)) + (:num 30.0) + (:scale-x (meters 3) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 160.0) + (:b 40.0) + (:a 128.0) + (:vel-y (meters 0) (meters 0.06666667)) + (:scalevel-x (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.114285715) + (:fade-b -0.042857144) + (:fade-a -0.18285714 -0.18285714) + (:friction 0.93) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 772 + :init-specs ((:texture (new 'static 'texture-id :index #xf :page #x4)) + (:num 5.0) + (:scale-x (meters 3) (meters 2)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 8.0 8.0) + (:g :copy r) + (:b :copy r) + (:a 64.0) + (:vel-y (meters 0.33333334) (meters 0.13333334)) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:friction 0.7) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 glow)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 773 + :init-specs ((:texture (new 'static 'texture-id :index #x10 :page #x4)) + (:birth-func 'birth-func-curve) + (:num 30.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 1.0) + (:g 1.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.05)) + (:friction 0.97) + (:timer (seconds 2)) + (:flags (glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-z (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(if #t + (set! *range-carexplo-dust-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 70.0 70.0 70.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 40.0 40.0 40.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 40.0 40.0 40.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 40.0 40.0 40.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +(if #t + (set! *range-carexplo-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 64.0 32.0 33.0 34.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 -32.0 1.0 1.0 1.0)) + ) + ) + ) + +(if #t + (set! *range-carexplo-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +(if #t + (set! *range-carexplo-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +(if #t + (set! *curve-carexplo-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.7 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.4285715 -3.3333333 1.0 1.0)) + ) + ) + ) + +(if #t + (set! *curve-carexplo-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +(if #t + (set! *curve-carexplo-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +(define *part-car-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 1.5) + :lifetime-offset (seconds 1) + :flags (particle-curve-flags pcf0) + ) + ) + +(set! (-> *part-id-table* 773 init-specs 14 initial-valuef) + (the-as float *part-car-explosion-dust-in-curve-settings*) + ) + +(set! (-> *part-car-explosion-dust-in-curve-settings* color-start) *range-carexplo-dust-color*) + +(set! (-> *part-car-explosion-dust-in-curve-settings* alpha-start) *range-carexplo-dust-alpha*) + +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-x-start) *range-carexplo-dust-scale-x*) + +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-y-start) *range-carexplo-dust-scale-y*) + +(set! (-> *part-car-explosion-dust-in-curve-settings* r-scalar) #f) + +(set! (-> *part-car-explosion-dust-in-curve-settings* g-scalar) #f) + +(set! (-> *part-car-explosion-dust-in-curve-settings* b-scalar) #f) + +(set! (-> *part-car-explosion-dust-in-curve-settings* a-scalar) *curve-carexplo-dust-alpha*) + +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-x-scalar) *curve-carexplo-dust-scale-x*) + +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-y-scalar) *curve-carexplo-dust-scale-y*) + +(defpart 775 + :init-specs ((:texture (new 'static 'texture-id :index #xf :page #x4)) + (:num 5.0) + (:scale-x (meters 3) (meters 2)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.33333334) (meters 0.13333334)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.7) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 776 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:birth-func 'birth-func-curve) + (:num 8.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:friction 0.9) + (:timer (seconds 1)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 20) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(define *range-carexplo-color* (new 'global 'curve-color-fast)) + +(if #t + (set! *range-carexplo-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *range-carexplo-alpha* (new 'global 'curve2d-fast)) + +(if #t + (set! *range-carexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *range-carexplo-scale-x* (new 'global 'curve2d-fast)) + +(if #t + (set! *range-carexplo-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 3.0 5.0 6.0 7.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *range-carexplo-scale-y* (new 'global 'curve2d-fast)) + +(if #t + (set! *range-carexplo-scale-y* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 3.0 5.0 6.0 7.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *curve-carexplo-alpha* (new 'global 'curve2d-fast)) + +(if #t + (set! *curve-carexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.05 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -0.3076923 -2.6666665 1.0)) + ) + ) + ) + +(define *curve-carexplo-scale-x* (new 'global 'curve2d-fast)) + +(if #t + (set! *curve-carexplo-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +(define *curve-carexplo-scale-y* (new 'global 'curve2d-fast)) + +(if #t + (set! *curve-carexplo-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +(define *part-car-explosion-texture-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.5) + :lifetime-offset (seconds 0.6) + :flags (particle-curve-flags pcf0) + ) + ) + +(set! (-> *part-id-table* 776 init-specs 16 initial-valuef) + (the-as float *part-car-explosion-texture-curve-settings*) + ) + +(set! (-> *part-car-explosion-texture-curve-settings* color-start) *range-carexplo-color*) + +(set! (-> *part-car-explosion-texture-curve-settings* alpha-start) *range-carexplo-alpha*) + +(set! (-> *part-car-explosion-texture-curve-settings* scale-x-start) *range-carexplo-scale-x*) + +(set! (-> *part-car-explosion-texture-curve-settings* scale-y-start) *range-carexplo-scale-y*) + +(set! (-> *part-car-explosion-texture-curve-settings* r-scalar) #f) + +(set! (-> *part-car-explosion-texture-curve-settings* g-scalar) #f) + +(set! (-> *part-car-explosion-texture-curve-settings* b-scalar) #f) + +(set! (-> *part-car-explosion-texture-curve-settings* a-scalar) *curve-carexplo-alpha*) + +(set! (-> *part-car-explosion-texture-curve-settings* scale-x-scalar) *curve-carexplo-scale-x*) + +(set! (-> *part-car-explosion-texture-curve-settings* scale-y-scalar) *curve-carexplo-scale-y*) + +(defpart 774 + :init-specs ((:texture (new 'static 'texture-id :index #x8c :page #x4)) + (:num 1.0) + (:scale-x (meters 20)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 40.0) + (:a 128.0) + (:omega (degrees 6767.9995)) + (:scalevel-x (meters -0.16666667)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +(defpart 777 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #x4)) + (:num 1.0) + (:scale-x (meters 4) (meters 4)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:scalevel-x (meters -0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 170)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 768 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:birth-func 'birth-func-inherit-size) + (:num 1.0) + (:scale-x (meters 0.00024414062) (meters 0.00012207031)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:fade-a -0.18285714 -0.18285714) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +(defpartgroup group-big-explosion-fireball + :id 229 + :flags (sp0) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 778 :flags (sp1 sp3)) + (sp-item 779 :flags (sp6) :period (seconds 9) :length (seconds 0.5)) + (sp-item 780 :flags (sp6) :period (seconds 9) :length (seconds 2)) + (sp-item 781 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 150) + (sp-item 782 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 300) + (sp-item 783 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 450) + (sp-item 784 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 600) + (sp-item 785 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 750) + (sp-item 786 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 900) + (sp-item 787 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1050) + (sp-item 788 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1200) + (sp-item 789 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1350) + (sp-item 790 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1500) + (sp-item 790 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1650) + (sp-item 790 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1800) + ) + ) + +(defpart 778 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #x4)) + (:num 1.0) + (:y (meters -2)) + (:scale-x (meters 15)) + (:rot-x (degrees 6.7500005)) + (:scale-y (meters 20)) + (:r 120.0) + (:g 100.0) + (:b 100.0) + (:a 255.0) + (:omega (degrees 22511.25)) + (:scalevel-x (meters -0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-b -0.16666667) + (:fade-a -0.425) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +(defpart 779 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 20.0) + (:g 100.0 20.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 791 + :init-specs ((:scalevel-x (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.02 -0.12) + (:fade-g -0.12 -0.12 :store) + (:fade-b '*sp-temp*) + (:next-time (seconds 1.335)) + (:next-launcher 792) + ) + ) + +(defpart 792 + :init-specs ((:scalevel-x (meters -0.02)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters 0.00033333333)) + (:next-time (seconds 0.167)) + (:next-launcher 793) + ) + ) + +(defpart 793 + :init-specs ((:fade-a -1.28)) + ) + +(defpart 780 + :init-specs ((:texture (new 'static 'texture-id :index #x11 :page #x4)) + (:num 0.3 0.3) + (:z (meters 1)) + (:scale-x (meters 0.05)) + (:rot-x (degrees 22.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 60.0) + (:a 64.0 64.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:next-time (seconds 0.335)) + (:next-launcher 794) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 794 + :init-specs ((:scalevel-x (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:next-time (seconds 1.335)) + (:next-launcher 795) + ) + ) + +(defpart 795 + :init-specs ((:scalevel-x (meters -0.02)) (:scalevel-y :copy scalevel-x) (:accel-y (meters 0.00033333333))) + ) + +(defpart 781 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 20.0) + (:g 100.0 20.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 782 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 30.0) + (:g 90.0 30.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 783 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 20.0) + (:g 80.0 30.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 784 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 20.0) + (:g 70.0 20.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 785 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 80.0 15.0) + (:g 60.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 786 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0 15.0) + (:g 50.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 787 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 55.0 10.0) + (:g 40.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 788 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 45.0 10.0) + (:g 40.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 789 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 35.0 10.0) + (:g 30.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 790 + :init-specs ((:texture (new 'static 'texture-id :index #xe :page #x4)) + (:birth-func 'birth-func-texture-group) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0 10.0) + (:g 10.0) + (:b 10.0) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x407800 #x400e00 #x400e00)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpartgroup group-kg-huge-explosion + :id 230 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (4.0 4.0 4.0) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +(defpartgroup group-kg-explosion + :id 231 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (0.75 0.75 0.75) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +(defpartgroup group-kg-mid-explosion + :id 232 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (0.5 0.5 0.5) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +(defpartgroup group-kg-small-explosion + :id 233 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (0.3 0.3 0.3) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +(defpart 797 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 2)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 24.0) + (:scalevel-x (meters 0.10666667)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -4.266667) + (:fade-b -4.266667) + (:fade-a 0.0) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc sp-cpuinfo-flag-21)) + (:next-time (seconds 0.25)) + (:next-launcher 803) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 803 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.85333335) + (:fade-g -1.7066667) + (:fade-b -1.7066667) + (:fade-a -0.64) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 802 + :init-specs ((:texture (new 'static 'texture-id :index #xf :page #x4)) + (:num 2.0 0.2) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 3600) :store) + (:scale-y (meters 0.8) (meters 0.2)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:next-time (seconds 0.085)) + (:next-launcher 804) + (:conerot-x '*sp-temp*) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 801 + :init-specs ((:texture (new 'static 'texture-id :index #x10 :page #x4)) + (:birth-func 'birth-func-texture-group) + (:num 3.0) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:vel-y (meters 0.02) (meters 0.01)) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-21)) + (:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #x400a00 #x401000)) + (:next-time (seconds 0.085)) + (:next-launcher 804) + (:conerot-x (degrees 0) (degrees 3600)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 804 + :init-specs ((:fade-r 0.0) + (:fade-g 0.0) + (:fade-b 0.0) + (:next-time (seconds 0.017) (seconds 0.065)) + (:next-launcher 805) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 805 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.44) + (:fade-g -2.36) + (:fade-b -2.64) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 806) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 806 + :init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -1.2944444) + (:fade-g -0.7111111) + (:fade-b -0.094444446) + (:fade-a -0.06545454 -0.06545454) + (:next-time (seconds 0.5) (seconds 0.097)) + (:next-launcher 807) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 807 + :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.1125) (:rotate-y (degrees 0))) + ) + +(defpart 796 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #x4)) + (:num 1.0) + (:scale-x (meters 5)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 96.0) + (:scalevel-x (meters 0.5)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -1.28) + (:fade-b -5.1) + (:fade-a 0.0) + (:timer (seconds 0.217)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:next-time (seconds 0.1)) + (:next-launcher 808) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 808 + :init-specs ((:scalevel-x (meters -0.2857143)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -3.6571429) + (:fade-b 0.0) + (:fade-a -2.7428572) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 800 + :init-specs ((:texture (new 'static 'texture-id :index #x5b :page #x4)) + (:num 8.0 2.0) + (:x (meters 0.25)) + (:scale-x (meters 1) (meters 0.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 16.0 48.0) + (:vel-y (meters 0.083333336) (meters 0.083333336)) + (:scalevel-x (meters 0.006666667) (meters 0.0016666667)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.18) + (:fade-b -2.12) + (:accel-y (meters -0.00016666666) (meters -0.00033333333)) + (:friction 0.87) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-21)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 809) + (:conerot-x (degrees 0) (degrees 3600)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 809 + :init-specs ((:scalevel-x (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g 0.02) + (:fade-b 0.23555556) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 810) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 810 + :init-specs ((:fade-r -0.5543478) (:fade-g -0.5543478) (:fade-a -0.13913043) (:rotate-y (degrees 0))) + ) + +(defpart 798 + :init-specs ((:texture (new 'static 'texture-id :index #xa :page #x4)) + (:num 8.0 1.0) + (:x (meters 0) (meters 0.6)) + (:scale-x (meters 2.5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0 20.0) + (:g 70.0 20.0) + (:b 70.0 20.0) + (:a 0.0 40.0) + (:vel-y (meters 0) (meters 0.1)) + (:scalevel-x (meters 0.033333335) (meters 0.02)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 3.3) + (:fade-g 3.12) + (:fade-b 1.18) + (:fade-a 1.76) + (:friction 0.88) + (:timer (seconds 2.367)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 811) + (:conerot-x (degrees 0) (degrees 3600)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 811 + :init-specs ((:scalevel-x (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.53333336) + (:fade-g -1.9666667) + (:fade-b -2.2) + (:fade-a -0.41666666) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 812) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 812 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.38833332) + (:fade-g -0.21333334) + (:fade-b -0.028333334) + (:fade-a -0.38833332) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 799 + :init-specs ((:texture (new 'static 'texture-id :index #x4e :page #x4)) + (:num 4.0 2.0) + (:scale-x (meters 0.2) (meters 0.5)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.2) (meters 0.1)) + (:r 128.0 128.0) + (:g 96.0) + (:b 64.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.13333334) (meters 0.02)) + (:fade-g 1.6) + (:fade-b 3.2) + (:fade-a -1.6) + (:timer (seconds 0.3)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0)) + ) + ) + +(def-mips2c sparticle-motion-blur-dirt (function sparticle-system sparticle-cpuinfo vector none)) + +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-buggy-rocks ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 101) 30)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 10)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 30)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +(defpart 813 + :init-specs ((:texture (new 'static 'texture-id :index #x8d :page #x4)) + (:birth-func 'spt-birth-func-part-buggy-rocks) + (:num 1.0) + (:x (meters 0) (meters 0.2)) + (:scale-x (meters 0.1) (meters 0.2)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.033333335) (meters 0.01)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.001)) + (:timer (seconds 1.5)) + (:flags (glow)) + (:userdata :data (new 'static 'boxed-array :type int32 + 10 + 1 + 0 + #x408d00 + #x408e00 + #x408f00 + #x409000 + #x409100 + #x409200 + #x409300 + #x409400 + #x409500 + #x409600 + #x409700 + #x409800 + #x409900 + #x409a00 + #x409b00 + #x409c00 + ) + ) + (:func 'sparticle-texture-animate) + (:conerot-x (degrees -5) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defun spt-birth-func-part-buggy-rocks ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (spt-birth-func-brightness-buggy-rocks arg0 arg1 arg2) + (none) + ) + +(defpart 293 + :init-specs ((:texture (new 'static 'texture-id :index #x8d :page #x4)) + (:birth-func 'spt-birth-func-part-dbuggy-debris) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:y (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y (meters 1)) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.002)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 aux-list glow left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 + 10 + 1 + 0 + #x408d00 + #x408e00 + #x408f00 + #x409000 + #x409100 + #x409200 + #x409300 + #x409400 + #x409500 + #x409600 + #x409700 + #x409800 + #x409900 + #x409a00 + #x409b00 + #x409c00 + ) + ) + (:func 'sparticle-texture-animate) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +(defun spt-birth-func-part-dbuggy-debris ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (birth-func-set-pos-vel arg0 arg1 arg2 arg3 arg4) + (spt-birth-func-brightness-buggy-rocks arg0 arg1 arg2) + (none) + ) + +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-buggy-snow ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 31) 180)) + (s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + (s4-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + (v1-5 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-5))) + ) + (none) + ) + +(defpart 295 + :init-specs ((:texture (new 'static 'texture-id :index #x8d :page #x4)) + (:birth-func 'spt-birth-func-part-wv-snow) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:y (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 0.15) (meters 0.15)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y (meters 0.15) (meters 0.15)) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 128.0) + (:omega (degrees 0.0675) (degrees 0.0225)) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.002)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 aux-list left-multiply-quat)) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +(defun spt-birth-func-part-wv-snow ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (birth-func-set-pos-vel arg0 arg1 arg2 arg3 arg4) + (none) + ) + +(defpart 296 + :init-specs ((:texture (new 'static 'texture-id :index #x65 :page #x4)) + (:birth-func 'spt-birth-func-part-wv-grass) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:y (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y (meters 1)) + (:r 250.0) + (:g 250.0) + (:b 250.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.002)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 aux-list glow left-multiply-quat)) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +(defun spt-birth-func-part-wv-grass ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (birth-func-set-pos-vel arg0 arg1 arg2 arg3 arg4) + (none) + ) + +(defpart 297 + :init-specs ((:texture (new 'static 'texture-id :index #x63 :page #x4)) + (:birth-func 'birth-func-set-pos-vel) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 2)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:scalevel-x (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.96) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +(defpart 298 + :init-specs ((:texture (new 'static 'texture-id :index #x5d :page #x4)) + (:num 0.05) + (:scale-x (meters 0.5)) + (:scale-y (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 16.0 16.0) + (:scalevel-x (meters 0.008333334) (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.07111111 -0.07111111) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 right-multiply-quat)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpartgroup group-part-wv-water-splash + :id 234 + :duration (seconds 5) + :flags (sp0) + :bounds (static-bspherem 0 -12 0 14) + :parts ((sp-item 814 :falloff-to (meters 500) :flags (sp6) :period (seconds 10) :length (seconds 0.2)) + (sp-item 815 :falloff-to (meters 500) :flags (sp6) :period (seconds 10) :length (seconds 0.2)) + (sp-item 816 :falloff-to (meters 500) :flags (is-3d sp6) :period (seconds 10) :length (seconds 0.335)) + ) + ) + +(defpart 815 + :init-specs ((:texture (new 'static 'texture-id :index #x63 :page #x4)) + (:birth-func 'birth-func-texture-group) + (:num 2.0) + (:x (meters 0) (meters 2)) + (:y (meters -2)) + (:scale-x (meters 0.2) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.01) (meters 0.016666668)) + (:scalevel-x (meters 0.0033333334) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:friction 0.98 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat sp-cpuinfo-flag-21)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x400a00 #x407800)) + (:conerot-x (degrees -2) (degrees 4)) + (:conerot-z (degrees -2) (degrees 4)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 814 + :init-specs ((:texture (new 'static 'texture-id :index #x64 :page #x4)) + (:birth-func 'birth-func-curve) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x 4) + (:rot-z (degrees 90)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-z (meters 0.033333335)) + (:accel-y (meters -0.0016666667)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow sp-cpuinfo-flag-21)) + (:userdata 0.0) + (:func 'live-func-curve) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(define *range-wv-wsplash-color* (new 'global 'curve-color-fast)) + +(if #t + (set! *range-wv-wsplash-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 128.0 158.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *range-wv-wsplash-alpha* (new 'global 'curve2d-fast)) + +(if #t + (set! *range-wv-wsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 64.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 64.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *range-wv-wsplash-scale-x* (new 'global 'curve2d-fast)) + +(if #t + (set! *range-wv-wsplash-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 2.0 4.0 5.0 6.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *range-wv-wsplash-scale-y* (new 'global 'curve2d-fast)) + +(if #t + (set! *range-wv-wsplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 4.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *curve-wv-wsplash-alpha* (new 'global 'curve2d-fast)) + +(if #t + (set! *curve-wv-wsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.1 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 0.0 -3.3333333 1.0)) + ) + ) + ) + +(define *curve-wv-wsplash-scale-x* (new 'global 'curve2d-fast)) + +(if #t + (set! *curve-wv-wsplash-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 8.0 6.0 4.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -6.666667 -6.6666665 1.0)) + ) + ) + ) + +(define *curve-wv-wsplash-scale-y* (new 'global 'curve2d-fast)) + +(if #t + (set! *curve-wv-wsplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 4.0 5.0 6.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +(define *part-wv-water-splash-curve-settings* + (new 'static 'particle-curve-settings :lifetime-base (seconds 1.95) :lifetime-offset (seconds 0.1)) + ) + +(set! (-> *part-id-table* 814 init-specs 16 initial-valuef) + (the-as float *part-wv-water-splash-curve-settings*) + ) + +(set! (-> *part-wv-water-splash-curve-settings* color-start) *range-wv-wsplash-color*) + +(set! (-> *part-wv-water-splash-curve-settings* alpha-start) *range-wv-wsplash-alpha*) + +(set! (-> *part-wv-water-splash-curve-settings* scale-x-start) *range-wv-wsplash-scale-x*) + +(set! (-> *part-wv-water-splash-curve-settings* scale-y-start) *range-wv-wsplash-scale-y*) + +(set! (-> *part-wv-water-splash-curve-settings* r-scalar) #f) + +(set! (-> *part-wv-water-splash-curve-settings* g-scalar) #f) + +(set! (-> *part-wv-water-splash-curve-settings* b-scalar) #f) + +(set! (-> *part-wv-water-splash-curve-settings* a-scalar) *curve-wv-wsplash-alpha*) + +(set! (-> *part-wv-water-splash-curve-settings* scale-x-scalar) *curve-wv-wsplash-scale-x*) + +(set! (-> *part-wv-water-splash-curve-settings* scale-y-scalar) *curve-wv-wsplash-scale-y*) + +(defpart 816 + :init-specs ((:texture (new 'static 'texture-id :index #x5d :page #x4)) + (:num 0.1) + (:y (meters 0.5)) + (:scale-x (meters 2) (meters 0.5)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y (meters 2) (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.01) (meters 0.0033333334)) + (:scalevel-y (meters 0.01) (meters 0.0033333334)) + (:fade-a -0.10666667) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 817 + :init-specs ((:texture (new 'static 'texture-id :index #x5d :page #x4)) + (:num 0.2) + (:scale-x (meters 0) (meters 0.1)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:scalevel-x (meters 0.00033333333) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 818 + :init-specs ((:texture (new 'static 'texture-id :index #x63 :page #x4)) + (:num 5.0) + (:x (meters 0) (meters 1)) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-y (meters 0.016666668) (meters 0.033333335)) + (:scalevel-x (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:conerot-x (degrees -40) (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 819 + :init-specs ((:texture (new 'static 'texture-id :index #x55 :page #x4)) + (:num 0.5 1.0) + (:x (meters 1) (meters 5)) + (:scale-x (meters 0.1) (meters 0.2)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.001) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 820 + :init-specs ((:texture (new 'static 'texture-id :index #x22 :page #x4)) + (:num 2.0 2.0) + (:scale-x (meters 0.05) (meters 0.05)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-y (meters 0.026666667) (meters 0.026666667)) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:func 'check-water-level-drop) + (:conerot-x (degrees -2) (degrees 4)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 294 + :init-specs ((:texture (new 'static 'texture-id :index #xa :page #x4)) + (:birth-func 'birth-func-set-pos-vel) + (:num 0.4) + (:scale-x (meters 2)) + (:rot-z (degrees 0) (degrees 3598.0002)) + (:scale-y (meters 2)) + (:r 150.0) + (:g 120.0) + (:b 90.0) + (:a 20.0) + (:vel-y (meters 0) (meters 0.013333334)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.07111111 -0.07111111) + (:accel-y (meters 0) (meters 0.000033333334)) + (:friction 0.98) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 1)) + (:next-launcher 821) + (:launchrot-x (degrees -90)) + (:conerot-x (degrees -10) (degrees 20)) + (:rotate-x (degrees 30)) + (:rotate-z (degrees -20) (degrees 40)) + ) + ) + +(defpart 821 + :init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x)) + ) + +(defpartgroup group-part-wv-lava-splash + :id 235 + :duration (seconds 5) + :flags (sp0) + :bounds (static-bspherem 0 -12 0 14) + :parts ((sp-item 822 :flags (sp6) :period (seconds 10) :length (seconds 0.2)) + (sp-item 823 :flags (is-3d sp3 sp6) :period (seconds 10) :length (seconds 0.017)) + (sp-item 824 :flags (is-3d sp3 sp6) :period (seconds 10) :length (seconds 0.017)) + ) + ) + +(defpart 822 + :init-specs ((:texture (new 'static 'texture-id :index #xbb :page #x4)) + (:birth-func 'birth-func-flip-based-on-scale) + (:num 2.0) + (:x (meters 0) (meters 4)) + (:scale-x (meters -8) 1 (meters 16)) + (:scale-y (meters -8) 1 (meters 16)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.0033333334) (meters 0.033333335)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y (meters 0.033333335)) + (:fade-a -0.42666668 -0.42666668) + (:friction 0.98 0.01) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.167)) + (:next-launcher 825) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 825 + :init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y (meters 0.0033333334) (meters 0.033333335))) + ) + +(defpart 823 + :init-specs ((:texture (new 'static 'texture-id :index #x5d :page #x4)) + (:birth-func 'birth-func-texture-group) + (:num 3.0) + (:x (meters 0) (meters 1)) + (:y (meters 0.1)) + (:scale-x (meters 5) (meters 0.5)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y (meters 5) (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y (meters 0.0033333334) (meters 0.0033333334)) + (:fade-a -0.10666667) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x405500 #x405500 #x401000 #x405d00)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +(defpart 824 + :init-specs ((:texture (new 'static 'texture-id :index #x5d :page #x4)) + (:birth-func 'birth-func-texture-group) + (:num 3.0) + (:x (meters 0) (meters 1)) + (:y (meters 0.1)) + (:scale-x (meters 5) (meters 0.5)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y (meters 5) (meters 0.5)) + (:r 32.0) + (:g 32.0) + (:b 32.0) + (:a 128.0) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y (meters 0.0033333334) (meters 0.0033333334)) + (:fade-a -0.10666667) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x405500 #x405500 #x401000 #x405d00)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) diff --git a/scripts/gsrc/code_retention/all_types_retention.py b/scripts/gsrc/code_retention/all_types_retention.py index a65308d799..e08c255485 100644 --- a/scripts/gsrc/code_retention/all_types_retention.py +++ b/scripts/gsrc/code_retention/all_types_retention.py @@ -57,9 +57,18 @@ def update_all_blocks(game_name, block_dict): lines = f.readlines() # Iterate through lines, (before ;; decomp begins) and update the blocks if we find them i = 0 + seen_blocks = [] while i < len(lines): line = lines[i] if line.lower().startswith(";; decomp begins"): + # Add any blocks we hadn't seen yet (were not added to the file automatically by some tool) + for block in blocks: + if block.block_id in seen_blocks: + continue + final_lines.append(f";; +++{block.block_id}") + for block_line in block.data: + final_lines.append(block_line) + final_lines.append(f";; ---{block.block_id}\n") final_lines.append(line) # Add all the rest of the lines until the end while i + 1 < len(lines): @@ -70,6 +79,7 @@ def update_all_blocks(game_name, block_dict): if line.startswith(";; +++"): final_lines.append(line) block_id = line.split(";; +++")[1] + seen_blocks.append(block_id) # Look to see if we actually have that block found_block = False for block in blocks: diff --git a/scripts/gsrc/update-alltypes-named-blocks.py b/scripts/gsrc/update-alltypes-named-blocks.py new file mode 100644 index 0000000000..1e14246daf --- /dev/null +++ b/scripts/gsrc/update-alltypes-named-blocks.py @@ -0,0 +1,3 @@ +from code_retention.all_types_retention import update_alltypes_named_blocks + +update_alltypes_named_blocks("jakx") \ No newline at end of file diff --git a/scripts/gsrc/update-files-from-decomp-plan.py b/scripts/gsrc/update-files-from-decomp-plan.py index 9cd56c3d0f..977ed63bca 100644 --- a/scripts/gsrc/update-files-from-decomp-plan.py +++ b/scripts/gsrc/update-files-from-decomp-plan.py @@ -21,6 +21,8 @@ def run_decomp(name: str): env=env, cwd=BASE_DIR, check=True, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL ) @@ -44,8 +46,9 @@ def copy_to_ref(name: str): with open("./scripts/gsrc/_decomp-plan.json", "r") as f: data = json.load(f) -for entry in data: +for i, entry in enumerate(data): name = entry.get("name") + print(f"[{i}/{len(data)}] {name}") done = entry.get("done") if entry.get("skip"): print(f"skipping {name}") diff --git a/test-script.py b/test-script.py new file mode 100644 index 0000000000..2a8c087593 --- /dev/null +++ b/test-script.py @@ -0,0 +1,529 @@ +#!/usr/bin/env python3 + +import difflib +import os +import re +import sys +import termios +import tty +from dataclasses import dataclass +from io import StringIO + + +OLD_FILE = "ir2-jak3-test_ir2.asm" +NEW_FILE = "ir2-jakx-test_ir2.asm" + + +# ============================================================================ +# Colors +# ============================================================================ + +class Color: + RESET = "\033[0m" + RED = "\033[31m" + GREEN = "\033[32m" + YELLOW = "\033[33m" + CYAN = "\033[36m" + DIM = "\033[2m" + BOLD = "\033[1m" + + +def color(text, c): + return f"{c}{text}{Color.RESET}" + + +# ============================================================================ +# Data Structures +# ============================================================================ + +@dataclass +class Operation: + number: int + asm: str + mnemonic: str + normalized: str + + +@dataclass +class Function: + name: str + stack_total: int + operations: list[Operation] + has_errors: bool = False + + +# ============================================================================ +# Parsing +# ============================================================================ + +FUNC_RE = re.compile(r";\s*\.function\s+(.+)") +STACK_RE = re.compile(r";stack:\s*total\s+(0x[0-9a-fA-F]+|\d+)") +OP_RE = re.compile(r"^\s*(.*?)\s*;;\s*\[\s*(\d+)\]") +ERROR_RE = re.compile(r";;\s*ERROR:\s*") + + +REGISTER_RE = re.compile( + r"\b(" + r"r0|at|v[01]|a[0-3]|t[0-9]|s[0-7]|gp|sp|fp|ra|hi|lo" + r")\b" +) + + +def normalize_registers(asm): + + mapping = {} + next_id = 0 + + def repl(match): + + nonlocal next_id + + reg = match.group(1) + + if reg not in mapping: + mapping[reg] = f"R{next_id}" + next_id += 1 + + return mapping[reg] + + return REGISTER_RE.sub(repl, asm) + + +def parse_file(path): + + functions = {} + + current = None + + with open(path) as f: + + for line in f: + + m = FUNC_RE.search(line) + + if m: + + if current: + functions[current.name] = current + + current = Function( + name=m.group(1), + stack_total=0, + operations=[], + ) + + continue + + + if current is None: + continue + + + if ERROR_RE.search(line): + current.has_errors = True + + + m = STACK_RE.search(line) + + if m: + current.stack_total = int(m.group(1), 0) + continue + + + m = OP_RE.match(line) + + if m: + + asm = m.group(1).rstrip() + + current.operations.append( + Operation( + number=int(m.group(2)), + asm=asm, + mnemonic=asm.split()[0] if asm else "", + normalized=normalize_registers(asm), + ) + ) + + + if current: + functions[current.name] = current + + + return functions + + +# ============================================================================ +# Analysis +# ============================================================================ + +def similarity(a, b): + return difflib.SequenceMatcher(None, a, b).ratio() + + +def is_decompiled(func): + return not func.has_errors + + +def compare_exact(old, new): + + return ( + len(old.operations) == len(new.operations) + and all( + a.asm == b.asm + for a, b in zip( + old.operations, + new.operations + ) + ) + ) + + +def classify(old, new): + + if compare_exact(old, new): + return "IDENTICAL" + + + mnemonic_score = similarity( + [x.mnemonic for x in old.operations], + [x.mnemonic for x in new.operations], + ) + + normalized_score = similarity( + [x.normalized for x in old.operations], + [x.normalized for x in new.operations], + ) + + + if normalized_score > .995: + return "REGISTER CHANGES" + + if mnemonic_score > .98: + return "NEAR MATCH" + + if mnemonic_score > .75: + return "MODIFIED" + + return "DIFFERENT" + + +CLASS_COLOR = { + "IDENTICAL": Color.GREEN, + "REGISTER CHANGES": Color.GREEN, + "NEAR MATCH": Color.YELLOW, + "MODIFIED": Color.YELLOW, + "DIFFERENT": Color.RED, +} + + +CLASS_ORDER = { + "DIFFERENT": 0, + "MODIFIED": 1, + "NEAR MATCH": 2, + "REGISTER CHANGES": 3, + "IDENTICAL": 4, +} + + +# ============================================================================ +# Diff +# ============================================================================ + +def print_diff(old, new, out): + + matcher = difflib.SequenceMatcher( + None, + [x.normalized for x in old.operations], + [x.normalized for x in new.operations], + ) + + + print("Diff:\n", file=out) + + + for tag, i1, i2, j1, j2 in matcher.get_opcodes(): + + if tag == "equal": + continue + + + print( + color( + f"@@ {tag} @@", + Color.CYAN + ), + file=out + ) + + + if tag in ("replace", "delete"): + + for op in old.operations[i1:i2]: + + print( + color( + f"- [{op.number:4}] {op.asm}", + Color.RED + ), + file=out + ) + + + if tag in ("replace", "insert"): + + for op in new.operations[j1:j2]: + + print( + color( + f"+ [{op.number:4}] {op.asm}", + Color.GREEN + ), + file=out + ) + + + print(file=out) + + + +def analyze(old, new): + + out = StringIO() + + def p(*args): + print(*args, file=out) + + + classification = classify(old,new) + + + p("=" * 100) + p(old.name) + p("=" * 100) + p() + + + p( + "Stack:" + ) + + stack_match = old.stack_total == new.stack_total + + p(f" old : 0x{old.stack_total:x}") + p(f" new : 0x{new.stack_total:x}") + p( + " ", + color( + "MATCH" if stack_match else "DIFFERENT", + Color.GREEN if stack_match else Color.RED + ) + ) + + p() + + + p("Operations:") + p(f" old : {len(old.operations)}") + p(f" new : {len(new.operations)}") + p(f" diff: {len(new.operations)-len(old.operations):+}") + + + mnemonic = similarity( + [x.mnemonic for x in old.operations], + [x.mnemonic for x in new.operations], + ) + + normalized = similarity( + [x.normalized for x in old.operations], + [x.normalized for x in new.operations], + ) + + + p() + + p("Similarity:") + p(f" Exact Assembly : {compare_exact(old,new)}") + p(f" Mnemonic : {mnemonic:.3%}") + p(f" Register Normalized : {normalized:.3%}") + + + p() + + p( + "Classification:", + color( + classification, + CLASS_COLOR[classification] + ) + ) + + + if classification != "IDENTICAL": + + p() + + print_diff( + old, + new, + out + ) + + + return out.getvalue() + + + +# ============================================================================ +# Pager +# ============================================================================ + +def clear_screen(): + + os.system( + "clear" if os.name != "nt" + else "cls" + ) + + +def read_key(): + + fd = sys.stdin.fileno() + + old = termios.tcgetattr(fd) + + try: + + tty.setraw(fd) + + key = sys.stdin.read(1) + + if key == "\x1b": + key += sys.stdin.read(2) + + return key + + finally: + + termios.tcsetattr( + fd, + termios.TCSADRAIN, + old + ) + + + +# ============================================================================ +# Main +# ============================================================================ + +old_functions = parse_file(OLD_FILE) +new_functions = parse_file(NEW_FILE) + + +functions = [] + +for name in set(old_functions) & set(new_functions): + + old = old_functions[name] + new = new_functions[name] + + functions.append( + ( + old, + new, + analyze(old,new) + ) + ) + + +functions.sort( + key=lambda x: + ( + 1 if is_decompiled(x[0]) else 0, + CLASS_ORDER.get( + classify(x[0],x[1]), + 99 + ), + x[0].name + ) +) + + +show_decompiled = False +index = 0 + + +while True: + + visible = [ + f for f in functions + if show_decompiled or not is_decompiled(f[0]) + ] + + + if not visible: + break + + + index = min(index, len(visible)-1) + + + clear_screen() + + + print( + color( + f"Functions: {len(functions)} | " + f"Review: {len(functions)-sum(is_decompiled(x[0]) for x in functions)} | " + f"Decompiled: {sum(is_decompiled(x[0]) for x in functions)}", + Color.CYAN + ) + ) + + print() + + + for i,(old,new,_) in enumerate(visible): + + cls = classify(old,new) + + marker = "> " if i == index else " " + + print( + marker + + f"{old.name:<40}" + + color( + cls, + CLASS_COLOR[cls] + ) + ) + + + print() + print(visible[index][2]) + + + print( + color( + "[↑↓/jk] move [d] show decompiled [q] quit", + Color.DIM + ) + ) + + + key = read_key() + + + if key.lower() == "q": + break + + elif key in ("\x1b[A","k","K"): + index = max(index-1,0) + + elif key in ("\x1b[B","j","J"): + index = min(index+1,len(visible)-1) + + elif key.lower() == "d": + show_decompiled = not show_decompiled + index = 0 \ No newline at end of file diff --git a/test.sh b/test.sh index dba36989b1..bfd36b5ae4 100755 --- a/test.sh +++ b/test.sh @@ -3,4 +3,4 @@ # Directory of this script DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -"$DIR/build/goalc-test" --gtest_color=yes "$@" --gtest_filter="-*MANUAL_TEST*" # --gtest_filter="*ARM64Emitter*:*NEONEmitter*" -v +"$DIR/build/goalc-test" --gtest_color=yes "$@" --gtest_filter="*Draft*" -v diff --git a/test/decompiler/reference/jakx/engine/anim/joint-mod-h_REF.gc b/test/decompiler/reference/jakx/engine/anim/joint-mod-h_REF.gc index 253c40f62c..818ad7aee6 100644 --- a/test/decompiler/reference/jakx/engine/anim/joint-mod-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/anim/joint-mod-h_REF.gc @@ -881,9 +881,9 @@ Then, apply the normal parented transform." (blend float) ) (:methods - (new (symbol type) _type_) - (joint-mod-ik-method-9 () none) - (joint-mod-ik-method-10 () none) + (new (symbol type process-drawable int float) _type_) + (set-ik-target! (_type_ vector) none) + (enable-set! (_type_ symbol) none) ) ) diff --git a/test/decompiler/reference/jakx/engine/anim/joint-mod_REF.gc b/test/decompiler/reference/jakx/engine/anim/joint-mod_REF.gc new file mode 100644 index 0000000000..7889dd2fe5 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/anim/joint-mod_REF.gc @@ -0,0 +1,1523 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function joint-mod-ik-callback +;; INFO: Used lq/sq +;; WARN: Return type mismatch matrix vs none. +;; WARN: Function joint-mod-ik-callback has a return type of none, but the expression builder found a return statement. +(defbehavior joint-mod-ik-callback process ((arg0 cspace) (arg1 transformq)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (the-as joint-mod-ik (-> arg0 param1)))) + (-> arg0 param2) + (cspace<-parented-transformq-joint! arg0 arg1) + (cond + ((logtest? (-> gp-0 flags) (joint-mod-ik-flags enable)) + (+! (-> gp-0 blend) (* 4.0 (seconds-per-frame))) + (if (< 1.0 (-> gp-0 blend)) + (set! (-> gp-0 blend) 1.0) + ) + ) + (else + (set! (-> gp-0 blend) (- (-> gp-0 blend) (* 4.0 (seconds-per-frame)))) + (if (< (-> gp-0 blend) 0.0) + (set! (-> gp-0 blend) 0.0) + ) + ) + ) + (if (= (-> gp-0 blend) 0.0) + (return #f) + ) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'vector 4)) + (s4-0 (-> arg0 parent bone transform)) + (s3-1 (-> arg0 bone transform)) + ) + (matrix->trans s4-0 (-> s5-0 13)) + (set! (-> s4-0 trans quad) (-> s5-0 13 quad)) + (matrix->trans s3-1 (-> s5-0 13)) + (set! (-> s3-1 trans quad) (-> s5-0 13 quad)) + 0.0 + 0.0 + (set! (-> s5-0 8 quad) (-> s4-0 trans quad)) + (set! (-> s5-0 9 quad) (-> s3-1 trans quad)) + (let ((a1-3 (-> s5-0 10))) + (let ((v1-22 (-> s5-0 9))) + (let ((a0-12 (-> s3-1 uvec))) + (let ((a2-0 (-> gp-0 hand-dist))) + (.mov vf7 a2-0) + ) + (.lvf vf5 (&-> a0-12 quad)) + ) + (.lvf vf4 (&-> v1-22 quad)) + ) + (.add.x.vf.w vf6 vf0 vf0) + (.mul.x.vf.xyz acc vf5 vf7) + (.add.mul.w.vf.xyz vf6 vf4 vf0 acc) + (.svf (&-> a1-3 quad) vf6) + ) + (if (-> gp-0 callback) + ((-> gp-0 callback) gp-0 s4-0 s3-1 (-> s5-0 10)) + ) + (set! (-> s5-0 11 quad) (-> gp-0 handle-pos quad)) + (let ((f30-0 (vector-vector-distance (-> s5-0 8) (-> s5-0 9))) + (f0-12 (vector-vector-distance (-> s5-0 9) (-> s5-0 10))) + ) + (vector-! (-> s5-0 17) (-> s5-0 11) (-> s5-0 8)) + (let ((f1-7 (vector-length (-> s5-0 17))) + (f2-4 (+ -4.096 f0-12 f30-0)) + (f0-15 (+ 4.096 (fabs (- f30-0 f0-12)))) + ) + (cond + ((< f2-4 f1-7) + (vector-normalize! (-> s5-0 17) f2-4) + (let ((v1-33 (-> s5-0 11))) + (let ((a0-20 (-> s5-0 8)) + (a1-10 (-> s5-0 17)) + ) + (.lvf vf4 (&-> a0-20 quad)) + (.lvf vf5 (&-> a1-10 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-33 quad) vf6) + ) + ) + ((< f1-7 f0-15) + (vector-normalize! (-> s5-0 17) f0-15) + (let ((v1-35 (-> s5-0 11))) + (let ((a0-22 (-> s5-0 8)) + (a1-12 (-> s5-0 17)) + ) + (.lvf vf4 (&-> a0-22 quad)) + (.lvf vf5 (&-> a1-12 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-35 quad) vf6) + ) + ) + ) + ) + ) + (vector-! (-> s5-0 14) (-> s5-0 9) (-> s5-0 8)) + (vector-! (-> s5-0 15) (-> s5-0 10) (-> s5-0 9)) + (vector-! (-> s5-0 16) (-> s5-0 10) (-> s5-0 8)) + (vector-! (-> s5-0 17) (-> s5-0 11) (-> s5-0 8)) + (let* ((f28-0 (vector-length (-> s5-0 14))) + (f26-0 (vector-length (-> s5-0 15))) + (f24-0 (vector-length (-> s5-0 17))) + (f30-1 (vector-vector-angle-safe (-> s5-0 14) (-> s5-0 15))) + (f0-17 (fmax -1.0 (fmin 1.0 (/ (- (- (square f24-0) (square f28-0)) (square f26-0)) (* 2.0 f26-0 f28-0))))) + (f28-1 (acos f0-17)) + ) + (cond + ((= f30-1 0.0) + (set! (-> s5-0 20 quad) (-> (&-> s3-1 quad (-> gp-0 elbow-rotation-axis)) 0)) + (when (logtest? (-> gp-0 flags) (joint-mod-ik-flags elbow-rot-neg)) + (vector-negate! (-> s5-0 20) (-> s5-0 20)) + (set! f28-1 (- f28-1)) + ) + (set! (-> s5-0 12 quad) (-> (&-> s3-1 quad (-> gp-0 elbow-pole-vector-axis)) 0)) + (if (logtest? (-> gp-0 flags) (joint-mod-ik-flags elbow-trans-neg)) + (vector-negate! (-> s5-0 12) (-> s5-0 12)) + ) + ) + (else + (vector-cross! (-> s5-0 20) (-> s5-0 14) (-> s5-0 15)) + (vector-! + (-> s5-0 12) + (-> s5-0 14) + (vector-float*! + (new 'stack-no-clear 'vector) + (-> s5-0 16) + (/ (vector-dot (-> s5-0 16) (-> s5-0 14)) (vector-dot (-> s5-0 16) (-> s5-0 16))) + ) + ) + ) + ) + (vector-normalize! (-> s5-0 12) 1.0) + (vector-normalize! (-> s5-0 20) 1.0) + (quaternion-vector-angle! (the-as quaternion (-> s5-0 18)) (-> s5-0 20) (- f28-1 f30-1)) + ) + (vector-orient-by-quat! (-> s5-0 15) (-> s5-0 15) (the-as quaternion (-> s5-0 18))) + (let ((a1-32 (-> s5-0 16))) + (let ((v1-61 (-> s5-0 14)) + (a0-48 (-> s5-0 15)) + ) + (.lvf vf4 (&-> v1-61 quad)) + (.lvf vf5 (&-> a0-48 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-32 quad) vf6) + ) + (quaternion-from-two-vectors! + (the-as quaternion (-> s5-0 19)) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 16) 1.0) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 17) 1.0) + ) + (vector-orient-by-quat! (-> s5-0 14) (-> s5-0 14) (the-as quaternion (-> s5-0 19))) + (vector-normalize-copy! (-> s5-0 21) (-> s5-0 14) 1.0) + (vector-normalize-copy! (-> s5-0 22) (-> s5-0 17) 1.0) + (let ((f0-25 (fabs (vector-dot (-> s5-0 21) (-> s5-0 22))))) + (if (< 0.98 f0-25) + (vector-orient-by-quat! (-> s5-0 14) (-> s5-0 12) (the-as quaternion (-> s5-0 19))) + ) + ) + (vector-flatten! (-> s5-0 23) (-> s5-0 14) (-> s5-0 17)) + (vector-flatten! (-> s5-0 24) (-> s5-0 12) (-> s5-0 17)) + (vector-normalize! (-> s5-0 23) 1.0) + (vector-normalize! (-> s5-0 24) 1.0) + (quaternion-from-two-vectors! (the-as quaternion (-> s5-0 26)) (-> s5-0 23) (-> s5-0 24)) + (quaternion*! + (the-as quaternion (-> s5-0 19)) + (the-as quaternion (-> s5-0 26)) + (the-as quaternion (-> s5-0 19)) + ) + (quaternion-pseudo-slerp! + (the-as quaternion (-> s5-0 18)) + *unity-quaternion* + (the-as quaternion (-> s5-0 18)) + (-> gp-0 blend) + ) + (quaternion-pseudo-slerp! + (the-as quaternion (-> s5-0 19)) + *unity-quaternion* + (the-as quaternion (-> s5-0 19)) + (-> gp-0 blend) + ) + (quaternion->matrix (the-as matrix (-> s5-0 0)) (the-as quaternion (-> s5-0 18))) + (set! (-> s5-0 13 quad) (-> s3-1 trans quad)) + (matrix*! s3-1 s3-1 (the-as matrix (-> s5-0 0))) + (set! (-> s3-1 trans quad) (-> s5-0 13 quad)) + (quaternion->matrix (the-as matrix (-> s5-0 0)) (the-as quaternion (-> s5-0 19))) + (matrix-4x4-inverse! (the-as matrix (-> s5-0 4)) s4-0) + (set! (-> s5-0 13 quad) (-> s4-0 trans quad)) + (matrix*! s3-1 s3-1 (the-as matrix (-> s5-0 4))) + (matrix*! s4-0 s4-0 (the-as matrix (-> s5-0 0))) + (set! (-> s4-0 trans quad) (-> s5-0 13 quad)) + (matrix*! s3-1 s3-1 s4-0) + ) + ) + (none) + ) + ) + +;; definition for method 0 of type joint-mod-ik +(defmethod new joint-mod-ik ((allocation symbol) (type-to-make type) (arg0 process-drawable) (arg1 int) (arg2 float)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 process) arg0) + (set! (-> v0-0 hand-dist) arg2) + (set! (-> v0-0 elbow-pole-vector-axis) 0) + (set! (-> v0-0 elbow-node) arg1) + (logclear! (-> v0-0 flags) (joint-mod-ik-flags elbow-trans-neg)) + (set! (-> v0-0 elbow-rotation-axis) 2) + (logclear! (-> v0-0 flags) (joint-mod-ik-flags elbow-rot-neg)) + (set! (-> v0-0 callback) #f) + (set! (-> v0-0 blend) 0.0) + (logclear! (-> v0-0 flags) (joint-mod-ik-flags enable)) + (let ((a0-5 (-> arg0 node-list data arg1))) + (set! (-> a0-5 param0) joint-mod-ik-callback) + (set! (-> a0-5 param1) v0-0) + (set! (-> a0-5 param2) (the-as basic arg1)) + ) + v0-0 + ) + ) + +;; definition for method 9 of type joint-mod-ik +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod set-ik-target! ((this joint-mod-ik) (pos vector)) + (set! (-> this handle-pos quad) (-> pos quad)) + 0 + (none) + ) + +;; definition for method 10 of type joint-mod-ik +;; WARN: Return type mismatch int vs none. +(defmethod enable-set! ((this joint-mod-ik) (arg0 symbol)) + (if arg0 + (logior! (-> this flags) (joint-mod-ik-flags enable)) + (logclear! (-> this flags) (joint-mod-ik-flags enable)) + ) + 0 + (none) + ) + +;; definition for function real-joint-mod-gun-look-at-handler +;; WARN: Return type mismatch int vs none. +(defbehavior real-joint-mod-gun-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (let ((sv-16 (the-as joint-mod (-> arg0 param1)))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> sv-16 scale)) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s5-0 (-> arg0 bone transform))) + (let ((s4-0 (matrix->quat s5-0 (new 'stack-no-clear 'quaternion))) + (sv-64 (matrix->trans s5-0 (new 'stack-no-clear 'vector))) + ) + (quaternion-rotate-y! s4-0 s4-0 (-> sv-16 twist z)) + (let ((sv-96 (quaternion-copy! (new 'stack-no-clear 'quaternion) s4-0))) + (when (!= (-> sv-16 flex-blend) 0.0) + (let ((sv-160 (vector-y-quaternion! (new 'stack-no-clear 'vector) sv-96)) + (sv-164 (vector-z-quaternion! (new 'stack-no-clear 'vector) sv-96)) + (sv-168 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> sv-16 target) sv-64) 1.0)) + ) + (let* ((sv-172 (the-as symbol #f)) + (f30-0 (vector-y-angle sv-164)) + (a0-14 (vector-flatten! (new 'stack-no-clear 'vector) sv-168 sv-160)) + (f0-2 (vector-y-angle a0-14)) + (f0-3 (deg-diff f30-0 f0-2)) + (f30-1 (* f0-3 (-> sv-16 blend))) + ) + (let ((f28-0 (fmax (fmin f30-1 (-> sv-16 twist-max y)) (- (-> sv-16 twist-max y))))) + (if (or (!= f30-1 f28-0) (= (-> sv-16 blend) 0.0)) + (logclear! (-> sv-16 track-mode) (track-mode lock-on)) + ) + (cond + ((or (< (-> sv-16 ignore-angle) (fabs f0-3)) + (< (-> sv-16 twist-max w) (vector-vector-distance (-> sv-16 target) sv-64)) + ) + (set! f30-1 0.0) + (set! f28-0 0.0) + (set! sv-172 #t) + ) + ((< 5461.3335 (fabs (deg-diff f30-1 f28-0))) + (set! (-> sv-16 blend) 0.0001) + ) + ((< 182.04445 (fabs (deg-diff f30-1 f28-0))) + (logclear! (-> sv-16 track-mode) (track-mode track-x)) + ) + ) + (if (or (and (logtest? (-> sv-16 track-mode) (track-mode track-y)) (= f30-1 f28-0)) + (< (-> sv-16 twist-max y) (fabs (-> sv-16 twist y))) + ) + (set! (-> sv-16 twist y) + (deg-seek (-> sv-16 twist y) f28-0 (* (fabs (deg-diff f28-0 (-> sv-16 twist y))) + (if (logtest? (-> sv-16 track-mode) (track-mode lock-on)) + 1.0 + (-> sv-16 twist-speed-y) + ) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + (if (and (< (fabs (deg-diff f30-1 (-> sv-16 twist y))) 728.1778) (and (not sv-172) (!= (-> sv-16 blend) 0.0))) + (logior! (-> sv-16 track-mode) (track-mode lock-on)) + ) + ) + (quaternion-rotate-local-y! sv-96 sv-96 (-> sv-16 twist y)) + (let* ((s3-1 (vector-x-quaternion! (new 'stack-no-clear 'vector) sv-96)) + (f30-2 (vector-x-angle sv-164)) + (s3-2 (vector-flatten! (new 'stack-no-clear 'vector) sv-168 s3-1)) + (f0-24 (vector-x-angle s3-2)) + (f30-3 (fmax + (fmin (* (- (deg-diff f30-2 f0-24)) (-> sv-16 blend)) (-> sv-16 twist-max x)) + (- (-> sv-16 twist-max x)) + ) + ) + ) + (if (or (< (vector-dot s3-2 sv-164) 0.1) + (< (-> sv-16 twist-max z) (vector-vector-distance (-> sv-16 target) sv-64)) + ) + (set! f30-3 0.0) + ) + (if (or (logtest? (-> sv-16 track-mode) (track-mode track-x)) + (< (-> sv-16 twist-max x) (fabs (-> sv-16 twist x))) + ) + (set! (-> sv-16 twist x) + (deg-seek (-> sv-16 twist x) f30-3 (* (fabs (deg-diff f30-3 (-> sv-16 twist x))) + (if (logtest? (-> sv-16 track-mode) (track-mode lock-on)) + 1.0 + (-> sv-16 twist-speed-x) + ) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + ) + (quaternion-rotate-x! sv-96 sv-96 (-> sv-16 twist x)) + (quaternion-normalize! (quaternion*! sv-96 sv-96 (-> sv-16 quat))) + ) + (let ((a1-27 (quaternion-slerp! (new 'stack-no-clear 'quaternion) s4-0 sv-96 (-> sv-16 flex-blend)))) + (matrix<-quat s5-0 a1-27) + ) + ) + ) + (let ((f30-4 (-> sv-16 trans x)) + (s4-1 (-> s5-0 uvec)) + (v1-97 (vector<-matrix! (new 'stack-no-clear 'vector) s5-0)) + ) + (let ((f0-43 (- f30-4 (-> v1-97 y)))) + (if (< 614.4 (fabs f0-43)) + (+! (-> sv-16 trans z) (* 8.0 f0-43)) + ) + ) + (+! (-> sv-16 trans z) (* -260.0 (seconds-per-frame) (-> sv-16 trans y))) + (let ((f0-48 (-> sv-16 trans y))) + (+! (-> sv-16 trans y) (* (-> sv-16 trans z) (seconds-per-frame))) + (set! (-> sv-16 trans y) (* 0.95 (-> sv-16 trans y))) + (when (< (* f0-48 (-> sv-16 trans y)) 0.0) + (set! (-> sv-16 trans y) 0.0) + (set! (-> sv-16 trans z) 0.0) + ) + ) + (cond + ((< 409.6 (-> sv-16 trans y)) + (set! (-> sv-16 trans y) 409.6) + (set! (-> sv-16 trans z) 0.0) + ) + ((< (-> sv-16 trans y) -409.6) + (set! (-> sv-16 trans y) -409.6) + (set! (-> sv-16 trans z) 0.0) + ) + ) + (set! (-> sv-16 trans x) (-> v1-97 y)) + (let ((f0-60 (* (-> sv-16 trans y) (-> sv-16 flex-blend)))) + (if (!= f0-60 0.0) + (vector+float*! (-> s5-0 trans) v1-97 s4-1 f0-60) + ) + ) + ) + ) + (if (-> sv-16 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + +;; definition for function joint-mod-gun-look-at-handler +(defbehavior joint-mod-gun-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (real-joint-mod-gun-look-at-handler arg0 arg1) + (none) + ) + +;; definition for function joint-mod-foot-rot-handler +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-foot-rot-handler process ((arg0 cspace) (arg1 transformq)) + (let ((s5-0 (the-as joint-mod (-> arg0 param1))) + (gp-0 (-> arg0 bone transform)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s3-0 (-> s5-0 target)) + (s4-0 (-> s5-0 twist-max)) + ) + 1.0 + (when (< 8192.0 (vector-vector-angle-safe s3-0 s4-0)) + (let* ((a1-4 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) s3-0 s4-0) 1.0)) + (a2-1 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) a1-4 8192.0)) + ) + (vector-orient-by-quat! s4-0 s3-0 a2-1) + ) + ) + (let* ((f0-4 + (/ (vector-dot s3-0 (-> s5-0 joint bone transform uvec)) (vector-length (-> s5-0 joint bone transform uvec))) + ) + (f30-1 (lerp-scale 0.0 1.0 f0-4 0.85 1.0)) + ) + (vector-deg-slerp (-> s5-0 twist) (-> s5-0 twist) s4-0 0.3) + (set! (-> s4-0 quad) (-> s5-0 twist quad)) + (seek! (-> s5-0 blend) (-> s5-0 flex-blend) (* 4.0 (seconds-per-frame))) + (let ((s3-1 (matrix->scale gp-0 (new 'stack-no-clear 'vector)))) + (let ((s2-0 (matrix->quat gp-0 (new 'stack-no-clear 'quaternion))) + (s0-0 (matrix->trans gp-0 (new 'stack-no-clear 'vector))) + ) + (set! (-> gp-0 uvec quad) (-> s5-0 twist-max quad)) + (vector-cross! (-> gp-0 fvec) (-> gp-0 rvec) (-> gp-0 uvec)) + (vector-cross! (-> gp-0 rvec) (-> gp-0 uvec) (-> gp-0 fvec)) + (set! (-> gp-0 rvec w) 0.0) + (set! (-> gp-0 uvec w) 0.0) + (set! (-> gp-0 fvec w) 0.0) + (let ((s1-0 (matrix->quat gp-0 (new 'stack-no-clear 'quaternion)))) + (let* ((f0-14 (vector-dot s4-0 (vector-! (new 'stack-no-clear 'vector) s0-0 (-> s5-0 trans)))) + (f0-15 (lerp-scale 1.0 0.0 f0-14 819.2 2048.0)) + ) + (seek! (-> s5-0 old-blend) (* (-> s5-0 blend) f0-15 f30-1) (* 15.0 (seconds-per-frame))) + ) + (quaternion-slerp! s1-0 s2-0 s1-0 (-> s5-0 old-blend)) + (matrix<-quat gp-0 s1-0) + ) + ) + (matrix<-scale gp-0 s3-1) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 0 of type joint-mod +(defmethod new joint-mod ((allocation symbol) (type-to-make type) (arg0 joint-mod-mode) (arg1 process-drawable) (arg2 int)) + (let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> gp-0 process) arg1) + (set! (-> gp-0 joint) (-> arg1 node-list data arg2)) + (mode-set! gp-0 arg0) + (set-vector! (-> gp-0 twist-max) 8192.0 11832.889 0.0 1.0) + (set! (-> gp-0 twist-speed-x) 0.1) + (set! (-> gp-0 twist-speed-y) 0.1) + (set! (-> gp-0 up) (the-as uint 1)) + (set! (-> gp-0 nose) (the-as uint 2)) + (set! (-> gp-0 ear) (the-as uint 0)) + (set! (-> gp-0 base-joint) (the-as uint arg2)) + (set! (-> gp-0 base-nose) (the-as uint 2)) + (set! (-> gp-0 max-dist) 122880.0) + (set! (-> gp-0 ignore-angle) 65536.0) + (set! (-> gp-0 flex-blend) 1.0) + (set! (-> gp-0 shutting-down?) #f) + (set-vector! (-> gp-0 scale) 1.0 1.0 1.0 1.0) + (set! (-> gp-0 parented-scale?) #f) + (quaternion-identity! (-> gp-0 quat)) + gp-0 + ) + ) + +;; definition for method 9 of type joint-mod +;; WARN: Return type mismatch joint-mod vs none. +(defmethod mode-set! ((this joint-mod) (mode joint-mod-mode)) + "Set the type of joint-mod and install the right callback." + (set! (-> this mode) mode) + (let ((v1-0 (-> this joint))) + (case mode + (((joint-mod-mode flex-blend)) + (set! (-> v1-0 param0) #f) + (set! (-> this blend) 0.0) + (set! (-> this flex-blend) 1.0) + ) + (((joint-mod-mode reset)) + (set! (-> v1-0 param0) #f) + (set! (-> this blend) 0.0) + (set! (-> this shutting-down?) #f) + ) + (((joint-mod-mode look-at)) + (let ((a0-4 v1-0)) + (set! (-> a0-4 param0) joint-mod-look-at-handler) + (set! (-> a0-4 param1) this) + ) + ) + (((joint-mod-mode joint-set*-world)) + (let ((a0-5 v1-0)) + (set! (-> a0-5 param0) joint-mod-gun-look-at-handler) + (set! (-> a0-5 param1) this) + ) + ) + (((joint-mod-mode gun-look-at)) + (set-vector! (-> this twist) 0.0 1.0 0.0 1.0) + (let ((a0-7 v1-0)) + (set! (-> a0-7 param0) + (lambda ((arg0 cspace) (arg1 transformq)) (joint-mod-foot-rot-handler arg0 arg1) (none)) + ) + (set! (-> a0-7 param1) this) + ) + ) + (((joint-mod-mode world-look-at)) + (let ((a0-8 v1-0)) + (set! (-> a0-8 param0) joint-mod-world-look-at-handler) + (set! (-> a0-8 param1) this) + ) + ) + (((joint-mod-mode rotate)) + (let ((a0-9 v1-0)) + (set! (-> a0-9 param0) joint-mod-rotate-handler) + (set! (-> a0-9 param1) this) + ) + (set! (-> this blend) 1.0) + ) + (((joint-mod-mode rotate2)) + (let ((a0-11 v1-0)) + (set! (-> a0-11 param0) joint-mod-rotate-handler) + (set! (-> a0-11 param1) this) + ) + (set! (-> this blend) 1.0) + ) + (((joint-mod-mode joint-set)) + (let ((a0-13 v1-0)) + (set! (-> a0-13 param0) joint-mod-joint-set-handler) + (set! (-> a0-13 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + ) + (((joint-mod-mode foot-rot)) + (let ((a0-16 v1-0)) + (set! (-> a0-16 param0) joint-mod-joint-set-world-handler) + (set! (-> a0-16 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + (set! (-> this flex-blend) 1.0) + ) + (((joint-mod-mode joint-set*)) + (let ((a0-23 v1-0)) + (set! (-> a0-23 param0) joint-mod-joint-set*-handler) + (set! (-> a0-23 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + ) + (((joint-mod-mode polar-look-at)) + (let ((a0-27 v1-0)) + (set! (-> a0-27 param0) joint-mod-joint-set*-world-handler) + (set! (-> a0-27 param1) this) + ) + (vector-reset! (-> this trans)) + (quaternion-identity! (-> this quat)) + (set-vector! (-> this scale) 1.0 1.0 1.0 1.0) + ) + ) + ) + (none) + ) + +;; definition for method 15 of type joint-mod +;; WARN: Return type mismatch joint-mod vs none. +(defmethod shut-down ((this joint-mod)) + "Disable the joint mod, possibly blending out depending on the type" + (set! (-> this shutting-down?) #t) + (set! (-> this blend) 0.0) + (none) + ) + +;; definition for method 13 of type joint-mod +(defmethod twist-set! ((this joint-mod) (x float) (y float) (z float)) + "Set twist x,y,z. A value of #f will skip the set." + (if x + (set! (-> this twist x) x) + ) + (if y + (set! (-> this twist y) y) + ) + (if z + (set! (-> this twist z) z) + ) + (-> this twist) + ) + +;; definition for method 14 of type joint-mod +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod trs-set! ((this joint-mod) (trans vector) (quat quaternion) (scale vector)) + "Set translation, quaternion, scale. A value of #f will skip the set." + (if trans + (set! (-> this trans quad) (-> trans quad)) + ) + (if quat + (quaternion-copy! (-> this quat) quat) + ) + (if scale + (set! (-> this scale quad) (-> scale quad)) + ) + 0 + (none) + ) + +;; definition for method 10 of type joint-mod +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod target-set! ((this joint-mod) (arg0 vector)) + "Set the target position for look-at mode." + (if (= (-> this mode) (joint-mod-mode reset)) + (mode-set! this (joint-mod-mode look-at)) + ) + (let ((f0-0 (vector-vector-distance (-> this process root trans) arg0))) + (set! (-> this shutting-down?) #f) + (set! (-> this target quad) (-> arg0 quad)) + (if (< f0-0 (-> this max-dist)) + (set! (-> this blend) 1.0) + (set! (-> this blend) 0.0) + ) + ) + 0 + (none) + ) + +;; definition for symbol last-try-to-look-at-data, type try-to-look-at-info +(define last-try-to-look-at-data (new 'global 'try-to-look-at-info)) + +;; definition for method 11 of type joint-mod +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod look-at! ((this joint-mod) (arg0 vector) (arg1 symbol) (arg2 process)) + "Activate joint mod to look at the process." + (when (= arg1 'attacking) + (let ((s1-0 (as-type arg2 process-drawable))) + (when s1-0 + (let ((s2-1 (as-type (-> s1-0 fact) fact-info-enemy))) + (when s2-1 + (when (< (vector-vector-distance (-> this process root trans) (-> s1-0 root trans)) (-> s2-1 cam-notice-dist)) + (set-time! (-> this notice-time)) + (set! (-> last-try-to-look-at-data who) (process->handle arg2)) + (if (< (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) + (set! (-> last-try-to-look-at-data vert) (-> s2-1 cam-vert)) + ) + (if (< (-> last-try-to-look-at-data horz) (-> s2-1 cam-horz)) + (set! (-> last-try-to-look-at-data horz) (-> s2-1 cam-horz)) + ) + ) + ) + ) + ) + ) + ) + (let ((f30-0 (vector-vector-distance (-> this process root trans) arg0))) + (if (logtest? (process-mask enemy) (-> arg2 mask)) + (+! (-> this look-at-count) (the int (lerp-scale 256.0 0.0 f30-0 20480.0 204800.0))) + ) + (when (and (or (= (-> this blend) 0.0) + (or (< f30-0 (vector-vector-distance (-> this process root trans) (-> this target))) (= arg1 'force)) + ) + (< f30-0 (-> this max-dist)) + ) + (if (= (-> this mode) (joint-mod-mode reset)) + (mode-set! this (joint-mod-mode look-at)) + ) + (set! (-> this target quad) (-> arg0 quad)) + (set! (-> this blend) 1.0) + (set! (-> this shutting-down?) #f) + ) + ) + 0 + (none) + ) + +;; definition for function joint-mod-look-at-handler +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (the-as joint-mod (-> arg0 param1)))) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s3-0 (-> arg0 bone transform)) + (sv-144 (new 'stack-no-clear 'matrix)) + (sv-148 (new 'stack-no-clear 'quaternion)) + (sv-152 (new 'stack-no-clear 'vector)) + (sv-156 (new 'stack-no-clear 'vector)) + ) + (let ((sv-160 (&-> gp-0 process node-list data (-> gp-0 base-joint) bone transform quad (-> gp-0 base-nose))) + (sv-164 + (< (vector-dot (-> s3-0 rvec) (vector-cross! (new 'stack-no-clear 'vector) (-> s3-0 uvec) (-> s3-0 fvec))) + 0.0 + ) + ) + ) + (vector-normalize-copy! (-> sv-144 rvec) (the-as vector (&-> s3-0 quad (-> gp-0 ear))) (if sv-164 + -1.0 + 1.0 + ) + ) + (vector-normalize-copy! (-> sv-144 uvec) (the-as vector (&-> s3-0 quad (-> gp-0 up))) 1.0) + (vector-normalize-copy! (-> sv-144 fvec) (the-as vector (&-> s3-0 quad (-> gp-0 nose))) 1.0) + (vector-reset! (-> sv-144 trans)) + (matrix->quaternion sv-148 sv-144) + (vector-normalize! (vector-! sv-152 (-> gp-0 target) (-> arg0 bone transform trans)) 1.0) + (vector-inv-orient-by-quat! sv-156 sv-152 sv-148) + (let ((f30-0 (vector-y-angle sv-156)) + (f0-2 (if (= (-> gp-0 base-joint) (+ (-> arg0 joint number) 1)) + 0.0 + (deg-diff (vector-y-angle (-> sv-144 fvec)) (vector-y-angle (the-as vector sv-160))) + ) + ) + ) + (if (< (-> gp-0 ignore-angle) (fabs f30-0)) + (set! f30-0 0.0) + ) + (let ((f30-1 + (fmax + (fmin (* f30-0 (-> gp-0 blend) (-> gp-0 flex-blend)) (+ (-> gp-0 twist-max y) (* f0-2 (-> gp-0 flex-blend)))) + (+ (- (-> gp-0 twist-max y)) (* f0-2 (-> gp-0 flex-blend))) + ) + ) + ) + (when (and (-> gp-0 shutting-down?) (< (fabs (- (-> gp-0 twist y) f30-1)) 18.204445)) + (if (and (= (-> gp-0 scale x) 1.0) (= (-> gp-0 scale y) 1.0) (= (-> gp-0 scale z) 1.0)) + (mode-set! gp-0 (joint-mod-mode reset)) + (mode-set! gp-0 (joint-mod-mode rotate2)) + ) + ) + (set! (-> gp-0 twist y) + (deg-seek + (-> gp-0 twist y) + f30-1 + (* (fabs (deg-diff f30-1 (-> gp-0 twist y))) (-> gp-0 twist-speed-y) (-> self clock time-adjust-ratio)) + ) + ) + ) + ) + (let ((f0-21 (if sv-164 + (- (-> gp-0 twist y)) + (-> gp-0 twist y) + ) + ) + (a1-18 (new-stack-vector0)) + ) + (set! (-> a1-18 data (-> gp-0 up)) 1.0) + (let ((a2-7 (quaternion-vector-angle! (new-stack-quaternion0) a1-18 f0-21))) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) a2-7) + ) + ) + ) + ) + (let ((f0-27 + (fmax + (fmin (* (- (vector-x-angle sv-156)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x)) + (- (-> gp-0 twist-max x)) + ) + ) + ) + (if (< (vector-dot sv-156 *z-vector*) 0.1) + (set! f0-27 0.0) + ) + (set! (-> gp-0 twist x) + (deg-seek + (-> gp-0 twist x) + f0-27 + (* (fabs (deg-diff f0-27 (-> gp-0 twist x))) (-> gp-0 twist-speed-x) (-> self clock time-adjust-ratio)) + ) + ) + ) + ) + (let ((a1-22 (new-stack-vector0))) + (set! (-> a1-22 data (-> gp-0 ear)) 1.0) + (let ((a2-10 (quaternion-vector-angle! (new-stack-quaternion0) a1-22 (-> gp-0 twist x)))) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) a2-10) + ) + ) + ) + (let ((a1-24 (-> arg1 trans))) + (let ((v1-70 (-> arg1 trans)) + (a0-33 (-> gp-0 trans)) + ) + (.lvf vf4 (&-> v1-70 quad)) + (.lvf vf5 (&-> a0-33 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-24 quad) vf6) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) (-> gp-0 quat)) + ) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> gp-0 scale)) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> gp-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + (if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0)) + (add-debug-text-sphere + *display-target-marks* + (bucket-id bucket785) + (-> gp-0 target) + (meters 0.2) + "look" + (new 'static 'rgba :r #xff :g #xff :a #x80) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function joint-mod-world-look-at-handler +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-world-look-at-handler process ((arg0 cspace) (arg1 transformq)) + (let ((gp-0 (the-as joint-mod (-> arg0 param1)))) + (let ((s5-0 (-> arg0 bone transform))) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((sv-48 (vector-normalize-copy! + (new 'stack-no-clear 'vector) + (-> gp-0 process node-list data 0 bone transform uvec) + 1.0 + ) + ) + (sv-52 (vector-normalize! (the-as vector (&-> s5-0 quad (-> gp-0 nose))) 1.0)) + (sv-56 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> gp-0 target) (-> s5-0 trans)) 1.0)) + ) + (let* ((f30-0 (vector-y-angle sv-52)) + (a0-7 (vector-flatten! (new-stack-vector0) sv-56 sv-48)) + (f0-0 (vector-y-angle a0-7)) + (f0-1 (deg-diff f30-0 f0-0)) + ) + (if (< (-> gp-0 ignore-angle) (fabs f0-1)) + (set! f0-1 0.0) + ) + (let ((f0-5 + (fmax (fmin (* f0-1 (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max y)) (- (-> gp-0 twist-max y))) + ) + ) + (set! (-> gp-0 twist y) (deg-seek + (-> gp-0 twist y) + f0-5 + (* (fmax 1.0 (* (fabs (deg-diff f0-5 (-> gp-0 twist y))) (-> gp-0 twist-speed-y))) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + (when (!= (-> gp-0 twist y) 0.0) + (let ((a2-3 (matrix-rotate-y! (new 'stack-no-clear 'matrix) (-> gp-0 twist y))) + (s4-2 (-> s5-0 trans quad)) + ) + (matrix*! s5-0 s5-0 a2-3) + (set! (-> s5-0 trans quad) s4-2) + ) + ) + (let* ((s4-3 (vector-normalize-copy! + (new 'stack-no-clear 'vector) + (-> gp-0 process node-list data 0 bone transform rvec) + 1.0 + ) + ) + (f30-2 (vector-x-angle sv-52)) + (s4-4 (vector-flatten! (new-stack-vector0) sv-56 s4-3)) + (f0-15 (vector-x-angle s4-4)) + (f0-21 (fmax + (fmin (* (- (deg-diff f30-2 f0-15)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x)) + (- (-> gp-0 twist-max x)) + ) + ) + ) + (if (< (vector-dot s4-4 sv-52) 0.1) + (set! f0-21 0.0) + ) + (set! (-> gp-0 twist x) (deg-seek + (-> gp-0 twist x) + f0-21 + (* (fmax 1.0 (* (fabs (deg-diff f0-21 (-> gp-0 twist x))) (-> gp-0 twist-speed-x))) + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + (when (!= (-> gp-0 twist x) 0.0) + (let* ((v1-25 (-> gp-0 ear)) + (a1-17 ((cond + ((zero? v1-25) + matrix-rotate-x! + ) + ((= v1-25 1) + matrix-rotate-y! + ) + (else + matrix-rotate-z! + ) + ) + (new 'stack-no-clear 'matrix) + (-> gp-0 twist x) + ) + ) + ) + (matrix*! s5-0 a1-17 s5-0) + ) + ) + ) + (if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0)) + (add-debug-text-sphere + *display-target-marks* + (bucket-id bucket785) + (-> gp-0 target) + (meters 0.2) + "look" + (new 'static 'rgba :r #xff :g #xff :a #x80) + ) + ) + ) + 0 + (none) + ) + +;; definition for function joint-mod-rotate-handler +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-rotate-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (the-as joint-mod (-> arg0 param1)))) + (let ((s3-0 (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + ) + ) + ) + (when (not (logtest? (-> s5-0 track-mode) (track-mode no-trans))) + (let ((a1-1 (-> arg1 trans))) + (let ((v1-3 (-> arg1 trans)) + (a0-1 (-> s5-0 trans)) + ) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + ) + (when (not (logtest? (-> s5-0 track-mode) (track-mode no-rotate))) + (let* ((v1-9 (-> s3-0 (-> s5-0 ear))) + (a1-3 + (quaternion-axis-angle! + (new 'stack-no-clear 'quaternion) + (-> v1-9 x) + (-> v1-9 y) + (-> v1-9 z) + (* (-> s5-0 twist x) (-> s5-0 blend) (-> s5-0 flex-blend)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) a1-3 (the-as quaternion (-> arg1 rot))) + ) + ) + (let* ((v1-13 (-> s3-0 (-> s5-0 up))) + (a1-5 + (quaternion-axis-angle! + (new 'stack-no-clear 'quaternion) + (-> v1-13 x) + (-> v1-13 y) + (-> v1-13 z) + (* (-> s5-0 twist y) (-> s5-0 blend) (-> s5-0 flex-blend)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) a1-5 (the-as quaternion (-> arg1 rot))) + ) + ) + (let* ((v1-17 (-> s3-0 (-> s5-0 nose))) + (a1-7 + (quaternion-axis-angle! + (new 'stack-no-clear 'quaternion) + (-> v1-17 x) + (-> v1-17 y) + (-> v1-17 z) + (* (-> s5-0 twist z) (-> s5-0 blend) (-> s5-0 flex-blend)) + ) + ) + ) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) a1-7 (the-as quaternion (-> arg1 rot))) + ) + ) + ) + ) + (if (not (logtest? (-> s5-0 track-mode) (track-mode no-scale))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> s5-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + ) + +;; definition for function joint-mod-scale-handler +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-scale-handler process ((arg0 cspace) (arg1 transformq)) + (let ((s5-0 (the-as joint-mod (-> arg0 param1)))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> s5-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + +;; definition for function joint-mod-joint-set-handler +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-joint-set-handler process ((arg0 cspace) (arg1 transformq)) + (let ((s4-0 (the-as joint-mod (-> arg0 param1)))) + (if (not (logtest? (-> s4-0 track-mode) (track-mode no-trans))) + (set! (-> arg1 trans quad) (-> s4-0 trans quad)) + ) + (if (not (logtest? (-> s4-0 track-mode) (track-mode no-rotate))) + (quaternion-copy! (the-as quaternion (-> arg1 rot)) (-> s4-0 quat)) + ) + (if (not (logtest? (-> s4-0 track-mode) (track-mode no-scale))) + (set! (-> arg1 scale quad) (-> s4-0 scale quad)) + ) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) + ) + +;; definition for function joint-mod-joint-set-world-handler +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +;; WARN: Function joint-mod-joint-set-world-handler has a return type of none, but the expression builder found a return statement. +(defbehavior joint-mod-joint-set-world-handler process ((arg0 cspace) (arg1 transformq)) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s5-0 (the-as joint-mod (-> arg0 param1))) + (s4-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) + ) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (if (>= 0.0 (-> s5-0 flex-blend)) + (return #f) + ) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-scale)) + (set! (-> s3-0 quad) (-> arg1 scale quad)) + ) + ((>= (-> s5-0 flex-blend) 1.0) + (set! (-> s3-0 quad) (-> s5-0 scale quad)) + ) + (else + (vector-lerp! s3-0 (-> arg1 scale) (-> s5-0 scale) (-> s5-0 flex-blend)) + ) + ) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-rotate)) + ) + ((>= (-> s5-0 flex-blend) 1.0) + (quaternion->matrix (-> arg0 bone transform) (-> s5-0 quat)) + ) + (else + (let ((v1-15 (new 'stack-no-clear 'vector))) + (set! (-> v1-15 quad) (-> arg1 scale quad)) + (set! (-> v1-15 x) (/ 1.0 (-> v1-15 x))) + (set! (-> v1-15 y) (/ 1.0 (-> v1-15 y))) + (set! (-> v1-15 z) (/ 1.0 (-> v1-15 z))) + (vector-float*! (-> arg0 bone transform rvec) (-> arg0 bone transform rvec) (-> v1-15 x)) + (vector-float*! (-> arg0 bone transform uvec) (-> arg0 bone transform uvec) (-> v1-15 y)) + (vector-float*! (-> arg0 bone transform fvec) (-> arg0 bone transform fvec) (-> v1-15 z)) + ) + (let ((a1-12 (matrix->quaternion (new 'stack-no-clear 'quaternion) (-> arg0 bone transform)))) + (quaternion->matrix + (-> arg0 bone transform) + (quaternion-slerp! (new 'stack-no-clear 'quaternion) a1-12 (-> s5-0 quat) (-> s5-0 flex-blend)) + ) + ) + ) + ) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-rotate)) + (vector-normalize! (-> arg0 bone transform rvec) (-> s3-0 x)) + (vector-normalize! (-> arg0 bone transform uvec) (-> s3-0 y)) + (vector-normalize! (-> arg0 bone transform fvec) (-> s3-0 z)) + ) + (else + (vector-float*! (-> arg0 bone transform rvec) (-> arg0 bone transform rvec) (-> s3-0 x)) + (vector-float*! (-> arg0 bone transform uvec) (-> arg0 bone transform uvec) (-> s3-0 y)) + (vector-float*! (-> arg0 bone transform fvec) (-> arg0 bone transform fvec) (-> s3-0 z)) + ) + ) + ) + (set! (-> arg0 bone transform rvec w) 0.0) + (set! (-> arg0 bone transform uvec w) 0.0) + (set! (-> arg0 bone transform fvec w) 0.0) + (cond + ((logtest? (-> s5-0 track-mode) (track-mode no-trans)) + (set! (-> arg0 bone transform trans quad) (-> s4-0 quad)) + ) + ((>= (-> s5-0 flex-blend) 1.0) + (set! (-> arg0 bone transform trans quad) (-> s5-0 trans quad)) + (set! (-> arg0 bone transform trans w) 1.0) + ) + (else + (vector-lerp! (-> arg0 bone transform trans) s4-0 (-> s5-0 trans) (-> s5-0 flex-blend)) + (set! (-> arg0 bone transform trans w) 1.0) + ) + ) + ) + 0 + (none) + ) + +;; definition for function joint-mod-joint-set*-handler +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-joint-set*-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (the-as joint-mod (-> arg0 param1)))) + (when (not (logtest? (-> s5-0 track-mode) (track-mode no-trans))) + (let ((a1-1 (-> arg1 trans))) + (let ((v1-3 (-> arg1 trans)) + (a0-1 (-> s5-0 trans)) + ) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + ) + (if (not (logtest? (-> s5-0 track-mode) (track-mode no-rotate))) + (quaternion-normalize! + (quaternion*! (the-as quaternion (-> arg1 rot)) (the-as quaternion (-> arg1 rot)) (-> s5-0 quat)) + ) + ) + (if (not (logtest? (-> s5-0 track-mode) (track-mode no-scale))) + (vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (if (-> s5-0 parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + ) + +;; definition for function joint-mod-joint-set*-world-handler +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-joint-set*-world-handler process ((arg0 cspace) (arg1 transformq)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s5-0 (-> arg0 param1))) + (let ((s3-0 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> (the-as joint-mod s5-0) quat))) + (s4-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) + ) + (vector-reset! (-> arg0 bone transform trans)) + (set! (-> arg0 bone transform trans w) 1.0) + (vector-float*! (-> s3-0 rvec) (-> s3-0 rvec) (-> (the-as joint-mod s5-0) scale x)) + (vector-float*! (-> s3-0 uvec) (-> s3-0 uvec) (-> (the-as joint-mod s5-0) scale y)) + (vector-float*! (-> s3-0 fvec) (-> s3-0 fvec) (-> (the-as joint-mod s5-0) scale z)) + (set! (-> s3-0 rvec w) 0.0) + (set! (-> s3-0 uvec w) 0.0) + (set! (-> s3-0 fvec w) 0.0) + (matrix*! (-> arg0 bone transform) (-> arg0 bone transform) s3-0) + (let ((a0-8 (-> arg0 bone transform trans))) + (let ((v1-14 (-> (the-as joint-mod s5-0) trans))) + (.lvf vf4 (&-> s4-0 quad)) + (.lvf vf5 (&-> v1-14 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-8 quad) vf6) + ) + ) + (if (-> (the-as joint-mod s5-0) parented-scale?) + (set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0) + ) + ) + 0 + (none) + ) + ) + +;; definition for method 9 of type joint-mod-polar-look-at +;; WARN: Return type mismatch float vs none. +(defmethod initialize ((this joint-mod-polar-look-at) (arg0 process-drawable) (arg1 int)) + "Attach joint-mod to process and set defaults." + (let ((a1-2 (-> arg0 node-list data arg1))) + (set! (-> a1-2 param0) joint-mod-polar-look-at-callback) + (set! (-> a1-2 param1) this) + ) + (set! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + (set! (-> this up) 1) + (set! (-> this nose) 2) + (set! (-> this ear) 0) + (set! (-> this polar-internal-tilt-max) 32768.0) + (set! (-> this polar-internal-radius) 32768.0) + (set! (-> this polar-external-tilt-max) 32768.0) + (set! (-> this polar-external-radius) 32768.0) + (set! (-> this upward-tilt) 16384.0) + (set! (-> this downward-tilt) 16384.0) + (set! (-> this forward-twist) 16384.0) + (set! (-> this backward-twist) 16384.0) + (set! (-> this blend-duration) 0) + (set! (-> this blend-start-value) 0.0) + (set! (-> this blend-max) 1.0) + (none) + ) + +;; definition for method 11 of type joint-mod-polar-look-at +;; WARN: Return type mismatch float vs none. +(defmethod set-both-targets! ((this joint-mod-polar-look-at) (other joint-mod-polar-look-at) (pos vector)) + "Update the target position of this mod, and a second one." + (when (nonzero? this) + (set-target! this pos) + (when (nonzero? other) + (set! (-> this polar-external-tilt-max) (-> other polar-internal-tilt-max)) + (set! (-> this polar-external-radius) (-> other polar-internal-radius)) + ) + ) + (when (nonzero? other) + (set-target! other pos) + (when (nonzero? this) + (set! (-> other polar-external-tilt-max) (-> this polar-internal-tilt-max)) + (set! (-> other polar-external-radius) (-> this polar-internal-radius)) + ) + ) + (none) + ) + +;; definition for method 10 of type joint-mod-polar-look-at +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod set-target! ((this joint-mod-polar-look-at) (pos vector)) + "Update the target position." + (set! (-> this target quad) (-> pos quad)) + 0 + (none) + ) + +;; definition for method 12 of type joint-mod-polar-look-at +;; WARN: Return type mismatch int vs none. +(defmethod blend-on! ((this joint-mod-polar-look-at) (duration time-frame) (final-val float) (restart-if-in-progress symbol)) + "Start blending this joint mod on." + (cond + ((and (not restart-if-in-progress) (not (logtest? (-> this flags) (joint-mod-polar-flags blending-to-zero)))) + ) + ((zero? duration) + (set! (-> this blend-start-value) final-val) + (set! (-> this blend-max) final-val) + (set! (-> this blend-duration) duration) + (logclear! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + (else + (set-time! (-> this blend-start-time)) + (set! (-> this blend-start-value) (get-start-blend! this)) + (set! (-> this blend-max) final-val) + (set! (-> this blend-duration) duration) + (logclear! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + ) + 0 + (none) + ) + +;; definition for method 13 of type joint-mod-polar-look-at +;; WARN: Return type mismatch int vs none. +(defmethod blend-to-off! ((this joint-mod-polar-look-at) (duration time-frame) (restart-if-in-progress symbol)) + "Start blending to disable this joint mod." + (cond + ((and (not restart-if-in-progress) (logtest? (-> this flags) (joint-mod-polar-flags blending-to-zero))) + ) + ((zero? duration) + (set! (-> this blend-start-value) 0.0) + (set! (-> this blend-duration) duration) + (logior! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + (else + (set-time! (-> this blend-start-time)) + (set! (-> this blend-start-value) (get-start-blend! this)) + (set! (-> this blend-duration) duration) + (logior! (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + ) + 0 + (none) + ) + +;; definition for method 14 of type joint-mod-polar-look-at +(defmethod get-start-blend! ((this joint-mod-polar-look-at)) + "Determine what blend to use when starting a new one." + (local-vars (f0-2 float)) + (cond + ((zero? (-> this blend-duration)) + (-> this blend-start-value) + ) + ((begin + (set! f0-2 (the float (- (current-time) (-> this blend-start-time)))) + (logtest? (-> this flags) (joint-mod-polar-flags blending-to-zero)) + ) + (let ((f0-5 (lerp-scale (-> this blend-start-value) 0.0 f0-2 0.0 (the float (-> this blend-duration))))) + (when (= f0-5 0.0) + (set! (-> this blend-start-value) f0-5) + (set! (-> this blend-duration) 0) + 0 + ) + f0-5 + ) + ) + (else + (let ((f0-8 + (lerp-scale (-> this blend-start-value) (-> this blend-max) f0-2 0.0 (the float (-> this blend-duration))) + ) + ) + (when (>= f0-8 (-> this blend-max)) + (set! (-> this blend-start-value) f0-8) + (set! (-> this blend-duration) 0) + 0 + ) + f0-8 + ) + ) + ) + ) + +;; definition for function joint-mod-polar-look-at-callback +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defbehavior joint-mod-polar-look-at-callback process ((arg0 cspace) (arg1 transformq)) + (let* ((s5-0 (the-as joint-mod-polar-look-at (-> arg0 param1))) + (f30-0 (get-start-blend! s5-0)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + (when (< 0.0 f30-0) + (let* ((t9-2 vector-normalize-copy!) + (a0-3 (new 'stack-no-clear 'vector)) + (v1-3 (abs (-> s5-0 nose))) + (s3-0 (t9-2 a0-3 (the-as vector (&-> arg0 bone transform quad v1-3)) 1.0)) + (s1-0 (vector-normalize! + (vector-! (new 'stack-no-clear 'vector) (-> s5-0 target) (-> arg0 bone transform trans)) + 1.0 + ) + ) + (s4-1 (new 'stack-no-clear 'matrix)) + ) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (if (logtest? (-> s5-0 flags) (joint-mod-polar-flags negate-nose)) + (vector-negate! s3-0 s3-0) + ) + (let ((t9-5 vector-normalize-copy!) + (a0-7 (-> s4-1 rvec)) + (v1-11 (abs (-> s5-0 ear))) + ) + (t9-5 a0-7 (the-as vector (&-> arg0 bone transform quad v1-11)) 1.0) + ) + (if (logtest? (-> s5-0 flags) (joint-mod-polar-flags negate-ear)) + (vector-negate! (-> s4-1 rvec) (-> s4-1 rvec)) + ) + (let ((t9-7 vector-normalize-copy!) + (a0-9 (-> s4-1 uvec)) + (v1-18 (abs (-> s5-0 up))) + ) + (t9-7 a0-9 (the-as vector (&-> arg0 bone transform quad v1-18)) 1.0) + ) + (if (logtest? (-> s5-0 flags) (joint-mod-polar-flags negate-up)) + (vector-negate! (-> s4-1 uvec) (-> s4-1 uvec)) + ) + (set! (-> s4-1 fvec quad) (-> s3-0 quad)) + (set-vector! (-> s4-1 trans) 0.0 0.0 0.0 1.0) + (matrix-transpose! s4-1 s4-1) + (set-vector! (-> s4-1 trans) 0.0 0.0 0.0 1.0) + (vector-matrix*! s2-0 s1-0 s4-1) + (let ((f26-0 (asin (sqrtf (+ (square (-> s2-0 x)) (square (-> s2-0 y)))))) + (f28-0 (atan (-> s2-0 y) (-> s2-0 x))) + ) + (if (< (-> s2-0 z) 0.0) + (set! f26-0 (- 32768.0 f26-0)) + ) + (set! (-> s5-0 polar-internal-radius) f26-0) + (cond + ((< 16384.0 f28-0) + (set! (-> s5-0 polar-internal-tilt-max) (- 32768.0 f28-0)) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< 0.0 (-> s5-0 polar-external-tilt-max))) + (set! f28-0 (fmax f28-0 (- 32768.0 (-> s5-0 polar-external-tilt-max)))) + ) + ) + ((< f28-0 -16384.0) + (set! (-> s5-0 polar-internal-tilt-max) (- -32768.0 f28-0)) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< (-> s5-0 polar-external-tilt-max) 0.0)) + (set! f28-0 (fmin f28-0 (- -32768.0 (-> s5-0 polar-external-tilt-max)))) + ) + ) + ((< 0.0 f28-0) + (set! (-> s5-0 polar-internal-tilt-max) f28-0) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< 0.0 (-> s5-0 polar-external-tilt-max))) + (set! f28-0 (fmin f28-0 (-> s5-0 polar-external-tilt-max))) + ) + ) + (else + (set! (-> s5-0 polar-internal-tilt-max) f28-0) + (if (and (< (-> s5-0 polar-external-radius) f26-0) (< (-> s5-0 polar-external-tilt-max) 0.0)) + (set! f28-0 (fmax f28-0 (-> s5-0 polar-external-tilt-max))) + ) + ) + ) + (let ((f24-0 (square (sin f28-0))) + (f0-43 (square (cos f28-0))) + ) + 32768.0 + (let ((f0-45 (cond + ((< 16384.0 f28-0) + (+ (* f24-0 (-> s5-0 upward-tilt)) (* f0-43 (-> s5-0 backward-twist))) + ) + ((< f28-0 -16384.0) + (+ (* f24-0 (-> s5-0 downward-tilt)) (* f0-43 (-> s5-0 backward-twist))) + ) + ((< 0.0 f28-0) + (+ (* f24-0 (-> s5-0 upward-tilt)) (* f0-43 (-> s5-0 forward-twist))) + ) + (else + (+ (* f24-0 (-> s5-0 downward-tilt)) (* f0-43 (-> s5-0 forward-twist))) + ) + ) + ) + ) + (if (< f0-45 f26-0) + (set! f26-0 f0-45) + ) + ) + ) + (let ((f26-1 (cos f26-0))) + (set-vector! s2-0 (cos f28-0) (sin f28-0) 0.0 1.0) + (vector-normalize! s2-0 (sqrtf (- 1.0 (square f26-1)))) + (set! (-> s2-0 z) f26-1) + ) + ) + (matrix-transpose! s4-1 s4-1) + (vector-matrix*! s2-0 s2-0 s4-1) + (if (< f30-0 1.0) + (matrix-from-two-vectors-partial-linear! s4-1 s3-0 s2-0 f30-0) + (matrix-from-two-vectors! s4-1 s3-0 s2-0) + ) + ) + (let ((s3-1 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) + (set-vector! (-> arg0 bone transform trans) 0.0 0.0 0.0 1.0) + (matrix*! (-> arg0 bone transform) (-> arg0 bone transform) s4-1) + (when (logtest? (-> s5-0 flags) (joint-mod-polar-flags no-z-rot)) + (let ((a1-25 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 bone transform uvec) -1.0))) + (matrix-remove-z-rot (-> arg0 bone transform) a1-25) + ) + ) + (set! (-> arg0 bone transform trans quad) (-> s3-1 quad)) + ) + ) + ) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/collide/collide-cache-h_REF.gc b/test/decompiler/reference/jakx/engine/collide/collide-cache-h_REF.gc index 5405d3ceac..dc286a2514 100644 --- a/test/decompiler/reference/jakx/engine/collide/collide-cache-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/collide/collide-cache-h_REF.gc @@ -155,7 +155,7 @@ It is not useful for ollision queries against a specific foreground object, like (:methods (new (symbol type int int) _type_) (collide-cache-method-9 () none) - (collide-cache-method-10 () none) + (fill-and-probe-using-line-sphere (_type_ collide-query) float) (collide-cache-method-11 () none) (collide-cache-method-12 () none) (collide-cache-method-13 () none) diff --git a/test/decompiler/reference/jakx/engine/collide/collide-frag_REF.gc b/test/decompiler/reference/jakx/engine/collide/collide-frag_REF.gc new file mode 100644 index 0000000000..ad413754d5 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/collide/collide-frag_REF.gc @@ -0,0 +1,111 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 9 of type drawable-tree-collide-fragment +(defmethod login ((this drawable-tree-collide-fragment)) + "Initialize the object after it is loaded." + this + ) + +;; definition for method 10 of type drawable-tree-collide-fragment +;; WARN: Return type mismatch int vs none. +(defmethod draw ((this drawable-tree-collide-fragment)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (when *display-render-collision* + (dotimes (s5-0 (-> this length)) + (draw (-> this data s5-0)) + ) + ) + 0 + (none) + ) + +;; definition for method 15 of type drawable-tree-collide-fragment +(defmethod unpack-vis ((this drawable-tree-collide-fragment) (arg0 (pointer int8)) (arg1 (pointer int8))) + arg1 + ) + +;; definition for method 8 of type collide-fragment +;; WARN: Return type mismatch int vs collide-fragment. +(defmethod mem-usage ((this collide-fragment) (usage memory-usage-block) (flags int)) + (let ((s5-0 (if (logtest? flags 1) + 54 + 50 + ) + ) + (s4-0 (-> this mesh)) + ) + (set! (-> usage data s5-0 name) "collide-fragment") + (+! (-> usage data s5-0 count) 1) + (let ((v1-9 (+ (asize-of this) (asize-of s4-0)))) + (+! (-> usage data s5-0 used) v1-9) + (+! (-> usage data s5-0 total) (logand -16 (+ v1-9 15))) + ) + (set! (-> usage data (+ s5-0 1) name) "collision-poly") + (+! (-> usage data (+ s5-0 1) count) (-> s4-0 poly-count)) + (let ((v1-20 (+ (-> s4-0 strip-data-len) (-> s4-0 poly-count)))) + (+! (-> usage data (+ s5-0 1) used) v1-20) + (+! (-> usage data (+ s5-0 1) total) v1-20) + ) + (set! (-> usage data (+ s5-0 2) name) "collision-vertex") + (+! (-> usage data (+ s5-0 2) count) (-> s4-0 vertex-count)) + (let ((v1-29 (* (-> s4-0 vertex-data-qwc) 16))) + (+! (-> usage data (+ s5-0 2) used) v1-29) + (let ((v0-2 (+ (-> usage data (+ s5-0 2) total) v1-29))) + (set! (-> usage data (+ s5-0 2) total) v0-2) + (the-as collide-fragment v0-2) + ) + ) + ) + ) + +;; definition for method 9 of type drawable-inline-array-collide-fragment +(defmethod login ((this drawable-inline-array-collide-fragment)) + "Initialize the object after it is loaded." + this + ) + +;; definition for method 10 of type collide-fragment +;; WARN: Return type mismatch int vs none. +(defmethod draw ((this collide-fragment)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + 0 + (none) + ) + +;; definition for method 10 of type drawable-inline-array-collide-fragment +;; WARN: Return type mismatch int vs none. +(defmethod draw ((this drawable-inline-array-collide-fragment)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (dotimes (s5-0 (-> this length)) + (let ((s4-0 (-> this data s5-0))) + (if (sphere-cull (-> s4-0 bsphere)) + (draw s4-0) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 8 of type drawable-inline-array-collide-fragment +(defmethod mem-usage ((this drawable-inline-array-collide-fragment) (usage memory-usage-block) (flags int)) + (set! (-> usage length) (max 1 (-> usage length))) + (set! (-> usage data 0 name) "drawable-group") + (+! (-> usage data 0 count) 1) + (let ((v1-5 32)) + (+! (-> usage data 0 used) v1-5) + (+! (-> usage data 0 total) (logand -16 (+ v1-5 15))) + ) + (dotimes (s3-0 (-> this length)) + (mem-usage (-> this data s3-0) usage flags) + ) + this + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/collide/collide-planes_REF.gc b/test/decompiler/reference/jakx/engine/collide/collide-planes_REF.gc new file mode 100644 index 0000000000..cfc935f7b5 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/collide/collide-planes_REF.gc @@ -0,0 +1,1470 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function collide-planes-intersect +;; ERROR: failed type prop at 1: Could not figure out load: (set! f0 (l.f (+ a1 12))) +;; ERROR: Function may read a register that is not set: a0 +;; ERROR: Function may read a register that is not set: a1 +(defun collide-planes-intersect () + (local-vars + (v1-0 none) + (v1-1 none) + (v1-2 none) + (v1-3 none) + (v1-4 none) + (v1-5 none) + (v1-6 none) + (v1-7 none) + (v1-8 none) + (v1-10 none) + (a0-0 none) + (a1-0 none) + (a1-1 none) + (a2-0 none) + (a2-1 none) + (f0-0 int) + (f0-1 none) + (f0-2 none) + (f1-0 none) + (f1-1 none) + (f1-2 none) + (f1-3 none) + (f1-4 none) + (f1-5 none) + (f2-0 none) + (f2-1 none) + (f2-2 none) + (f2-3 none) + (f2-4 none) + (f3-0 none) + (f3-1 none) + ) + (when (begin + (or (begin + (set! f0-0 0) + (set! f0-1 (the-as none (l.f (+ a1-0 12)))) + (set! a2-0 (the-as none (+ a1-0 0))) + (set! v1-0 (the-as none a0-0)) + (set! f1-0 (the-as none (vec3dot a2-0 v1-0))) + (set! v1-1 (the-as none (fpr->gpr f1-0))) + (set! f1-1 (the-as none (gpr->fpr v1-1))) + (set! f0-2 (the-as none (+.s f0-1 f1-1))) + (set! f1-2 (the-as none 0)) + (set! v1-2 (the-as none (<.s f0-2 f1-2))) + v1-2 + ) + (begin + (set! f1-3 (the-as none (l.f (+ a1-0 28)))) + (set! a2-1 (the-as none (+ a1-0 16))) + (set! v1-4 (the-as none a0-0)) + (set! f2-0 (the-as none (vec3dot a2-1 v1-4))) + (set! v1-5 (the-as none (fpr->gpr f2-0))) + (set! f2-1 (the-as none (gpr->fpr v1-5))) + (set! f1-4 (the-as none (+.s f1-3 f2-1))) + (set! f2-2 (the-as none 0)) + (set! v1-6 (the-as none (<.s f1-4 f2-2))) + v1-6 + ) + (begin + (set! f1-5 (the-as none 0)) + (set! f2-3 (the-as none (l.f (+ a1-0 44)))) + (set! a1-1 (the-as none (+ a1-0 32))) + (set! v1-7 (the-as none a0-0)) + (set! f3-0 (the-as none (vec3dot a1-1 v1-7))) + (set! v1-8 (the-as none (fpr->gpr f3-0))) + (set! f3-1 (the-as none (gpr->fpr v1-8))) + (set! f2-4 (the-as none (+.s f2-3 f3-1))) + (set! v1-3 (the-as none (<.s f1-5 f2-4))) + ) + ) + v1-3 + ) + (set! v1-10 (the-as none #x4c1c4000)) + (set! f0-2 (the-as none (gpr->fpr v1-10))) + (set! v1-11 (the-as none (fpr->gpr f0-2))) + ) + (set! v0-0 (the-as none (fpr->gpr f0-2))) + (ret-none) + ) + +;; definition for function collide-planes-test0 +;; ERROR: failed type prop at 59: add failed: + +;; ERROR: Function may read a register that is not set: a0 +;; ERROR: Function may read a register that is not set: a1 +;; ERROR: Function may read a register that is not set: a2 +;; ERROR: Function may read a register that is not set: a3 +;; ERROR: Function may read a register that is not set: t0 +;; ERROR: Function may read a register that is not set: t1 +;; ERROR: Function may read a register that is not set: t2 +(defun collide-planes-test0 () + (local-vars + (v0-0 none) + (v0-1 none) + (v0-2 none) + (v1-0 int) + (v1-1 symbol) + (v1-2 symbol) + (v1-3 symbol) + (v1-4 symbol) + (v1-6 none) + (v1-7 none) + (v1-8 vector) + (v1-9 symbol) + (v1-11 int) + (a0-0 none) + (a0-1 none) + (a0-2 none) + (a0-4 none) + (a1-0 none) + (a1-2 none) + (a1-3 none) + (a2-0 none) + (a2-1 none) + (a3-0 none) + (a3-1 none) + (a3-2 vector) + (a3-3 none) + (a3-4 none) + (t0-0 none) + (t0-1 none) + (t1-0 none) + (t2-0 none) + (t9-0 (function none)) + (t9-1 (function vector vector vector4w none)) + (t9-2 (function vector vector vector vector4w meters none)) + (f0-0 float) + (f0-1 float) + (f0-2 float) + (f0-3 float) + (f0-4 none) + (f0-5 float) + (f0-6 float) + (f1-0 none) + (f1-1 none) + (f1-2 none) + (f1-3 none) + (f1-4 none) + (f1-5 float) + (f2-0 none) + (f30-0 object) + ) + (when (begin + (or (begin + (and (begin + (set! v1-0 #x4c1c4000) + (set! f30-0 (gpr->fpr v1-0)) + (set! f0-0 (the-as float 0)) + (set! f1-0 (gpr->fpr a1-0)) + (set! v1-1 (<.s f0-0 f1-0)) + v1-1 + ) + (begin (set! f0-1 (the-as float 0)) (set! f1-1 (gpr->fpr a2-0)) (set! v1-2 (>=.s f0-1 f1-1))) + ) + v1-2 + ) + (and (begin (set! f0-2 (the-as float 0)) (set! f1-2 (gpr->fpr a1-0)) (set! v1-4 (>=.s f0-2 f1-2)) v1-4) + (begin (set! f0-3 (the-as float 0)) (set! f1-3 (gpr->fpr a2-0)) (set! v1-3 (<.s f0-3 f1-3))) + ) + ) + v1-3 + ) + (when (begin + (set! a3-1 a0-0) + (set! v1-6 t0-0) + (set! a0-1 a3-0) + (set! a3-2 (vector-!2 a3-1 v1-6 a0-1)) + (set! v1-7 a0-0) + (set! a0-2 a3-0) + (set! a3-3 a0-0) + (set! f0-4 (gpr->fpr a1-0)) + (set! f1-4 (gpr->fpr a1-0)) + (set! f2-0 (gpr->fpr a2-0)) + (set! f1-5 (-.s f1-4 f2-0)) + (set! f0-5 (/.s f0-4 f1-5)) + (set! v1-8 (vecplusfloattimes v1-7 a0-2 a3-3 f0-5)) + (set! t9-0 collide-planes-intersect) + (set! a0-3 a0-0) + (set! a1-1 t1-0) + (set! v0-0 (call!)) + (set! f30-0 (gpr->fpr v0-0)) + (set! v1-9 *debug-segment*) + v1-9 + ) + (when (begin + (set! t9-1 camera-line) + (set! a2-1 (the-as none L66)) + (set! a0-4 a3-0) + (set! a1-2 t0-0) + (call! a0-4 a1-2 a2-1) + (set! v1-11 #x4c1c4000) + (set! f0-6 (the-as float (gpr->fpr v1-11))) + (>=.s f30-0 f0-6) + ) + (set! t9-2 camera-cross) + (set! a1-3 (the-as none (+ t1-0 0))) + (set! a3-4 (the-as none L65)) + (set! t0-1 (the-as none #x43cccccd)) + (set! a0-5 (the-as none t2-0)) + (set! a2-2 (the-as none a0-0)) + (call!) + (set! v1-13 (the-as none v0-2)) + ) + ) + ) + (set! v0-3 (the-as none (fpr->gpr f30-0))) + (ret-none) + ) + +;; definition for function collide-planes-test1 +;; INFO: Used lq/sq +;; ERROR: failed type prop at 3: Could not figure out load: (set! f0 (l.f (+ a3 12))) +;; ERROR: Function may read a register that is not set: a0 +;; ERROR: Function may read a register that is not set: a1 +;; ERROR: Function may read a register that is not set: a2 +;; ERROR: Function may read a register that is not set: a3 +;; ERROR: Function may read a register that is not set: t0 +(defun collide-planes-test1 () + (local-vars + (v0-0 none) + (v0-1 none) + (v1-0 none) + (v1-1 none) + (v1-2 none) + (v1-3 none) + (v1-4 none) + (v1-7 none) + (v1-8 none) + (a0-0 none) + (a0-1 none) + (a1-0 none) + (a1-1 none) + (a1-2 none) + (a2-0 none) + (a3-0 none) + (a3-1 none) + (a3-2 none) + (t0-1 none) + (t0-2 none) + (t9-0 none) + (t9-1 none) + (f0-0 none) + (f0-1 none) + (f0-2 none) + (f1-0 none) + (f1-1 none) + (f1-2 none) + (f30-0 none) + ) + (cond + ((begin + (set! f0-0 (the-as none (l.f (+ a3-0 12)))) + (set! a0-1 (the-as none a2-0)) + (set! v1-0 (the-as none (+ a3-0 0))) + (set! f1-0 (the-as none (vec3dot a0-1 v1-0))) + (set! v1-1 (the-as none (fpr->gpr f1-0))) + (set! f1-1 (the-as none (gpr->fpr v1-1))) + (set! f30-0 (the-as none (+.s f0-0 f1-1))) + (set! f0-1 (the-as none (gpr->fpr a1-0))) + (<.s f30-0 f0-1) + ) + (when (begin + (and (begin (set! v1-2 (the-as none *debug-segment*)) v1-2) (begin + (set! f0-2 (the-as none (gpr->fpr a1-0))) + (set! v1-4 (the-as none #x4c1c4000)) + (set! f1-2 (the-as none (gpr->fpr v1-4))) + (set! v1-3 (the-as none (<.s f0-2 f1-2))) + ) + ) + v1-3 + ) + (set! t9-0 (the-as none camera-cross)) + (set! a0-2 (the-as none t0-0)) + (set! a1-1 (the-as none (+ a3-0 0))) + (set! a2-1 (the-as none a2-0)) + (set! a3-1 (the-as none L64)) + (set! t0-1 (the-as none #x43cccccd)) + (call!) + (set! v1-6 (the-as none v0-0)) + ) + (set! a1-0 (the-as none (fpr->gpr f30-0))) + (set! v1-7 (the-as none (l.q a2-0))) + (s.q! a0-0 v1-7) + ) + (else + (when (begin (set! v1-8 (the-as none *debug-segment*)) v1-8) + (set! t9-1 (the-as none camera-cross)) + (set! a0-3 (the-as none t0-0)) + (set! a1-2 (the-as none (+ a3-0 0))) + (set! a2-2 (the-as none a2-0)) + (set! a3-2 (the-as none L63)) + (set! t0-2 (the-as none #x43cccccd)) + (call!) + (set! v1-10 (the-as none v0-1)) + ) + ) + ) + (set! v0-2 (the-as none a1-0)) + (ret-none) + ) + +;; definition for function collide-planes +;; INFO: Used lq/sq +;; ERROR: failed type prop at 415: add failed: + +;; WARN: Return type mismatch symbol vs none. +;; ERROR: Failed to guess stack use for 48 in collide-planes:62 +;; ERROR: Function may read a register that is not set: a2 +;; ERROR: Function may read a register that is not set: a3 +(defun collide-planes ((a0-0 (inline-array vector)) (a1-0 int)) + (local-vars + (v0-0 object) + (v0-2 object) + (v0-4 none) + (v0-5 none) + (v0-6 none) + (v0-7 bounding-box) + (v0-8 none) + (v0-9 vector) + (v0-10 vector) + (v0-11 none) + (v0-12 vector) + (v0-13 none) + (v0-14 vector) + (v0-15 none) + (v0-16 vector) + (v0-17 none) + (v0-18 pointer) + (v0-19 none) + (v0-20 none) + (v0-21 none) + (v0-22 none) + (v0-23 none) + (v0-24 none) + (v0-25 none) + (v0-27 none) + (v0-28 symbol) + (v1-2 int) + (v1-5 symbol) + (v1-7 int) + (v1-8 int) + (v1-9 int) + (v1-10 int) + (v1-11 int) + (v1-12 int) + (v1-13 int) + (v1-14 int) + (v1-15 int) + (v1-16 int) + (v1-19 type) + (v1-20 int) + (v1-23 int) + (v1-26 int) + (v1-27 int) + (v1-28 vector) + (v1-29 int) + (v1-30 int) + (v1-31 vector) + (v1-32 int) + (v1-33 int) + (v1-34 vector) + (v1-35 int) + (v1-36 int) + (v1-37 vector) + (v1-38 int) + (v1-39 int) + (v1-40 vector) + (v1-41 int) + (v1-42 int) + (v1-43 vector) + (v1-44 int) + (v1-47 symbol) + (v1-49 none) + (v1-50 none) + (v1-51 none) + (v1-52 none) + (v1-53 none) + (v1-54 vector) + (v1-55 int) + (v1-56 none) + (v1-57 vector) + (v1-58 int) + (v1-59 int) + (v1-60 none) + (v1-61 int) + (v1-62 int) + (v1-63 int) + (v1-64 int) + (v1-65 int) + (v1-66 int) + (v1-67 vector) + (v1-68 float) + (v1-69 int) + (v1-70 int) + (v1-71 none) + (v1-72 symbol) + (v1-74 vector) + (v1-75 vector) + (v1-76 int) + (v1-77 int) + (v1-78 int) + (v1-80 int) + (v1-81 int) + (v1-82 int) + (v1-83 none) + (v1-84 int) + (v1-85 int) + (v1-86 int) + (v1-87 int) + (v1-88 int) + (v1-89 int) + (v1-90 int) + (v1-91 int) + (v1-92 vector) + (v1-93 float) + (v1-94 int) + (v1-95 int) + (v1-96 int) + (v1-97 none) + (v1-98 symbol) + (v1-100 vector) + (v1-101 vector) + (v1-102 vector) + (v1-103 vector) + (v1-105 none) + (v1-106 vector) + (v1-107 int) + (v1-108 int) + (v1-109 int) + (v1-110 int) + (v1-111 none) + (v1-112 int) + (v1-113 int) + (v1-114 int) + (v1-115 int) + (v1-116 int) + (v1-117 int) + (v1-118 int) + (v1-119 int) + (v1-120 int) + (v1-121 int) + (v1-122 vector) + (v1-123 float) + (v1-124 int) + (v1-125 int) + (v1-126 int) + (v1-127 int) + (v1-128 none) + (v1-129 symbol) + (v1-131 vector) + (v1-132 vector) + (v1-133 vector) + (v1-134 vector) + (v1-136 int) + (v1-137 int) + (v1-138 int) + (v1-141 none) + (v1-142 vector) + (v1-143 int) + (v1-144 int) + (v1-145 int) + (v1-146 none) + (v1-147 int) + (v1-148 int) + (v1-149 int) + (v1-150 int) + (v1-151 int) + (v1-152 int) + (v1-153 int) + (v1-154 int) + (v1-155 vector) + (v1-156 float) + (v1-157 int) + (v1-158 int) + (v1-159 int) + (v1-160 none) + (v1-161 symbol) + (v1-163 vector) + (v1-164 vector) + (v1-165 vector) + (v1-166 vector) + (v1-168 int) + (v1-169 int) + (v1-170 type) + (v1-172 float) + (v1-173 int) + (v1-174 collide-cache) + (v1-175 int) + (v1-176 collide-cache) + (v1-177 collide-cache-tri) + (v1-178 (inline-array vector)) + (v1-179 int) + (v1-180 collide-cache) + (v1-181 collide-cache-tri) + (v1-182 vector) + (v1-183 int) + (v1-184 collide-cache) + (v1-185 collide-cache-tri) + (v1-186 vector) + (v1-187 int) + (v1-188 int) + (v1-189 float) + (v1-190 int) + (v1-191 float) + (v1-192 int) + (v1-193 float) + (v1-194 int) + (v1-195 float) + (v1-198 int) + (v1-199 float) + (v1-202 int) + (v1-203 float) + (v1-210 float) + (v1-211 symbol) + (a0-1 string) + (a0-2 string) + (a0-3 vector) + (a0-4 vector) + (a0-5 vector) + (a0-6 bounding-box) + (a0-7 int) + (a0-8 none) + (a0-9 int) + (a0-10 none) + (a0-11 int) + (a0-12 vector) + (a0-14 int) + (a0-15 vector) + (a0-17 int) + (a0-18 vector) + (a0-20 int) + (a0-21 vector) + (a0-23 int) + (a0-24 vector) + (a0-26 int) + (a0-27 vector) + (a0-29 int) + (a0-30 vector) + (a0-32 int) + (a0-33 vector) + (a0-35 int) + (a0-36 vector) + (a0-38 int) + (a0-39 vector) + (a0-41 int) + (a0-42 vector) + (a0-44 int) + (a0-45 vector) + (a0-47 bounding-box) + (a0-48 int) + (a0-49 int) + (a0-50 vector) + (a0-51 none) + (a0-52 int) + (a0-53 int) + (a0-54 vector) + (a0-55 none) + (a0-56 none) + (a0-57 none) + (a0-58 int) + (a0-59 int) + (a0-60 int) + (a0-61 vector) + (a0-62 vector) + (a0-63 none) + (a0-64 vector) + (a0-65 none) + (a0-66 none) + (a0-67 vector) + (a0-68 int) + (a0-69 int) + (a0-70 int) + (a0-71 vector) + (a0-72 none) + (a0-73 vector) + (a0-74 none) + (a0-75 none) + (a0-76 vector) + (a0-77 int) + (a0-78 int) + (a0-79 vector) + (a0-80 none) + (a0-81 vector) + (a0-82 none) + (a0-83 none) + (a0-84 vector) + (a0-85 none) + (a0-86 collide-cache) + (a0-87 int) + (a0-88 int) + (a0-89 int) + (a0-90 none) + (a0-91 none) + (a0-92 none) + (a0-99 none) + (a1-1 string) + (a1-2 string) + (a1-3 vector) + (a1-4 vector) + (a1-5 vector) + (a1-6 type) + (a1-7 int) + (a1-8 int) + (a1-9 vector) + (a1-10 none) + (a1-11 int) + (a1-12 int) + (a1-13 int) + (a1-14 vector) + (a1-15 none) + (a1-16 vector) + (a1-17 float) + (a1-18 vector) + (a1-19 int) + (a1-20 int) + (a1-21 none) + (a1-22 float) + (a1-23 vector) + (a1-24 int) + (a1-25 int) + (a1-26 vector) + (a1-27 int) + (a1-28 int) + (a1-29 none) + (a1-30 float) + (a1-31 vector) + (a1-32 int) + (a1-33 int) + (a1-34 vector) + (a1-35 int) + (a1-36 int) + (a1-37 none) + (a1-38 float) + (a1-39 vector) + (a1-40 bounding-box) + (a1-48 none) + (a2-0 vector4w) + (a2-1 int) + (a2-2 vector4w) + (a2-3 int) + (a2-4 int) + (a2-5 none) + (a2-6 vector4w) + (a2-7 int) + (a2-8 int) + (a2-9 int) + (a2-10 vector) + (a2-11 vector) + (a2-12 vector4w) + (a2-13 int) + (a2-14 int) + (a2-15 vector) + (a2-16 vector) + (a2-17 vector4w) + (a2-18 int) + (a2-19 int) + (a2-20 vector) + (a2-21 vector) + (a2-22 vector4w) + (a2-23 int) + (a2-30 none) + (a3-0 none) + (a3-1 int) + (a3-2 float) + (a3-3 none) + (a3-4 int) + (a3-5 int) + (a3-6 int) + (a3-7 none) + (a3-8 none) + (a3-9 int) + (a3-10 int) + (a3-11 int) + (a3-12 int) + (a3-13 none) + (a3-14 float) + (a3-15 none) + (a3-16 int) + (a3-17 int) + (a3-18 int) + (a3-19 none) + (a3-20 int) + (a3-22 int) + (a3-24 int) + (a3-26 vector4w) + (t0-0 float) + (t0-1 float) + (t0-2 float) + (t0-3 float) + (t0-4 float) + (t0-5 int) + (t0-7 int) + (t0-9 int) + (t0-11 int) + (t1-0 none) + (t1-1 none) + (t1-2 none) + (s0-0 bounding-box) + (s0-1 int) + (s1-1 none) + (s1-2 none) + (s2-0 none) + (s2-1 none) + (s3-1 int) + (s4-0 none) + (s5-0 int) + (s5-1 none) + (t9-0 (function _varargs_ object)) + (t9-1 (function _varargs_ object)) + (t9-2 (function vector vector vector4w none)) + (t9-3 (function vector vector vector4w none)) + (t9-4 (function vector vector vector4w none)) + (t9-5 (function symbol type bounding-box)) + (t9-6 (function bounding-box basic rgba none)) + (t9-7 (function vector vector vector)) + (t9-8 (function vector float vector)) + (t9-9 (function vector vector vector4w none)) + (t9-10 (function vector float vector)) + (t9-11 (function vector vector vector4w none)) + (t9-12 (function vector float vector)) + (t9-13 (function vector vector vector4w none)) + (t9-14 (function vector float vector)) + (t9-15 (function vector vector vector4w none)) + (t9-16 (function pointer pointer int pointer)) + (t9-17 (function none)) + (t9-18 (function none)) + (t9-19 (function none)) + (t9-20 (function none)) + (t9-21 (function none)) + (t9-22 (function none)) + (t9-23 (function none)) + (t9-24 (function vector vector vector vector4w meters none)) + (gp-0 none) + (sp-0 none) + (f0-0 float) + (f0-1 float) + (f0-2 float) + (f0-3 float) + (f0-4 float) + (f0-5 float) + (f0-6 float) + (f0-7 float) + (f0-8 float) + (f0-9 float) + (f0-10 float) + (f0-11 float) + (f0-12 float) + (f0-13 float) + (f0-14 float) + (f0-15 float) + (f0-16 float) + (f0-17 float) + (f0-18 float) + (f0-19 float) + (f0-20 float) + (f0-21 float) + (f0-22 float) + (f0-23 float) + (f0-24 float) + (f0-25 float) + (f0-26 float) + (f0-27 float) + (f0-28 float) + (f0-29 float) + (f0-30 float) + (f0-31 float) + (f0-32 float) + (f0-33 float) + (f0-34 float) + (f0-35 float) + (f0-36 float) + (f0-37 int) + (f0-38 none) + (f0-39 none) + (f0-40 none) + (f0-41 none) + (f0-42 none) + (f0-43 none) + (f0-44 float) + (f1-0 float) + (f1-1 float) + (f1-2 float) + (f1-3 float) + (f1-4 float) + (f1-5 float) + (f1-6 float) + (f1-7 float) + (f1-8 float) + (f1-9 float) + (f1-10 float) + (f1-11 float) + (f1-12 float) + (f1-13 float) + (f1-14 float) + (f24-0 float) + (f26-0 float) + (f28-0 float) + (f30-0 object) + (sv-1632 none) + (sv-1648 int) + (sv-1664 none) + (sv-1680 int) + (sv-1696 int) + (sv-1712 int) + ) + (if (begin + (if (begin (set! gp-0 a2-0) (set! s2-0 a3-0) (<.si a1-0 3)) + (return (begin (set! t9-0 format) (set! a0-1 *stdcon*) (set! a1-1 L62) (call! a0-1 a1-1))) + ) + (set! v1-2 20) + (<.si v1-2 a1-0) + ) + (return (begin + (set! t9-1 format) + (set! a0-2 *stdcon*) + (set! a1-2 L61) + (set! a3-1 20) + (set! a2-1 a1-0) + (call! a0-2 a1-2 a2-1 a3-1) + ) + ) + ) + (when (begin (set! v1-5 *debug-segment*) v1-5) + (set! t9-2 camera-line) + (set! v1-7 (+ a1-0 -1)) + (set! v1-8 (sll v1-7 4)) + (set! a0-3 (+ a0-0 v1-8)) + (set! v1-9 (+ a1-0 -2)) + (set! v1-10 (sll v1-9 4)) + (set! a1-3 (+ a0-0 v1-10)) + (set! a2-0 L60) + (call! a0-3 a1-3 a2-0) + (set! s5-0 (+ a1-0 -3)) + (while (>=0.si s5-0) + (set! t9-3 camera-line) + (set! v1-11 (sll s5-0 4)) + (set! a0-4 (+ a0-0 v1-11)) + (set! v1-12 (+ s5-0 1)) + (set! v1-13 (sll v1-12 4)) + (set! a1-4 (+ a0-0 v1-13)) + (set! a2-2 L59) + (call! a0-4 a1-4 a2-2) + (set! t9-4 camera-line) + (set! v1-14 (sll s5-0 4)) + (set! a0-5 (+ a0-0 v1-14)) + (set! v1-15 (+ s5-0 2)) + (set! v1-16 (sll v1-15 4)) + (set! a1-5 (+ a0-0 v1-16)) + (set! a2-0 L58) + (call! a0-5 a1-5 a2-0) + (set! s5-0 (+ s5-0 -1)) + ) + ) + (set! v1-19 bounding-box) + (set! t9-5 (method-of-type v1-19 new)) + (set! a0-6 (new 'stack-no-clear 'bounding-box)) + (set! a1-6 bounding-box) + (set! v0-7 (call! a0-6 a1-6)) + (set! s0-0 v0-7) + (set! s5-1 (the-as none (+ sp-0 48))) + (set! v1-20 0) + (while (<.si v1-20 18) + (set! a0-7 (sll v1-20 4)) + (set! a0-8 (the-as none (+ s5-1 a0-7))) + (s.q! a0-8 0) + (set! v1-20 (+ v1-20 1)) + ) + (set! s4-0 (the-as none (+ sp-0 336))) + (set! v1-23 0) + (while (<.si v1-23 37) + (set! a0-9 (sll v1-23 4)) + (set! a0-10 (the-as none (+ s4-0 a0-9))) + (s.q! a0-10 0) + (set! v1-23 (+ v1-23 1)) + ) + (set! v1-26 (+ a1-0 -1)) + (set! v1-27 (sll v1-26 4)) + (set! v1-28 (+ v1-27 a0-0)) + (set! f0-0 (-> v1-28 x)) + (set! (-> s0-0 min x) f0-0) + (set! v1-29 (+ a1-0 -1)) + (set! v1-30 (sll v1-29 4)) + (set! v1-31 (+ v1-30 a0-0)) + (set! f0-1 (-> v1-31 y)) + (set! (-> s0-0 min y) f0-1) + (set! v1-32 (+ a1-0 -1)) + (set! v1-33 (sll v1-32 4)) + (set! v1-34 (+ v1-33 a0-0)) + (set! f0-2 (-> v1-34 z)) + (set! (-> s0-0 min z) f0-2) + (set! v1-35 (+ a1-0 -1)) + (set! v1-36 (sll v1-35 4)) + (set! v1-37 (+ v1-36 a0-0)) + (set! f0-3 (-> v1-37 x)) + (set! (-> s0-0 max x) f0-3) + (set! v1-38 (+ a1-0 -1)) + (set! v1-39 (sll v1-38 4)) + (set! v1-40 (+ v1-39 a0-0)) + (set! f0-4 (-> v1-40 y)) + (set! (-> s0-0 max y) f0-4) + (set! v1-41 (+ a1-0 -1)) + (set! v1-42 (sll v1-41 4)) + (set! v1-43 (+ v1-42 a0-0)) + (set! f0-5 (-> v1-43 z)) + (set! (-> s0-0 max z) f0-5) + (set! v1-44 (+ a1-0 -2)) + (while (>=0.si v1-44) + (when (begin + (when (begin + (when (begin + (when (begin + (set! a0-11 (sll v1-44 4)) + (set! a0-12 (+ a0-11 a0-0)) + (set! f0-6 (-> a0-12 x)) + (set! f1-0 (-> s0-0 min x)) + (<.s f0-6 f1-0) + ) + (set! a0-14 (sll v1-44 4)) + (set! a0-15 (+ a0-14 a0-0)) + (set! f0-7 (-> a0-15 x)) + (s.f! s0-0 f0-7) + (set! a0-16 (fpr->gpr f0-7)) + ) + (set! a0-17 (sll v1-44 4)) + (set! a0-18 (+ a0-17 a0-0)) + (set! f0-8 (-> a0-18 y)) + (set! f1-1 (l.f (+ s0-0 4))) + (<.s f0-8 f1-1) + ) + (set! a0-20 (sll v1-44 4)) + (set! a0-21 (+ a0-20 a0-0)) + (set! f0-9 (-> a0-21 y)) + (s.f! (+ s0-0 4) f0-9) + (set! a0-22 (fpr->gpr f0-9)) + ) + (when (begin + (set! a0-23 (sll v1-44 4)) + (set! a0-24 (+ a0-23 a0-0)) + (set! f0-10 (-> a0-24 z)) + (set! f1-2 (l.f (+ s0-0 8))) + (<.s f0-10 f1-2) + ) + (set! a0-26 (sll v1-44 4)) + (set! a0-27 (+ a0-26 a0-0)) + (set! f0-11 (-> a0-27 z)) + (s.f! (+ s0-0 8) f0-11) + (set! a0-28 (fpr->gpr f0-11)) + ) + (set! f0-12 (l.f (+ s0-0 16))) + (set! a0-29 (sll v1-44 4)) + (set! a0-30 (+ a0-29 a0-0)) + (set! f1-3 (-> a0-30 x)) + (<.s f0-12 f1-3) + ) + (set! a0-32 (sll v1-44 4)) + (set! a0-33 (+ a0-32 a0-0)) + (set! f0-13 (-> a0-33 x)) + (s.f! (+ s0-0 16) f0-13) + (set! a0-34 (fpr->gpr f0-13)) + ) + (when (begin + (set! f0-14 (l.f (+ s0-0 20))) + (set! a0-35 (sll v1-44 4)) + (set! a0-36 (+ a0-35 a0-0)) + (set! f1-4 (-> a0-36 y)) + (<.s f0-14 f1-4) + ) + (set! a0-38 (sll v1-44 4)) + (set! a0-39 (+ a0-38 a0-0)) + (set! f0-15 (-> a0-39 y)) + (s.f! (+ s0-0 20) f0-15) + (set! a0-40 (fpr->gpr f0-15)) + ) + (set! f0-16 (l.f (+ s0-0 24))) + (set! a0-41 (sll v1-44 4)) + (set! a0-42 (+ a0-41 a0-0)) + (set! f1-5 (-> a0-42 z)) + (<.s f0-16 f1-5) + ) + (set! a0-44 (sll v1-44 4)) + (set! a0-45 (+ a0-44 a0-0)) + (set! f0-17 (-> a0-45 z)) + (s.f! (+ s0-0 24) f0-17) + (set! a0-46 (fpr->gpr f0-17)) + ) + (set! v1-44 (+ v1-44 -1)) + ) + (when (begin (set! v1-47 *debug-segment*) v1-47) + (set! t9-6 camera-bounding-box-draw) + (set! a0-47 s0-0) + (call! a0-47 a1-6 a2-0) + ) + (set! v1-49 (the-as none (+ sp-0 928))) + (set! sv-1664 v1-49) + (set! v1-50 sv-1664) + (s.q! v1-50 0) + (set! v1-51 (the-as none (+ sp-0 944))) + (set! sv-1632 v1-51) + (set! v1-52 sv-1632) + (s.q! v1-52 0) + (set! v1-53 sv-1632) + (set! a0-48 (+ a1-0 -2)) + (set! a0-49 (sll a0-48 4)) + (set! a0-50 (+ a0-0 a0-49)) + (set! a1-7 (+ a1-0 -1)) + (set! a1-8 (sll a1-7 4)) + (set! a1-9 (+ a0-0 a1-8)) + (set! v1-54 (vector-!2 v1-53 a0-50 a1-9)) + (set! v1-55 (+ a1-0 -3)) + (set! sv-1648 v1-55) + (while (begin (set! v1-138 sv-1648) (>=0.si v1-138)) + (when (begin + (when (begin + (set! t9-7 vector-negate!) + (set! a0-51 sv-1664) + (set! a1-10 sv-1632) + (call! a0-51 a1-10) + (set! v1-56 sv-1632) + (set! a0-52 sv-1648) + (set! a0-53 (sll a0-52 4)) + (set! a0-54 (+ a0-0 a0-53)) + (set! a1-11 sv-1648) + (set! a1-12 (+ a1-11 1)) + (set! a1-13 (sll a1-12 4)) + (set! a1-14 (+ a0-0 a1-13)) + (set! v1-57 (vector-!2 v1-56 a0-54 a1-14)) + (set! v1-58 sv-1648) + (set! v1-59 (sll v1-58 4)) + (set! a1-15 (the-as none (+ s5-1 v1-59))) + (set! v1-60 sv-1664) + (set! a0-55 sv-1632) + (set! a1-16 (veccross a1-15 v1-60 a0-55)) + (set! t9-8 vector-normalize!) + (set! v1-61 sv-1648) + (set! v1-62 (sll v1-61 4)) + (set! a0-56 (the-as none (+ s5-1 v1-62))) + (set! a1-17 1.0) + (call! a0-56 a1-17) + (set! v1-63 sv-1648) + (set! v1-64 (sll v1-63 4)) + (set! a0-57 (the-as none (+ s5-1 v1-64))) + (set! v1-65 sv-1648) + (set! v1-66 (sll v1-65 4)) + (set! v1-67 (+ a0-0 v1-66)) + (set! f0-18 (vec3dot a0-57 v1-67)) + (set! v1-68 (fpr->gpr f0-18)) + (set! f0-19 (gpr->fpr v1-68)) + (set! f0-20 (neg.s f0-19)) + (set! v1-69 sv-1648) + (set! v1-70 (sll v1-69 4)) + (set! v1-71 (the-as none (+ v1-70 s5-1))) + (s.f! (+ v1-71 12) f0-20) + (set! v1-72 *debug-segment*) + v1-72 + ) + (set! a1-18 (+ sp-0 960)) + (set! (-> a1-18 quad) (the-as uint128 0)) + (set! v1-74 a1-18) + (set! a0-58 (the-as none sv-1648)) + (set! a0-59 (+ a0-58 1)) + (set! a0-60 (sll a0-59 4)) + (set! a0-61 (+ a0-0 a0-60)) + (set! a2-3 (the-as none sv-1648)) + (set! a2-4 (sll a2-3 4)) + (set! a2-5 (the-as none (+ s5-1 a2-4))) + (set! a3-2 1228.8) + (set! f0-21 (gpr->fpr a3-2)) + (set! v1-75 (vecplusfloattimes v1-74 a0-61 a2-5 f0-21)) + (set! t9-9 camera-line) + (set! v1-76 (the-as none sv-1648)) + (set! v1-77 (+ v1-76 1)) + (set! v1-78 (sll v1-77 4)) + (set! a0-62 (+ a0-0 v1-78)) + (set! a2-6 L57) + (call! a0-62 a1-18 a2-6) + (set! v1-79 v0-11) + ) + (set! v1-80 (the-as none sv-1648)) + (set! v1-81 (sll v1-80 1)) + (set! v1-82 (sll v1-81 4)) + (set! a0-63 (the-as none (+ s4-0 v1-82))) + (set! v1-83 sv-1632) + (set! a1-19 (the-as none sv-1648)) + (set! a1-20 (sll a1-19 4)) + (set! a1-21 (the-as none (+ s5-1 a1-20))) + (set! a0-64 (veccross a0-63 v1-83 a1-21)) + (set! t9-10 vector-normalize!) + (set! v1-84 (the-as none sv-1648)) + (set! v1-85 (sll v1-84 1)) + (set! v1-86 (sll v1-85 4)) + (set! a0-65 (the-as none (+ s4-0 v1-86))) + (set! a1-22 1.0) + (call! a0-65 a1-22) + (set! v1-87 (the-as none sv-1648)) + (set! v1-88 (sll v1-87 1)) + (set! v1-89 (sll v1-88 4)) + (set! a0-66 (the-as none (+ s4-0 v1-89))) + (set! v1-90 (the-as none sv-1648)) + (set! v1-91 (sll v1-90 4)) + (set! v1-92 (+ a0-0 v1-91)) + (set! f0-22 (vec3dot a0-66 v1-92)) + (set! v1-93 (fpr->gpr f0-22)) + (set! f0-23 (gpr->fpr v1-93)) + (set! f0-24 (neg.s f0-23)) + (set! v1-94 (the-as none sv-1648)) + (set! v1-95 (sll v1-94 1)) + (set! v1-96 (sll v1-95 4)) + (set! v1-97 (the-as none (+ v1-96 s4-0))) + (s.f! (+ v1-97 12) f0-24) + (set! v1-98 *debug-segment*) + v1-98 + ) + (set! a0-67 (+ sp-0 976)) + (set! (-> a0-67 quad) (the-as uint128 0)) + (set! a1-23 (+ sp-0 992)) + (set! (-> a1-23 quad) (the-as uint128 0)) + (set! v1-100 a0-67) + (set! a2-7 (the-as none sv-1648)) + (set! a2-8 (+ a2-7 1)) + (set! a2-9 (sll a2-8 4)) + (set! a2-10 (+ a0-0 a2-9)) + (set! a3-3 sv-1632) + (set! t0-0 0.5) + (set! f0-25 (gpr->fpr t0-0)) + (set! v1-101 (vecplusfloattimes v1-100 a2-10 a3-3 f0-25)) + (set! v1-102 a1-23) + (set! a2-11 a0-67) + (set! a3-4 (the-as none sv-1648)) + (set! a3-5 (sll a3-4 1)) + (set! a3-6 (sll a3-5 4)) + (set! a3-7 (the-as none (+ s4-0 a3-6))) + (set! t0-1 819.2) + (set! f0-26 (gpr->fpr t0-1)) + (set! v1-103 (vecplusfloattimes v1-102 a2-11 a3-7 f0-26)) + (set! t9-11 camera-line) + (set! a2-12 L56) + (call! a0-67 a1-23 a2-12) + (set! v1-104 v0-13) + ) + (when (begin + (set! v1-105 sv-1664) + (set! a0-68 (the-as none sv-1648)) + (set! a0-69 (+ a0-68 2)) + (set! a0-70 (sll a0-69 4)) + (set! a0-71 (+ a0-0 a0-70)) + (set! a1-24 (the-as none sv-1648)) + (set! a1-25 (sll a1-24 4)) + (set! a1-26 (+ a0-0 a1-25)) + (set! v1-106 (vector-!2 v1-105 a0-71 a1-26)) + (set! v1-107 (the-as none sv-1648)) + (set! v1-108 (sll v1-107 1)) + (set! v1-109 (+ v1-108 1)) + (set! v1-110 (sll v1-109 4)) + (set! a0-72 (the-as none (+ s4-0 v1-110))) + (set! v1-111 sv-1664) + (set! a1-27 (the-as none sv-1648)) + (set! a1-28 (sll a1-27 4)) + (set! a1-29 (the-as none (+ s5-1 a1-28))) + (set! a0-73 (veccross a0-72 v1-111 a1-29)) + (set! t9-12 vector-normalize!) + (set! v1-112 (the-as none sv-1648)) + (set! v1-113 (sll v1-112 1)) + (set! v1-114 (+ v1-113 1)) + (set! v1-115 (sll v1-114 4)) + (set! a0-74 (the-as none (+ s4-0 v1-115))) + (set! a1-30 1.0) + (call! a0-74 a1-30) + (set! v1-116 (the-as none sv-1648)) + (set! v1-117 (sll v1-116 1)) + (set! v1-118 (+ v1-117 1)) + (set! v1-119 (sll v1-118 4)) + (set! a0-75 (the-as none (+ s4-0 v1-119))) + (set! v1-120 (the-as none sv-1648)) + (set! v1-121 (sll v1-120 4)) + (set! v1-122 (+ a0-0 v1-121)) + (set! f0-27 (vec3dot a0-75 v1-122)) + (set! v1-123 (fpr->gpr f0-27)) + (set! f0-28 (gpr->fpr v1-123)) + (set! f0-29 (neg.s f0-28)) + (set! v1-124 (the-as none sv-1648)) + (set! v1-125 (sll v1-124 1)) + (set! v1-126 (+ v1-125 1)) + (set! v1-127 (sll v1-126 4)) + (set! v1-128 (the-as none (+ v1-127 s4-0))) + (s.f! (+ v1-128 12) f0-29) + (set! v1-129 *debug-segment*) + v1-129 + ) + (set! a0-76 (+ sp-0 1008)) + (set! (-> a0-76 quad) (the-as uint128 0)) + (set! a1-31 (+ sp-0 1024)) + (set! (-> a1-31 quad) (the-as uint128 0)) + (set! v1-131 a0-76) + (set! a2-13 (the-as none sv-1648)) + (set! a2-14 (sll a2-13 4)) + (set! a2-15 (+ a0-0 a2-14)) + (set! a3-8 sv-1664) + (set! t0-2 0.5) + (set! f0-30 (gpr->fpr t0-2)) + (set! v1-132 (vecplusfloattimes v1-131 a2-15 a3-8 f0-30)) + (set! v1-133 a1-31) + (set! a2-16 a0-76) + (set! a3-9 (the-as none sv-1648)) + (set! a3-10 (sll a3-9 1)) + (set! a3-11 (+ a3-10 1)) + (set! a3-12 (sll a3-11 4)) + (set! a3-13 (the-as none (+ s4-0 a3-12))) + (set! t0-3 819.2) + (set! f0-31 (gpr->fpr t0-3)) + (set! v1-134 (vecplusfloattimes v1-133 a2-16 a3-13 f0-31)) + (set! t9-13 camera-line) + (set! a2-17 L55) + (call! a0-76 a1-31 a2-17) + (set! v1-135 v0-15) + ) + (set! v1-136 (the-as none sv-1648)) + (set! v1-137 (+ v1-136 -1)) + (set! sv-1648 v1-137) + ) + (when (begin + (set! v1-141 sv-1664) + (set! a0-77 (+ a1-0 -1)) + (set! a0-78 (sll a0-77 4)) + (set! a0-79 (+ a0-0 a0-78)) + (set! a1-32 (+ a1-0 -2)) + (set! a1-33 (sll a1-32 4)) + (set! a1-34 (+ a0-0 a1-33)) + (set! v1-142 (vector-!2 v1-141 a0-79 a1-34)) + (set! v1-143 (+ a1-0 -2)) + (set! v1-144 (sll v1-143 1)) + (set! v1-145 (sll v1-144 4)) + (set! a0-80 (the-as none (+ s4-0 v1-145))) + (set! v1-146 sv-1664) + (set! a1-35 (+ a1-0 -3)) + (set! a1-36 (sll a1-35 4)) + (set! a1-37 (the-as none (+ s5-1 a1-36))) + (set! a0-81 (veccross a0-80 v1-146 a1-37)) + (set! t9-14 vector-normalize!) + (set! v1-147 (+ a1-0 -2)) + (set! v1-148 (sll v1-147 1)) + (set! v1-149 (sll v1-148 4)) + (set! a0-82 (the-as none (+ s4-0 v1-149))) + (set! a1-38 1.0) + (call! a0-82 a1-38) + (set! v1-150 (+ a1-0 -2)) + (set! v1-151 (sll v1-150 1)) + (set! v1-152 (sll v1-151 4)) + (set! a0-83 (the-as none (+ s4-0 v1-152))) + (set! v1-153 (+ a1-0 -2)) + (set! v1-154 (sll v1-153 4)) + (set! v1-155 (+ a0-0 v1-154)) + (set! f0-32 (vec3dot a0-83 v1-155)) + (set! v1-156 (fpr->gpr f0-32)) + (set! f0-33 (gpr->fpr v1-156)) + (set! f0-34 (neg.s f0-33)) + (set! v1-157 (+ a1-0 -2)) + (set! v1-158 (sll v1-157 1)) + (set! v1-159 (sll v1-158 4)) + (set! v1-160 (the-as none (+ v1-159 s4-0))) + (s.f! (+ v1-160 12) f0-34) + (set! v1-161 *debug-segment*) + v1-161 + ) + (set! a0-84 (+ sp-0 1040)) + (set! (-> a0-84 quad) (the-as uint128 0)) + (set! a1-39 (+ sp-0 1056)) + (set! (-> a1-39 quad) (the-as uint128 0)) + (set! v1-163 a0-84) + (set! a2-18 (+ a1-0 -2)) + (set! a2-19 (sll a2-18 4)) + (set! a2-20 (+ a0-0 a2-19)) + (set! a3-14 0.5) + (set! f0-35 (gpr->fpr a3-14)) + (set! a3-15 sv-1664) + (set! v1-164 (vecplusfloattimes v1-163 a2-20 a3-15 f0-35)) + (set! v1-165 a1-39) + (set! a2-21 a0-84) + (set! a3-16 (+ a1-0 -2)) + (set! a3-17 (sll a3-16 1)) + (set! a3-18 (sll a3-17 4)) + (set! a3-19 (the-as none (+ s4-0 a3-18))) + (set! t0-4 819.2) + (set! f0-36 (gpr->fpr t0-4)) + (set! v1-166 (vecplusfloattimes v1-165 a2-21 a3-19 f0-36)) + (set! t9-15 camera-line) + (set! a2-22 L54) + (call! a0-84 a1-39 a2-22) + (set! v1-167 v0-17) + ) + (set! s1-1 (the-as none (+ sp-0 1072))) + (set! v1-168 1) + (s.w! (+ s1-1 100) v1-168) + (s.w! (+ s1-1 88) #f) + (s.w! (+ s1-1 92) #f) + (s.w! (+ s1-1 96) s2-0) + (set! v1-169 1) + (s.w! (+ s1-1 352) v1-169) + (s.w! (+ s1-1 116) #f) + (set! t9-16 mem-copy!) + (set! a0-85 (the-as none (+ s1-1 128))) + (set! a2-23 32) + (set! a1-40 s0-0) + (call! a0-85 a1-40 a2-23) + (set! a0-86 *collide-cache*) + (set! v1-170 (-> a0-86 type)) + (set! t9-17 (method-of-type v1-170 collide-cache-method-12)) + (set! a1-41 (the-as none s1-1)) + (call!) + (set! v1-171 v0-19) + (set! v1-172 40960000.0) + (set! f30-0 (gpr->fpr v1-172)) + (set! f0-37 0) + (set! s3-1 (+ a1-0 -3)) + (while (>=0.si s3-1) + (set! v1-173 (sll s3-1 4)) + (set! s2-1 (the-as none (+ s5-1 v1-173))) + (set! s1-2 (the-as none (+ sp-0 1616))) + (s.q! s1-2 0) + (set! v1-174 *collide-cache*) + (set! v1-175 (-> v1-174 num-tris)) + (set! s0-1 (+ v1-175 -1)) + (while (>=0.si s0-1) + (when (begin + (when (begin + (set! v1-176 *collide-cache*) + (set! v1-177 (-> v1-176 tris)) + (set! v1-178 (-> v1-177 vertex)) + (set! a0-87 (sll s0-1 6)) + (set! v1-179 (+ v1-178 a0-87)) + (set! sv-1712 v1-179) + (set! v1-180 *collide-cache*) + (set! v1-181 (-> v1-180 tris)) + (set! v1-182 (-> v1-181 vertex 1)) + (set! a0-88 (sll s0-1 6)) + (set! v1-183 (+ v1-182 a0-88)) + (set! sv-1680 v1-183) + (set! v1-184 *collide-cache*) + (set! v1-185 (-> v1-184 tris)) + (set! v1-186 (-> v1-185 vertex 2)) + (set! a0-89 (sll s0-1 6)) + (set! v1-187 (+ v1-186 a0-89)) + (set! sv-1696 v1-187) + (set! f0-38 (the-as none (l.f (+ s2-1 12)))) + (set! a0-90 (the-as none s2-1)) + (set! v1-188 sv-1712) + (set! f1-6 (vec3dot a0-90 v1-188)) + (set! v1-189 (fpr->gpr f1-6)) + (set! f1-7 (gpr->fpr v1-189)) + (set! f28-0 (+.s f0-38 f1-7)) + (set! f0-39 (the-as none (l.f (+ s2-1 12)))) + (set! a0-91 (the-as none s2-1)) + (set! v1-190 sv-1680) + (set! f1-8 (vec3dot a0-91 v1-190)) + (set! v1-191 (fpr->gpr f1-8)) + (set! f1-9 (gpr->fpr v1-191)) + (set! f26-0 (+.s f0-39 f1-9)) + (set! f0-40 (the-as none (l.f (+ s2-1 12)))) + (set! a0-92 (the-as none s2-1)) + (set! v1-192 sv-1696) + (set! f1-10 (vec3dot a0-92 v1-192)) + (set! v1-193 (fpr->gpr f1-10)) + (set! f1-11 (gpr->fpr v1-193)) + (set! f24-0 (+.s f0-40 f1-11)) + (set! t9-18 collide-planes-test0) + (set! a0-93 (the-as none s1-2)) + (set! a1-42 (fpr->gpr f28-0)) + (set! a2-24 (fpr->gpr f26-0)) + (set! a3-20 sv-1712) + (set! t0-5 sv-1680) + (set! v1-194 (sll s3-1 5)) + (set! t1-0 (the-as none (+ s4-0 v1-194))) + (set! t2-0 (the-as none s2-1)) + (set! v0-20 (call!)) + (set! f0-41 (gpr->fpr v0-20)) + (set! v1-195 40960000.0) + (set! f1-12 (gpr->fpr v1-195)) + (<.s f0-41 f1-12) + ) + (set! t9-19 collide-planes-test1) + (set! a0-94 gp-0) + (set! a1-43 (fpr->gpr f30-0)) + (set! a2-25 (the-as none s1-2)) + (set! a3-21 (the-as none s4-0)) + (set! t0-6 (the-as none s2-1)) + (set! v0-21 (call!)) + (set! f30-0 (gpr->fpr v0-21)) + (set! v1-197 (fpr->gpr f30-0)) + ) + (set! t9-20 collide-planes-test0) + (set! a0-95 (the-as none s1-2)) + (set! a1-44 (fpr->gpr f26-0)) + (set! a2-26 (fpr->gpr f24-0)) + (set! t0-7 (the-as none sv-1696)) + (set! v1-198 (sll s3-1 5)) + (set! t1-1 (the-as none (+ s4-0 v1-198))) + (set! t2-1 (the-as none s2-1)) + (set! a3-22 (the-as none sv-1680)) + (set! v0-22 (call!)) + (set! f0-42 (gpr->fpr v0-22)) + (set! v1-199 40960000.0) + (set! f1-13 (gpr->fpr v1-199)) + (<.s f0-42 f1-13) + ) + (set! t9-21 collide-planes-test1) + (set! a0-96 gp-0) + (set! a1-45 (fpr->gpr f30-0)) + (set! a2-27 (the-as none s1-2)) + (set! a3-23 (the-as none s4-0)) + (set! t0-8 (the-as none s2-1)) + (set! v0-23 (call!)) + (set! f30-0 (gpr->fpr v0-23)) + (set! v1-201 (fpr->gpr f30-0)) + ) + (when (begin + (set! t9-22 collide-planes-test0) + (set! a0-97 (the-as none s1-2)) + (set! a1-46 (fpr->gpr f24-0)) + (set! a2-28 (fpr->gpr f28-0)) + (set! v1-202 (sll s3-1 5)) + (set! t1-2 (the-as none (+ s4-0 v1-202))) + (set! t2-2 (the-as none s2-1)) + (set! a3-24 (the-as none sv-1696)) + (set! t0-9 (the-as none sv-1712)) + (set! v0-24 (call!)) + (set! f0-43 (gpr->fpr v0-24)) + (set! v1-203 40960000.0) + (set! f1-14 (gpr->fpr v1-203)) + (<.s f0-43 f1-14) + ) + (set! t9-23 collide-planes-test1) + (set! a0-98 gp-0) + (set! a1-47 (fpr->gpr f30-0)) + (set! a2-29 (the-as none s1-2)) + (set! a3-25 (the-as none s4-0)) + (set! t0-10 (the-as none s2-1)) + (set! v0-25 (call!)) + (set! f30-0 (gpr->fpr v0-25)) + (set! v1-205 (fpr->gpr f30-0)) + ) + (set! s0-1 (+ s0-1 -1)) + ) + (set! s3-1 (+ s3-1 -1)) + ) + (cond + ((begin (set! v1-210 40960000.0) (set! f0-44 (gpr->fpr v1-210)) (>=.s f30-0 f0-44)) + ) + (else + (when (begin (set! v1-211 *debug-segment*) v1-211) + (set! t9-24 camera-cross) + (set! a0-99 (the-as none (+ s5-1 0))) + (set! a1-48 (the-as none (+ s4-0 0))) + (set! a3-26 L53) + (set! t0-11 #x43cccccd) + (set! a2-30 gp-0) + (call! a0-99 a1-48 a2-30 a3-26 t0-11) + ) + (set! v0-28 #t) + ) + ) + (ret-none) + ) diff --git a/test/decompiler/reference/jakx/engine/collide/collide-probe_REF.gc b/test/decompiler/reference/jakx/engine/collide/collide-probe_REF.gc new file mode 100644 index 0000000000..ad69b27196 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/collide/collide-probe_REF.gc @@ -0,0 +1,477 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function creates-new-method? +(defun creates-new-method? ((arg0 type) (arg1 int)) + (let ((v1-1 (-> arg0 parent allocated-length))) + (-> arg0 allocated-length) + (>= arg1 (the-as int v1-1)) + ) + ) + +;; definition for function overrides-parent-method? +(defun overrides-parent-method? ((arg0 type) (arg1 int)) + (!= (-> arg0 method-table arg1) (-> arg0 parent method-table arg1)) + ) + +;; definition for function describe-methods +(defun describe-methods ((arg0 type)) + (let ((s5-0 (-> arg0 allocated-length))) + (dotimes (s4-0 (the-as int s5-0)) + (let ((s3-0 arg0)) + (format #t "~3d:~%" s4-0) + (while (!= s3-0 basic) + (cond + ((creates-new-method? s3-0 s4-0) + (format #t " created by ~s.~%" (symbol->string (-> s3-0 symbol))) + (set! s3-0 basic) + ) + ((overrides-parent-method? s3-0 s4-0) + (format #t " overridden by ~s.~%" (symbol->string (-> s3-0 symbol))) + (set! s3-0 (-> s3-0 parent)) + ) + (else + (set! s3-0 (-> s3-0 parent)) + ) + ) + ) + ) + ) + ) + #f + ) + +;; definition for function indent-to +;; WARN: Return type mismatch symbol vs none. +(defun indent-to ((arg0 int)) + (dotimes (s5-0 arg0) + (format #t " ") + ) + (none) + ) + +;; definition for function probe-traverse-draw-node +;; WARN: Return type mismatch int vs none. +(defun probe-traverse-draw-node ((arg0 draw-node) (arg1 int)) + (indent-to arg1) + (format + #t + "[~08x] child-count: ~d, flags: ~d, dist: ~f, child: ~a~%" + arg0 + (-> arg0 child-count) + (-> arg0 flags) + (-> arg0 distance) + (-> arg0 child) + ) + (cond + ((nonzero? (-> arg0 flags)) + (let ((s4-0 (-> arg0 child))) + (dotimes (s3-0 (the-as int (-> arg0 child-count))) + (probe-traverse-draw-node (the-as draw-node (+ (the-as uint s4-0) (* s3-0 32))) (+ arg1 1)) + ) + ) + ) + (else + ) + ) + 0 + (none) + ) + +;; definition for function probe-traverse-inline-array-node +;; WARN: Return type mismatch symbol vs none. +(defun probe-traverse-inline-array-node ((arg0 drawable-inline-array-node) (arg1 int)) + (indent-to arg1) + (format #t "[~08x] drawable-inline-array-node: length = ~d~%" arg0 (-> arg0 length)) + (let ((s4-0 (-> arg0 length))) + (dotimes (s3-0 s4-0) + (indent-to arg1) + (format #t "(~3d) ~a~%" s3-0 (-> arg0 data s3-0)) + (if (= (-> arg0 data s3-0 type) draw-node) + (probe-traverse-draw-node (-> arg0 data s3-0) (+ arg1 1)) + ) + ) + ) + (none) + ) + +;; definition for function probe-traverse-collide-fragment +;; WARN: Return type mismatch symbol vs none. +(defun probe-traverse-collide-fragment ((arg0 drawable-tree-collide-fragment) (arg1 int)) + (indent-to arg1) + (format #t "[~08x] drawable-tree-collide-fragment: length = ~d~%" arg0 (-> arg0 length)) + (let ((s4-0 (-> arg0 length))) + (dotimes (s3-0 (+ s4-0 -1)) + (indent-to arg1) + (if (= (-> arg0 data s3-0 type) drawable-inline-array-node) + (probe-traverse-inline-array-node (the-as drawable-inline-array-node (-> arg0 data s3-0)) (+ arg1 1)) + (format #t "unknown: ~a~%" (-> arg0 data s3-0)) + ) + ) + ) + (none) + ) + +;; definition of type collide-probe-stack-elem +(deftype collide-probe-stack-elem (structure) + ((child uint32) + (count uint32) + ) + ) + +;; definition for method 3 of type collide-probe-stack-elem +(defmethod inspect ((this collide-probe-stack-elem)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'collide-probe-stack-elem) + (format #t "~1Tchild: #x~X~%" (-> this child)) + (format #t "~1Tcount: ~D~%" (-> this count)) + (label cfg-4) + this + ) + +;; definition of type collide-probe-stack +(deftype collide-probe-stack (structure) + ((data collide-probe-stack-elem 1024 :inline) + ) + ) + +;; definition for method 3 of type collide-probe-stack +(defmethod inspect ((this collide-probe-stack)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'collide-probe-stack) + (format #t "~1Tdata[1024] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition for symbol *collide-probe-stack*, type collide-probe-stack +(define *collide-probe-stack* (the-as collide-probe-stack (+ 4192 #x70000000))) + +;; definition for symbol collide-vu0-block, type vu-function +(define collide-vu0-block (new 'static 'vu-function :length 90 :qlength 45)) + +;; definition for function collide-probe-node +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for function print-out +(defun print-out ((arg0 int)) + (format *stdcon* "~d~%" arg0) + ) + +;; definition for function collide-probe-instance-tie-collide-frags +;; WARN: Return type mismatch int vs none. +(defun collide-probe-instance-tie-collide-frags () + 0 + (none) + ) + +;; definition for function collide-probe-instance-tie +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for function collide-probe-collide-fragment-tree-make-list +;; ERROR: failed type prop at 6: Could not figure out load: (set! v1 (l.h (+ v1 2))) +;; ERROR: Function may read a register that is not set: a2 +(defun collide-probe-collide-fragment-tree-make-list ((a0-0 drawable-tree-collide-fragment) (a1-0 collide-list)) + (local-vars + (v0-0 none) + (v0-1 none) + (v1-0 int) + (v1-1 drawable) + (v1-2 none) + (a0-1 drawable) + (a3-0 int) + (t9-0 (function (inline-array draw-node) int collide-list int)) + ) + (cond + ((begin (set! v1-0 1) (set! a3-0 (-> a0-0 length)) (<.si v1-0 a3-0)) + (set! v1-1 (-> a0-0 data 0)) + (set! t9-0 collide-probe-node) + (set! a0-1 (+ v1-1 32)) + (set! v1-2 (the-as none (l.h (+ v1-1 2)))) + (set! t0-0 (the-as none a1-0)) + (set! a3-1 (the-as none a2-0)) + (set! a1-1 (the-as none v1-2)) + (set! a2-1 (the-as none t0-0)) + (call!) + (set! v1-3 (the-as none v0-0)) + ) + (else + ) + ) + (set! v0-1 (the-as none 0)) + (ret-none) + ) + +;; definition for function collide-probe-instance-tie-tree-make-list +;; ERROR: failed type prop at 6: Could not figure out load: (set! v1 (l.h (+ v1 2))) +;; WARN: Return type mismatch none vs int. +;; ERROR: Function may read a register that is not set: a2 +(defun collide-probe-instance-tie-tree-make-list ((a0-0 drawable-tree-instance-tie) (a1-0 collide-list)) + (local-vars + (v0-0 none) + (v0-1 none) + (v0-2 none) + (v1-0 int) + (v1-2 drawable) + (v1-3 none) + (v1-5 none) + (v1-7 none) + (v1-8 none) + (a0-1 drawable) + (a0-2 none) + (a3-0 int) + (a3-1 none) + (a3-2 none) + (a3-3 none) + (t9-0 (function object int collide-list int int)) + (t9-1 none) + ) + (cond + ((begin (set! v1-0 1) (set! a3-0 (-> a0-0 length)) (<.si v1-0 a3-0)) + (set! v1-2 (-> a0-0 data 0)) + (set! t9-0 collide-probe-instance-tie) + (set! a0-1 (+ v1-2 32)) + (set! v1-3 (the-as none (l.h (+ v1-2 2)))) + (set! t1-0 (the-as none a1-0)) + (set! a3-1 (the-as none 1)) + (set! t0-0 (the-as none a2-0)) + (set! a1-1 (the-as none v1-3)) + (set! a2-1 (the-as none t1-0)) + (call!) + (set! v1-4 (the-as none v0-0)) + ) + ((begin (set! v1-5 (the-as none 1)) (set! a3-2 (the-as none (-> a0-0 length))) (= a3-2 v1-5)) + (set! v1-7 (the-as none (l.wu (+ a0-0 28)))) + (set! t9-1 (the-as none collide-probe-instance-tie)) + (set! a0-2 (the-as none (+ v1-7 32))) + (set! v1-8 (the-as none (l.h (+ v1-7 2)))) + (set! t1-1 (the-as none a1-0)) + (set! a3-3 (the-as none 0)) + (set! t0-1 (the-as none a2-0)) + (set! a1-2 (the-as none v1-8)) + (set! a2-2 (the-as none t1-1)) + (call!) + (set! v1-9 (the-as none v0-1)) + ) + ) + (set! v0-2 (the-as none 0)) + (ret-value v0-2) + ) + +;; definition for function collide-upload-vu0 +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.d! (+ a0-5 8) 0) at op 17 +(defun collide-upload-vu0 () + (let ((gp-0 *vu0-dma-list*)) + (let ((v1-0 gp-0)) + (set! (-> v1-0 base) (-> v1-0 data)) + (set! (-> v1-0 end) (the-as pointer (+ (+ (-> v1-0 allocated-length) 28) (the-as int v1-0)))) + ) + (dma-buffer-add-vu-function gp-0 collide-vu0-block 0) + (let* ((v1-1 gp-0) + (a0-5 (-> v1-1 base)) + ) + (set! (-> (the-as (pointer int64) a0-5)) #x70000000) + (s.d! (+ a0-5 8) 0) + (set! (-> v1-1 base) (&+ a0-5 16)) + ) + (.sync.l) + (dma-buffer-send-chain (the-as dma-bank-source #x10008000) gp-0) + ) + 0 + (none) + ) + +;; definition for function collide-probe-make-list +;; ERROR: failed type prop at 23: Could not figure out load: (set! a1 (l.h (+ v1 2))) +;; WARN: Return type mismatch symbol vs none. +;; ERROR: Function may read a register that is not set: a2 +(defun collide-probe-make-list ((a0-0 level) (a1-0 collide-list)) + (local-vars + (v0-0 none) + (v0-1 none) + (v0-2 none) + (v0-3 none) + (v1-0 int) + (v1-1 int) + (v1-2 int) + (v1-3 drawable-tree) + (v1-4 drawable) + (v1-6 none) + (v1-8 none) + (v1-9 none) + (v1-12 none) + (v1-14 int) + (a0-1 type) + (a0-2 int) + (a0-4 drawable) + (a0-5 none) + (a0-7 none) + (a0-8 none) + (a0-9 none) + (a0-10 none) + (a1-1 type) + (a1-2 int) + (a1-3 none) + (a1-4 none) + (a1-5 none) + (a1-6 none) + (a1-7 none) + (a1-8 none) + (a2-0 none) + (a3-0 none) + (a3-1 none) + (s3-0 int) + (s4-0 bsp-header) + (s4-1 drawable-tree-array) + (t9-0 (function none)) + (t9-1 (function object int collide-list int int)) + (t9-2 none) + (t9-3 none) + ) + (set! s4-0 (-> a0-0 bsp)) + (set! v1-0 0) + (set! t9-0 collide-upload-vu0) + (call!) + (set! s4-1 (-> s4-0 drawable-trees)) + (set! s3-0 0) + (while (begin (set! v1-14 (-> s4-1 length)) (<.si s3-0 v1-14)) + (cond + ((begin + (set! v1-1 (sll s3-0 2)) + (set! v1-2 (+ v1-1 s4-1)) + (set! v1-3 (dynamic-array-field-access v1-2 trees PLACEHOLDER)) + (set! a0-1 drawable-tree-instance-tie) + (set! a1-1 (-> v1-3 type)) + (= a1-1 a0-1) + ) + (cond + ((begin (set! a2-1 a1-0) (set! t0-0 a2-0) (set! a0-2 1) (set! a1-2 (-> v1-3 length)) (<.si a0-2 a1-2)) + (set! v1-4 (-> v1-3 data 0)) + (set! t9-1 collide-probe-instance-tie) + (set! a0-4 (+ v1-4 32)) + (set! a1-3 (the-as none (l.h (+ v1-4 2)))) + (set! a3-0 (the-as none 1)) + (call!) + (set! v1-5 (the-as none v0-1)) + ) + ((begin (set! a0-5 (the-as none 1)) (set! a1-4 (the-as none (-> v1-3 length))) (= a1-4 a0-5)) + (set! v1-6 (the-as none (l.wu (+ v1-3 28)))) + (set! t9-2 (the-as none collide-probe-instance-tie)) + (set! a0-7 (the-as none (+ v1-6 32))) + (set! a1-5 (the-as none (l.h (+ v1-6 2)))) + (set! a3-1 (the-as none 0)) + (call!) + (set! v1-7 (the-as none v0-2)) + ) + ) + (set! v1-8 (the-as none 0)) + ) + (else + (cond + ((begin + (set! a0-8 (the-as none drawable-tree-collide-fragment)) + (set! a1-6 (the-as none (-> v1-3 type))) + (= a1-6 a0-8) + ) + (cond + ((begin + (set! a2-2 (the-as none a1-0)) + (set! a3-2 (the-as none a2-0)) + (set! a0-9 (the-as none 1)) + (set! a1-7 (the-as none (l.h (+ v1-3 2)))) + (<.si a0-9 a1-7) + ) + (set! v1-9 (the-as none (l.wu (+ v1-3 28)))) + (set! t9-3 (the-as none collide-probe-node)) + (set! a0-10 (the-as none (+ v1-9 32))) + (set! a1-8 (the-as none (l.h (+ v1-9 2)))) + (call!) + (set! v1-10 (the-as none v0-3)) + ) + (else + ) + ) + (set! v1-12 (the-as none 0)) + ) + (else + ) + ) + ) + ) + (set! s3-0 (the-as int (+ s3-0 1))) + ) + (ret-none) + ) + +;; definition for function distc +(defun distc ((arg0 vector) (arg1 vector)) + (sqrtf (+ (square (- (-> arg0 x) (-> arg1 x))) (square (- (-> arg0 z) (-> arg1 z))))) + ) + +;; definition for function interpolate +(defun interpolate ((arg0 float) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + (let ((f0-1 (- arg3 arg1)) + (f1-2 (- arg4 arg2)) + (f3-1 (- arg0 arg1)) + ) + (+ arg2 (/ (* f3-1 f1-2) f0-1)) + ) + ) + +;; definition for function misty-ambush-height +(defun misty-ambush-height ((arg0 vector)) + (let* ((a1-0 (new 'static 'vector :data (new 'static 'array float 4 -808960.0 111656.96 3924992.0 0.0))) + (f0-0 (distc arg0 a1-0)) + ) + (cond + ((< f0-0 52019.2) + 111656.96 + ) + ((>= 58982.4 f0-0) + (interpolate f0-0 52019.2 111656.96 58982.4 116776.96) + ) + ((>= 124436.48 f0-0) + (interpolate f0-0 58982.4 116776.96 124436.48 114688.0) + ) + ((>= 219217.92 f0-0) + (interpolate f0-0 124436.48 114688.0 219217.92 113254.4) + ) + (else + 113254.4 + ) + ) + ) + ) + +;; definition for function misty-ambush-height-probe +(defun misty-ambush-height-probe ((arg0 vector) (arg1 float)) + (let ((f0-0 (misty-ambush-height arg0))) + (cond + ((< f0-0 (-> arg0 y)) + (/ (- (-> arg0 y) f0-0) arg1) + ) + (else + (format 0 "WARNING: ~%height = ~f, pos.y = ~f" (/ f0-0 METER_LENGTH) (/ (-> arg0 y) METER_LENGTH)) + -1.0 + ) + ) + ) + ) + +;; definition for function pke-collide-test +;; WARN: Return type mismatch int vs none. +(defun pke-collide-test () + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/collide/collide-touch_REF.gc b/test/decompiler/reference/jakx/engine/collide/collide-touch_REF.gc new file mode 100644 index 0000000000..31778d3912 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/collide/collide-touch_REF.gc @@ -0,0 +1,580 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 10 of type touching-prims-entry-pool +(defmethod get-free-node-count ((this touching-prims-entry-pool)) + (let ((v0-0 0)) + (let ((v1-0 (-> this head))) + (while v1-0 + (+! v0-0 1) + (set! v1-0 (-> v1-0 next)) + (nop!) + (nop!) + (nop!) + ) + ) + v0-0 + ) + ) + +;; definition for method 9 of type touching-prims-entry-pool +(defmethod alloc-node ((this touching-prims-entry-pool)) + (let ((gp-0 (-> this head))) + (cond + (gp-0 + (let ((v1-0 (-> gp-0 next))) + (set! (-> this head) v1-0) + (if v1-0 + (set! (-> v1-0 prev) #f) + ) + ) + (set! (-> gp-0 allocated?) #t) + (set! (-> gp-0 next) #f) + (set! (-> gp-0 prev) #f) + ) + (else + (format 0 "ERROR: touching-prims-entry-pool::alloc-node() failed!~%") + ) + ) + gp-0 + ) + ) + +;; definition for method 12 of type touching-prims-entry-pool +(defmethod free-node ((this touching-prims-entry-pool) (arg0 touching-prims-entry)) + (when (-> arg0 allocated?) + (set! (-> arg0 allocated?) #f) + (let ((v1-1 (-> this head))) + (set! (-> arg0 next) v1-1) + (set! (-> arg0 prev) #f) + (set! (-> this head) arg0) + (when v1-1 + (set! (-> v1-1 prev) arg0) + arg0 + ) + ) + ) + ) + +;; definition for method 14 of type touching-shapes-entry +;; WARN: Return type mismatch int vs none. +(defmethod free-touching-prims-list ((this touching-shapes-entry)) + (when (-> this cshape1) + (set! (-> this cshape1) #f) + (let ((gp-0 (-> this head))) + (when gp-0 + (set! (-> this head) #f) + (let ((s5-0 *touching-prims-entry-pool*)) + (while gp-0 + (let ((a1-0 gp-0)) + (set! gp-0 (-> a1-0 next)) + (free-node s5-0 a1-0) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 10 of type touching-list +;; WARN: Return type mismatch int vs none. +(defmethod free-nodes ((this touching-list)) + (let ((s5-0 (the-as object (-> this touching-shapes)))) + (countdown (s4-0 (-> this num-touching-shapes)) + (free-touching-prims-list (the-as touching-shapes-entry s5-0)) + (set! s5-0 (&+ (the-as touching-shapes-entry s5-0) 32)) + ) + ) + (set! (-> this num-touching-shapes) 0) + (set! (-> this resolve-u) 0) + 0 + (none) + ) + +;; definition for method 13 of type touching-list +;; WARN: Return type mismatch object vs touching-shapes-entry. +(defmethod get-shapes-entry ((this touching-list) (arg0 collide-shape) (arg1 collide-shape)) + (let ((v0-0 (the-as object (-> this touching-shapes)))) + (let ((v1-0 (the-as touching-shapes-entry #f))) + (countdown (a3-0 (-> this num-touching-shapes)) + (let ((t0-0 (-> (the-as touching-shapes-entry v0-0) cshape1))) + (set! v1-0 (cond + (t0-0 + (if (or (and (= t0-0 arg0) (= (-> (the-as touching-shapes-entry v0-0) cshape2) arg1)) + (and (= t0-0 arg1) (= (-> (the-as touching-shapes-entry v0-0) cshape2) arg0)) + ) + (return (the-as touching-shapes-entry v0-0)) + ) + v1-0 + ) + (else + (the-as touching-shapes-entry v0-0) + ) + ) + ) + ) + (set! v0-0 (&+ (the-as touching-shapes-entry v0-0) 32)) + ) + (cond + (v1-0 + (set! v0-0 v1-0) + ) + (else + (when (>= (-> this num-touching-shapes) 32) + (format 0 "ERROR: touching-list::get-shapes-entry() failed!~%") + (return (the-as touching-shapes-entry #f)) + ) + (+! (-> this num-touching-shapes) 1) + ) + ) + ) + (set! (-> (the-as touching-shapes-entry v0-0) cshape1) arg0) + (set! (-> (the-as touching-shapes-entry v0-0) cshape2) arg1) + (set! (-> (the-as touching-shapes-entry v0-0) head) #f) + (set! (-> (the-as touching-shapes-entry v0-0) resolve-u) 1) + (set! (-> this resolve-u) 1) + (set! (-> (the-as touching-shapes-entry v0-0) handle1) (process->handle (-> arg0 process))) + (set! (-> (the-as touching-shapes-entry v0-0) handle2) (process->handle (-> arg1 process))) + (the-as touching-shapes-entry v0-0) + ) + ) + +;; definition of type add-prims-touching-work +(deftype add-prims-touching-work (structure) + ((tri1 collide-tri-result) + (tri2 collide-tri-result) + ) + ) + +;; definition for method 3 of type add-prims-touching-work +(defmethod inspect ((this add-prims-touching-work)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'add-prims-touching-work) + (format #t "~1Ttri1: #~%" (-> this tri1)) + (format #t "~1Ttri2: #~%" (-> this tri2)) + (label cfg-4) + this + ) + +;; definition for method 9 of type touching-list +;; WARN: Return type mismatch int vs none. +;; WARN: Function (method 9 touching-list) has a return type of none, but the expression builder found a return statement. +(defmethod add-touching-prims ((this touching-list) + (arg0 collide-shape-prim) + (arg1 collide-shape-prim) + (arg2 float) + (arg3 collide-tri-result) + (arg4 collide-tri-result) + ) + (let ((gp-0 (new 'stack-no-clear 'add-prims-touching-work))) + (set! (-> gp-0 tri1) arg3) + (set! (-> gp-0 tri2) arg4) + (let ((s2-0 (get-shapes-entry this (-> arg0 cshape) (-> arg1 cshape)))) + (when s2-0 + (when (= (-> s2-0 cshape1) (-> arg1 cshape)) + (let ((v1-4 arg0)) + (set! arg0 arg1) + (set! arg1 v1-4) + ) + ) + (let ((s0-0 (-> s2-0 head))) + (while s0-0 + (when (and (= (-> s0-0 prim1 cprim) arg0) (= (-> s0-0 prim2 cprim) arg1)) + (when (< arg2 (-> s0-0 u)) + (-> s0-0 u) + (let ((v1-12 (-> s0-0 prim1)) + (a1-2 (-> gp-0 tri1)) + ) + (cond + (a1-2 + (set! (-> v1-12 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-12 tri)) (the-as pointer a1-2) 88) + ) + (else + (set! (-> v1-12 has-tri?) #f) + ) + ) + ) + (let ((v1-15 (-> s0-0 prim2)) + (a1-3 (-> gp-0 tri2)) + ) + (cond + (a1-3 + (set! (-> v1-15 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-15 tri)) (the-as pointer a1-3) 88) + ) + (else + (set! (-> v1-15 has-tri?) #f) + ) + ) + ) + ) + (return 0) + ) + (set! s0-0 (-> s0-0 next)) + ) + ) + (let ((s0-1 (alloc-node *touching-prims-entry-pool*))) + (when s0-1 + (let ((v1-22 (-> s2-0 head))) + (set! (-> s0-1 next) v1-22) + (set! (-> s0-1 prev) #f) + (set! (-> s2-0 head) s0-1) + (if v1-22 + (set! (-> v1-22 prev) s0-1) + ) + ) + (set! (-> s0-1 u) arg2) + (when (>= arg2 0.0) + (set! (-> s2-0 resolve-u) 1) + (set! (-> this resolve-u) 1) + ) + (let ((v1-26 (-> s0-1 prim1)) + (a1-4 (-> gp-0 tri1)) + ) + (set! (-> v1-26 cprim) arg0) + (cond + (a1-4 + (set! (-> v1-26 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-26 tri)) (the-as pointer a1-4) 88) + ) + (else + (set! (-> v1-26 has-tri?) #f) + ) + ) + ) + (let ((v1-29 (-> s0-1 prim2)) + (a1-5 (-> gp-0 tri2)) + ) + (set! (-> v1-29 cprim) arg1) + (cond + (a1-5 + (set! (-> v1-29 has-tri?) #t) + (mem-copy! (the-as pointer (-> v1-29 tri)) (the-as pointer a1-5) 88) + ) + (else + (set! (-> v1-29 has-tri?) #f) + ) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 11 of type touching-list +;; WARN: Return type mismatch int vs none. +(defmethod update-from-step-size ((this touching-list) (arg0 float)) + (when (nonzero? (-> this resolve-u)) + (set! (-> this resolve-u) 0) + (let ((s5-0 (the-as object (-> this touching-shapes)))) + (countdown (s4-0 (-> this num-touching-shapes)) + (when (nonzero? (-> (the-as touching-shapes-entry s5-0) resolve-u)) + (set! (-> (the-as touching-shapes-entry s5-0) resolve-u) 0) + (when (-> (the-as touching-shapes-entry s5-0) cshape1) + (let ((s3-0 (-> (the-as touching-shapes-entry s5-0) head))) + (while s3-0 + (let ((f0-0 (-> s3-0 u))) + (set! s3-0 (cond + ((>= f0-0 0.0) + (cond + ((>= arg0 f0-0) + (set! (-> s3-0 u) -1.0) + (set! s3-0 (-> s3-0 next)) + ) + (else + (let ((a1-1 s3-0)) + (let ((v1-8 (-> s3-0 next))) + (let ((a0-1 (-> s3-0 prev))) + (if a0-1 + (set! (-> a0-1 next) v1-8) + (set! (-> (the-as touching-shapes-entry s5-0) head) v1-8) + ) + (if v1-8 + (set! (-> v1-8 prev) a0-1) + ) + ) + (set! s3-0 v1-8) + ) + (free-node *touching-prims-entry-pool* a1-1) + ) + ) + ) + s3-0 + ) + (else + (-> s3-0 next) + ) + ) + ) + ) + ) + ) + (if (not (-> (the-as touching-shapes-entry s5-0) head)) + (set! (-> (the-as touching-shapes-entry s5-0) cshape1) #f) + ) + ) + ) + (set! s5-0 (&+ (the-as touching-shapes-entry s5-0) 32)) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 12 of type touching-list +;; WARN: Return type mismatch int vs none. +(defmethod send-events-for-touching-shapes ((this touching-list)) + (let ((gp-0 (the-as object (-> this touching-shapes)))) + (countdown (s5-0 (-> this num-touching-shapes)) + (let ((s3-0 (-> (the-as touching-shapes-entry gp-0) cshape1))) + (when s3-0 + (let ((s4-0 (handle->process (-> (the-as touching-shapes-entry gp-0) handle1))) + (s2-0 (handle->process (-> (the-as touching-shapes-entry gp-0) handle2))) + ) + (when (and s4-0 s2-0) + (let ((s1-0 (-> (the-as touching-shapes-entry gp-0) cshape2))) + (when (< (-> s3-0 event-priority) (-> s1-0 event-priority)) + (let ((v1-9 s3-0)) + (set! s3-0 s1-0) + (set! s1-0 v1-9) + ) + (let ((v1-11 s4-0)) + (set! s4-0 s2-0) + (set! s2-0 v1-11) + ) + ) + (let ((v1-13 (-> s3-0 event-self))) + (if v1-13 + (send-event s4-0 v1-13 :from s2-0 gp-0) + ) + ) + (let ((v1-14 (-> s3-0 event-other))) + (if v1-14 + (send-event s2-0 v1-14 :from s4-0 gp-0) + ) + ) + (let ((v1-15 (-> s1-0 event-self))) + (if v1-15 + (send-event s2-0 v1-15 :from s4-0 gp-0) + ) + ) + (let ((v1-16 (-> s1-0 event-other))) + (if v1-16 + (send-event s4-0 v1-16 :from s2-0 gp-0) + ) + ) + ) + ) + ) + ) + ) + (set! gp-0 (&+ (the-as touching-shapes-entry gp-0) 32)) + ) + ) + 0 + (none) + ) + +;; definition for method 12 of type touching-shapes-entry +(defmethod prims-touching? ((this touching-shapes-entry) (arg0 collide-shape) (arg1 uint)) + (cond + ((= (-> this cshape1) arg0) + (let ((v1-1 (-> this head))) + (while v1-1 + (if (logtest? (-> v1-1 prim1 cprim prim-id) arg1) + (return v1-1) + ) + (set! v1-1 (-> v1-1 next)) + ) + ) + ) + ((= (-> this cshape2) arg0) + (let ((v1-4 (-> this head))) + (while v1-4 + (if (logtest? (-> v1-4 prim2 cprim prim-id) arg1) + (return v1-4) + ) + (set! v1-4 (-> v1-4 next)) + ) + ) + ) + (else + (format 0 "ERROR: touching-shapes-entry::prims-touching? : Bogus cshape value!~%") + ) + ) + (the-as touching-prims-entry #f) + ) + +;; definition for method 13 of type touching-shapes-entry +;; WARN: Return type mismatch touching-prims-entry vs basic. +(defmethod prims-touching-action? ((this touching-shapes-entry) (arg0 collide-shape) (arg1 collide-action) (arg2 collide-action)) + (cond + ((= (-> this cshape1) arg0) + (let ((v1-1 (-> this head))) + (while v1-1 + (let ((a0-1 (-> v1-1 prim1 cprim))) + (if (and (logtest? arg1 (-> a0-1 prim-core action)) (not (logtest? arg2 (-> a0-1 prim-core action)))) + (return (the-as basic v1-1)) + ) + ) + (set! v1-1 (-> v1-1 next)) + ) + ) + ) + ((= (-> this cshape2) arg0) + (let ((v1-4 (-> this head))) + (while v1-4 + (let ((a0-5 (-> v1-4 prim2 cprim))) + (if (and (logtest? arg1 (-> a0-5 prim-core action)) (not (logtest? arg2 (-> a0-5 prim-core action)))) + (return (the-as basic v1-4)) + ) + ) + (set! v1-4 (-> v1-4 next)) + ) + ) + ) + (else + (format 0 "ERROR: touching-shapes-entry::prims-touching-action? : Bogus cshape value!~%") + ) + ) + (the-as basic #f) + ) + +;; definition for method 11 of type touching-shapes-entry +(defmethod get-touched-shape ((this touching-shapes-entry) (arg0 collide-shape)) + (cond + ((= (-> this cshape1) arg0) + (return (-> this cshape2)) + ) + ((= (-> this cshape2) arg0) + (return (-> this cshape1)) + ) + ) + (the-as collide-shape #f) + ) + +;; definition for method 11 of type touching-prims-entry +(defmethod get-touched-prim ((this touching-prims-entry) (arg0 collide-shape) (arg1 touching-shapes-entry)) + (cond + ((= (-> arg1 cshape1) arg0) + (return (-> this prim1 cprim)) + ) + ((= (-> arg1 cshape2) arg0) + (return (-> this prim2 cprim)) + ) + ) + (the-as collide-shape-prim #f) + ) + +;; definition for method 12 of type touching-prims-entry +(defmethod get-touched-tri ((this touching-prims-entry) (arg0 collide-shape) (arg1 touching-shapes-entry)) + (let ((v0-0 (the-as collide-tri-result #f))) + (cond + ((not this) + ) + ((= (-> arg1 cshape1) arg0) + (let ((v1-4 (-> this prim1))) + (if (-> v1-4 has-tri?) + (set! v0-0 (-> v1-4 tri)) + ) + ) + ) + ((= (-> arg1 cshape2) arg0) + (let ((v1-7 (-> this prim2))) + (if (-> v1-7 has-tri?) + (set! v0-0 (-> v1-7 tri)) + ) + ) + ) + ) + v0-0 + ) + ) + +;; definition for method 9 of type touching-prims-entry +(defmethod touching-prims-entry-method-9 ((this touching-prims-entry) (arg0 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let* ((s4-0 (-> this prim1 cprim)) + (v1-0 (-> this prim2 cprim)) + (gp-1 + (vector-! (new 'stack-no-clear 'vector) (-> v1-0 prim-core world-sphere) (-> s4-0 prim-core world-sphere)) + ) + ) + (let ((f1-2 (- (- (vector-length gp-1) (-> v1-0 prim-core world-sphere w)) (-> s4-0 prim-core world-sphere w)))) + (vector-normalize! gp-1 (+ (-> s4-0 prim-core world-sphere w) (/ f1-2 2))) + ) + (let ((v1-2 arg0)) + (let ((a0-5 (-> s4-0 prim-core))) + (.lvf vf4 (&-> gp-1 quad)) + (.lvf vf5 (&-> a0-5 world-sphere quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-2 quad) vf6) + ) + ) + arg0 + ) + ) + +;; definition for method 10 of type touching-prims-entry +(defmethod get-middle-of-bsphere-overlap ((this touching-prims-entry) (arg0 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (-> this prim1 cprim)) + (a2-0 (-> this prim2 cprim)) + (a0-1 arg0) + ) + (let ((a2-1 (-> a2-0 prim-core)) + (v1-1 (-> v1-0 prim-core)) + ) + (.lvf vf4 (&-> a2-1 world-sphere quad)) + (.lvf vf5 (&-> v1-1 world-sphere quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-1 quad) vf6) + ) + (vector-float*! arg0 arg0 0.5) + arg0 + ) + ) + +;; definition for function get-intersect-point +;; INFO: Used lq/sq +(defun get-intersect-point ((arg0 vector) (arg1 touching-prims-entry) (arg2 collide-shape) (arg3 touching-shapes-entry)) + (when arg1 + (let ((a0-2 (get-touched-tri arg1 arg2 arg3))) + (if a0-2 + (set! (-> arg0 quad) (-> a0-2 intersect quad)) + (touching-prims-entry-method-9 arg1 arg0) + ) + ) + ) + arg0 + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/collide/collide_REF.gc b/test/decompiler/reference/jakx/engine/collide/collide_REF.gc new file mode 100644 index 0000000000..d8da36c1e9 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/collide/collide_REF.gc @@ -0,0 +1,23 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *collide-vif0-init*, type (array uint32) +(define *collide-vif0-init* (new 'static 'boxed-array :type uint32 + #x30000000 + #x4d000000 + #x4d000000 + #x4d000000 + #x3f800000 + #x5000001 + #x20000000 + #x40404040 + #x1000404 + #x0 + #x0 + #x0 + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/collide/main-collide_REF.gc b/test/decompiler/reference/jakx/engine/collide/main-collide_REF.gc new file mode 100644 index 0000000000..f277cdd1c0 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/collide/main-collide_REF.gc @@ -0,0 +1,201 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function drawable-sphere-box-intersect? +;; INFO: Used lq/sq +(defun drawable-sphere-box-intersect? ((arg0 drawable) (arg1 bounding-box4w)) + (local-vars (v1-1 uint128) (v1-2 uint128) (v1-3 uint128) (a0-1 uint128) (a1-2 uint128) (a2-0 uint128)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (nop!) + (nop!) + (.lvf vf1 (&-> arg0 bsphere quad)) + (.add.w.vf.xyz vf2 vf1 vf1) + (let ((v1-0 (-> arg1 min quad))) + (.sub.w.vf.xyz vf1 vf1 vf1) + (let ((a1-1 (-> arg1 max quad))) + (.ftoi.vf vf4 vf2) + (nop!) + (.ftoi.vf vf3 vf1) + (nop!) + (.mov a0-1 vf4) + (nop!) + (.mov a2-0 vf3) + (nop!) + (.pcgtw a1-2 a2-0 a1-1) + ) + (nop!) + (.pcgtw v1-1 v1-0 a0-1) + ) + (nop!) + (.por v1-2 a1-2 v1-1) + (nop!) + (.ppach v1-3 (the-as uint128 0) v1-2) + (nop!) + (let ((v1-4 (shl (the-as int v1-3) 16))) + (nop!) + (zero? v1-4) + ) + ) + ) + +;; definition for function instance-sphere-box-intersect? +;; INFO: Used lq/sq +(defun instance-sphere-box-intersect? ((arg0 drawable) (arg1 instance-tie) (arg2 bounding-box4w)) + (local-vars + (v1-3 uint128) + (v1-4 uint128) + (v1-5 uint128) + (a0-2 uint128) + (a1-2 uint128) + (a2-1 uint128) + (a3-1 uint128) + (a3-3 uint128) + (a3-4 uint128) + (t0-1 uint128) + (t0-2 uint128) + (t1-0 uint128) + (t2-1 uint128) + (t2-2 uint128) + ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf10 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (nop!) + (let ((v1-0 (-> arg1 max-scale))) + (nop!) + (let ((a3-0 (the-as uint128 (-> arg1 origin long 3)))) + (nop!) + (let ((t2-0 (the-as uint128 (-> arg1 origin long 0)))) + (.pextlh a3-1 a3-0 0) + (let ((t0-0 (the-as uint128 (-> arg1 origin long 1)))) + (.pw.sra t1-0 a3-1 10) + (let ((a3-2 (the-as uint128 (-> arg1 origin long 2)))) + (.pextlh t2-1 t2-0 0) + (nop!) + (.pw.sra t2-2 t2-1 16) + (nop!) + (.pextlh t0-1 t0-0 0) + (.mov vf8 t1-0) + (.pw.sra t0-2 t0-1 16) + (.mov vf5 t2-2) + (.pextlh a3-3 a3-2 0) + ) + ) + ) + ) + (.mov vf6 t0-2) + (.pw.sra a3-4 a3-3 16) + (.lvf vf9 (&-> arg1 bsphere quad)) + (nop!) + (.mov vf7 a3-4) + (nop!) + (.mov vf10 v1-0) + ) + (.itof.vf vf8 vf8) + (nop!) + (vitof12.xyzw vf5 vf5) + (nop!) + (vitof12.xyzw vf6 vf6) + (nop!) + (vitof12.xyzw vf7 vf7) + (nop!) + (.add.vf.xyz vf8 vf8 vf9) + (nop!) + (nop!) + (.lvf vf9 (&-> arg0 bsphere quad)) + (vitof12.xyzw vf10 vf10) + (nop!) + (.mul.w.vf.x vf10 vf10 vf9) + (nop!) + (.mul.x.vf acc vf5 vf9) + (nop!) + (.add.mul.y.vf acc vf6 vf9 acc) + (let ((v1-2 (-> arg2 min quad))) + (.add.mul.z.vf acc vf7 vf9 acc) + (let ((a1-1 (-> arg2 max quad))) + (.add.mul.w.vf vf1 vf8 vf0 acc) + (nop!) + (.add.x.vf.xyz vf2 vf1 vf10) + (nop!) + (.sub.x.vf.xyz vf1 vf1 vf10) + (nop!) + (.ftoi.vf vf4 vf2) + (nop!) + (.ftoi.vf vf3 vf1) + (nop!) + (.mov a0-2 vf4) + (nop!) + (.mov a2-1 vf3) + (nop!) + (.pcgtw a1-2 a2-1 a1-1) + ) + (nop!) + (.pcgtw v1-3 v1-2 a0-2) + ) + (nop!) + (.por v1-4 a1-2 v1-3) + (nop!) + (.ppach v1-5 (the-as uint128 0) v1-4) + (nop!) + (let ((v1-6 (shl (the-as int v1-5) 16))) + (nop!) + (zero? v1-6) + ) + ) + ) + +;; definition for function instance-tfragment-add-debug-sphere +;; INFO: Used lq/sq +(defun instance-tfragment-add-debug-sphere ((arg0 drawable) (arg1 instance-tie)) + (local-vars (v1-1 uint128) (v1-2 uint128) (a3-0 float)) + (rlet ((vf0 :class vf) + (vf10 :class vf) + (vf11 :class vf) + (vf12 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (nop!) + (let ((v1-0 (the-as uint128 (-> arg1 origin long 3)))) + (.pextlh v1-1 v1-0 0) + ) + (.lvf vf9 (&-> arg0 bsphere quad)) + (.pw.sra v1-2 v1-1 10) + (.lvf vf10 (&-> arg1 bsphere quad)) + (nop!) + (.mov vf12 v1-2) + (.itof.vf vf12 vf12) + (nop!) + (.add.vf.xyz vf10 vf10 vf12) + (nop!) + (.add.vf.xyz vf9 vf9 vf10) + (nop!) + (.add.w.vf.x vf11 vf0 vf9) + (nop!) + (.mov a3-0 vf11) + (nop!) + (let ((a2-0 (new-stack-vector0))) + (.svf (&-> a2-0 quad) vf9) + (add-debug-sphere #t (bucket-id bucket793) a2-0 a3-0 (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80)) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/common-obs/prim-h_REF.gc b/test/decompiler/reference/jakx/engine/common-obs/prim-h_REF.gc index 3f50433f09..cd62744214 100644 --- a/test/decompiler/reference/jakx/engine/common-obs/prim-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/common-obs/prim-h_REF.gc @@ -93,7 +93,7 @@ These are owned by the thing submitting to prim, not the prim renderer itself." (num-verts uint16) (allocated-num-verts uint16) (last-tex-id uint32) - (data prim-vertex :dynamic) + (data prim-vertex :inline :dynamic) ) (:methods (new (symbol type int texture-id string) _type_) @@ -164,17 +164,17 @@ These are owned by the thing submitting to prim, not the prim renderer itself." (set! (-> s5-0 texture-index) 4) (let ((f0-1 (/ 1.0 (the float (/ (+ arg0 -1) 2))))) (dotimes (v1-22 arg0) - (let ((a0-6 (&+ (-> s5-0 data) (* v1-22 32)))) - (set! (-> a0-6 0) (the-as prim-vertex (* (the float (/ v1-22 2)) f0-1))) - (set! (-> a0-6 1) (the-as prim-vertex (the float (logand v1-22 1)))) - (set! (-> a0-6 2) (the-as prim-vertex 0.0)) - (set! (-> a0-6 3) (the-as prim-vertex 0.0)) + (let ((a0-6 (-> s5-0 data v1-22))) + (set! (-> a0-6 stq x) (* (the float (/ v1-22 2)) f0-1)) + (set! (-> a0-6 stq y) (the float (logand v1-22 1))) + (set! (-> a0-6 stq z) 0.0) + (set! (-> a0-6 col) (the-as rgba 0.0)) ) (set! (-> (the-as (inline-array prim-vertex) (+ (the-as uint s5-0) (* v1-22 32))) 3 stq z) (the-as float (the-as uint #x80808080)) ) (set-vector! - (the-as vector (+ (the-as uint (the-as vector (&-> s5-0 data 4))) (* v1-22 32))) + (the-as vector (+ (the-as uint (the-as vector (-> s5-0 data 0 pos))) (* v1-22 32))) (* 4096.0 (the float (/ v1-22 2))) (* 4096.0 (the float (logand v1-22 1))) 0.0 @@ -257,3 +257,7 @@ These are owned by the thing submitting to prim, not the prim renderer itself." ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/jakx/engine/common-obs/water-h_REF.gc b/test/decompiler/reference/jakx/engine/common-obs/water-h_REF.gc new file mode 100644 index 0000000000..3838fdfc1b --- /dev/null +++ b/test/decompiler/reference/jakx/engine/common-obs/water-h_REF.gc @@ -0,0 +1,347 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type water-control +(deftype water-control (basic) + ((flags water-flag) + (process target) + (joint-index int32) + (top-y-offset float) + (attack-id uint32) + (enter-water-time uint64) + (wade-time uint64) + (on-water-time uint64) + (enter-swim-time uint64) + (swim-time uint64) + (base-height meters) + (wade-height meters) + (swim-height meters) + (surface-height meters) + (bottom-height meters) + (collide-height meters) + (height meters) + (height-offset float 4) + (base-ocean-offset meters :overlay-at (-> height-offset 0)) + (real-ocean-offset meters :overlay-at (-> height-offset 0)) + (ocean-offset meters :overlay-at (-> height-offset 1)) + (bob-offset meters :overlay-at (-> height-offset 2)) + (align-offset meters :overlay-at (-> height-offset 3)) + (swim-depth meters :offset 108) + (bob smush-control :inline) + (ripple uint64) + (ripple-size meters) + (wake-size meters) + (bottom vector 2 :inline) + (top vector 2 :inline) + (enter-water-pos vector :inline) + (drip-old-pos vector :inline) + (drip-joint-index int32) + (drip-wetness float) + (drip-time uint64) + (drip-speed float) + (drip-height meters) + (drip-mult float) + (distort-time uint64) + (enter-water-sound uint16) + (normal vector :inline) + ) + (:methods + (new (symbol type process int float float float) _type_) + (water-control-method-9 () none) + (water-control-method-10 () none) + (water-control-method-11 () none) + (distance-from-surface (_type_) float) + (water-control-method-13 () none) + (display-water-marks? (_type_) symbol) + (water-control-method-15 () none) + (water-control-method-16 () none) + (water-control-method-17 () none) + ) + ) + +;; definition for method 3 of type water-control +(defmethod inspect ((this water-control)) + (when (not this) + (set! this this) + (goto cfg-40) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tflags: #x~X : (water-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand (water-flag bouncing) s5-0) (water-flag bouncing)) + (format #t "active ") + ) + (if (= (logand s5-0 (water-flag tar)) (water-flag tar)) + (format #t "deadly ") + ) + (if (= (logand s5-0 (water-flag swim-ground)) (water-flag swim-ground)) + (format #t "lava ") + ) + (if (= (logand s5-0 (water-flag use-water-anim)) (water-flag use-water-anim)) + (format #t "swamp ") + ) + (if (= (logand s5-0 (water-flag deadly)) (water-flag deadly)) + (format #t "dark-eco ") + ) + (if (= (logand s5-0 (water-flag under-water)) (water-flag under-water)) + (format #t "part-water ") + ) + (if (= (logand (water-flag head-under-water) s5-0) (water-flag head-under-water)) + (format #t "over-water ") + ) + (if (= (logand s5-0 (water-flag can-ground)) (water-flag can-ground)) + (format #t "use-ocean ") + ) + (if (= (logand s5-0 (water-flag no-grab-sound)) (water-flag no-grab-sound)) + (format #t "flow ") + ) + (if (= (logand s5-0 (water-flag flow)) (water-flag flow)) + (format #t "part-rings ") + ) + (if (= (logand s5-0 (water-flag swamp)) (water-flag swamp)) + (format #t "part-drip ") + ) + (if (= (logand s5-0 (water-flag lava)) (water-flag lava)) + (format #t "part-splash ") + ) + (if (= (logand s5-0 (water-flag use-ocean)) (water-flag use-ocean)) + (format #t "tar ") + ) + (if (= (logand s5-0 (water-flag can-wade)) (water-flag can-wade)) + (format #t "icy ") + ) + (if (= (logand s5-0 (water-flag can-swim)) (water-flag can-swim)) + (format #t "mud ") + ) + (if (= (logand s5-0 (water-flag mud)) (water-flag mud)) + (format #t "use-water-anim ") + ) + (if (= (logand s5-0 (water-flag dark-eco)) (water-flag dark-eco)) + (format #t "touch-water ") + ) + (if (= (logand s5-0 (water-flag active)) (water-flag active)) + (format #t "puddle ") + ) + ) + (format #t ")~%") + (format #t "~1Tprocess: ~A~%" (-> this process)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Ttop-y-offset: ~f~%" (-> this top-y-offset)) + (format #t "~1Tattack-id: ~D~%" (-> this attack-id)) + (format #t "~1Tenter-water-time: ~D~%" (-> this enter-water-time)) + (format #t "~1Twade-time: ~D~%" (-> this wade-time)) + (format #t "~1Ton-water-time: ~D~%" (-> this on-water-time)) + (format #t "~1Tenter-swim-time: ~D~%" (-> this enter-swim-time)) + (format #t "~1Tswim-time: ~D~%" (-> this swim-time)) + (format #t "~1Tbase-height: (meters ~m)~%" (-> this base-height)) + (format #t "~1Twade-height: (meters ~m)~%" (-> this wade-height)) + (format #t "~1Tswim-height: (meters ~m)~%" (-> this swim-height)) + (format #t "~1Tsurface-height: (meters ~m)~%" (-> this surface-height)) + (format #t "~1Tbottom-height: (meters ~m)~%" (-> this bottom-height)) + (format #t "~1Tcollide-height: (meters ~m)~%" (-> this collide-height)) + (format #t "~1Theight: (meters ~m)~%" (-> this height)) + (format #t "~1Theight-offset[4] @ #x~X~%" (-> this height-offset)) + (format #t "~1Tbase-ocean-offset: (meters ~m)~%" (-> this base-ocean-offset)) + (format #t "~1Treal-ocean-offset: (meters ~m)~%" (-> this base-ocean-offset)) + (format #t "~1Tocean-offset: (meters ~m)~%" (-> this ocean-offset)) + (format #t "~1Tbob-offset: (meters ~m)~%" (-> this bob-offset)) + (format #t "~1Talign-offset: (meters ~m)~%" (-> this align-offset)) + (format #t "~1Tswim-depth: (meters ~m)~%" (-> this swim-depth)) + (format #t "~1Tbob: #~%" (-> this bob)) + (format #t "~1Tripple: ~D~%" (-> this ripple)) + (format #t "~1Tripple-size: (meters ~m)~%" (-> this ripple-size)) + (format #t "~1Twake-size: (meters ~m)~%" (-> this wake-size)) + (format #t "~1Tbottom[2] @ #x~X~%" (-> this bottom)) + (format #t "~1Ttop[2] @ #x~X~%" (-> this top)) + (format #t "~1Tenter-water-pos: ~`vector`P~%" (-> this enter-water-pos)) + (format #t "~1Tdrip-old-pos: ~`vector`P~%" (-> this drip-old-pos)) + (format #t "~1Tdrip-joint-index: ~D~%" (-> this drip-joint-index)) + (format #t "~1Tdrip-wetness: ~f~%" (-> this drip-wetness)) + (format #t "~1Tdrip-time: ~D~%" (-> this drip-time)) + (format #t "~1Tdrip-speed: ~f~%" (-> this drip-speed)) + (format #t "~1Tdrip-height: (meters ~m)~%" (-> this drip-height)) + (format #t "~1Tdrip-mult: ~f~%" (-> this drip-mult)) + (format #t "~1Tdistort-time: ~D~%" (-> this distort-time)) + (format #t "~1Tenter-water-sound: ~D~%" (-> this enter-water-sound)) + (format #t "~1Tnormal: #~%" (-> this normal)) + (label cfg-40) + this + ) + +;; definition for method 14 of type water-control +(defmethod display-water-marks? ((this water-control)) + *display-water-marks* + ) + +;; definition for method 0 of type water-control +(defmethod new water-control ((allocation symbol) (type-to-make type) (arg0 process) (arg1 int) (arg2 float) (arg3 float) (arg4 float)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 process) (the-as target arg0)) + (set! (-> v0-0 joint-index) arg1) + (set! (-> v0-0 wade-height) arg4) + (set! (-> v0-0 swim-height) arg3) + (set! (-> v0-0 bottom-height) 32768.0) + (set! (-> v0-0 ripple-size) 1638.4) + (set! (-> v0-0 wake-size) 3072.0) + (set! (-> v0-0 ripple) (the-as uint #f)) + (set! (-> v0-0 drip-mult) 1.0) + (set! (-> v0-0 top-y-offset) arg2) + (let* ((v1-6 *game-info*) + (a0-2 (+ (-> v1-6 attack-id) 1)) + ) + (set! (-> v1-6 attack-id) a0-2) + (set! (-> v0-0 attack-id) a0-2) + ) + v0-0 + ) + ) + +;; definition for method 12 of type water-control +(defmethod distance-from-surface ((this water-control)) + (- (-> this top 0 y) (-> this height)) + ) + +;; definition of type water-vol +(deftype water-vol (process-hidden) + () + ) + +;; definition for method 3 of type water-vol +(defmethod inspect ((this water-vol)) + (when (not this) + (set! this this) + (goto cfg-62) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tmask: #x~X : (process-mask " (-> this mask)) + (let ((s5-0 (-> this mask))) + (if (= (logand s5-0 (process-mask process-tree)) (process-mask process-tree)) + (format #t "process-tree ") + ) + (if (= (logand (process-mask network) s5-0) (process-mask network)) + (format #t "network ") + ) + (if (= (logand s5-0 (process-mask target)) (process-mask target)) + (format #t "target ") + ) + (if (= (logand (process-mask collectable) s5-0) (process-mask collectable)) + (format #t "collectable ") + ) + (if (= (logand (process-mask projectile) s5-0) (process-mask projectile)) + (format #t "projectile ") + ) + (if (= (logand s5-0 (process-mask sleep-code)) (process-mask sleep-code)) + (format #t "sleep-code ") + ) + (if (= (logand s5-0 (process-mask actor-pause)) (process-mask actor-pause)) + (format #t "actor-pause ") + ) + (if (= (logand (process-mask bot) s5-0) (process-mask bot)) + (format #t "bot ") + ) + (if (= (logand (process-mask vehicle) s5-0) (process-mask vehicle)) + (format #t "vehicle ") + ) + (if (= (logand (process-mask enemy) s5-0) (process-mask enemy)) + (format #t "enemy ") + ) + (if (= (logand (process-mask entity) s5-0) (process-mask entity)) + (format #t "entity ") + ) + (if (= (logand s5-0 (process-mask heap-shrunk)) (process-mask heap-shrunk)) + (format #t "heap-shrunk ") + ) + (if (= (logand (process-mask sidekick) s5-0) (process-mask sidekick)) + (format #t "sidekick ") + ) + (if (= (logand s5-0 (process-mask going)) (process-mask going)) + (format #t "going ") + ) + (if (= (logand s5-0 (process-mask execute)) (process-mask execute)) + (format #t "execute ") + ) + (if (= (logand (process-mask death) s5-0) (process-mask death)) + (format #t "death ") + ) + (if (= (logand s5-0 (process-mask no-kill)) (process-mask no-kill)) + (format #t "no-kill ") + ) + (if (= (logand (process-mask platform) s5-0) (process-mask platform)) + (format #t "platform ") + ) + (if (= (logand s5-0 (process-mask freeze)) (process-mask freeze)) + (format #t "freeze ") + ) + (if (= (logand s5-0 (process-mask sleep)) (process-mask sleep)) + (format #t "sleep ") + ) + (if (= (logand s5-0 (process-mask progress)) (process-mask progress)) + (format #t "progress ") + ) + (if (= (logand s5-0 (process-mask menu)) (process-mask menu)) + (format #t "menu ") + ) + (if (= (logand (process-mask camera) s5-0) (process-mask camera)) + (format #t "camera ") + ) + (if (= (logand (process-mask ambient) s5-0) (process-mask ambient)) + (format #t "ambient ") + ) + (if (= (logand s5-0 (process-mask dark-effect)) (process-mask dark-effect)) + (format #t "dark-effect ") + ) + (if (= (logand (process-mask crate) s5-0) (process-mask crate)) + (format #t "crate ") + ) + (if (= (logand s5-0 (process-mask kernel-run)) (process-mask kernel-run)) + (format #t "kernel-run ") + ) + (if (= (logand s5-0 (process-mask movie)) (process-mask movie)) + (format #t "movie ") + ) + (if (= (logand s5-0 (process-mask pause)) (process-mask pause)) + (format #t "pause ") + ) + ) + (format #t ")~%") + (format #t "~1Tclock: ~A~%" (-> this clock)) + (format #t "~1Tview: ~A~%" (-> this view)) + (format #t "~1Tparent: #x~X~%" (-> this parent)) + (format #t "~1Tbrother: #x~X~%" (-> this brother)) + (format #t "~1Tchild: #x~X~%" (-> this child)) + (format #t "~1Tppointer: #x~X~%" (-> this ppointer)) + (format #t "~1Tself: ~A~%" (-> this self)) + (format #t "~1Tprofile-ticks: ~D~%" (-> this profile-ticks)) + (format #t "~1Tpool: ~A~%" (-> this pool)) + (format #t "~1Tstatus: ~A~%" (-> this status)) + (format #t "~1Tpid: ~D~%" (-> this pid)) + (format #t "~1Tmain-thread: ~A~%" (-> this main-thread)) + (format #t "~1Ttop-thread: ~A~%" (-> this top-thread)) + (format #t "~1Tentity: ~A~%" (-> this entity)) + (format #t "~1Tlevel: ~A~%" (-> this level)) + (format #t "~1Tstate: ~A~%" (-> this state)) + (format #t "~1Tprev-state: ~A~%" (-> this prev-state)) + (format #t "~1Tnext-state: ~A~%" (-> this next-state)) + (format #t "~1Tstate-stack: ~A~%" (-> this state-stack)) + (format #t "~1Ttrans-hook: ~A~%" (-> this trans-hook)) + (format #t "~1Tpost-hook: ~A~%" (-> this post-hook)) + (format #t "~1Tevent-hook: ~A~%" (-> this event-hook)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Theap-base: #x~X~%" (-> this heap-base)) + (format #t "~1Theap-top: #x~X~%" (-> this heap-top)) + (format #t "~1Theap-cur: #x~X~%" (-> this heap-cur)) + (format #t "~1Tstack-frame-top: ~A~%" (-> this stack-frame-top)) + (format #t "~1Theap: #~%" (&-> this heap-base)) + (format #t "~1Tconnection-list: ~`connectable`P~%" (-> this connection-list)) + (format #t "~1Tstack[0] @ #x~X~%" (-> this stack)) + (label cfg-62) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/debug/debug_REF.gc b/test/decompiler/reference/jakx/engine/debug/debug_REF.gc new file mode 100644 index 0000000000..4eb07d88f4 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/debug/debug_REF.gc @@ -0,0 +1,2327 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function transform-float-point +;; ERROR: Bad vector register dependency: vf1 +;; ERROR: Bad vector register dependency: vf2 +;; ERROR: Bad vector register dependency: vf3 +;; ERROR: Bad vector register dependency: vf4 +;; ERROR: Bad vector register dependency: vf6 +;; ERROR: Bad vector register dependency: vf8 +;; ERROR: Bad vector register dependency: vf9 +(defun transform-float-point ((src-world-pt vector) (dst-gs-screen-pt vector4w)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (.lvf vf5 (&-> src-world-pt quad)) + (.mul.w.vf acc vf4 vf5) + (.add.mul.x.vf acc vf1 vf5 acc) + (.add.mul.y.vf acc vf2 vf5 acc) + (.add.mul.z.vf vf5 vf3 vf5 acc) + (.div.vf Q vf9 vf5 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf5 vf5 Q) + (.add.vf vf5 vf5 vf8) + (.max.x.vf.w vf5 vf5 vf0) + (.min.x.vf.w vf5 vf5 vf6) + (vftoi4.xyzw vf5 vf5) + (.svf (&-> dst-gs-screen-pt quad) vf5) + dst-gs-screen-pt + ) + ) + +;; definition (debug) for function add-debug-point +;; INFO: Used lq/sq +(defun-debug add-debug-point ((arg0 symbol) (arg1 bucket-id) (arg2 vector)) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s5-0 (new 'stack 'vector4w-2)) + (a1-2 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-2 quad) (-> arg2 quad)) + (set! (-> a1-2 w) 1.0) + (when (transform-point-qword! (-> s5-0 vector 0) a1-2) + (with-dma-buffer-add-bucket ((v1-11 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg1 + ) + (let ((a0-6 (-> v1-11 base))) + (let* ((a1-3 v1-11) + (a3-0 (the-as dma-packet (-> a1-3 base))) + ) + (set! (-> a3-0 dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> a3-0 vif0) (new 'static 'vif-tag)) + (set! (-> a3-0 vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-3 base) (the-as pointer (&+ a3-0 16))) + ) + (let* ((a1-4 v1-11) + (a3-2 (the-as gs-gif-tag (-> a1-4 base))) + ) + (set! (-> a3-2 tag) (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :abe #x1) + :nreg #x8 + ) + ) + (set! (-> a3-2 regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id xyzf2) + :regs2 (gif-reg-id rgbaq) + :regs3 (gif-reg-id xyzf2) + :regs4 (gif-reg-id rgbaq) + :regs5 (gif-reg-id xyzf2) + :regs6 (gif-reg-id rgbaq) + :regs7 (gif-reg-id xyzf2) + ) + ) + (set! (-> a1-4 base) (the-as pointer (&+ a3-2 16))) + ) + (set! (-> s5-0 vector 1 x) 255) + (set! (-> s5-0 vector 1 y) 128) + (set! (-> s5-0 vector 1 z) 128) + (set! (-> s5-0 vector 1 w) 128) + (+! (-> s5-0 vector 0 y) 288) + (let* ((a1-11 v1-11) + (a3-4 (the-as vector4w-2 (-> a1-11 base))) + ) + (set! (-> a3-4 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a3-4 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a1-11 base) (the-as pointer (&+ a3-4 32))) + ) + (+! (-> s5-0 vector 0 x) -256) + (+! (-> s5-0 vector 0 y) -288) + (set! (-> s5-0 vector 1 x) 128) + (set! (-> s5-0 vector 1 y) 255) + (let* ((a1-18 v1-11) + (a3-6 (the-as vector4w-2 (-> a1-18 base))) + ) + (set! (-> a3-6 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a3-6 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a1-18 base) (the-as pointer (&+ a3-6 32))) + ) + (+! (-> s5-0 vector 0 x) 512) + (set! (-> s5-0 vector 1 y) 128) + (set! (-> s5-0 vector 1 z) 255) + (let* ((a1-23 v1-11) + (a3-8 (the-as vector4w-2 (-> a1-23 base))) + ) + (set! (-> a3-8 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a3-8 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a1-23 base) (the-as pointer (&+ a3-8 32))) + ) + (+! (-> s5-0 vector 0 x) -256) + (+! (-> s5-0 vector 0 y) -288) + (set! (-> s5-0 vector 1 x) 255) + (set! (-> s5-0 vector 1 y) 128) + (let* ((a3-10 v1-11) + (a1-30 (the-as vector4w-2 (-> a3-10 base))) + ) + (set! (-> a1-30 vector 0 quad) (-> s5-0 vector 1 quad)) + (set! (-> a1-30 vector 1 quad) (-> s5-0 vector 0 quad)) + (set! (-> a3-10 base) (the-as pointer (&+ a1-30 32))) + ) + (let ((a3-14 (/ (the-as int (+ (- -16 (the-as int a0-6)) (the-as int (-> v1-11 base)))) 16))) + (cond + ((nonzero? a3-14) + (logior! (-> (the-as (pointer uint64) a0-6) 0) (shr (shl a3-14 48) 48)) + (logior! (-> (the-as (pointer uint64) a0-6) 1) (shl (shr (shl a3-14 48) 48) 32)) + ) + (else + (set! (-> v1-11 base) a0-6) + ) + ) + ) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function debug-line-clip? +;; INFO: function output is handled by mips2c +(def-mips2c debug-line-clip? (function vector vector vector vector symbol)) + +;; definition (debug) for function internal-draw-debug-line +;; INFO: Used lq/sq +;; WARN: Return type mismatch pointer vs symbol. +(defun-debug internal-draw-debug-line ((arg0 bucket-id) (arg1 vector) (arg2 vector) (arg3 rgba) (arg4 symbol) (arg5 rgba)) + (let ((a0-2 (-> *display* frames (-> *display* on-screen) debug-buf))) + (if (< (the-as uint (shr (+ (&- (-> a0-2 end) (the-as uint (-> a0-2 base))) 15) 4)) (the-as uint #x8000)) + (return (the-as symbol #f)) + ) + ) + (if (the-as rgba (or (= arg5 -1) (= arg5 (the-as uint #xffffffff)))) + (set! arg5 arg3) + ) + (case arg4 + (('fade) + (set! arg5 + (new 'static 'rgba :r (shr (-> arg5 r) 1) :g (shr (-> arg5 g) 1) :b (shr (-> arg5 b) 1) :a (-> arg5 a)) + ) + ) + ) + (let ((s4-0 (new 'stack-no-clear 'inline-array 'vector4w 5))) + (the-as + symbol + (when (debug-line-clip? (the-as vector (-> s4-0 4)) (the-as vector (-> s4-0 5)) arg1 arg2) + (set! (-> s4-0 4 w) (the-as int 1.0)) + (set! (-> s4-0 5 w) (the-as int 1.0)) + (when (and (transform-point-qword! (-> s4-0 0) (the-as vector (-> s4-0 4))) + (transform-point-qword! (-> s4-0 1) (the-as vector (-> s4-0 5))) + ) + (with-dma-buffer-add-bucket ((v1-33 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg0 + ) + (let ((a0-26 (-> v1-33 base))) + (let* ((a1-4 v1-33) + (a3-2 (the-as object (-> a1-4 base))) + ) + (set! (-> (the-as dma-packet a3-2) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a3-2) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a3-2) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-4 base) (&+ (the-as pointer a3-2) 16)) + ) + (let* ((a1-5 v1-33) + (a3-4 (the-as object (-> a1-5 base))) + ) + (set! (-> (the-as gs-gif-tag a3-4) tag) + (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type line) :iip #x1 :abe #x1) + :nreg #x4 + ) + ) + (set! (-> (the-as gs-gif-tag a3-4) regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id xyzf2) + :regs2 (gif-reg-id rgbaq) + :regs3 (gif-reg-id xyzf2) + ) + ) + (set! (-> a1-5 base) (&+ (the-as pointer a3-4) 16)) + ) + (case arg4 + (('fade-depth) + (let ((f0-3 (fmax 0.2 (fmin 1.0 (* 0.00000005960465 (the float (-> s4-0 0 z))))))) + (set! (-> s4-0 2 x) (the int (* (the float (-> arg3 r)) f0-3))) + (set! (-> s4-0 2 y) (the int (* (the float (-> arg3 g)) f0-3))) + (set! (-> s4-0 2 z) (the int (* (the float (-> arg3 b)) f0-3))) + ) + (set! (-> s4-0 2 w) (the-as int (-> arg3 a))) + ) + (else + (set! (-> s4-0 2 x) (the-as int (-> arg3 r))) + (set! (-> s4-0 2 y) (the-as int (-> arg3 g))) + (set! (-> s4-0 2 z) (the-as int (-> arg3 b))) + (set! (-> s4-0 2 w) (the-as int (-> arg3 a))) + ) + ) + (cond + ((= arg4 'fade-depth) + (let ((f0-7 (fmax 0.2 (fmin 1.0 (* 0.00000005960465 (the float (-> s4-0 1 z))))))) + (set! (-> s4-0 3 x) (the int (* (the float (-> arg5 r)) f0-7))) + (set! (-> s4-0 3 y) (the int (* (the float (-> arg5 g)) f0-7))) + (set! (-> s4-0 3 z) (the int (* (the float (-> arg5 b)) f0-7))) + ) + (set! (-> s4-0 3 w) (the-as int (-> arg5 a))) + ) + (else + (set! (-> s4-0 3 x) (the-as int (-> arg5 r))) + (set! (-> s4-0 3 y) (the-as int (-> arg5 g))) + (set! (-> s4-0 3 z) (the-as int (-> arg5 b))) + (set! (-> s4-0 3 w) (the-as int (-> arg5 a))) + ) + ) + (+! (-> s4-0 0 z) -8192) + (+! (-> s4-0 1 z) -8192) + (let* ((a3-7 v1-33) + (a1-48 (the-as object (-> a3-7 base))) + ) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 0 vector 0 quad) (-> s4-0 2 quad)) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 0 vector 1 quad) (-> s4-0 0 quad)) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 1 vector 0 quad) (-> s4-0 3 quad)) + (set! (-> (the-as (inline-array vector4w-2) a1-48) 1 vector 1 quad) (-> s4-0 1 quad)) + (set! (-> a3-7 base) (&+ (the-as pointer a1-48) 64)) + ) + (let ((a3-11 (/ (the-as int (+ (- -16 (the-as int a0-26)) (the-as int (-> v1-33 base)))) 16))) + (cond + ((nonzero? a3-11) + (logior! (-> (the-as (pointer uint64) a0-26) 0) (shr (shl a3-11 48) 48)) + (logior! (-> (the-as (pointer uint64) a0-26) 1) (shl (shr (shl a3-11 48) 48) 32)) + ) + (else + (set! (-> v1-33 base) (the-as (pointer uint64) a0-26)) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + +;; definition (debug) for function internal-draw-debug-text-3d +;; INFO: Used lq/sq +(defun-debug internal-draw-debug-text-3d ((arg0 bucket-id) (arg1 string) (arg2 vector) (arg3 font-color) (arg4 vector2h)) + (let ((s2-0 (new 'stack-no-clear 'vector4w))) + (set! (-> s2-0 quad) (the-as uint128 0)) + (when (transform-point-qword! s2-0 arg2) + (with-dma-buffer-add-bucket ((s1-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg0 + ) + (let ((a2-2 (new + 'stack + 'font-context + *font-default-matrix* + (+ (-> arg4 x) -1792 (/ (-> s2-0 x) 16)) + (+ (-> arg4 y) -1855 (/ (-> s2-0 y) 16)) + (the-as float (/ (-> s2-0 z) 16)) + arg3 + (font-flags shadow kerning) + ) + ) + ) + (draw-string arg1 s1-0 a2-2) + ) + ) + ) + ) + ) + +;; definition (debug) for function add-debug-outline-triangle +(defun-debug add-debug-outline-triangle ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (add-debug-line #t arg1 arg2 arg3 arg5 #f (the-as rgba -1)) + (add-debug-line #t arg1 arg3 arg4 arg5 #f (the-as rgba -1)) + (add-debug-line #t arg1 arg4 arg2 arg5 #f (the-as rgba -1)) + ) + #f + ) + +;; definition (debug) for function add-debug-triangle-normal +(defun-debug add-debug-triangle-normal ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (let ((s3-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (vector-3pt-cross! (-> s3-0 1) arg2 arg3 arg4) + (vector-float/! (-> s3-0 1) (-> s3-0 1) (* 0.00024414062 (vector-length (-> s3-0 1)))) + (let ((v1-7 (-> s3-0 0))) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> arg3 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-7 quad) vf6) + ) + (let ((a0-3 (-> s3-0 0))) + (.lvf vf4 (&-> (-> s3-0 0) quad)) + (.lvf vf5 (&-> arg4 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-3 quad) vf6) + ) + (vector-float/! (-> s3-0 0) (-> s3-0 0) 3.0) + (let ((a1-4 (-> s3-0 1))) + (let ((v1-9 (-> s3-0 1)) + (a0-5 (-> s3-0 0)) + ) + (.lvf vf4 (&-> v1-9 quad)) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (add-debug-line #t arg1 (-> s3-0 0) (-> s3-0 1) arg5 #f (the-as rgba -1)) + ) + ) + #f + ) + ) + +;; definition (debug) for function add-debug-flat-triangle-noclip +;; INFO: Used lq/sq +;; ERROR: failed type prop at 38: add failed: + +;; WARN: Return type mismatch symbol vs none. +;; ERROR: Failed to guess stack use for 16 in add-debug-flat-triangle-noclip:9 +;; ERROR: Function may read a register that is not set: t1 +;; ERROR: Unsupported inline assembly instruction kind - [srl a1, s4, 24] +(defun-debug add-debug-flat-triangle-noclip ((a0-0 vector) (a1-0 vector) (a2-0 vector) (a3-0 vector) (t0-0 vector)) + (local-vars + (v0-1 symbol) + (v0-2 symbol) + (v0-3 symbol) + (v0-4 pointer) + (v1-0 object) + (v1-3 none) + (v1-4 none) + (v1-5 none) + (v1-6 float) + (v1-7 float) + (v1-8 float) + (v1-9 symbol) + (v1-10 display) + (v1-11 int) + (v1-12 int) + (v1-13 int) + (v1-14 display-frame) + (v1-15 dma-buffer) + (v1-16 display) + (v1-17 int) + (v1-18 int) + (v1-19 int) + (v1-20 display-frame) + (a0-1 vector) + (a0-2 uint128) + (a0-3 vector) + (a0-4 uint128) + (a0-5 vector) + (a0-6 uint128) + (a0-7 none) + (a0-8 none) + (a0-9 none) + (a0-11 display) + (a0-12 pointer) + (a0-14 pointer) + (a0-15 pointer) + (a0-16 display) + (a0-17 (inline-array dma-bucket)) + (a1-1 none) + (a1-2 none) + (a1-3 none) + (a1-4 dma-buffer) + (a1-5 dma-buffer) + (a1-6 int) + (a1-7 int) + (a1-8 int) + (a1-9 int) + (a1-10 int) + (a1-11 int) + (a1-12 int) + (a1-13 none) + (a1-14 none) + (a1-15 none) + (a1-16 none) + (a1-17 none) + (a1-18 none) + (a1-19 dma-buffer) + (a1-20 int) + (a1-21 int) + (a1-22 pointer) + (a1-23 uint) + (a1-24 uint) + (a1-25 uint) + (a1-26 uint) + (a1-27 uint) + (a1-29 int) + (a1-30 vector) + (a2-1 pointer) + (a3-1 pointer) + (a3-2 pointer) + (a3-3 pointer) + (a3-4 pointer) + (a3-5 pointer) + (a3-6 pointer) + (a3-7 pointer) + (t0-1 int) + (t0-2 int) + (t0-3 uint) + (t0-4 uint) + (t0-5 int) + (t0-6 none) + (t0-7 none) + (t0-8 none) + (t0-9 none) + (t0-10 none) + (t0-11 none) + (t0-12 none) + (t0-13 none) + (t0-14 none) + (t0-15 none) + (t0-16 none) + (t0-17 none) + (t0-18 pointer) + (t0-19 uint) + (t0-20 uint) + (t0-21 uint) + (t1-0 none) + (t1-1 uint) + (t1-2 uint) + (s5-0 none) + (t9-0 (function vector4w vector symbol)) + (t9-1 (function vector4w vector symbol)) + (t9-2 (function vector4w vector symbol)) + (t9-3 (function (inline-array dma-bucket) bucket-id pointer (pointer dma-tag) pointer)) + (sp-0 none) + (f0-0 float) + (f0-1 float) + (f0-2 float) + ) + (if (begin (or (begin a0-0) (set! v1-0 *display-capture-mode*)) (not v1-0)) + (return (empty-form)) + ) + (when (begin + (and (begin + (set! s5-0 (the-as none (+ sp-0 16))) + (set! v1-3 (the-as none (+ s5-0 96))) + (set! a0-1 a2-0) + (set! a0-2 (-> a0-1 quad)) + (s.q! v1-3 a0-2) + (set! v1-4 (the-as none (+ s5-0 112))) + (set! a0-3 a3-0) + (set! a0-4 (-> a0-3 quad)) + (s.q! v1-4 a0-4) + (set! v1-5 (the-as none (+ s5-0 128))) + (set! a0-5 t0-0) + (set! a0-6 (-> a0-5 quad)) + (s.q! v1-5 a0-6) + (set! v1-6 1.0) + (set! f0-0 (gpr->fpr v1-6)) + (s.f! (+ s5-0 108) f0-0) + (set! v1-7 1.0) + (set! f0-1 (gpr->fpr v1-7)) + (s.f! (+ s5-0 124) f0-1) + (set! v1-8 1.0) + (set! f0-2 (gpr->fpr v1-8)) + (s.f! (+ s5-0 140) f0-2) + (set! t9-0 transform-point-qword!) + (set! a0-7 (the-as none (+ s5-0 0))) + (set! a1-1 (the-as none (+ s5-0 96))) + (set! v0-1 (call! a0-7 a1-1)) + v0-1 + ) + (begin + (set! t9-1 transform-point-qword!) + (set! a0-8 (the-as none (+ s5-0 16))) + (set! a1-2 (the-as none (+ s5-0 112))) + (set! v0-2 (call! a0-8 a1-2)) + v0-2 + ) + (begin + (set! t9-2 transform-point-qword!) + (set! a0-9 (the-as none (+ s5-0 32))) + (set! a1-3 (the-as none (+ s5-0 128))) + (set! v0-3 (call! a0-9 a1-3)) + (set! v1-9 v0-3) + ) + ) + v1-9 + ) + (when (begin + (cond + ((begin + (set! v1-10 *display*) + (set! v1-11 (-> v1-10 on-screen)) + (set! v1-12 (sll v1-11 2)) + (set! a0-11 *display*) + (set! v1-13 (+ v1-12 a0-11)) + (set! v1-14 (dynamic-array-field-access v1-13 frames PLACEHOLDER)) + (set! v1-15 (-> v1-14 debug-buf)) + (set! a2-1 (-> v1-15 base)) + (set! a0-12 (-> v1-15 base)) + (set! a1-4 v1-15) + (set! a3-1 (-> a1-4 base)) + (set! t0-1 #x10000000) + (set! (the-as (pointer int64) (-> (the-as (pointer int64) a3-1))) t0-1) + (s.w! (+ a3-1 8) 0) + (set! t0-2 #x50000000) + (s.w! (+ a3-1 12) t0-2) + (set! a3-2 (+ a3-1 16)) + (set! (-> a1-4 base) a3-2) + (set! a1-5 v1-15) + (set! a3-3 (-> a1-5 base)) + (set! t0-3 (the-as uint #x6025c00000008001)) + (set! t0-4 (pcypld 0 t0-3)) + (set! (the-as (pointer uint64) (-> (the-as (pointer uint64) a3-3))) t0-4) + (set! t0-5 #x414141) + (s.d! (+ a3-3 8) t0-5) + (set! a3-4 (+ a3-3 16)) + (set! (-> a1-5 base) a3-4) + (set! a1-6 (sll t1-0 56)) + (set! a1-7 (srl a1-6 56)) + (s.w! (+ s5-0 48) a1-7) + (set! a1-8 (sll t1-0 48)) + (set! a1-9 (srl a1-8 56)) + (s.w! (+ s5-0 52) a1-9) + (set! a1-10 (sll t1-0 40)) + (set! a1-11 (srl a1-10 56)) + (s.w! (+ s5-0 56) a1-11) + (.srl a1-12 t1-0 24) + (s.w! (+ s5-0 60) a1-12) + (set! a1-13 (the-as none (l.w (+ s5-0 8)))) + (set! a1-14 (the-as none (+ a1-13 -8192))) + (s.w! (+ s5-0 8) a1-14) + (set! a1-15 (the-as none (l.w (+ s5-0 24)))) + (set! a1-16 (the-as none (+ a1-15 -8192))) + (s.w! (+ s5-0 24) a1-16) + (set! a1-17 (the-as none (l.w (+ s5-0 40)))) + (set! a1-18 (the-as none (+ a1-17 -8192))) + (s.w! (+ s5-0 40) a1-18) + (set! a1-19 v1-15) + (set! a3-5 (-> a1-19 base)) + (set! t0-6 (the-as none (+ s5-0 48))) + (set! t0-7 (the-as none (l.q t0-6))) + (set! (the-as (pointer int128) (-> (the-as (pointer int128) a3-5))) t0-7) + (set! t0-8 (the-as none (+ s5-0 0))) + (set! t0-9 (the-as none (l.q t0-8))) + (s.q! (+ a3-5 16) t0-9) + (set! t0-10 (the-as none (+ s5-0 48))) + (set! t0-11 (the-as none (l.q t0-10))) + (s.q! (+ a3-5 32) t0-11) + (set! t0-12 (the-as none (+ s5-0 16))) + (set! t0-13 (the-as none (l.q t0-12))) + (s.q! (+ a3-5 48) t0-13) + (set! t0-14 (the-as none (+ s5-0 48))) + (set! t0-15 (the-as none (l.q t0-14))) + (s.q! (+ a3-5 64) t0-15) + (set! t0-16 (the-as none (+ s5-0 32))) + (set! t0-17 (the-as none (l.q t0-16))) + (s.q! (+ a3-5 80) t0-17) + (set! a3-6 (+ a3-5 96)) + (set! (-> a1-19 base) a3-6) + (set! a1-20 -16) + (set! a1-21 (- a1-20 a0-12)) + (set! t0-18 (-> v1-15 base)) + (set! a1-22 (+ a1-21 t0-18)) + (set! a1-23 (sra a1-22 4)) + (nonzero? a1-23) + ) + (set! t0-19 (l.d a0-12)) + (set! t1-1 (sll a1-23 48)) + (set! t1-2 (srl t1-1 48)) + (set! t0-20 (logior t0-19 t1-2)) + (s.d! a0-12 t0-20) + (set! t0-21 (l.d (+ a0-12 8))) + (set! a1-24 (sll a1-23 48)) + (set! a1-25 (srl a1-24 48)) + (set! a1-26 (sll a1-25 32)) + (set! a1-27 (logior t0-21 a1-26)) + (s.d! (+ a0-12 8) a1-27) + ) + (else + (s.w! (+ v1-15 4) a0-12) + (set! a1-28 a0-12) + ) + ) + (set! a3-7 (l.wu (+ v1-15 4))) + (!= a2-1 a3-7) + ) + (set! a0-14 (l.wu (+ v1-15 4))) + (set! a1-29 #x20000000) + (set! (the-as (pointer int64) (-> (the-as (pointer int64) a0-14))) a1-29) + (s.w! (+ a0-14 8) 0) + (s.w! (+ a0-14 12) 0) + (set! a0-15 (+ a0-14 16)) + (s.w! (+ v1-15 4) a0-15) + (set! t9-3 dma-bucket-insert-tag) + (set! v1-16 *display*) + (set! v1-17 (-> v1-16 on-screen)) + (set! v1-18 (sll v1-17 2)) + (set! a0-16 *display*) + (set! v1-19 (+ v1-18 a0-16)) + (set! v1-20 (dynamic-array-field-access v1-19 frames PLACEHOLDER)) + (set! a0-17 (-> v1-20 bucket-group)) + (set! a1-30 a1-0) + (call! a0-17 a1-30 a2-1 a3-7) + (set! a0-18 v0-4) + ) + ) + (ret-none) + ) + +;; this part is debug only +(when *debug-segment* +;; definition of type debug-line +(deftype debug-line (structure) + ((flags int32) + (bucket int32) + (v1 vector :inline) + (v2 vector :inline) + (color rgba) + (mode symbol) + (color2 rgba) + ) + ) + +;; definition for method 3 of type debug-line +(defmethod inspect ((this debug-line)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'debug-line) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tbucket: ~D~%" (-> this bucket)) + (format #t "~1Tv1: #~%" (-> this v1)) + (format #t "~1Tv2: #~%" (-> this v2)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tmode: ~A~%" (-> this mode)) + (format #t "~1Tcolor2: ~D~%" (-> this color2)) + (label cfg-4) + this + ) + +;; definition of type debug-text-3d +(deftype debug-text-3d (structure) + ((flags int32) + (bucket int32) + (pos vector :inline) + (color uint8) + (offset vector2h :inline) + (str string) + ) + ) + +;; definition for method 3 of type debug-text-3d +(defmethod inspect ((this debug-text-3d)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'debug-text-3d) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tbucket: ~D~%" (-> this bucket)) + (format #t "~1Tpos: #~%" (-> this pos)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Toffset: #~%" (-> this offset)) + (format #t "~1Tstr: ~A~%" (-> this str)) + (label cfg-4) + this + ) + +;; definition of type debug-tracking-thang +(deftype debug-tracking-thang (basic) + ((length int32) + (allocated-length int32) + ) + ) + +;; definition for method 3 of type debug-tracking-thang +(defmethod inspect ((this debug-tracking-thang)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (label cfg-4) + this + ) + +;; definition for symbol *debug-lines*, type (inline-array debug-line) +(define *debug-lines* (the-as (inline-array debug-line) (malloc 'debug #x100000))) + +;; definition for symbol *debug-lines-trk*, type debug-tracking-thang +(define *debug-lines-trk* (new 'debug 'debug-tracking-thang)) + +;; failed to figure out what this is: +(set! (-> *debug-lines-trk* allocated-length) #x4000) + +;; definition for symbol *debug-text-3ds*, type (inline-array debug-text-3d) +(define *debug-text-3ds* (the-as (inline-array debug-text-3d) (malloc 'debug #x6000))) + +;; definition for symbol *debug-text-3d-trk*, type debug-tracking-thang +(define *debug-text-3d-trk* (new 'debug 'debug-tracking-thang)) + +;; failed to figure out what this is: +(set! (-> *debug-text-3d-trk* allocated-length) 512) + +;; definition for symbol *debug-prims*, type prim-strip +(define *debug-prims* (the-as prim-strip 0)) + +;; failed to figure out what this is: +(dotimes (gp-0 (-> *debug-text-3d-trk* allocated-length)) + (set! (-> *debug-text-3ds* gp-0 str) (new 'debug 'string 80 (the-as string #f))) + ) + +) +;; definition (debug) for function debug-reset-prim-buffer +;; WARN: Return type mismatch int vs none. +(defun-debug debug-reset-prim-buffer () + (when (zero? *debug-prims*) + (set! *debug-prims* + (new 'debug 'prim-strip 1500 (new 'static 'texture-id :index #x3 :page #x1) (the-as string #f)) + ) + (set! (-> *debug-prims* data0) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest always))) + (set! (-> *debug-prims* adnops 0 cmds) (gs-reg64 test-1)) + ) + (when (nonzero? *debug-prims*) + (set! (-> *debug-prims* num-verts) (the-as uint 0)) + 0 + ) + (none) + ) + +;; definition (debug) for function add-debug-flat-triangle +;; INFO: Used lq/sq +;; WARN: Return type mismatch uint vs none. +;; WARN: Function add-debug-flat-triangle has a return type of none, but the expression builder found a return statement. +(defun-debug add-debug-flat-triangle ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba)) + (let ((v1-0 *debug-prims*)) + (when (nonzero? v1-0) + (let ((a0-1 (-> v1-0 num-verts))) + (if (>= (+ a0-1 3) (-> v1-0 allocated-num-verts)) + (return #f) + ) + (let ((a1-5 (-> v1-0 data a0-1))) + (set! (-> a1-5 pos quad) (-> arg2 quad)) + (set! (-> a1-5 col) arg5) + (set! (-> a1-5 stq z) (the-as float #x1)) + ) + (let ((a0-2 (+ a0-1 1))) + (let ((a1-8 (-> v1-0 data a0-2))) + (set! (-> a1-8 pos quad) (-> arg3 quad)) + (set! (-> a1-8 col) arg5) + (set! (-> a1-8 stq z) (the-as float #x1)) + ) + (let ((a0-6 (-> v1-0 data (+ a0-2 1)))) + (set! (-> a0-6 pos quad) (-> arg4 quad)) + (set! (-> a0-6 col) arg5) + (set! (-> a0-6 stq z) 0.0) + ) + ) + ) + 0 + (+! (-> v1-0 num-verts) 3) + ) + ) + (none) + ) + +;; definition (debug) for function get-debug-line +(defun-debug get-debug-line () + (cond + ((< (-> *debug-lines-trk* length) (-> *debug-lines-trk* allocated-length)) + (+! (-> *debug-lines-trk* length) 1) + (-> *debug-lines* (+ (-> *debug-lines-trk* length) -1)) + ) + (else + (the-as debug-line #f) + ) + ) + ) + +;; definition (debug) for function get-debug-text-3d +(defun-debug get-debug-text-3d () + (cond + ((< (-> *debug-text-3d-trk* length) (-> *debug-text-3d-trk* allocated-length)) + (+! (-> *debug-text-3d-trk* length) 1) + (-> *debug-text-3ds* (+ (-> *debug-text-3d-trk* length) -1)) + ) + (else + (the-as debug-text-3d #f) + ) + ) + ) + +;; definition (debug) for function debug-reset-buffers +(defun-debug debug-reset-buffers () + (set! (-> *debug-lines-trk* length) 0) + (set! (-> *debug-text-3d-trk* length) 0) + (set! *debug-draw-pauseable* #f) + #f + ) + +;; definition (debug) for function debug-draw-buffers +(defun-debug debug-draw-buffers () + (dotimes (gp-0 (-> *debug-lines-trk* length)) + (let ((v1-1 (-> *debug-lines* gp-0))) + (internal-draw-debug-line + (the-as bucket-id (-> v1-1 bucket)) + (-> v1-1 v1) + (-> v1-1 v2) + (-> v1-1 color) + (-> v1-1 mode) + (-> v1-1 color2) + ) + ) + ) + (dotimes (gp-1 (-> *debug-text-3d-trk* length)) + (let ((v1-8 (-> *debug-text-3ds* gp-1))) + (internal-draw-debug-text-3d + (the-as bucket-id (-> v1-8 bucket)) + (-> v1-8 str) + (-> v1-8 pos) + (the-as font-color (-> v1-8 color)) + (-> v1-8 offset) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-line +;; INFO: Used lq/sq +(defun-debug add-debug-line ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 rgba) (arg5 symbol) (arg6 rgba)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (cond + (*debug-draw-pauseable* + (let ((v1-5 (get-debug-line))) + (when v1-5 + (set! (-> v1-5 bucket) (the-as int arg1)) + (set! (-> v1-5 v1 quad) (-> arg2 quad)) + (set! (-> v1-5 v2 quad) (-> arg3 quad)) + (set! (-> v1-5 color) arg4) + (set! (-> v1-5 color2) arg6) + (set! (-> v1-5 mode) arg5) + ) + ) + ) + (else + (internal-draw-debug-line arg1 arg2 arg3 arg4 arg5 arg6) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-line2d +;; INFO: Used lq/sq +(defun-debug add-debug-line2d ((arg0 symbol) (arg1 bucket-id) (arg2 vector4w) (arg3 vector4w) (arg4 vector4w)) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg1 + ) + (let ((s2-0 (new 'stack 'vector4w)) + (v1-10 (new 'stack 'vector4w)) + ) + (set! (-> s2-0 quad) (-> arg2 quad)) + (set! (-> v1-10 quad) (-> arg3 quad)) + (set! (-> s2-0 x) (* (+ (-> s2-0 x) 2048) 16)) + (set! (-> s2-0 y) (* -16 (- 2048 (-> s2-0 y)))) + (set! (-> s2-0 z) #x7fffff) + (set! (-> v1-10 x) (* (+ (-> v1-10 x) 2048) 16)) + (set! (-> v1-10 y) (* -16 (- 2048 (-> v1-10 y)))) + (set! (-> v1-10 z) #x7fffff) + (let ((a0-18 (-> s4-0 base))) + (let* ((a1-7 s4-0) + (a2-3 (the-as dma-packet (-> a1-7 base))) + ) + (set! (-> a2-3 dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> a2-3 vif0) (new 'static 'vif-tag)) + (set! (-> a2-3 vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-7 base) (the-as pointer (&+ a2-3 16))) + ) + (let* ((a1-8 s4-0) + (a2-5 (the-as gs-gif-tag (-> a1-8 base))) + ) + (set! (-> a2-5 tag) (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type line) :iip #x1 :abe #x1) + :nreg #x4 + ) + ) + (set! (-> a2-5 regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id xyzf2) + :regs2 (gif-reg-id rgbaq) + :regs3 (gif-reg-id xyzf2) + ) + ) + (set! (-> a1-8 base) (the-as pointer (&+ a2-5 16))) + ) + (let* ((a1-9 s4-0) + (a2-7 (the-as vector4w-2 (-> a1-9 base))) + ) + (set! (-> a2-7 vector 0 quad) (-> arg4 quad)) + (set! (-> a2-7 vector 1 quad) (-> s2-0 quad)) + (set! (-> a1-9 base) (the-as pointer (&+ a2-7 32))) + ) + (let* ((a1-10 s4-0) + (a2-9 (the-as vector4w-2 (-> a1-10 base))) + ) + (set! (-> a2-9 vector 0 quad) (-> arg4 quad)) + (set! (-> a2-9 vector 1 quad) (-> v1-10 quad)) + (set! (-> a1-10 base) (the-as pointer (&+ a2-9 32))) + ) + (let ((a1-14 (/ (the-as int (+ (- -16 (the-as int a0-18)) (the-as int (-> s4-0 base)))) 16))) + (cond + ((nonzero? a1-14) + (logior! (-> (the-as (pointer uint64) a0-18) 0) (shr (shl a1-14 48) 48)) + (logior! (-> (the-as (pointer uint64) a0-18) 1) (shl (shr (shl a1-14 48) 48) 32)) + ) + (else + (set! (-> s4-0 base) a0-18) + ) + ) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-box +;; INFO: Used lq/sq +(defun-debug add-debug-box ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 rgba)) + (let ((s5-0 (new-stack-vector0))) + (set! (-> s5-0 quad) (-> arg2 quad)) + (let ((s1-0 (new-stack-vector0))) + (set! (-> s1-0 quad) (-> arg2 quad)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (set! (-> s1-0 x) (-> arg3 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 x) (-> arg2 x)) + (set! (-> s1-0 y) (-> arg3 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg2 y)) + (set! (-> s1-0 z) (-> arg3 z)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s5-0 y) (-> arg3 y)) + (set! (-> s1-0 y) (-> arg3 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 z) (-> arg2 z)) + (set! (-> s1-0 x) (-> arg3 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg2 y)) + (set! (-> s5-0 x) (-> arg3 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s5-0 quad) (-> arg3 quad)) + (set! (-> s1-0 quad) (-> arg3 quad)) + (set! (-> s1-0 x) (-> arg2 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 x) (-> arg3 x)) + (set! (-> s1-0 y) (-> arg2 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg3 y)) + (set! (-> s1-0 z) (-> arg2 z)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s5-0 y) (-> arg2 y)) + (set! (-> s1-0 y) (-> arg2 y)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 z) (-> arg3 z)) + (set! (-> s1-0 x) (-> arg2 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + (set! (-> s1-0 y) (-> arg3 y)) + (set! (-> s5-0 x) (-> arg2 x)) + (add-debug-line #t arg1 s5-0 s1-0 arg4 #f (the-as rgba -1)) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-box-with-transform +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs symbol. +(defun-debug add-debug-box-with-transform ((enable symbol) (bucket bucket-id) (box bounding-box) (mat matrix) (color rgba)) + (b! (not enable) cfg-5 :delay (nop!)) + (let ((s4-0 (new 'stack-no-clear 'inline-array 'vector 8))) + (let ((s2-0 (new 'stack-no-clear 'inline-array 'vector 2)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s2-0 0 quad) (-> box min quad)) + (set! (-> s2-0 1 quad) (-> box max quad)) + (set! (-> s1-0 w) 1.0) + (dotimes (s0-0 8) + (set! (-> s1-0 x) (-> s2-0 (logand s0-0 1) x)) + (set! (-> s1-0 y) (-> s2-0 (logand (/ s0-0 2) 1) y)) + (set! (-> s1-0 z) (-> s2-0 (logand (/ s0-0 4) 1) z)) + (let ((a0-5 (-> s4-0 s0-0))) + (vector-matrix*! a0-5 s1-0 mat) + ) + ) + ) + (add-debug-line #t bucket (-> s4-0 0) (-> s4-0 1) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 1) (-> s4-0 3) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 3) (-> s4-0 2) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 2) (-> s4-0 0) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 4) (-> s4-0 5) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 5) (-> s4-0 7) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 7) (-> s4-0 6) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 6) (-> s4-0 4) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 0) (-> s4-0 4) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 1) (-> s4-0 5) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 3) (-> s4-0 7) color #f (the-as rgba -1)) + (add-debug-line #t bucket (-> s4-0 2) (-> s4-0 6) color #f (the-as rgba -1)) + ) + (label cfg-5) + (the-as symbol 0) + ) + +;; definition (debug) for function add-debug-x +;; INFO: Used lq/sq +(defun-debug add-debug-x ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 rgba)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s3-0 (new-stack-vector0)) + (s2-0 (new-stack-vector0)) + ) + (let ((a1-1 s3-0)) + (let ((v1-3 arg2) + (a0-1 (new 'static 'vector :data (new 'static 'array float 4 -1228.8 0.0 0.0 0.0))) + ) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + (let ((a1-2 s2-0)) + (let ((v1-4 arg2) + (a0-2 (new 'static 'vector :data (new 'static 'array float 4 1228.8 0.0 0.0 0.0))) + ) + (.lvf vf4 (&-> v1-4 quad)) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-2 quad) vf6) + ) + (add-debug-line #t arg1 s3-0 s2-0 arg3 #f (the-as rgba -1)) + (let ((a1-4 s3-0)) + (let ((v1-5 arg2) + (a0-4 (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1228.8 0.0))) + ) + (.lvf vf4 (&-> v1-5 quad)) + (.lvf vf5 (&-> a0-4 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (let ((a0-5 s2-0)) + (let ((v1-6 (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1228.8 0.0)))) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> v1-6 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-5 quad) vf6) + ) + (add-debug-line #t arg1 s3-0 s2-0 arg3 #f (the-as rgba -1)) + ) + #f + ) + ) + +;; definition (debug) for function add-debug-cross +;; INFO: Used lq/sq +(defun-debug add-debug-cross ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s4-0 (new-stack-vector0)) + (s3-0 (new-stack-vector0)) + ) + (let ((a1-1 s4-0)) + (let ((v1-3 arg2) + (a0-1 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-1 x) (- arg3)) + (set! (-> a0-1 y) 0.0) + (set! (-> a0-1 z) 0.0) + (set! (-> a0-1 w) 1.0) + (.lvf vf4 (&-> v1-3 quad)) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-1 quad) vf6) + ) + (let ((a1-2 s3-0)) + (let ((v1-4 arg2) + (a0-2 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-2 x) arg3) + (set! (-> a0-2 y) 0.0) + (set! (-> a0-2 z) 0.0) + (set! (-> a0-2 w) 1.0) + (.lvf vf4 (&-> v1-4 quad)) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-2 quad) vf6) + ) + (add-debug-line #t arg1 s4-0 s3-0 *color-red* #f (the-as rgba -1)) + (let ((a1-4 s4-0)) + (let ((v1-5 arg2) + (a0-4 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-4 x) 0.0) + (set! (-> a0-4 y) (- arg3)) + (set! (-> a0-4 z) 0.0) + (set! (-> a0-4 w) 1.0) + (.lvf vf4 (&-> v1-5 quad)) + (.lvf vf5 (&-> a0-4 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (let ((a1-5 s3-0)) + (let ((v1-6 arg2) + (a0-5 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-5 x) 0.0) + (set! (-> a0-5 y) arg3) + (set! (-> a0-5 z) 0.0) + (set! (-> a0-5 w) 1.0) + (.lvf vf4 (&-> v1-6 quad)) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-5 quad) vf6) + ) + (add-debug-line #t arg1 s4-0 s3-0 *color-green* #f (the-as rgba -1)) + (let ((a1-7 s4-0)) + (let ((v1-7 arg2) + (a0-7 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-7 x) 0.0) + (set! (-> a0-7 y) 0.0) + (set! (-> a0-7 z) (- arg3)) + (set! (-> a0-7 w) 1.0) + (.lvf vf4 (&-> v1-7 quad)) + (.lvf vf5 (&-> a0-7 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-7 quad) vf6) + ) + (let ((a0-8 s3-0)) + (let ((v1-8 (new 'stack-no-clear 'vector))) + (set! (-> v1-8 x) 0.0) + (set! (-> v1-8 y) 0.0) + (set! (-> v1-8 z) arg3) + (set! (-> v1-8 w) 1.0) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> v1-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-8 quad) vf6) + ) + (add-debug-line #t arg1 s4-0 s3-0 *color-blue* #f (the-as rgba -1)) + ) + #f + ) + ) + +;; definition (debug) for function add-debug-text-3d +;; INFO: Used lq/sq +(defun-debug add-debug-text-3d ((arg0 symbol) (arg1 bucket-id) (arg2 string) (arg3 vector) (arg4 font-color) (arg5 vector2h)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (cond + (*debug-draw-pauseable* + (let ((v1-5 (get-debug-text-3d))) + (when v1-5 + (set! (-> v1-5 flags) 0) + (set! (-> v1-5 bucket) (the-as int arg1)) + (set! (-> v1-5 pos quad) (-> arg3 quad)) + (cond + (arg5 + (set! (-> v1-5 offset x) (-> arg5 x)) + (set! (-> v1-5 offset y) (-> arg5 y)) + ) + (else + (set! (-> v1-5 offset x) 0) + (set! (-> v1-5 offset y) 0) + 0 + ) + ) + (set! (-> v1-5 color) (the-as uint arg4)) + (let ((a0-6 0) + (a1-2 (-> arg2 data)) + (v1-7 (-> v1-5 str data)) + ) + (while (and (nonzero? (-> a1-2 0)) (< a0-6 79)) + (set! (-> v1-7 0) (-> a1-2 0)) + (set! a1-2 (&-> a1-2 1)) + (set! v1-7 (&-> v1-7 1)) + (+! a0-6 1) + ) + (set! (-> v1-7 0) (the-as uint 0)) + ) + 0 + ) + ) + ) + (else + (internal-draw-debug-text-3d arg1 arg2 arg3 arg4 (cond + (arg5 + (empty) + arg5 + ) + (else + (new 'static 'vector2h) + ) + ) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-sphere-with-transform +(defun-debug add-debug-sphere-with-transform ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 meters) (arg4 matrix) (arg5 rgba)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (.lvf vf5 (&-> arg2 quad)) + (.lvf vf1 (&-> arg4 rvec quad)) + (.lvf vf2 (&-> arg4 uvec quad)) + (.lvf vf3 (&-> arg4 fvec quad)) + (.lvf vf4 (&-> arg4 trans quad)) + (.mul.w.vf acc vf4 vf0) + (.add.mul.x.vf acc vf1 vf5 acc) + (.add.mul.y.vf acc vf2 vf5 acc) + (.add.mul.z.vf vf5 vf3 vf5 acc) + (let ((a2-1 (new 'stack-no-clear 'vector))) + (.svf (&-> a2-1 quad) vf5) + (add-debug-sphere arg0 arg1 a2-1 arg3 arg5) + ) + ) + #f + ) + ) + +;; definition (debug) for function add-debug-sphere +(defun-debug add-debug-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 meters) (arg4 rgba)) + (if (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (add-debug-sphere-from-table arg1 arg2 arg3 arg4 6) + ) + #f + ) + +;; definition (debug) for function add-debug-text-sphere +(defun-debug add-debug-text-sphere ((enable symbol) (bucket bucket-id) (pos vector) (radius meters) (text string) (color rgba)) + (add-debug-sphere enable bucket pos radius color) + (add-debug-text-3d enable bucket text pos (font-color default) (the-as vector2h #f)) + #f + ) + +;; definition (debug) for function add-debug-spheres +(defun-debug add-debug-spheres ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array vector)) (arg3 int) (arg4 rgba)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (let ((s4-0 (-> arg2 0))) + (countdown (s3-0 arg3) + (add-debug-sphere #t arg1 s4-0 (-> s4-0 w) arg4) + (&+! s4-0 16) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-line-sphere +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun-debug add-debug-line-sphere ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 float) (arg5 rgba)) + (b! (not arg0) cfg-8 :delay (nop!)) + (let* ((sv-16 arg1) + (sv-24 arg2) + (sv-28 arg3) + (sv-32 arg4) + (sv-36 arg5) + (sv-112 (new 'stack-no-clear 'matrix)) + (sv-116 (vector-length sv-28)) + ) + (let ((gp-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (vector-normalize-copy! gp-0 sv-28 1.0) + (vector-reset! s5-0) + (if (< (square (-> gp-0 y)) (square (-> gp-0 z))) + (set! (-> s5-0 y) -1.0) + (set! (-> s5-0 z) -1.0) + ) + (forward-down->inv-matrix sv-112 gp-0 s5-0) + ) + (set! (-> sv-112 trans quad) (-> sv-24 quad)) + (set! (-> sv-112 trans w) 1.0) + (let ((gp-1 (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.5877 0.951 0.951)) + (new 'static 'vector :data (new 'static 'array float 4 0.5877 0.0 -0.5877 -0.951)) + (new 'static 'vector :data (new 'static 'array float 4 -0.951 -0.5878 0.0 0.0)) + ) + ) + (s5-1 (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 1.0 0.809 0.3089 -0.3088)) + (new 'static 'vector :data (new 'static 'array float 4 -0.809 -1.0 -0.809 -0.309)) + (new 'static 'vector :data (new 'static 'array float 4 0.3089 0.8089 0.0 0.0)) + ) + ) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s1-0 z) 0.0) + (set! (-> s1-0 w) 1.0) + (set! (-> s1-0 x) (* sv-32 (-> s5-1 2 y))) + (set! (-> s1-0 y) (* sv-32 (-> gp-1 2 y))) + (vector-matrix*! s3-0 s1-0 sv-112) + (dotimes (s0-0 10) + (set! (-> s4-0 quad) (-> s3-0 quad)) + (set! (-> s1-0 x) (* sv-32 (-> (&-> s5-1 0 data s0-0) 0))) + (set! (-> s1-0 y) (* sv-32 (-> (&-> gp-1 0 data s0-0) 0))) + (vector-matrix*! s3-0 s1-0 sv-112) + (add-debug-line #t sv-16 s4-0 s3-0 sv-36 #f (the-as rgba -1)) + (vector+float*! s2-0 s3-0 (-> sv-112 fvec) sv-116) + (add-debug-line #t sv-16 s3-0 s2-0 sv-36 #f (the-as rgba -1)) + (vector+float*! s4-0 s4-0 (-> sv-112 fvec) sv-116) + (add-debug-line #t sv-16 s4-0 s2-0 sv-36 #f (the-as rgba -1)) + ) + ) + ) + (label cfg-8) + 0 + (none) + ) + +;; definition (debug) for function add-debug-circle +;; INFO: Used lq/sq +(defun-debug add-debug-circle ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 rgba) (arg5 matrix)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + "note: you may pass #f for orientation" + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((f30-0 0.0) + (s1-0 (new-stack-vector0)) + (s0-0 (new-stack-vector0)) + (sv-48 0) + ) + (while (< sv-48 12) + (let ((sv-64 s1-0)) + (set! (-> sv-64 x) (* arg3 (cos f30-0))) + (set! (-> sv-64 y) 0.0) + (set! (-> sv-64 z) (* arg3 (sin f30-0))) + (set! (-> sv-64 w) 1.0) + ) + (set! f30-0 (+ 5461.3335 f30-0)) + (let ((sv-80 s0-0)) + (set! (-> sv-80 x) (* arg3 (cos f30-0))) + (set! (-> sv-80 y) 0.0) + (set! (-> sv-80 z) (* arg3 (sin f30-0))) + (set! (-> sv-80 w) 1.0) + ) + (when arg5 + (vector-matrix*! s1-0 s1-0 arg5) + (vector-matrix*! s0-0 s0-0 arg5) + ) + (let ((a1-3 s1-0)) + (let ((v1-17 s1-0) + (a0-7 arg2) + ) + (.lvf vf4 (&-> v1-17 quad)) + (.lvf vf5 (&-> a0-7 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-3 quad) vf6) + ) + (let ((a1-4 s0-0)) + (let ((v1-18 s0-0) + (a0-8 arg2) + ) + (.lvf vf4 (&-> v1-18 quad)) + (.lvf vf5 (&-> a0-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (add-debug-line #t arg1 s1-0 s0-0 arg4 #f (the-as rgba -1)) + (+! sv-48 1) + ) + ) + #f + ) + ) + +;; definition (debug) for function add-debug-vector +;; INFO: Used lq/sq +(defun-debug add-debug-vector ((enable symbol) (bucket bucket-id) (base vector) (dir vector) (len-scale meters) (color rgba)) + (if (not (or enable *display-capture-mode*)) + (return #f) + ) + (let ((v1-3 (new-stack-vector0))) + (set! (-> v1-3 x) (+ (-> base x) (* (-> dir x) len-scale))) + (set! (-> v1-3 y) (+ (-> base y) (* (-> dir y) len-scale))) + (set! (-> v1-3 z) (+ (-> base z) (* (-> dir z) len-scale))) + (add-debug-line #t bucket base v1-3 color #f (the-as rgba -1)) + ) + #f + ) + +;; definition (debug) for function add-debug-matrix +(defun-debug add-debug-matrix ((arg0 symbol) (arg1 bucket-id) (arg2 matrix) (arg3 meters)) + (add-debug-vector arg0 arg1 (-> arg2 trans) (-> arg2 rvec) arg3 (new 'static 'rgba :r #xff :a #x80)) + (add-debug-vector arg0 arg1 (-> arg2 trans) (-> arg2 uvec) arg3 (new 'static 'rgba :g #xff :a #x80)) + (add-debug-vector arg0 arg1 (-> arg2 trans) (-> arg2 fvec) arg3 (new 'static 'rgba :b #xff :a #x80)) + arg2 + ) + +;; definition (debug) for function add-debug-rot-matrix +(defun-debug add-debug-rot-matrix ((arg0 symbol) (arg1 bucket-id) (arg2 matrix) (arg3 vector)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 rvec) (meters 2) (new 'static 'rgba :r #xff :a #x80)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 uvec) (meters 2) (new 'static 'rgba :g #xff :a #x80)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 fvec) (meters 2) (new 'static 'rgba :b #xff :a #x80)) + arg2 + ) + +;; definition (debug) for function add-debug-quaternion +;; WARN: Return type mismatch int vs none. +(defun-debug add-debug-quaternion ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 quaternion)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (let ((a2-1 (quaternion->matrix (new 'stack-no-clear 'matrix) arg3))) + (add-debug-rot-matrix arg0 arg1 a2-1 arg2) + ) + ) + 0 + (none) + ) + +;; definition (debug) for function add-debug-cspace +(defun-debug add-debug-cspace ((enable symbol) (bucket bucket-id) (cs cspace)) + (add-debug-matrix enable bucket (-> cs bone transform) (meters 2)) + cs + ) + +;; definition (debug) for function add-debug-yrot-vector +;; INFO: Used lq/sq +;; WARN: Stack slot offset 32 signed mismatch +;; ERROR: Stack slot load at 32 mismatch: defined as size 4, got size 16 +;; WARN: Stack slot offset 32 signed mismatch +;; ERROR: Stack slot load at 32 mismatch: defined as size 4, got size 16 +;; WARN: Stack slot offset 32 signed mismatch +;; ERROR: Stack slot load at 32 mismatch: defined as size 4, got size 16 +(defun-debug add-debug-yrot-vector ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 float) (arg5 rgba)) + (let ((sv-32 arg3) + (s0-0 arg4) + (s3-0 arg5) + ) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s1-0 (new-stack-vector0))) + (set-vector! s1-0 (+ (-> arg2 x) (* (sin sv-32) s0-0)) (-> arg2 y) (+ (-> arg2 z) (* (cos sv-32) s0-0)) 1.0) + (add-debug-line arg0 arg1 s1-0 arg2 s3-0 #f (the-as rgba -1)) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-arc +;; INFO: Used lq/sq +(defun-debug add-debug-arc ((arg0 symbol) + (arg1 bucket-id) + (arg2 vector) + (arg3 float) + (arg4 float) + (arg5 float) + (arg6 rgba) + (arg7 matrix) + ) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + "note: you may pass #f for orientation" + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((f30-0 arg3) + (sv-48 (new 'stack-no-clear 'vector)) + ) + (set! (-> sv-48 quad) (the-as uint128 0)) + (let ((sv-64 (new 'stack-no-clear 'vector))) + (set! (-> sv-64 quad) (the-as uint128 0)) + (let ((sv-80 0)) + (while (< sv-80 12) + (let ((sv-96 sv-48)) + (set! (-> sv-96 x) (* arg5 (sin f30-0))) + (set! (-> sv-96 y) 0.0) + (set! (-> sv-96 z) (* arg5 (cos f30-0))) + (set! (-> sv-96 w) 1.0) + ) + (+! f30-0 (the float (/ (the int (- arg4 arg3)) 12))) + (let ((sv-112 sv-64)) + (set! (-> sv-112 x) (* arg5 (sin f30-0))) + (set! (-> sv-112 y) 0.0) + (set! (-> sv-112 z) (* arg5 (cos f30-0))) + (set! (-> sv-112 w) 1.0) + ) + (when arg7 + (vector-matrix*! sv-48 sv-48 arg7) + (vector-matrix*! sv-64 sv-64 arg7) + ) + (let ((a1-3 sv-48)) + (let ((v1-24 sv-48) + (a0-8 arg2) + ) + (.lvf vf4 (&-> v1-24 quad)) + (.lvf vf5 (&-> a0-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-3 quad) vf6) + ) + (let ((a1-4 sv-64)) + (let ((v1-25 sv-64) + (a0-9 arg2) + ) + (.lvf vf4 (&-> v1-25 quad)) + (.lvf vf5 (&-> a0-9 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-4 quad) vf6) + ) + (add-debug-line #t arg1 sv-48 sv-64 arg6 #f (the-as rgba -1)) + (cond + ((zero? sv-80) + (add-debug-line #t arg1 sv-48 arg2 arg6 #f (the-as rgba -1)) + ) + ((= sv-80 11) + (add-debug-line #t arg1 sv-64 arg2 arg6 #f (the-as rgba -1)) + ) + ) + (+! sv-80 1) + ) + ) + ) + ) + #f + ) + ) + +;; definition (debug) for function add-debug-curve +;; INFO: Used lq/sq +(defun-debug add-debug-curve ((arg0 symbol) + (arg1 bucket-id) + (arg2 (inline-array vector)) + (arg3 int) + (arg4 (pointer float)) + (arg5 int) + (arg6 rgba) + ) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (let ((s0-0 (new-stack-vector0)) + (sv-48 (new 'stack-no-clear 'vector)) + ) + (set! (-> sv-48 quad) (the-as uint128 0)) + (let ((sv-64 (* arg3 4))) + (curve-evaluate! sv-48 (-> arg4 0) arg2 arg3 arg4 arg5) + (let ((sv-80 0)) + (while (< sv-80 sv-64) + (set! (-> s0-0 quad) (-> sv-48 quad)) + (curve-evaluate! sv-48 (/ (the float (+ sv-80 1)) (the float sv-64)) arg2 arg3 arg4 arg5) + (add-debug-line #t arg1 s0-0 sv-48 arg6 #f (the-as rgba -1)) + (+! sv-80 1) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-curve2 +(defun-debug add-debug-curve2 ((arg0 symbol) (arg1 bucket-id) (arg2 curve) (arg3 rgba) (arg4 symbol)) + (if (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (add-debug-curve #t arg1 (-> arg2 cverts) (-> arg2 num-cverts) (-> arg2 knots) (-> arg2 num-knots) arg3) + ) + #f + ) + +;; definition (debug) for function add-debug-points +;; INFO: Used lq/sq +(defun-debug add-debug-points ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array vector)) (arg3 int) (arg4 rgba) (arg5 float) (arg6 int)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (dotimes (s0-0 arg3) + (let ((sv-96 (new 'stack-no-clear 'vector))) + (set! (-> sv-96 quad) (the-as uint128 0)) + (set! (-> sv-96 quad) (-> arg2 s0-0 quad)) + (if (!= arg5 0.0) + (set! (-> sv-96 y) arg5) + ) + (let ((sv-32 add-debug-text-3d) + (sv-48 #t) + (sv-64 arg1) + ) + (format (clear *temp-string*) "~d" s0-0) + (sv-32 sv-48 sv-64 *temp-string* sv-96 (font-color white) (the-as vector2h #f)) + ) + (add-debug-x #t arg1 sv-96 (if (= s0-0 arg6) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + (the-as rgba arg4) + ) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function debug-percent-bar +;; INFO: Used lq/sq +;; WARN: Stack slot offset 32 signed mismatch +;; WARN: Stack slot offset 32 signed mismatch +(defun-debug debug-percent-bar ((arg0 symbol) (arg1 bucket-id) (arg2 int) (arg3 int) (arg4 float) (arg5 rgba) (arg6 int) (arg7 int)) + (let ((sv-16 arg3) + (sv-32 arg4) + (s3-0 arg5) + (s1-0 arg6) + (s2-0 arg7) + ) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (with-dma-buffer-add-bucket ((s0-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + arg1 + ) + (draw-sprite2d-xy s0-0 arg2 sv-16 s1-0 s2-0 (new 'static 'rgba :a #x40) #x3fffff) + (draw-sprite2d-xy s0-0 arg2 (+ sv-16 2) (the int (* sv-32 (the float s1-0))) (+ s2-0 -4) s3-0 #x3fffff) + ) + ) + #f + ) + +;; definition (debug) for function debug-pad-display +;; INFO: Used lq/sq +(defun-debug debug-pad-display ((arg0 cpad-info)) + (let ((gp-0 (new 'static 'inline-array vector 32 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + ) + ) + (countdown (v1-0 31) + (let ((a0-3 (-> gp-0 v1-0 quad))) + (set! (-> gp-0 (+ v1-0 1) quad) a0-3) + ) + ) + (set! (-> gp-0 0 x) (* (sin (-> arg0 stick0-dir)) (-> arg0 stick0-speed))) + (set! (-> gp-0 0 y) (* (cos (-> arg0 stick0-dir)) (-> arg0 stick0-speed))) + (dotimes (s5-1 32) + (with-dma-buffer-add-bucket ((s3-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket793) + ) + (draw-sprite2d-xy + s3-0 + (the int (* 120.0 (-> gp-0 s5-1 x))) + (the int (* 144.0 (-> gp-0 s5-1 y))) + 10 + 10 + (new 'static 'rgba :a #x80 :r (- 255 (* 7 s5-1))) + #x3fffff + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function add-debug-light +;; INFO: Used lq/sq +(defun-debug add-debug-light ((arg0 symbol) (arg1 bucket-id) (arg2 light) (arg3 vector) (arg4 string)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (when (!= (-> arg2 extra x) 0.0) + (add-debug-vector + arg0 + arg1 + arg3 + (-> arg2 direction) + (meters 3) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (let ((s2-0 (new-stack-vector0))) + (let ((v1-4 (-> arg2 direction))) + (let ((a0-3 (* 12288.0 (-> arg2 extra x)))) + (.mov vf7 a0-3) + ) + (.lvf vf5 (&-> v1-4 quad)) + ) + (.lvf vf4 (&-> arg3 quad)) + (.add.x.vf.w vf6 vf0 vf0) + (.mul.x.vf.xyz acc vf5 vf7) + (.add.mul.w.vf.xyz vf6 vf4 vf0 acc) + (.svf (&-> s2-0 quad) vf6) + (let ((s1-1 (logior (logior (logior (shr (shl (the int (* 128.0 (-> arg2 color w))) 56) 32) + (shr (shl (the int (* 128.0 (-> arg2 color z))) 56) 40) + ) + (shr (shl (the int (* 128.0 (-> arg2 color y))) 56) 48) + ) + (shr (shl (the int (* 128.0 (-> arg2 color x))) 56) 56) + ) + ) + ) + (format (clear *temp-string*) "~S ~,,2f" arg4 (-> arg2 extra x)) + (let ((t0-2 *temp-string*)) + (add-debug-text-sphere arg0 arg1 s2-0 (* 2048.0 (-> arg2 extra x)) t0-2 (the-as rgba s1-1)) + ) + ) + ) + ) + #f + ) + ) + +;; definition (debug) for function add-debug-lights +(defun-debug add-debug-lights ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array light)) (arg3 vector)) + (if (not (or arg0 *display-capture-mode*)) + (return #f) + ) + (add-debug-light arg0 arg1 (-> arg2 0) arg3 "dir0") + (add-debug-light arg0 arg1 (-> arg2 1) arg3 "dir1") + (add-debug-light arg0 arg1 (-> arg2 2) arg3 "dir2") + (add-debug-light arg0 arg1 (-> arg2 3) arg3 "ambi") + #f + ) + +;; definition (debug) for function drawable-frag-count +(defun-debug drawable-frag-count ((arg0 drawable)) + (let ((gp-0 0)) + (cond + ((not arg0) + ) + ((type? arg0 drawable-group) + (dotimes (s4-0 (-> (the-as drawable-group arg0) length)) + (+! gp-0 (drawable-frag-count (-> (the-as drawable-group arg0) data s4-0))) + ) + ) + (else + (+! gp-0 1) + ) + ) + gp-0 + ) + ) + +;; definition for method 3 of type debug-vertex-stats +(defmethod inspect ((this debug-vertex-stats)) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~Tlength: ~D~%" (-> this length)) + (format #t "~Tpos-count: ~D~%" (-> this pos-count)) + (format #t "~Tdata[~D]: @ #x~X~%" (-> this length) (-> this vertex)) + (dotimes (s5-0 (-> this length)) + (let ((s4-0 (-> this vertex s5-0))) + (format + #t + " ~D : trans: ~D ~D ~D ~D" + s5-0 + (-> s4-0 trans x) + (-> s4-0 trans y) + (-> s4-0 trans z) + (-> s4-0 trans w) + ) + (format #t " st: ~D ~D~%" (-> s4-0 st x) (-> s4-0 st y)) + (format + #t + " col: ~X norm: ~D ~D ~D~%" + (-> s4-0 color) + (-> s4-0 normal x) + (-> s4-0 normal y) + (-> s4-0 normal z) + ) + ) + ) + this + ) + +;; definition (debug) for function history-init +(defun-debug history-init ((arg0 pos-history) (arg1 int)) + (set! (-> arg0 num-points) arg1) + (set! (-> arg0 points) (the-as (inline-array vector) #f)) + arg0 + ) + +;; definition (debug) for function history-draw-and-update +;; INFO: Used lq/sq +(defun-debug history-draw-and-update ((arg0 pos-history) (arg1 symbol) (arg2 vector)) + (if (and arg1 (not (-> arg0 points))) + (set! (-> arg0 points) (the-as (inline-array vector) (malloc 'debug (* (-> arg0 num-points) 16)))) + ) + (when (-> arg0 points) + (set! (-> arg0 points (-> arg0 h-first) quad) (-> arg2 quad)) + (+! (-> arg0 h-first) 1) + (when (>= (-> arg0 h-first) (-> arg0 num-points)) + (set! (-> arg0 h-first) 0) + 0 + ) + ) + (when (and arg1 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (dotimes (s5-1 (+ (-> arg0 num-points) -1)) + (if (!= (+ s5-1 1) (-> arg0 h-first)) + (add-debug-line + #t + (bucket-id bucket785) + (-> arg0 points s5-1) + (-> arg0 points (+ s5-1 1)) + (new 'static 'rgba :r #x80 :g #xc0 :b #x80 :a #x80) + #f + (the-as rgba -1) + ) + ) + ) + ) + #f + ) + +;; definition (debug) for function dma-timeout-cam +;; INFO: Used lq/sq +(defun-debug dma-timeout-cam () + (let ((a0-0 (new-stack-vector0)) + (a1-0 (new-stack-matrix0)) + ) + (set! (-> a0-0 x) -666764.4) + (set! (-> a0-0 y) 21102.984) + (set! (-> a0-0 z) 51613.348) + (set! (-> a0-0 w) 1.0) + (set! (-> a1-0 rvec x) -0.911) + (set! (-> a1-0 rvec y) 0.0) + (set! (-> a1-0 rvec z) 0.4122) + (set! (-> a1-0 rvec w) 0.0) + (set! (-> a1-0 uvec x) -0.0984) + (set! (-> a1-0 uvec y) 0.971) + (set! (-> a1-0 uvec z) -0.2174) + (set! (-> a1-0 uvec w) 0.0) + (set! (-> a1-0 fvec x) -0.4003) + (set! (-> a1-0 fvec y) -0.2387) + (set! (-> a1-0 fvec z) -0.8847) + (set! (-> a1-0 fvec w) 0.0) + (set! (-> a1-0 trans x) 0.0) + (set! (-> a1-0 trans y) 0.0) + (set! (-> a1-0 trans z) 0.0) + (set! (-> a1-0 trans w) 1.0) + (debug-set-camera-pos-rot! a0-0 a1-0) + ) + ) + +;; definition (debug) for function display-file-info +(defun-debug display-file-info () + (when (and *display-file-info* (!= *master-mode* 'menu)) + (dotimes (gp-0 (-> *level* length)) + (let ((v1-7 (-> *level* level gp-0))) + (when (= (-> v1-7 status) 'active) + (let ((s5-0 (-> v1-7 bsp))) + (format *stdcon* "file name: ~S~%" (-> s5-0 info file-name)) + (format *stdcon* "version: ~D.~D~%" (-> s5-0 info major-version) (-> s5-0 info minor-version)) + (format *stdcon* "maya file: ~S~%" (-> s5-0 info maya-file-name)) + (format *stdcon* "mdb file: ~S~%" (-> s5-0 info mdb-file-name)) + (format *stdcon* "~S" (-> s5-0 info tool-debug)) + ) + ) + ) + ) + ) + 0 + ) + +;; definition (debug) for function add-debug-cursor +;; INFO: Used lq/sq +(defun-debug add-debug-cursor ((arg0 symbol) (arg1 bucket-id) (arg2 int) (arg3 int) (arg4 mouse-buttons)) + (when (and arg0 (or (not *display-capture-mode*) (-> *setting-control* user-current unknown-uint32-1))) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf)) + arg1 + ) + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (let ((v1-10 arg4)) + (draw-string-xy + "X" + s4-0 + (+ arg2 -5) + (+ arg3 -4) + (cond + ((= v1-10 (mouse-buttons left)) + (font-color red) + ) + ((= v1-10 (mouse-buttons right)) + (font-color yellow) + ) + ((= v1-10 (mouse-buttons middle)) + (font-color green) + ) + (else + (font-color default) + ) + ) + (font-flags shadow kerning) + ) + ) + ) + ) + 0 + ) + +;; this part is debug only +(when *debug-segment* +;; definition for symbol *boundary-polygon*, type (inline-array sky-vertex) +(define *boundary-polygon* (the-as (inline-array sky-vertex) (malloc 'debug 768))) + +) +;; definition (debug) for function init-boundary-regs +;; INFO: function output is handled by mips2c +(def-mips2c init-boundary-regs (function none)) + +;; definition (debug) for function add-boundary-shader +;; WARN: Return type mismatch pointer vs none. +(defun-debug add-boundary-shader ((arg0 texture-id) (arg1 dma-buffer)) + (let ((a1-1 (lookup-texture-by-id arg0))) + (when a1-1 + (let* ((v1-0 arg1) + (a0-1 (the-as object (-> v1-0 base))) + ) + (set! (-> (the-as gs-gif-tag a0-1) tag) (new 'static 'gif-tag64 :nloop #x1 :nreg #x5)) + (set! (-> (the-as gs-gif-tag a0-1) regs) (new 'static 'gif-tag-regs + :regs0 (gif-reg-id a+d) + :regs1 (gif-reg-id a+d) + :regs2 (gif-reg-id a+d) + :regs3 (gif-reg-id a+d) + :regs4 (gif-reg-id a+d) + ) + ) + (set! (-> v1-0 base) (&+ (the-as pointer a0-1) 16)) + ) + (let ((s5-0 (the-as adgif-shader (-> arg1 base)))) + (adgif-shader<-texture-simple! s5-0 a1-1) + (set! (-> s5-0 alpha) (new 'static 'gs-miptbp :tbp1 #x44)) + (set! (-> s5-0 tex0 tfx) 0) + (set! (-> s5-0 tex1 mmag) 0) + (set! (-> s5-0 clamp) (new 'static 'gs-clamp)) + ) + 0 + (&+! (-> arg1 base) 80) + ) + ) + (none) + ) + +;; definition (debug) for function draw-boundary-polygon +;; INFO: function output is handled by mips2c +(def-mips2c draw-boundary-polygon function) + +;; definition (debug) for function render-boundary-quad +;; INFO: function output is handled by mips2c +(def-mips2c render-boundary-quad function) + +;; definition (debug) for function render-boundary-tri +;; INFO: function output is handled by mips2c +(def-mips2c render-boundary-tri (function sky-vertex dma-buffer none)) + +;; definition (debug) for function add-debug-bound-internal +;; INFO: Used lq/sq +;; WARN: Return type mismatch symbol vs none. +(defun-debug add-debug-bound-internal ((arg0 dma-buffer) (arg1 (inline-array vector)) (arg2 int) (arg3 rgba) (arg4 rgba) (arg5 int)) + (rlet ((vf27 :class vf)) + (cond + ((nonzero? arg5) + (set-vector! + (-> *boundary-polygon* 0 col) + (the float (-> arg3 r)) + (the float (-> arg3 g)) + (the float (-> arg3 b)) + (the float (-> arg3 a)) + ) + (set-vector! + (-> *boundary-polygon* 1 col) + (the float (-> arg4 r)) + (the float (-> arg4 g)) + (the float (-> arg4 b)) + (the float (-> arg4 a)) + ) + ) + (else + (set-vector! + (-> *boundary-polygon* 0 col) + (the float (-> arg3 r)) + (the float (-> arg3 g)) + (the float (-> arg3 b)) + (the float (shr (-> arg3 a) 1)) + ) + (set-vector! + (-> *boundary-polygon* 1 col) + (the float (-> arg4 r)) + (the float (-> arg4 g)) + (the float (-> arg4 b)) + (the float (shr (-> arg4 a) 1)) + ) + ) + ) + (init-boundary-regs) + (.lvf vf27 (&-> *sky-work* giftag-clouds quad)) + (let ((s3-0 0) + (s2-0 (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 1.0 8.0 1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8.0 1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 1.0 1.0)) + ) + ) + ) + (while (< s3-0 (+ arg2 -2)) + (cond + ((not (logtest? s3-0 1)) + (dotimes (v1-10 3) + (set! (-> *boundary-polygon* v1-10 pos quad) (-> arg1 (+ s3-0 v1-10) quad)) + (set! (-> *boundary-polygon* v1-10 stq quad) (-> s2-0 (+ s3-0 v1-10) quad)) + ) + ) + (else + (set! (-> *boundary-polygon* 0 pos quad) (-> arg1 (+ s3-0 1) quad)) + (set! (-> *boundary-polygon* 1 pos quad) (-> arg1 s3-0 quad)) + (set! (-> *boundary-polygon* 2 pos quad) (-> arg1 (+ s3-0 2) quad)) + (set! (-> *boundary-polygon* 0 stq quad) (-> s2-0 (+ s3-0 1) quad)) + (set! (-> *boundary-polygon* 1 stq quad) (-> s2-0 s3-0 quad)) + (set! (-> *boundary-polygon* 2 stq quad) (-> s2-0 (+ s3-0 2) quad)) + ) + ) + (render-boundary-tri (-> *boundary-polygon* 0) arg0) + (+! s3-0 1) + ) + ) + (none) + ) + ) + +;; definition (debug) for function add-debug-bound +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +;; WARN: Function add-debug-bound has a return type of none, but the expression builder found a return statement. +(defun-debug add-debug-bound ((arg0 bucket-id) (arg1 (inline-array vector)) (arg2 int) (arg3 rgba) (arg4 rgba) (arg5 int)) + (let ((sv-32 arg4) + (s1-0 arg5) + ) + (if (< arg2 3) + (return 0) + ) + (with-dma-buffer-add-bucket ((s2-0 (-> *display* frames (-> *display* on-screen) global-buf)) + arg0 + ) + (let* ((v1-7 *viewport-array*) + (v1-8 (-> v1-7 data (-> v1-7 current-viewport-index))) + ) + (dma-buffer-add-gs-set s2-0 + (zbuf-1 (-> v1-8 zbuf-on)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + ) + ) + (let ((sv-16 (the-as dma-packet (-> s2-0 base)))) + (&+! (-> s2-0 base) 16) + (add-boundary-shader (new 'static 'texture-id :index #x3 :page #x1) s2-0) + (add-debug-bound-internal s2-0 arg1 arg2 arg3 sv-32 s1-0) + (close-sky-buffer s2-0) + (let ((v1-22 (/ (+ (- -16 (the-as int sv-16)) (the-as int (-> s2-0 base))) 16))) + (set! (-> sv-16 dma) (new 'static 'dma-tag :id (dma-tag-id cnt) :qwc v1-22)) + (set! (-> sv-16 vif0) (new 'static 'vif-tag)) + (set! (-> sv-16 vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1 :imm v1-22)) + ) + ) + (let* ((v1-26 *viewport-array*) + (v1-27 (-> v1-26 data (-> v1-26 current-viewport-index))) + ) + (dma-buffer-add-gs-set s2-0 + (zbuf-1 (-> v1-27 zbuf-on)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + ) + ) + (let ((s1-1 (if (= s1-0 1) + (the-as int (the-as uint #x80ffffff)) + #x60606060 + ) + ) + (s0-1 (/ arg2 4)) + ) + (add-debug-line #t arg0 (-> arg1 0) (-> arg1 1) (the-as rgba s1-1) #f (the-as rgba -1)) + (add-debug-line #t arg0 (-> arg1 0) (-> arg1 2) (the-as rgba s1-1) #f (the-as rgba -1)) + (add-debug-line #t arg0 (-> arg1 (+ arg2 -1)) (-> arg1 (+ arg2 -2)) (the-as rgba s1-1) #f (the-as rgba -1)) + (let ((sv-48 0)) + (while (< sv-48 s0-1) + (let* ((a2-15 (+ (* sv-48 2) 1)) + (v1-43 (+ a2-15 2)) + (sv-64 (+ a2-15 1)) + (sv-80 (+ sv-64 2)) + ) + (if (< sv-64 arg2) + (add-debug-line #t arg0 (-> arg1 a2-15) (-> arg1 v1-43) (the-as rgba s1-1) #f (the-as rgba -1)) + ) + (if (< sv-80 arg2) + (add-debug-line #t arg0 (-> arg1 sv-64) (-> arg1 sv-80) (the-as rgba s1-1) #f (the-as rgba -1)) + ) + ) + (+! sv-48 1) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition (debug) for function cpu-delay +;; WARN: Return type mismatch int vs none. +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 a1, Count] +(defun-debug cpu-delay ((arg0 uint)) + (local-vars (v1-2 int) (a1-0 int) (a1-1 int)) + 0 + 0 + (.mfc0 v1-2 Count) + (until (>= (the-as uint a1-1) arg0) + (.mfc0 a1-0 Count) + (nop!) + (set! a1-1 (- a1-0 v1-2)) + (nop!) + ) + 0 + (none) + ) + +;; definition (debug) for function qword-read-time +;; INFO: Used lq/sq +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 a0, Count] +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +(defun-debug qword-read-time ((arg0 (pointer uint128)) (arg1 int)) + (local-vars (v1-1 int) (a0-1 int)) + (let ((v1-0 (shr arg1 2)) + (a1-1 arg0) + ) + (.mfc0 a0-1 Count) + (until (zero? v1-0) + (-> a1-1 0) + (+! v1-0 -1) + (-> a1-1 1) + (nop!) + (-> a1-1 2) + (nop!) + (-> a1-1 3) + (set! a1-1 (&-> a1-1 4)) + ) + ) + (.mfc0 v1-1 Count) + (- v1-1 a0-1) + ) + +;; definition (debug) for function bugfix? +(defun-debug bugfix? () + (let ((s5-0 (the-as int #xffffffff)) + (gp-0 (the-as int #xffffffff)) + (s4-0 (logior #x20000000 (logand (the-as uint #xffffffc0) #f))) + ) + 0 + (let ((s3-0 (+ #x2000000 s4-0))) + (dotimes (s2-0 100) + (set! s5-0 (min s5-0 (qword-read-time (the-as (pointer uint128) s4-0) 128))) + (set! gp-0 (min gp-0 (qword-read-time (the-as (pointer uint128) s3-0) 128))) + ) + (let ((f30-0 (/ (the float gp-0) (the float s5-0)))) + (format #t "qword read times: hi #x~x ~d, lo #x~x ~d~%" s3-0 gp-0 s4-0 s5-0) + (format #t "hi/lo memory bank uncached read speed ratio is ~f~%" f30-0) + (format + #t + "If the workaround for the EE memory controller bug is turned on, this ratio should be about 1.3, otherwise about 1.0.~%" + ) + (< 1.15 f30-0) + ) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/debug/history_REF.gc b/test/decompiler/reference/jakx/engine/debug/history_REF.gc index 8a10baeade..27ad2d7f6d 100644 --- a/test/decompiler/reference/jakx/engine/debug/history_REF.gc +++ b/test/decompiler/reference/jakx/engine/debug/history_REF.gc @@ -721,3 +721,7 @@ ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/jakx/engine/debug/manipulator_REF.gc b/test/decompiler/reference/jakx/engine/debug/manipulator_REF.gc index 5938f13fb1..cad45d5efa 100644 --- a/test/decompiler/reference/jakx/engine/debug/manipulator_REF.gc +++ b/test/decompiler/reference/jakx/engine/debug/manipulator_REF.gc @@ -941,3 +941,7 @@ 0 (none) ) + + + + diff --git a/test/decompiler/reference/jakx/engine/debug/menu_REF.gc b/test/decompiler/reference/jakx/engine/debug/menu_REF.gc new file mode 100644 index 0000000000..51c2cd07c9 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/debug/menu_REF.gc @@ -0,0 +1,1623 @@ +;;-*-Lisp-*- +(in-package goal) + +;; this file is debug only +(declare-file (debug)) + +;; definition of type debug-menu-context +(deftype debug-menu-context (basic) + ((is-active symbol) + (sel-length int32) + (sel-menu debug-menu 8) + (root-menu debug-menu) + (joypad-func (function basic int none)) + (joypad-item debug-menu-item) + (font font-context) + (is-hidden symbol) + (joypad-number int32) + ) + (:methods + (new (symbol type) _type_) + ) + ) + +;; definition for method 3 of type debug-menu-context +(defmethod inspect ((this debug-menu-context)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tis-active: ~A~%" (-> this is-active)) + (format #t "~1Tsel-length: ~D~%" (-> this sel-length)) + (format #t "~1Tsel-menu[8] @ #x~X~%" (-> this sel-menu)) + (format #t "~1Troot-menu: ~A~%" (-> this root-menu)) + (format #t "~1Tjoypad-func: ~A~%" (-> this joypad-func)) + (format #t "~1Tjoypad-item: ~A~%" (-> this joypad-item)) + (format #t "~1Tfont: ~A~%" (-> this font)) + (format #t "~1Tis-hidden: ~A~%" (-> this is-hidden)) + (format #t "~1Tjoypad-number: ~D~%" (-> this joypad-number)) + (label cfg-4) + this + ) + +;; definition for method 0 of type debug-menu-context +(defmethod new debug-menu-context ((allocation symbol) (type-to-make type)) + (let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> gp-0 is-active) #f) + (set! (-> gp-0 is-hidden) #f) + (set! (-> gp-0 sel-length) 0) + (set! (-> gp-0 root-menu) #f) + (set! (-> gp-0 joypad-func) #f) + (set! (-> gp-0 joypad-item) #f) + (set! (-> gp-0 font) (new + 'debug + 'font-context + *font-default-matrix* + 0 + 0 + 8396850.0 + (font-color default) + (font-flags shadow kerning) + ) + ) + (set! (-> gp-0 joypad-number) 0) + gp-0 + ) + ) + +;; definition of type debug-menu-node +(deftype debug-menu-node (basic) + ((name string) + (parent debug-menu) + (refresh-delay int32) + (refresh-ctr int32) + ) + ) + +;; definition for method 3 of type debug-menu-node +(defmethod inspect ((this debug-menu-node)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tparent: ~A~%" (-> this parent)) + (format #t "~1Trefresh-delay: ~D~%" (-> this refresh-delay)) + (format #t "~1Trefresh-ctr: ~D~%" (-> this refresh-ctr)) + (label cfg-4) + this + ) + +;; definition for method 2 of type debug-menu-node +(defmethod print ((this debug-menu-node)) + (format #t "#<~A ~A @ #x~X>" (-> this type) (-> this name) this) + this + ) + +;; definition of type debug-menu +(deftype debug-menu (debug-menu-node) + ((context debug-menu-context) + (selected-item debug-menu-item) + (pix-width int32) + (pix-height int32) + (items pair) + ) + (:methods + (new (symbol type debug-menu-context string) _type_) + ) + ) + +;; definition for method 3 of type debug-menu +(defmethod inspect ((this debug-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tparent: ~A~%" (-> this parent)) + (format #t "~1Trefresh-delay: ~D~%" (-> this refresh-delay)) + (format #t "~1Trefresh-ctr: ~D~%" (-> this refresh-ctr)) + (format #t "~1Tcontext: ~A~%" (-> this context)) + (format #t "~1Tselected-item: ~A~%" (-> this selected-item)) + (format #t "~1Tpix-width: ~D~%" (-> this pix-width)) + (format #t "~1Tpix-height: ~D~%" (-> this pix-height)) + (format #t "~1Titems: ~A~%" (-> this items)) + (label cfg-4) + this + ) + +;; definition for method 0 of type debug-menu +(defmethod new debug-menu ((allocation symbol) (type-to-make type) (arg0 debug-menu-context) (arg1 string)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 context) arg0) + (set! (-> v0-0 name) arg1) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 selected-item) #f) + (set! (-> v0-0 items) '()) + v0-0 + ) + ) + +;; definition of type debug-menu-item +(deftype debug-menu-item (debug-menu-node) + ((id int32) + ) + ) + +;; definition for method 3 of type debug-menu-item +(defmethod inspect ((this debug-menu-item)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tparent: ~A~%" (-> this parent)) + (format #t "~1Trefresh-delay: ~D~%" (-> this refresh-delay)) + (format #t "~1Trefresh-ctr: ~D~%" (-> this refresh-ctr)) + (format #t "~1Tid: #x~X~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition of type debug-menu-item-submenu +(deftype debug-menu-item-submenu (debug-menu-item) + ((submenu debug-menu) + ) + (:methods + (new (symbol type string debug-menu) _type_) + ) + ) + +;; definition for method 3 of type debug-menu-item-submenu +(defmethod inspect ((this debug-menu-item-submenu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tparent: ~A~%" (-> this parent)) + (format #t "~1Trefresh-delay: ~D~%" (-> this refresh-delay)) + (format #t "~1Trefresh-ctr: ~D~%" (-> this refresh-ctr)) + (format #t "~1Tid: #x~X~%" (-> this id)) + (format #t "~1Tsubmenu: ~A~%" (-> this submenu)) + (label cfg-4) + this + ) + +;; definition for method 0 of type debug-menu-item-submenu +(defmethod new debug-menu-item-submenu ((allocation symbol) (type-to-make type) (arg0 string) (arg1 debug-menu)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 name) arg0) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 refresh-delay) 0) + (set! (-> v0-0 refresh-ctr) (-> v0-0 refresh-delay)) + (set! (-> v0-0 submenu) arg1) + (set! (-> v0-0 submenu parent) (the-as debug-menu v0-0)) + v0-0 + ) + ) + +;; definition of type debug-menu-item-function +(deftype debug-menu-item-function (debug-menu-item) + ((activate-func (function object object)) + (hilite-timer int8) + ) + (:methods + (new (symbol type string object (function object object)) _type_) + ) + ) + +;; definition for method 3 of type debug-menu-item-function +(defmethod inspect ((this debug-menu-item-function)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tparent: ~A~%" (-> this parent)) + (format #t "~1Trefresh-delay: ~D~%" (-> this refresh-delay)) + (format #t "~1Trefresh-ctr: ~D~%" (-> this refresh-ctr)) + (format #t "~1Tid: #x~X~%" (-> this id)) + (format #t "~1Tactivate-func: ~A~%" (-> this activate-func)) + (format #t "~1Thilite-timer: ~D~%" (-> this hilite-timer)) + (label cfg-4) + this + ) + +;; definition for method 0 of type debug-menu-item-function +(defmethod new debug-menu-item-function ((allocation symbol) (type-to-make type) (arg0 string) (arg1 object) (arg2 (function object object))) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 name) arg0) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 refresh-delay) 0) + (set! (-> v0-0 refresh-ctr) (-> v0-0 refresh-delay)) + (set! (-> v0-0 id) (the-as int arg1)) + (set! (-> v0-0 activate-func) arg2) + (set! (-> v0-0 hilite-timer) 0) + v0-0 + ) + ) + +;; definition of type debug-menu-item-flag +(deftype debug-menu-item-flag (debug-menu-item) + ((activate-func (function object debug-menu-msg object)) + (is-on symbol) + ) + (:methods + (new (symbol type string object (function object debug-menu-msg object)) _type_) + ) + ) + +;; definition for method 3 of type debug-menu-item-flag +(defmethod inspect ((this debug-menu-item-flag)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tparent: ~A~%" (-> this parent)) + (format #t "~1Trefresh-delay: ~D~%" (-> this refresh-delay)) + (format #t "~1Trefresh-ctr: ~D~%" (-> this refresh-ctr)) + (format #t "~1Tid: #x~X~%" (-> this id)) + (format #t "~1Tactivate-func: ~A~%" (-> this activate-func)) + (format #t "~1Tis-on: ~A~%" (-> this is-on)) + (label cfg-4) + this + ) + +;; definition for method 0 of type debug-menu-item-flag +(defmethod new debug-menu-item-flag ((allocation symbol) + (type-to-make type) + (arg0 string) + (arg1 object) + (arg2 (function object debug-menu-msg object)) + ) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 name) arg0) + (set! (-> v0-0 parent) #f) + (set! (-> v0-0 refresh-delay) 23) + (set! (-> v0-0 refresh-ctr) (-> v0-0 refresh-delay)) + (set! (-> v0-0 id) (the-as int arg1)) + (set! (-> v0-0 activate-func) arg2) + (set! (-> v0-0 is-on) #f) + v0-0 + ) + ) + +;; definition of type debug-menu-item-var +(deftype debug-menu-item-var (debug-menu-item) + ((display-str string) + (grabbed-joypad-p symbol) + (float-p symbol) + (range-p symbol) + (show-len int32) + (inc-delay int32) + (inc-delay-ctr int32) + (step-delay-ctr int32) + (inc-dir int32) + (fval float) + (fundo-val float) + (frange-min float) + (frange-max float) + (fstart-inc float) + (fstep float) + (fprecision int32) + (factivate-func (function int debug-menu-msg float float float)) + (ival int32 :overlay-at fval) + (iundo-val int32 :overlay-at fundo-val) + (irange-min int32 :overlay-at frange-min) + (irange-max int32 :overlay-at frange-max) + (istart-inc int32 :overlay-at fstart-inc) + (istep int32 :overlay-at fstep) + (ihex-p symbol) + (iactivate-func (function int debug-menu-msg int int int) :overlay-at factivate-func) + (ifloat-p symbol) + ) + (:methods + (new (symbol type string int int) _type_) + ) + ) + +;; definition for method 3 of type debug-menu-item-var +(defmethod inspect ((this debug-menu-item-var)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tparent: ~A~%" (-> this parent)) + (format #t "~1Trefresh-delay: ~D~%" (-> this refresh-delay)) + (format #t "~1Trefresh-ctr: ~D~%" (-> this refresh-ctr)) + (format #t "~1Tid: #x~X~%" (-> this id)) + (format #t "~1Tdisplay-str: ~A~%" (-> this display-str)) + (format #t "~1Tgrabbed-joypad-p: ~A~%" (-> this grabbed-joypad-p)) + (format #t "~1Tfloat-p: ~A~%" (-> this float-p)) + (format #t "~1Trange-p: ~A~%" (-> this range-p)) + (format #t "~1Tshow-len: ~D~%" (-> this show-len)) + (format #t "~1Tinc-delay: ~D~%" (-> this inc-delay)) + (format #t "~1Tinc-delay-ctr: ~D~%" (-> this inc-delay-ctr)) + (format #t "~1Tstep-delay-ctr: ~D~%" (-> this step-delay-ctr)) + (format #t "~1Tinc-dir: ~D~%" (-> this inc-dir)) + (format #t "~1Tfval: ~f~%" (-> this fval)) + (format #t "~1Tfundo-val: ~f~%" (-> this fundo-val)) + (format #t "~1Tfrange-min: ~f~%" (-> this frange-min)) + (format #t "~1Tfrange-max: ~f~%" (-> this frange-max)) + (format #t "~1Tfstart-inc: ~f~%" (-> this fstart-inc)) + (format #t "~1Tfstep: ~f~%" (-> this fstep)) + (format #t "~1Tfprecision: ~D~%" (-> this fprecision)) + (format #t "~1Tfactivate-func: ~A~%" (-> this factivate-func)) + (format #t "~1Tival: ~D~%" (-> this fval)) + (format #t "~1Tiundo-val: ~D~%" (-> this fundo-val)) + (format #t "~1Tirange-min: ~D~%" (-> this frange-min)) + (format #t "~1Tirange-max: ~D~%" (-> this frange-max)) + (format #t "~1Tistart-inc: ~D~%" (-> this fstart-inc)) + (format #t "~1Tistep: ~D~%" (-> this fstep)) + (format #t "~1Tihex-p: ~A~%" (-> this ihex-p)) + (format #t "~1Tiactivate-func: ~A~%" (-> this factivate-func)) + (format #t "~1Tifloat-p: ~A~%" (-> this ifloat-p)) + (label cfg-4) + this + ) + +;; definition for function debug-menu-item-var-update-display-str +(defun debug-menu-item-var-update-display-str ((arg0 debug-menu-item-var)) + (cond + ((-> arg0 float-p) + (format (clear (-> arg0 display-str)) "~f" (-> arg0 fval)) + ) + ((-> arg0 ihex-p) + (format (clear (-> arg0 display-str)) "x~X" (-> arg0 fval)) + ) + ((-> arg0 ifloat-p) + (cond + ((and (< (the-as int (-> arg0 fval)) 0) (< -100 (the-as int (-> arg0 fval)))) + (let ((s5-2 format) + (a0-8 (clear (-> arg0 display-str))) + (a1-2 "-0.~1d") + (v1-8 (abs (the-as int (-> arg0 fval)))) + ) + (s5-2 a0-8 a1-2 (/ (mod v1-8 100) 10)) + ) + ) + (else + (let ((s5-3 format) + (a0-10 (clear (-> arg0 display-str))) + (a1-3 "~2d.~1d") + (a2-6 (/ (the-as int (-> arg0 fval)) 100)) + (v1-12 (abs (the-as int (-> arg0 fval)))) + ) + (s5-3 a0-10 a1-3 a2-6 (/ (mod v1-12 100) 10)) + ) + ) + ) + ) + (else + (format (clear (-> arg0 display-str)) "~D" (-> arg0 fval)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-var-make-int +(defun debug-menu-item-var-make-int ((arg0 debug-menu-item-var) + (arg1 (function int debug-menu-msg int int int)) + (arg2 int) + (arg3 symbol) + (arg4 int) + (arg5 int) + (arg6 symbol) + ) + (set! (-> arg0 float-p) #f) + (set! (-> arg0 range-p) arg3) + (set! (-> arg0 frange-min) (the-as float arg4)) + (set! (-> arg0 frange-max) (the-as float arg5)) + (set! (-> arg0 fstart-inc) (the-as float arg2)) + (set! (-> arg0 fstep) (the-as float arg2)) + (set! (-> arg0 ihex-p) arg6) + (set! (-> arg0 factivate-func) (the-as (function int debug-menu-msg float float float) arg1)) + (cond + (arg3 + (set! (-> arg0 fval) (the-as float arg4)) + ) + (else + (set! (-> arg0 fval) 0.0) + 0 + ) + ) + (if arg1 + (set! (-> arg0 fval) + (the-as + float + (arg1 (-> arg0 id) (debug-menu-msg update) (the-as int (-> arg0 fval)) (the-as int (-> arg0 fval))) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + arg0 + ) + +;; definition for function debug-menu-item-var-make-float +(defun debug-menu-item-var-make-float ((arg0 debug-menu-item-var) + (arg1 (function int debug-menu-msg float float float)) + (arg2 float) + (arg3 symbol) + (arg4 float) + (arg5 float) + (arg6 int) + ) + (set! (-> arg0 float-p) #t) + (set! (-> arg0 range-p) arg3) + (set! (-> arg0 frange-min) arg4) + (set! (-> arg0 frange-max) arg5) + (set! (-> arg0 fstart-inc) arg2) + (set! (-> arg0 fstep) arg2) + (set! (-> arg0 fprecision) arg6) + (set! (-> arg0 factivate-func) arg1) + (if arg3 + (set! (-> arg0 fval) arg4) + (set! (-> arg0 fval) 0.0) + ) + (if arg1 + (set! (-> arg0 fval) + (the float (the-as int (arg1 (-> arg0 id) (debug-menu-msg update) (-> arg0 fval) (-> arg0 fval)))) + ) + ) + (debug-menu-item-var-update-display-str arg0) + arg0 + ) + +;; definition for method 0 of type debug-menu-item-var +(defmethod new debug-menu-item-var ((allocation symbol) (type-to-make type) (arg0 string) (arg1 int) (arg2 int)) + (let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (let ((v1-2 (/ arg2 8))) + (set! (-> gp-0 name) arg0) + (set! (-> gp-0 parent) #f) + (set! (-> gp-0 refresh-delay) 31) + (set! (-> gp-0 refresh-ctr) (-> gp-0 refresh-delay)) + (set! (-> gp-0 id) arg1) + (set! v1-2 (cond + ((< 3 v1-2) + (empty) + v1-2 + ) + (else + 3 + ) + ) + ) + (set! (-> gp-0 show-len) v1-2) + ) + (set! (-> gp-0 grabbed-joypad-p) #f) + (set! (-> gp-0 ifloat-p) #f) + (set! (-> gp-0 display-str) (new 'debug 'string 64 (the-as string #f))) + (debug-menu-item-var-make-int gp-0 (the-as (function int debug-menu-msg int int int) #f) 1 #t 0 0 #f) + gp-0 + ) + ) + +;; definition for function debug-menu-context-grab-joypad +(defun debug-menu-context-grab-joypad ((arg0 debug-menu-context) (arg1 basic) (arg2 (function basic int none))) + (cond + ((-> arg0 joypad-func) + #f + ) + (else + (set! (-> arg0 joypad-func) arg2) + (set! (-> arg0 joypad-item) (the-as debug-menu-item arg1)) + #t + ) + ) + ) + +;; definition for function debug-menu-context-release-joypad +(defun debug-menu-context-release-joypad ((arg0 debug-menu-context)) + (set! (-> arg0 joypad-func) #f) + (set! (-> arg0 joypad-item) #f) + #f + ) + +;; definition for function debug-menu-item-get-max-width +(defun debug-menu-item-get-max-width ((arg0 debug-menu-item) (arg1 debug-menu)) + (local-vars (v0-1 int)) + 0 + (cond + ((= (-> arg0 type) debug-menu-item-submenu) + (set! v0-1 + (+ (the int + (-> (get-string-length (-> (the-as debug-menu-item-submenu arg0) name) (-> arg1 context font)) length) + ) + 16 + ) + ) + ) + ((= (-> arg0 type) debug-menu-item-var) + (set! v0-1 + (the int + (-> (get-string-length (-> (the-as debug-menu-item-var arg0) display-str) (-> arg1 context font)) length) + ) + ) + ) + (else + (set! v0-1 (+ (the int (-> (get-string-length (-> arg0 name) (-> arg1 context font)) length)) 6)) + ) + ) + v0-1 + ) + +;; definition for function debug-menu-context-default-selection +(defun debug-menu-context-default-selection ((arg0 debug-menu-context) (arg1 symbol)) + (when (or (zero? (-> arg0 sel-length)) (not arg1)) + (let ((s5-0 (-> arg0 root-menu))) + (when (and s5-0 (not (null? (-> s5-0 items)))) + (let ((s4-0 (-> arg0 is-active))) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg0 sel-length) 1) + (set! (-> arg0 sel-menu 0) s5-0) + (set! (-> s5-0 selected-item) (the-as debug-menu-item (-> s5-0 items car))) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for function debug-menu-rebuild +(defun debug-menu-rebuild ((arg0 debug-menu)) + (let ((s4-0 0) + (s5-0 0) + ) + (let* ((s3-0 (-> arg0 items)) + (a0-1 (car s3-0)) + ) + (while (not (null? s3-0)) + (+! s5-0 1) + (set! (-> (the-as debug-menu-item a0-1) parent) arg0) + (set! s4-0 (max s4-0 (debug-menu-item-get-max-width (the-as debug-menu-item a0-1) arg0))) + (set! s3-0 (cdr s3-0)) + (set! a0-1 (car s3-0)) + ) + ) + (set! (-> arg0 pix-width) (+ s4-0 18)) + (set! (-> arg0 pix-height) (+ (* 15 s5-0) 10)) + ) + (let ((a0-2 (-> arg0 context))) + (debug-menu-context-default-selection a0-2 #t) + ) + arg0 + ) + +;; definition for function debug-menu-context-set-root-menu +(defun debug-menu-context-set-root-menu ((arg0 debug-menu-context) (arg1 debug-menu)) + (let ((s4-0 (-> arg0 is-active))) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg0 root-menu) arg1) + (debug-menu-context-default-selection arg0 #f) + (if s4-0 + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-append-item +(defun debug-menu-append-item ((arg0 debug-menu) (arg1 debug-menu-node)) + (let* ((gp-0 (-> arg0 context)) + (s4-0 (-> gp-0 is-active)) + ) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg1 parent) arg0) + (set! (-> arg0 items) (the-as pair (append! (-> arg0 items) (cons arg1 '())))) + (debug-menu-rebuild arg0) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + arg1 + ) + +;; definition for function debug-menu-remove-all-items +(defun debug-menu-remove-all-items ((arg0 debug-menu)) + (let* ((gp-0 (-> arg0 context)) + (s4-0 (-> gp-0 is-active)) + ) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + (set! (-> arg0 items) '()) + (set! (-> arg0 selected-item) #f) + (debug-menu-rebuild arg0) + (if s4-0 + (debug-menu-context-send-msg gp-0 (debug-menu-msg activate) (debug-menu-dest activation)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-func-decode +;; WARN: Return type mismatch object vs function. +(defun debug-menu-func-decode ((arg0 object)) + (let ((v1-2 (rtype-of arg0))) + (the-as function (cond + ((or (= v1-2 symbol) (= v1-2 type)) + (-> (the-as symbol arg0) value) + ) + ((= v1-2 function) + arg0 + ) + (else + nothing + ) + ) + ) + ) + ) + +;; definition for function debug-menu-make-from-template +;; INFO: Used lq/sq +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 +;; ERROR: Stack slot load at 128 mismatch: defined as size 4, got size 16 +(defun debug-menu-make-from-template ((arg0 debug-menu-context) (arg1 pair)) + (local-vars (s4-0 debug-menu-node)) + (when (or (not arg1) (null? arg1)) + (set! s4-0 (the-as debug-menu-node #f)) + (goto cfg-39) + ) + (let ((s5-0 (car arg1)) + (s4-1 (car (cdr arg1))) + ) + (cond + ((= s5-0 'menu) + (let ((s5-1 (new 'debug 'debug-menu arg0 (the-as string s4-1)))) + (set! s4-0 (new 'debug 'debug-menu-item-submenu (the-as string s4-1) s5-1)) + (let* ((gp-1 (cdr (cdr arg1))) + (a1-3 (car gp-1)) + ) + (while (not (null? gp-1)) + (let ((a1-4 (debug-menu-make-from-template arg0 (the-as pair a1-3)))) + (if a1-4 + (debug-menu-append-item s5-1 a1-4) + ) + ) + (set! gp-1 (cdr gp-1)) + (set! a1-3 (car gp-1)) + ) + ) + ) + ) + ((= s5-0 'main-menu) + (set! s4-0 (new 'debug 'debug-menu arg0 (the-as string s4-1))) + (let* ((gp-2 (cdr (cdr arg1))) + (a1-6 (car gp-2)) + ) + (while (not (null? gp-2)) + (let ((a1-7 (debug-menu-make-from-template arg0 (the-as pair a1-6)))) + (if a1-7 + (debug-menu-append-item (the-as debug-menu s4-0) a1-7) + ) + ) + (set! gp-2 (cdr gp-2)) + (set! a1-6 (car gp-2)) + ) + ) + (debug-menu-context-set-root-menu arg0 (the-as debug-menu s4-0)) + ) + (else + (set! s4-0 + (cond + ((= s5-0 'flag) + (new + 'debug + 'debug-menu-item-flag + (the-as string s4-1) + (car (cdr (cdr arg1))) + (the-as (function object debug-menu-msg object) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + ) + ) + ((or (= s5-0 0) (= s5-0 'function)) + (new + 'debug + 'debug-menu-item-function + (the-as string s4-1) + (car (cdr (cdr arg1))) + (the-as (function object object) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + ) + ) + ((= s5-0 'var) + (new + 'debug + 'debug-menu-item-var + (the-as string s4-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (car (cdr (cdr (cdr arg1))))) + ) + ) + ((or (= s5-0 'int-var) (= s5-0 'int-var-gat1) (= s5-0 'hex-var)) + (set! s4-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s4-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (debug-menu-item-var-make-int + (the-as debug-menu-item-var s4-0) + (the-as (function int debug-menu-msg int int int) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + (command-get-int (ref arg1 5) 0) + (the-as symbol (ref arg1 6)) + (command-get-int (ref arg1 7) 0) + (command-get-int (ref arg1 8) 0) + (= s5-0 'hex-var) + ) + s4-0 + ) + ((= s5-0 'float-var) + (set! s4-0 + (new + 'debug + 'debug-menu-item-var + (the-as string s4-1) + (the-as int (car (cdr (cdr arg1)))) + (the-as int (ref arg1 4)) + ) + ) + (debug-menu-item-var-make-float + (the-as debug-menu-item-var s4-0) + (the-as (function int debug-menu-msg float float float) (debug-menu-func-decode (car (cdr (cdr (cdr arg1)))))) + (command-get-float (ref arg1 5) 0.0) + (the-as symbol (ref arg1 6)) + (command-get-float (ref arg1 7) 0.0) + (command-get-float (ref arg1 8) 0.0) + (command-get-int (ref arg1 9) 0) + ) + s4-0 + ) + (else + (the-as debug-menu-node #f) + ) + ) + ) + ) + ) + ) + (label cfg-39) + s4-0 + ) + +;; definition for function debug-menu-find-from-template +;; WARN: Return type mismatch object vs debug-menu. +(defun debug-menu-find-from-template ((arg0 debug-menu-context) (arg1 pair)) + (let ((s5-0 (the-as object (-> arg0 root-menu)))) + (while (begin (label cfg-12) (and s5-0 (type? s5-0 debug-menu) (not (null? arg1)))) + (let ((s3-0 (-> (the-as debug-menu s5-0) items)) + (s5-1 (car arg1)) + ) + (set! arg1 (cdr arg1)) + (let ((s4-0 (car s3-0))) + (while (not (null? s3-0)) + (when (string= (the-as string s5-1) (-> (the-as debug-menu-item s4-0) name)) + (if (type? s4-0 debug-menu-item-submenu) + (set! s5-0 (-> (the-as debug-menu-item-submenu s4-0) submenu)) + (set! s5-0 s4-0) + ) + (goto cfg-12) + ) + (set! s3-0 (cdr s3-0)) + (set! s4-0 (car s3-0)) + ) + ) + ) + (set! s5-0 #f) + (goto cfg-19) + ) + (label cfg-19) + (the-as debug-menu s5-0) + ) + ) + +;; definition for function debug-menu-item-submenu-render +(defun debug-menu-item-submenu-render ((arg0 debug-menu-item-submenu) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((s5-0 (-> arg0 parent context font))) + (let ((v1-2 s5-0) + (a0-1 arg2) + ) + (set! (-> v1-2 origin x) (the float arg1)) + (set! (-> v1-2 origin y) (the float a0-1)) + ) + (set! (-> s5-0 color) (cond + ((zero? arg3) + (font-color menu) + ) + (arg4 + (font-color menu-selected-parent) + ) + (else + (font-color menu-parent) + ) + ) + ) + (with-dma-buffer-add-bucket ((s3-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string-adv (-> arg0 name) s3-0 s5-0) + (draw-string-adv "..." s3-0 s5-0) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-function-render +(defun debug-menu-item-function-render ((arg0 debug-menu-item-function) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((v1-2 (-> arg0 parent context font))) + (let ((a0-1 v1-2) + (a1-1 arg2) + ) + (set! (-> a0-1 origin x) (the float arg1)) + (set! (-> a0-1 origin y) (the float a1-1)) + ) + (set! (-> v1-2 color) (the-as font-color (cond + ((> (-> arg0 hilite-timer) 0) + (+! (-> arg0 hilite-timer) -1) + 10 + ) + ((< (-> arg0 hilite-timer) 0) + (+! (-> arg0 hilite-timer) 1) + 14 + ) + ((nonzero? arg3) + 13 + ) + (else + 12 + ) + ) + ) + ) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string (-> arg0 name) s4-0 v1-2) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-flag-render +(defun debug-menu-item-flag-render ((arg0 debug-menu-item-flag) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((v1-2 (-> arg0 parent context font))) + (let ((a0-1 v1-2) + (a1-1 arg2) + ) + (set! (-> a0-1 origin x) (the float arg1)) + (set! (-> a0-1 origin y) (the float a1-1)) + ) + (set! (-> v1-2 color) (cond + ((= (-> arg0 is-on) 'invalid) + (font-color menu-invalid) + ) + ((-> arg0 is-on) + (if (zero? arg3) + (font-color menu-flag-on) + (font-color menu-flag-on-parent) + ) + ) + ((zero? arg3) + (font-color menu-flag-off) + ) + (else + (font-color menu-flag-off-parent) + ) + ) + ) + (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string (-> arg0 name) s4-0 v1-2) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-var-render +(defun debug-menu-item-var-render ((arg0 debug-menu-item-var) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (let ((s5-0 (-> arg0 parent context font))) + (let ((v1-2 s5-0) + (a0-1 arg2) + ) + (set! (-> v1-2 origin x) (the float arg1)) + (set! (-> v1-2 origin y) (the float a0-1)) + ) + (set! (-> s5-0 color) (cond + ((zero? arg3) + (if (-> arg0 grabbed-joypad-p) + (font-color menu-selected) + (font-color menu) + ) + ) + (arg4 + (font-color menu-selected-parent) + ) + (else + (font-color menu-parent) + ) + ) + ) + (with-dma-buffer-add-bucket ((s1-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-string-adv (-> arg0 name) s1-0 s5-0) + (draw-string-adv ":" s1-0 s5-0) + (cond + ((>= (-> arg0 show-len) (length (-> arg0 display-str))) + (draw-string (-> arg0 display-str) s1-0 s5-0) + ) + (else + (draw-string "..." s1-0 s5-0) + (set! arg4 (and (zero? arg3) arg4)) + (when arg4 + (set-origin! s5-0 20 379) + (draw-string-adv (-> arg0 name) s1-0 s5-0) + (draw-string-adv ":" s1-0 s5-0) + (draw-string (-> arg0 display-str) s1-0 s5-0) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-render +(defun debug-menu-item-render ((arg0 debug-menu-item) (arg1 int) (arg2 int) (arg3 int) (arg4 symbol)) + (when (> (-> arg0 refresh-delay) 0) + (+! (-> arg0 refresh-ctr) -1) + (when (<= (-> arg0 refresh-ctr) 0) + (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) + (debug-menu-item-send-msg arg0 (debug-menu-msg update)) + ) + ) + (cond + ((= (-> arg0 type) debug-menu-item-submenu) + (debug-menu-item-submenu-render (the-as debug-menu-item-submenu arg0) arg1 arg2 arg3 arg4) + ) + ((= (-> arg0 type) debug-menu-item-function) + (debug-menu-item-function-render (the-as debug-menu-item-function arg0) arg1 arg2 arg3 arg4) + ) + ((= (-> arg0 type) debug-menu-item-flag) + (debug-menu-item-flag-render (the-as debug-menu-item-flag arg0) arg1 arg2 arg3 arg4) + ) + ((= (-> arg0 type) debug-menu-item-var) + (debug-menu-item-var-render (the-as debug-menu-item-var arg0) arg1 arg2 arg3 arg4) + ) + (else + (format 0 "ERROR: Found unknown item type!~%") + ) + ) + arg0 + ) + +;; definition for function debug-menu-render +;; INFO: Used lq/sq +(defun debug-menu-render ((arg0 debug-menu) (arg1 int) (arg2 int) (arg3 debug-menu-node) (arg4 int)) + (let ((v1-0 0)) + (let* ((a0-1 (-> arg0 items)) + (a1-1 (car a0-1)) + ) + (while (not (null? a0-1)) + (if (= a1-1 arg3) + (goto cfg-7) + ) + (+! v1-0 1) + (set! a0-1 (cdr a0-1)) + (set! a1-1 (car a0-1)) + ) + ) + (label cfg-7) + (if (< 16 v1-0) + (set! arg2 (- arg2 (* 15 (+ v1-0 -16)))) + ) + ) + (with-dma-buffer-add-bucket ((s0-0 (-> *display* frames (-> *display* on-screen) debug-buf)) + (bucket-id bucket795) + ) + (draw-sprite2d-xy + s0-0 + arg1 + arg2 + (-> arg0 pix-width) + (-> arg0 pix-height) + (new 'static 'rgba :a #x40) + #x3fffff + ) + ) + (let* ((s3-1 (+ arg1 3)) + (s2-1 (+ arg2 5)) + (s1-1 (-> arg0 items)) + (s0-1 (car s1-1)) + ) + (while (not (null? s1-1)) + (when (= s0-1 arg3) + (set! (-> arg0 context font color) (if (nonzero? arg4) + (font-color menu-parent) + (font-color menu) + ) + ) + (set-origin! (-> arg0 context font) s3-1 s2-1) + (let* ((sv-16 (-> *display* frames (-> *display* on-screen) debug-buf)) + (sv-32 (-> sv-16 base)) + ) + (draw-string ">" sv-16 (-> arg0 context font)) + (let ((a3-3 (-> sv-16 base))) + (when (!= sv-32 a3-3) + (let ((v1-33 (the-as object (-> sv-16 base)))) + (set! (-> (the-as dma-packet v1-33) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-33) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-33) vif1) (new 'static 'vif-tag)) + (set! (-> sv-16 base) (the-as pointer (&+ (the-as dma-packet v1-33) 16))) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (bucket-id bucket795) + sv-32 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + ) + ) + (debug-menu-item-render (the-as debug-menu-item s0-1) (+ s3-1 12) s2-1 arg4 (= s0-1 arg3)) + (+! s2-1 15) + (set! s1-1 (cdr s1-1)) + (set! s0-1 (car s1-1)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-context-render +(defun debug-menu-context-render ((arg0 debug-menu-context)) + (let ((s4-0 6)) + (dotimes (s5-0 (-> arg0 sel-length)) + (let ((s3-0 (-> arg0 sel-menu s5-0))) + (let ((a3-0 (-> s3-0 selected-item))) + (debug-menu-render s3-0 s4-0 52 a3-0 (+ (- -1 s5-0) (-> arg0 sel-length))) + ) + (set! s4-0 (+ s4-0 3 (-> s3-0 pix-width))) + ) + ) + ) + arg0 + ) + +;; definition for function debug-menu-context-select-next-or-prev-item +(defun debug-menu-context-select-next-or-prev-item ((arg0 debug-menu-context) (arg1 int)) + (local-vars (v1-6 object)) + (let ((s5-0 (-> arg0 sel-menu (+ (-> arg0 sel-length) -1)))) + (let ((a2-0 (-> s5-0 selected-item)) + (a0-1 '()) + (v1-4 '()) + ) + (let ((a3-0 (-> s5-0 items))) + (while (not (null? a3-0)) + (when (= (car a3-0) a2-0) + (set! v1-4 a3-0) + (goto cfg-7) + ) + (set! a0-1 a3-0) + (set! a3-0 (cdr a3-0)) + ) + ) + (label cfg-7) + (when (null? v1-4) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-19) + ) + (cond + ((>= arg1 0) + (if (null? (cdr v1-4)) + (set! v1-6 (car (-> s5-0 items))) + (set! v1-6 (car (cdr v1-4))) + ) + ) + ((null? a0-1) + (set! v1-6 (car (last (-> s5-0 items)))) + ) + (else + (set! v1-6 (car a0-1)) + ) + ) + ) + (set! (-> s5-0 selected-item) (the-as debug-menu-item v1-6)) + ) + (label cfg-19) + arg0 + ) + +;; definition for function debug-menu-context-select-new-item +(defun debug-menu-context-select-new-item ((arg0 debug-menu-context) (arg1 int)) + (let* ((a2-0 (-> arg0 sel-menu (+ (-> arg0 sel-length) -1))) + (a1-1 (-> a2-0 selected-item)) + (a0-1 0) + (v1-4 -1) + ) + (let ((a2-1 (-> a2-0 items))) + (while (not (null? a2-1)) + (if (= (car a2-1) a1-1) + (set! v1-4 a0-1) + ) + (set! a2-1 (cdr a2-1)) + (+! a0-1 1) + ) + ) + (when (= v1-4 -1) + (format 0 "ERROR: Couldn't find selected item in menu.~%") + (set! arg0 arg0) + (goto cfg-25) + ) + (cond + ((>= arg1 0) + (cond + ((= v1-4 (+ a0-1 -1)) + (set! arg1 1) + ) + ((>= (+ v1-4 arg1) a0-1) + (set! arg1 (+ (- -1 v1-4) a0-1)) + ) + ) + (dotimes (s4-0 arg1) + (debug-menu-context-select-next-or-prev-item arg0 1) + ) + ) + (else + (cond + ((zero? v1-4) + (set! arg1 -1) + ) + ((< (+ v1-4 arg1) 0) + (set! arg1 (- v1-4)) + ) + ) + (dotimes (s4-1 (- arg1)) + (debug-menu-context-select-next-or-prev-item arg0 -1) + ) + ) + ) + ) + (label cfg-25) + arg0 + ) + +;; definition for function debug-menu-context-open-submenu +(defun debug-menu-context-open-submenu ((arg0 debug-menu-context) (arg1 debug-menu)) + (let ((v1-0 (-> arg0 sel-length))) + (when (>= v1-0 8) + (format 0 "ERROR: Trying to exceed maximum menu depth!") + (return arg1) + ) + (when (null? (-> arg1 items)) + (format 0 "ERROR: Submenu has no items!") + (return arg1) + ) + (set! (-> arg0 sel-menu v1-0) arg1) + (if (not (-> arg1 selected-item)) + (set! (-> arg1 selected-item) (the-as debug-menu-item (-> arg1 items car))) + ) + (set! (-> arg0 sel-length) (+ v1-0 1)) + ) + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest current-selection)) + ) + +;; definition for function debug-menu-context-close-submenu +(defun debug-menu-context-close-submenu ((arg0 debug-menu-context)) + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest current-selection)) + (if (< 1 (-> arg0 sel-length)) + (+! (-> arg0 sel-length) -1) + ) + arg0 + ) + +;; definition for function debug-menu-item-submenu-msg +(defun debug-menu-item-submenu-msg ((arg0 debug-menu-item-submenu) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (let ((a0-1 (-> arg0 parent context))) + (debug-menu-context-open-submenu a0-1 (-> arg0 submenu)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-function-msg +(defun debug-menu-item-function-msg ((arg0 debug-menu-item-function) (arg1 debug-menu-msg)) + (cond + ((= arg1 (debug-menu-msg press)) + (cond + ((-> arg0 activate-func) + (if ((-> arg0 activate-func) (-> arg0 id)) + (set! (-> arg0 hilite-timer) 6) + (set! (-> arg0 hilite-timer) -6) + ) + ) + (else + (set! (-> arg0 hilite-timer) -6) + ) + ) + ) + ((= arg1 (debug-menu-msg deactivate)) + (set! (-> arg0 hilite-timer) 0) + 0 + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-flag-msg +(defun debug-menu-item-flag-msg ((arg0 debug-menu-item-flag) (arg1 debug-menu-msg)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (-> arg0 activate-func) + (set! (-> arg0 is-on) (the-as symbol ((-> arg0 activate-func) (-> arg0 id) (debug-menu-msg press)))) + ) + (let ((a0-2 (-> arg0 parent context))) + (debug-menu-context-send-msg a0-2 (debug-menu-msg update) (debug-menu-dest open-menus)) + ) + ) + ((or (= arg1 (debug-menu-msg update)) (= arg1 (debug-menu-msg activate))) + (if (-> arg0 activate-func) + (set! (-> arg0 is-on) (the-as symbol ((-> arg0 activate-func) (-> arg0 id) (debug-menu-msg update)))) + ) + (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-var-joypad-handler +(defun debug-menu-item-var-joypad-handler ((arg0 debug-menu-item-var) (arg1 int)) + (cond + ((not (cpad-hold? arg1 x)) + (let ((a0-2 (-> arg0 parent context))) + (debug-menu-context-release-joypad a0-2) + ) + (set! (-> arg0 grabbed-joypad-p) #f) + (when (cpad-pressed? arg1 square) + (cond + ((-> arg0 float-p) + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) (-> arg0 fundo-val) (-> arg0 fval)) + ) + ) + ) + (else + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) (-> arg0 fundo-val) (-> arg0 fval)) + ) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + ) + (let ((a0-7 (-> arg0 parent context))) + (debug-menu-context-send-msg a0-7 (debug-menu-msg update) (debug-menu-dest open-menus)) + ) + ) + ((or (cpad-hold? arg1 right) (cpad-hold? arg1 left) (cpad-hold? arg1 down) (cpad-hold? arg1 up)) + (let ((v1-45 (cond + ((cpad-hold? arg1 right) + 10 + ) + ((cpad-hold? arg1 up) + 1 + ) + ((cpad-hold? arg1 down) + -1 + ) + (else + -10 + ) + ) + ) + ) + (when (!= v1-45 (-> arg0 inc-dir)) + (set! (-> arg0 inc-dir) v1-45) + (set! (-> arg0 inc-delay) 15) + (set! (-> arg0 inc-delay-ctr) 0) + (set! (-> arg0 step-delay-ctr) 30) + (set! (-> arg0 fstep) (-> arg0 fstart-inc)) + (set! (-> arg0 fstep) (-> arg0 fstart-inc)) + ) + ) + (cond + ((<= (-> arg0 inc-delay-ctr) 0) + (if (> (-> arg0 inc-delay) 0) + (+! (-> arg0 inc-delay) -1) + ) + (when (zero? (-> arg0 inc-delay)) + (cond + ((<= (-> arg0 step-delay-ctr) 0) + (set! (-> arg0 step-delay-ctr) 30) + (cond + ((-> arg0 float-p) + (if (< (-> arg0 fstep) 10000000.0) + (set! (-> arg0 fstep) (* 2.0 (-> arg0 fstep))) + ) + ) + (else + (if (< (the-as int (-> arg0 fstep)) #x989680) + (set! (-> arg0 fstep) (the-as float (* (-> arg0 fstep) 2))) + ) + ) + ) + ) + (else + (+! (-> arg0 step-delay-ctr) -1) + ) + ) + ) + (set! (-> arg0 inc-delay-ctr) (-> arg0 inc-delay)) + (cond + ((-> arg0 float-p) + (when (-> arg0 factivate-func) + (let ((f0-8 (+ (-> arg0 fval) (* (the float (-> arg0 inc-dir)) (-> arg0 fstep))))) + (if (-> arg0 range-p) + (set! f0-8 (fmin (fmax f0-8 (-> arg0 frange-min)) (-> arg0 frange-max))) + ) + (set! (-> arg0 fval) ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) f0-8 (-> arg0 fval))) + ) + ) + ) + (else + (when (-> arg0 factivate-func) + (let ((a2-4 (+ (the-as int (-> arg0 fval)) (* (-> arg0 inc-dir) (the-as int (-> arg0 fstep)))))) + (if (-> arg0 range-p) + (set! a2-4 (min (max a2-4 (the-as int (-> arg0 frange-min))) (the-as int (-> arg0 frange-max)))) + ) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg press) (the-as float a2-4) (-> arg0 fval)) + ) + ) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + (let ((a0-29 (-> arg0 parent context))) + (debug-menu-context-send-msg a0-29 (debug-menu-msg update) (debug-menu-dest current-selection)) + ) + ) + (else + (+! (-> arg0 inc-delay-ctr) -1) + ) + ) + ) + (else + (set! (-> arg0 inc-dir) 0) + 0 + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-var-msg +(defun debug-menu-item-var-msg ((arg0 debug-menu-item-var) (arg1 debug-menu-msg)) + (cond + ((= arg1 (debug-menu-msg deactivate)) + (when (-> arg0 grabbed-joypad-p) + (let ((a0-1 (-> arg0 parent context))) + (debug-menu-context-release-joypad a0-1) + ) + (set! (-> arg0 grabbed-joypad-p) #f) + ) + ) + ((= arg1 (debug-menu-msg press)) + (when (not (-> arg0 grabbed-joypad-p)) + (let ((a0-2 (-> arg0 parent context))) + (when (debug-menu-context-grab-joypad + a0-2 + arg0 + (the-as (function basic int none) debug-menu-item-var-joypad-handler) + ) + (set! (-> arg0 grabbed-joypad-p) #t) + (set! (-> arg0 fundo-val) (-> arg0 fval)) + (set! (-> arg0 fundo-val) (-> arg0 fval)) + (set! (-> arg0 inc-dir) 0) + 0 + ) + ) + ) + ) + ((or (= arg1 (debug-menu-msg update)) (= arg1 (debug-menu-msg activate))) + (cond + ((-> arg0 float-p) + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg update) (-> arg0 fval) (-> arg0 fval)) + ) + ) + ) + (else + (if (-> arg0 factivate-func) + (set! (-> arg0 fval) + ((-> arg0 factivate-func) (-> arg0 id) (debug-menu-msg update) (-> arg0 fval) (-> arg0 fval)) + ) + ) + ) + ) + (debug-menu-item-var-update-display-str arg0) + (set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-item-send-msg +(defun debug-menu-item-send-msg ((arg0 debug-menu-item) (arg1 debug-menu-msg)) + (cond + ((= (-> arg0 type) debug-menu-item-submenu) + (debug-menu-item-submenu-msg (the-as debug-menu-item-submenu arg0) arg1) + ) + ((= (-> arg0 type) debug-menu-item-function) + (debug-menu-item-function-msg (the-as debug-menu-item-function arg0) arg1) + ) + ((= (-> arg0 type) debug-menu-item-flag) + (debug-menu-item-flag-msg (the-as debug-menu-item-flag arg0) arg1) + ) + ((= (-> arg0 type) debug-menu-item-var) + (debug-menu-item-var-msg (the-as debug-menu-item-var arg0) arg1) + ) + (else + (format 0 "ERROR: Found unknown item type!~%") + ) + ) + arg0 + ) + +;; definition for function debug-menu-send-msg +(defun debug-menu-send-msg ((arg0 debug-menu) (arg1 debug-menu-msg) (arg2 symbol)) + (let* ((s3-0 (-> arg0 items)) + (s2-0 (car s3-0)) + ) + (while (not (null? s3-0)) + (debug-menu-item-send-msg (the-as debug-menu-item s2-0) arg1) + (if (and arg2 (= (-> (the-as debug-menu-item s2-0) type) debug-menu-item-submenu)) + (debug-menu-send-msg (-> (the-as debug-menu-item-submenu s2-0) submenu) arg1 #t) + ) + (set! s3-0 (cdr s3-0)) + (set! s2-0 (car s3-0)) + ) + ) + arg0 + ) + +;; definition for function debug-menu-context-send-msg +(defun debug-menu-context-send-msg ((arg0 debug-menu-context) (arg1 debug-menu-msg) (arg2 debug-menu-dest)) + (cond + ((= arg2 (debug-menu-dest root)) + (debug-menu-send-msg (-> arg0 root-menu) arg1 #t) + ) + ((= arg2 (debug-menu-dest open-menus)) + (when (-> arg0 is-active) + (dotimes (s4-0 (-> arg0 sel-length)) + (let ((a0-2 (-> arg0 sel-menu s4-0))) + (debug-menu-send-msg a0-2 arg1 #f) + ) + ) + ) + ) + ((= arg2 (debug-menu-dest current-selection)) + (when (-> arg0 is-active) + (if (nonzero? (-> arg0 sel-length)) + (debug-menu-send-msg (-> arg0 sel-menu (+ (-> arg0 sel-length) -1)) arg1 #f) + ) + ) + ) + ((= arg2 (debug-menu-dest activation)) + (cond + ((= arg1 (debug-menu-msg activate)) + (when (not (-> arg0 is-active)) + (set! (-> arg0 is-active) #t) + (debug-menu-context-send-msg arg0 (debug-menu-msg activate) (debug-menu-dest open-menus)) + ) + ) + ((= arg1 (debug-menu-msg deactivate)) + (when (-> arg0 is-active) + (debug-menu-context-send-msg arg0 (debug-menu-msg deactivate) (debug-menu-dest open-menus)) + (set! (-> arg0 is-active) #f) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for function debug-menu-context-activate-selection +(defun debug-menu-context-activate-selection ((arg0 debug-menu-context)) + (let ((a0-1 (-> arg0 sel-menu (+ (-> arg0 sel-length) -1) selected-item))) + (debug-menu-item-send-msg a0-1 (debug-menu-msg press)) + ) + arg0 + ) + +;; definition for function debug-menus-default-joypad-func +(defun debug-menus-default-joypad-func ((arg0 debug-menu-context)) + (cond + ((cpad-pressed? (-> arg0 joypad-number) square) + (cond + ((< 1 (-> arg0 sel-length)) + (debug-menu-context-close-submenu arg0) + ) + (else + ) + ) + ) + ((cpad-pressed? (-> arg0 joypad-number) x) + (debug-menu-context-activate-selection arg0) + ) + ((cpad-pressed? (-> arg0 joypad-number) up) + (debug-menu-context-select-new-item arg0 -1) + ) + ((cpad-pressed? (-> arg0 joypad-number) down) + (debug-menu-context-select-new-item arg0 1) + ) + ((cpad-pressed? (-> arg0 joypad-number) left) + (debug-menu-context-select-new-item arg0 -5) + ) + ((cpad-pressed? (-> arg0 joypad-number) right) + (debug-menu-context-select-new-item arg0 5) + ) + ) + arg0 + ) + +;; definition for function debug-menus-active +(defun debug-menus-active ((arg0 debug-menu-context)) + (when (not (-> arg0 is-hidden)) + (if (-> arg0 joypad-func) + ((-> arg0 joypad-func) (-> arg0 joypad-item) (-> arg0 joypad-number)) + (debug-menus-default-joypad-func arg0) + ) + (debug-menu-context-render arg0) + ) + arg0 + ) + +;; definition for function debug-menus-handler +(defun debug-menus-handler ((arg0 debug-menu-context)) + (if (-> arg0 is-active) + (debug-menus-active arg0) + ) + arg0 + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/debug/nav-mesh-editor-h_REF.gc b/test/decompiler/reference/jakx/engine/debug/nav-mesh-editor-h_REF.gc new file mode 100644 index 0000000000..c007f2ec34 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/debug/nav-mesh-editor-h_REF.gc @@ -0,0 +1,467 @@ +;;-*-Lisp-*- +(in-package goal) + +;; this file is debug only +(declare-file (debug)) + +;; definition of type vector-array +(deftype vector-array (inline-array-class) + ((data vector :inline :dynamic) + ) + ) + +;; definition for method 3 of type vector-array +(defmethod inspect ((this vector-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> vector-array heap-base) (the-as uint 16)) + +;; definition of type int16-array +(deftype int16-array (inline-array-class) + ((data int16 :dynamic) + ) + ) + +;; definition for method 3 of type int16-array +(defmethod inspect ((this int16-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> int16-array heap-base) (the-as uint 2)) + +;; definition of type nav-mesh-poly +(deftype nav-mesh-poly (structure) + ((poly-id uint32) + (flags nav-mesh-poly-flag) + (index int16-array) + (insert-pos uint32) + ) + (:methods + (new (symbol type) _type_) + (init-fields! (_type_) none) + (nav-mesh-poly-method-10 () none) + (nav-mesh-poly-method-11 () none) + (nav-mesh-poly-method-12 () none) + (nav-mesh-poly-method-13 () none) + (nav-mesh-poly-method-14 () none) + ) + ) + +;; definition for method 3 of type nav-mesh-poly +(defmethod inspect ((this nav-mesh-poly)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-poly) + (format #t "~1Tpoly-id: ~D~%" (-> this poly-id)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tindex: ~A~%" (-> this index)) + (format #t "~1Tinsert-pos: ~D~%" (-> this insert-pos)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh-poly-array +(deftype nav-mesh-poly-array (inline-array-class) + ((data nav-mesh-poly :inline :dynamic) + ) + ) + +;; definition for method 3 of type nav-mesh-poly-array +(defmethod inspect ((this nav-mesh-poly-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> nav-mesh-poly-array heap-base) (the-as uint 16)) + +;; definition for method 9 of type nav-mesh-poly +;; WARN: Return type mismatch int vs none. +(defmethod init-fields! ((this nav-mesh-poly)) + (set! (-> this index) (new 'debug 'int16-array 512)) + (set! (-> this index length) 0) + (set! (-> this insert-pos) (the-as uint 0)) + 0 + (none) + ) + +;; definition for method 0 of type nav-mesh-poly +;; WARN: Return type mismatch object vs nav-mesh-poly. +(defmethod new nav-mesh-poly ((allocation symbol) (type-to-make type)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + (let ((gp-0 (the-as object (t9-0 allocation v1-1)))) + (when (zero? (the-as structure gp-0)) + (set! gp-0 0) + (goto cfg-4) + ) + ((method-of-type nav-mesh-poly init-fields!) (the-as nav-mesh-poly gp-0)) + (label cfg-4) + (the-as nav-mesh-poly gp-0) + ) + ) + ) + +;; definition of type nav-mesh-tri-quad +(deftype nav-mesh-tri-quad (structure) + ((indices uint32 4) + (poly uint32) + ) + ) + +;; definition for method 3 of type nav-mesh-tri-quad +(defmethod inspect ((this nav-mesh-tri-quad)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-tri-quad) + (format #t "~1Tindices[4] @ #x~X~%" (-> this indices)) + (format #t "~1Tpoly: ~D~%" (-> this poly)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh-tri-quad-array +(deftype nav-mesh-tri-quad-array (inline-array-class) + ((data nav-mesh-tri-quad :dynamic) + ) + ) + +;; definition for method 3 of type nav-mesh-tri-quad-array +(defmethod inspect ((this nav-mesh-tri-quad-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> nav-mesh-tri-quad-array heap-base) (the-as uint 32)) + +;; definition of type nav-mesh-editable +(deftype nav-mesh-editable (structure) + ((flags nav-mesh-editable-flag) + (verts vector-array) + (tris nav-mesh-tri-quad-array) + (quads nav-mesh-tri-quad-array) + (navmesh-id uint32) + (idx uint32) + (level-name symbol) + (level-id uint32) + (polys nav-mesh-poly-array) + (selected-poly uint32) + ) + (:methods + (new (symbol type) _type_) + (init-fields! (_type_) none) + (nav-mesh-editable-method-10 () none) + (nav-mesh-editable-method-11 () none) + (nav-mesh-editable-method-12 () none) + (nav-mesh-editable-method-13 () none) + (nav-mesh-editable-method-14 () none) + (nav-mesh-editable-method-15 () none) + (nav-mesh-editable-method-16 () none) + (nav-mesh-editable-method-17 () none) + (nav-mesh-editable-method-18 () none) + ) + ) + +;; definition for method 3 of type nav-mesh-editable +(defmethod inspect ((this nav-mesh-editable)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-editable) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tverts: ~A~%" (-> this verts)) + (format #t "~1Ttris: ~A~%" (-> this tris)) + (format #t "~1Tquads: ~A~%" (-> this quads)) + (format #t "~1Tnavmesh-id: ~D~%" (-> this navmesh-id)) + (format #t "~1Tidx: ~D~%" (-> this idx)) + (format #t "~1Tlevel-name: ~A~%" (-> this level-name)) + (format #t "~1Tlevel-id: ~D~%" (-> this level-id)) + (format #t "~1Tpolys: ~A~%" (-> this polys)) + (format #t "~1Tselected-poly: ~D~%" (-> this selected-poly)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh-editable-array +(deftype nav-mesh-editable-array (inline-array-class) + ((data nav-mesh-editable :dynamic) + ) + ) + +;; definition for method 3 of type nav-mesh-editable-array +(defmethod inspect ((this nav-mesh-editable-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> nav-mesh-editable-array heap-base) (the-as uint 48)) + +;; definition for method 9 of type nav-mesh-editable +;; WARN: Return type mismatch int vs none. +(defmethod init-fields! ((this nav-mesh-editable)) + (set! (-> this verts) (new 'debug 'vector-array 1024)) + (set! (-> this verts length) 0) + (set! (-> this tris) (new 'debug 'nav-mesh-tri-quad-array 512)) + (set! (-> this tris length) 0) + (set! (-> this quads) (new 'debug 'nav-mesh-tri-quad-array 512)) + (set! (-> this quads length) 0) + (set! (-> this polys) (new 'debug 'nav-mesh-poly-array 92)) + (dotimes (s5-0 (-> this polys length)) + (init-fields! (-> this polys data s5-0)) + (set! (-> this polys data s5-0 poly-id) (the-as uint s5-0)) + ) + (set! (-> this navmesh-id) (the-as uint 0)) + (logior! (-> this flags) (nav-mesh-editable-flag nmef0)) + 0 + (none) + ) + +;; definition for method 0 of type nav-mesh-editable +;; WARN: Return type mismatch object vs nav-mesh-editable. +(defmethod new nav-mesh-editable ((allocation symbol) (type-to-make type)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + (let ((gp-0 (the-as object (t9-0 allocation v1-1)))) + (when (zero? (the-as structure gp-0)) + (set! gp-0 0) + (goto cfg-4) + ) + ((method-of-type nav-mesh-editable init-fields!) (the-as nav-mesh-editable gp-0)) + (label cfg-4) + (the-as nav-mesh-editable gp-0) + ) + ) + ) + +;; definition of type nav-mesh-editor-undo +(deftype nav-mesh-editor-undo (structure) + ((current-nav-mesh nav-mesh-editable) + (selected-poly uint32) + (index int16-array) + (insert-pos uint32) + (verts vector-array) + ) + (:methods + (new (symbol type) _type_) + (init-fields! (_type_) none) + ) + ) + +;; definition for method 3 of type nav-mesh-editor-undo +(defmethod inspect ((this nav-mesh-editor-undo)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-editor-undo) + (format #t "~1Tcurrent-nav-mesh: #~%" (-> this current-nav-mesh)) + (format #t "~1Tselected-poly: ~D~%" (-> this selected-poly)) + (format #t "~1Tindex: ~A~%" (-> this index)) + (format #t "~1Tinsert-pos: ~D~%" (-> this insert-pos)) + (format #t "~1Tverts: ~A~%" (-> this verts)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh-editor-undo-array +(deftype nav-mesh-editor-undo-array (inline-array-class) + ((data nav-mesh-editor-undo :dynamic) + ) + ) + +;; definition for method 3 of type nav-mesh-editor-undo-array +(defmethod inspect ((this nav-mesh-editor-undo-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> nav-mesh-editor-undo-array heap-base) (the-as uint 32)) + +;; definition for method 9 of type nav-mesh-editor-undo +;; WARN: Return type mismatch int vs none. +(defmethod init-fields! ((this nav-mesh-editor-undo)) + (set! (-> this index) (new 'debug 'int16-array 2048)) + (set! (-> this verts) (new 'debug 'vector-array 1024)) + 0 + (none) + ) + +;; definition for method 0 of type nav-mesh-editor-undo +;; WARN: Return type mismatch object vs nav-mesh-editor-undo. +(defmethod new nav-mesh-editor-undo ((allocation symbol) (type-to-make type)) + (let ((t9-0 (method-of-type structure new)) + (v1-1 type-to-make) + ) + (-> type-to-make size) + (let ((gp-0 (the-as object (t9-0 allocation v1-1)))) + (when (zero? (the-as structure gp-0)) + (set! gp-0 0) + (goto cfg-4) + ) + ((method-of-type nav-mesh-editor-undo init-fields!) (the-as nav-mesh-editor-undo gp-0)) + (label cfg-4) + (the-as nav-mesh-editor-undo gp-0) + ) + ) + ) + +;; definition of type nav-mesh-editor +(deftype nav-mesh-editor (process-drawable) + ((close-menu-time uint64) + (external-cam-mode symbol) + (mouse-pressed uint64) + (mouse-screen-pos vector :inline) + (mouse-pos vector :inline) + (mouse-end vector :inline) + (mouse-hit vector :inline) + (mouse-hit-pick vector :inline) + (mouse-snap vector :inline) + (mouse-normal vector :inline) + (mouse-collide basic) + (mouse-tumble-dist float) + (mouse-tumble vector :inline) + (manipulator-pos vector :inline) + (manipulator-back-pos vector :inline) + (lock-action basic) + (mouse-action uint32) + (mouse-action-pos-ref vector :inline) + (nav-meshes nav-mesh-editable-array) + (current-nav-mesh nav-mesh-editable) + (manipulator manipulator :inline) + (level-name string) + (level-id uint32) + (undo-min uint32) + (undo-id uint32) + (undo-max uint32) + (undos nav-mesh-editor-undo-array) + (hide-unselected symbol) + (allow-snap symbol) + ) + (:methods + (nav-mesh-editor-method-50 () none) + (nav-mesh-editor-method-51 () none) + (nav-mesh-editor-method-52 () none) + (nav-mesh-editor-method-53 () none) + (nav-mesh-editor-method-54 () none) + (nav-mesh-editor-method-55 () none) + (nav-mesh-editor-method-56 () none) + (nav-mesh-editor-method-57 () none) + ) + ) + +;; definition for method 3 of type nav-mesh-editor +(defmethod inspect ((this nav-mesh-editor)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 this) + ) + (format #t "~2Tclose-menu-time: ~D~%" (-> this close-menu-time)) + (format #t "~2Texternal-cam-mode: ~A~%" (-> this external-cam-mode)) + (format #t "~2Tmouse-pressed: ~D~%" (-> this mouse-pressed)) + (format #t "~2Tmouse-screen-pos: #~%" (-> this mouse-screen-pos)) + (format #t "~2Tmouse-pos: #~%" (-> this mouse-pos)) + (format #t "~2Tmouse-end: #~%" (-> this mouse-end)) + (format #t "~2Tmouse-hit: #~%" (-> this mouse-hit)) + (format #t "~2Tmouse-hit-pick: #~%" (-> this mouse-hit-pick)) + (format #t "~2Tmouse-snap: #~%" (-> this mouse-snap)) + (format #t "~2Tmouse-normal: #~%" (-> this mouse-normal)) + (format #t "~2Tmouse-collide: ~A~%" (-> this mouse-collide)) + (format #t "~2Tmouse-tumble-dist: ~f~%" (-> this mouse-tumble-dist)) + (format #t "~2Tmouse-tumble: #~%" (-> this mouse-tumble)) + (format #t "~2Tmanipulator-pos: #~%" (-> this manipulator-pos)) + (format #t "~2Tmanipulator-back-pos: #~%" (-> this manipulator-back-pos)) + (format #t "~2Tlock-action: ~A~%" (-> this lock-action)) + (format #t "~2Tmouse-action: ~D~%" (-> this mouse-action)) + (format #t "~2Tmouse-action-pos-ref: #~%" (-> this mouse-action-pos-ref)) + (format #t "~2Tnav-meshes: ~A~%" (-> this nav-meshes)) + (format #t "~2Tcurrent-nav-mesh: #~%" (-> this current-nav-mesh)) + (format #t "~2Tmanipulator: #~%" (-> this manipulator)) + (format #t "~2Tlevel-name: ~A~%" (-> this level-name)) + (format #t "~2Tlevel-id: ~D~%" (-> this level-id)) + (format #t "~2Tundo-min: ~D~%" (-> this undo-min)) + (format #t "~2Tundo-id: ~D~%" (-> this undo-id)) + (format #t "~2Tundo-max: ~D~%" (-> this undo-max)) + (format #t "~2Tundos: ~A~%" (-> this undos)) + (format #t "~2Thide-unselected: ~A~%" (-> this hide-unselected)) + (format #t "~2Tallow-snap: ~A~%" (-> this allow-snap)) + (label cfg-4) + this + ) + +;; definition for symbol *nav-mesh-editor*, type (pointer nav-mesh-editor) +(define *nav-mesh-editor* (the-as (pointer nav-mesh-editor) #f)) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/dma/dma_REF.gc b/test/decompiler/reference/jakx/engine/dma/dma_REF.gc new file mode 100644 index 0000000000..95f19bcc3a --- /dev/null +++ b/test/decompiler/reference/jakx/engine/dma/dma_REF.gc @@ -0,0 +1,670 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function dma-sync-hang +;; ERROR: failed type prop at 0: Could not figure out load: (set! v1 (l.w a0)) +(defun dma-sync-hang ((a0-0 dma-bank)) + (local-vars (v0-0 none) (v1-0 none) (v1-1 none)) + (until (begin + (set! v1-0 (the-as none (l.w a0-0))) + (set! v1-1 (the-as none (logand v1-0 256))) + (nop!) + (nop!) + (nop!) + (nop!) + (zero? v1-1) + ) + (empty) + ) + (set! v0-0 (the-as none 0)) + (ret-none) + ) + +;; definition for function dma-sync-crash +;; WARN: Return type mismatch int vs none. +(defun dma-sync-crash ((arg0 dma-bank)) + (let ((v1-0 #x4c4b40)) + (while (nonzero? (-> arg0 chcr str)) + (cond + ((zero? v1-0) + (crash!) + 0 + ) + (else + (+! v1-0 -1) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for function dma-send +;; WARN: Return type mismatch int vs none. +(defun dma-send ((arg0 dma-bank) (arg1 uint) (arg2 uint)) + (dma-sync (the-as pointer arg0) 0 0) + (flush-cache 0) + (.sync.l) + (set! (-> arg0 madr) (logior (logand #xfffffff arg1) (if (= (logand #x70000000 arg1) #x70000000) + (shl #x8000 16) + 0 + ) + ) + ) + (set! (-> arg0 qwc) arg2) + (.sync.l) + (set! (-> arg0 chcr) (new 'static 'dma-chcr :str #x1)) + (.sync.l) + 0 + (none) + ) + +;; definition for function dma-send-chain +;; WARN: Return type mismatch int vs none. +(defun dma-send-chain ((arg0 dma-bank-source) (arg1 uint)) + (dma-sync (the-as pointer arg0) 0 0) + (flush-cache 0) + (.sync.l) + (set! (-> arg0 qwc) (the-as uint 0)) + (set! (-> arg0 tadr) (logior (logand #xfffffff arg1) (if (= (logand #x70000000 arg1) #x70000000) + (shl #x8000 16) + 0 + ) + ) + ) + (.sync.l) + (set! (-> arg0 chcr) (new 'static 'dma-chcr :dir #x1 :mod #x1 :tte #x1 :str #x1)) + (.sync.l) + 0 + (none) + ) + +;; definition for function dma-send-chain-no-tte +;; WARN: Return type mismatch int vs none. +(defun dma-send-chain-no-tte ((arg0 dma-bank-source) (arg1 uint)) + (dma-sync (the-as pointer arg0) 0 0) + (flush-cache 0) + (.sync.l) + (set! (-> arg0 qwc) (the-as uint 0)) + (set! (-> arg0 tadr) (logior (logand #xfffffff arg1) (if (= (logand #x70000000 arg1) #x70000000) + (shl #x8000 16) + 0 + ) + ) + ) + (.sync.l) + (set! (-> arg0 chcr) (new 'static 'dma-chcr :dir #x1 :mod #x1 :str #x1)) + (.sync.l) + 0 + (none) + ) + +;; definition for function dma-send-chain-no-flush +;; WARN: Return type mismatch int vs none. +(defun dma-send-chain-no-flush ((arg0 dma-bank-source) (arg1 uint)) + (dma-sync (the-as pointer arg0) 0 0) + (.sync.l) + (set! (-> arg0 qwc) (the-as uint 0)) + (set! (-> arg0 tadr) (logior (logand #xfffffff arg1) (if (= (logand #x70000000 arg1) #x70000000) + (shl #x8000 16) + 0 + ) + ) + ) + (.sync.l) + (set! (-> arg0 chcr) (new 'static 'dma-chcr :dir #x1 :mod #x1 :tte #x1 :str #x1)) + (.sync.l) + 0 + (none) + ) + +;; definition for function dma-send-to-spr +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.w! (+ s5-0 16) v1-1) at op 16 +;; ERROR: Failed store: (s.w! (+ s5-0 128) v1-3) at op 19 +;; ERROR: Failed store: (s.w! (+ s5-0 32) arg2) at op 20 +;; ERROR: Failed store: (s.w! s5-0 v1-4) at op 23 +(defun dma-send-to-spr ((arg0 uint) (arg1 uint) (arg2 uint) (arg3 symbol)) + (let ((s5-0 #x1000d400)) + (dma-sync (the-as pointer s5-0) 0 0) + (flush-cache 0) + (.sync.l) + (let ((v1-1 (logand #xfffffff arg1))) + (s.w! (+ s5-0 16) v1-1) + ) + (let ((v1-3 (logand #xfffffff arg0))) + (s.w! (+ s5-0 128) v1-3) + ) + (s.w! (+ s5-0 32) arg2) + (.sync.l) + (let ((v1-4 256)) + (s.w! s5-0 v1-4) + ) + (.sync.l) + (if arg3 + (dma-sync (the-as pointer s5-0) 0 0) + ) + ) + 0 + (none) + ) + +;; definition for function dma-send-to-spr-no-flush +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.w! (+ s5-0 16) v1-1) at op 13 +;; ERROR: Failed store: (s.w! (+ s5-0 128) v1-3) at op 16 +;; ERROR: Failed store: (s.w! (+ s5-0 32) arg2) at op 17 +;; ERROR: Failed store: (s.w! s5-0 v1-4) at op 20 +(defun dma-send-to-spr-no-flush ((arg0 uint) (arg1 uint) (arg2 uint) (arg3 symbol)) + (let ((s5-0 #x1000d400)) + (dma-sync (the-as pointer s5-0) 0 0) + (.sync.l) + (let ((v1-1 (logand #xfffffff arg1))) + (s.w! (+ s5-0 16) v1-1) + ) + (let ((v1-3 (logand #xfffffff arg0))) + (s.w! (+ s5-0 128) v1-3) + ) + (s.w! (+ s5-0 32) arg2) + (.sync.l) + (let ((v1-4 256)) + (s.w! s5-0 v1-4) + ) + (.sync.l) + (if arg3 + (dma-sync (the-as pointer s5-0) 0 0) + ) + ) + 0 + (none) + ) + +;; definition for function dma-send-from-spr +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.w! (+ s5-0 16) v1-1) at op 16 +;; ERROR: Failed store: (s.w! (+ s5-0 128) v1-3) at op 19 +;; ERROR: Failed store: (s.w! (+ s5-0 32) arg2) at op 20 +;; ERROR: Failed store: (s.w! s5-0 v1-4) at op 23 +(defun dma-send-from-spr ((arg0 uint) (arg1 uint) (arg2 uint) (arg3 symbol)) + (let ((s5-0 #x1000d000)) + (dma-sync (the-as pointer s5-0) 0 0) + (flush-cache 0) + (.sync.l) + (let ((v1-1 (logand #xfffffff arg0))) + (s.w! (+ s5-0 16) v1-1) + ) + (let ((v1-3 (logand #xfffffff arg1))) + (s.w! (+ s5-0 128) v1-3) + ) + (s.w! (+ s5-0 32) arg2) + (.sync.l) + (let ((v1-4 256)) + (s.w! s5-0 v1-4) + ) + (.sync.l) + (if arg3 + (dma-sync (the-as pointer s5-0) 0 0) + ) + ) + 0 + (none) + ) + +;; definition for function dma-send-from-spr-no-flush +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.w! (+ s5-0 16) v1-1) at op 13 +;; ERROR: Failed store: (s.w! (+ s5-0 128) v1-3) at op 16 +;; ERROR: Failed store: (s.w! (+ s5-0 32) arg2) at op 17 +;; ERROR: Failed store: (s.w! s5-0 v1-4) at op 20 +(defun dma-send-from-spr-no-flush ((arg0 uint) (arg1 uint) (arg2 uint) (arg3 symbol)) + (let ((s5-0 #x1000d000)) + (dma-sync (the-as pointer s5-0) 0 0) + (.sync.l) + (let ((v1-1 (logand #xfffffff arg0))) + (s.w! (+ s5-0 16) v1-1) + ) + (let ((v1-3 (logand #xfffffff arg1))) + (s.w! (+ s5-0 128) v1-3) + ) + (s.w! (+ s5-0 32) arg2) + (.sync.l) + (let ((v1-4 256)) + (s.w! s5-0 v1-4) + ) + (.sync.l) + (if arg3 + (dma-sync (the-as pointer s5-0) 0 0) + ) + ) + 0 + (none) + ) + +;; definition for function dma-initialize +;; ERROR: failed type prop at 1: Could not figure out load: (set! v1 (l.wu (+ v1 32))) +(defun dma-initialize () + (local-vars + (v0-0 none) + (v1-0 int) + (v1-1 none) + (v1-2 none) + (v1-3 none) + (v1-4 none) + (v1-5 none) + (v1-6 none) + (v1-7 none) + (a0-0 none) + (a0-1 none) + (a0-2 none) + (a0-3 none) + ) + (set! v1-0 #x10003800) + (set! v1-1 (the-as none (l.wu (+ v1-0 32)))) + (set! a0-0 (the-as none -3)) + (set! v1-2 (the-as none (logand v1-1 a0-0))) + (set! v1-3 (the-as none (logior v1-2 2))) + (set! a0-1 (the-as none #x10003800)) + (s.w! (+ a0-1 32) v1-3) + (set! v1-4 (the-as none #x10003c00)) + (set! v1-5 (the-as none (l.wu (+ v1-4 32)))) + (set! a0-2 (the-as none -3)) + (set! v1-6 (the-as none (logand v1-5 a0-2))) + (set! v1-7 (the-as none (logior v1-6 2))) + (set! a0-3 (the-as none #x10003c00)) + (s.w! (+ a0-3 32) v1-7) + (set! v0-0 (the-as none 0)) + (ret-none) + ) + +;; definition for function clear-vu0-mem +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.w! a2-1 a1-0) at op 6 +(defun clear-vu0-mem () + (let ((v1-0 #x11004000)) + (dotimes (a0-0 1024) + (let ((a1-0 (the-as uint #xabadbeef)) + (a2-1 (+ v1-0 (* a0-0 4))) + ) + (s.w! a2-1 a1-0) + ) + ) + ) + 0 + (none) + ) + +;; definition for function clear-vu1-mem +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.w! a2-1 a1-0) at op 6 +(defun clear-vu1-mem () + (let ((v1-0 #x1100c000)) + (dotimes (a0-0 4096) + (let ((a1-0 (the-as uint #xabadbeef)) + (a2-1 (+ v1-0 (* a0-0 4))) + ) + (s.w! a2-1 a1-0) + ) + ) + ) + 0 + (none) + ) + +;; definition for function dump-vu1-mem +;; ERROR: failed type prop at 10: Could not figure out load: (set! a3 (l.wu v1)) +;; WARN: Return type mismatch int vs none. +(defun dump-vu1-mem () + (local-vars + (v0-0 none) + (v0-1 none) + (v0-2 int) + (v1-0 int) + (v1-1 int) + (v1-2 int) + (v1-3 none) + (v1-4 none) + (v1-5 none) + (v1-6 none) + (v1-7 none) + (v1-8 none) + (v1-9 none) + (v1-10 none) + (v1-11 none) + (v1-12 none) + (v1-13 none) + (v1-14 none) + (v1-15 none) + (v1-16 none) + (v1-17 none) + (v1-18 none) + (v1-19 none) + (v1-20 none) + (v1-21 none) + (v1-22 none) + (v1-23 none) + (v1-24 none) + (v1-25 none) + (v1-26 none) + (v1-27 none) + (v1-28 none) + (v1-29 none) + (a0-0 int) + (a0-1 none) + (a1-0 string) + (a1-1 none) + (a2-1 none) + (a3-0 none) + (a3-1 none) + (t0-0 none) + (t0-1 none) + (t1-0 none) + (t1-1 none) + (t2-0 none) + (s5-0 int) + (t9-0 (function _varargs_ object)) + (t9-1 none) + (gp-0 int) + ) + (set! gp-0 #x1100c000) + (set! s5-0 0) + (while (<.si s5-0 1024) + (set! t9-0 format) + (set! a0-0 0) + (set! a1-0 L56) + (set! a2-0 s5-0) + (set! v1-0 (sll s5-0 2)) + (set! v1-1 (sll v1-0 2)) + (set! v1-2 (+ gp-0 v1-1)) + (set! a3-0 (the-as none (l.wu v1-2))) + (set! v1-3 (the-as none (sll s5-0 2))) + (set! v1-4 (the-as none (+ v1-3 1))) + (set! v1-5 (the-as none (sll v1-4 2))) + (set! v1-6 (the-as none (+ gp-0 v1-5))) + (set! t0-0 (the-as none (l.wu v1-6))) + (set! v1-7 (the-as none (sll s5-0 2))) + (set! v1-8 (the-as none (+ v1-7 2))) + (set! v1-9 (the-as none (sll v1-8 2))) + (set! v1-10 (the-as none (+ gp-0 v1-9))) + (set! t1-0 (the-as none (l.wu v1-10))) + (set! v1-11 (the-as none (sll s5-0 2))) + (set! v1-12 (the-as none (+ v1-11 3))) + (set! v1-13 (the-as none (sll v1-12 2))) + (set! v1-14 (the-as none (+ gp-0 v1-13))) + (set! t2-0 (the-as none (l.wu v1-14))) + (call!) + (set! t9-1 (the-as none format)) + (set! a0-1 (the-as none 0)) + (set! a1-1 (the-as none L55)) + (set! v1-15 (the-as none (sll s5-0 2))) + (set! v1-16 (the-as none (sll v1-15 2))) + (set! v1-17 (the-as none (+ gp-0 v1-16))) + (set! a2-1 (the-as none (l.wu v1-17))) + (set! v1-18 (the-as none (sll s5-0 2))) + (set! v1-19 (the-as none (+ v1-18 1))) + (set! v1-20 (the-as none (sll v1-19 2))) + (set! v1-21 (the-as none (+ gp-0 v1-20))) + (set! a3-1 (the-as none (l.wu v1-21))) + (set! v1-22 (the-as none (sll s5-0 2))) + (set! v1-23 (the-as none (+ v1-22 2))) + (set! v1-24 (the-as none (sll v1-23 2))) + (set! v1-25 (the-as none (+ gp-0 v1-24))) + (set! t0-1 (the-as none (l.wu v1-25))) + (set! v1-26 (the-as none (sll s5-0 2))) + (set! v1-27 (the-as none (+ v1-26 3))) + (set! v1-28 (the-as none (sll v1-27 2))) + (set! v1-29 (the-as none (+ gp-0 v1-28))) + (set! t1-1 (the-as none (l.wu v1-29))) + (call!) + (set! s5-0 (the-as int (+ s5-0 1))) + ) + (set! v0-2 0) + (ret-none) + ) + +;; definition for function dump-vu1-range +;; ERROR: failed type prop at 13: Could not figure out load: (set! a3 (l.wu v1)) +;; WARN: Return type mismatch int vs symbol. +(defun dump-vu1-range ((a0-0 uint) (a1-0 uint)) + (local-vars + (v0-0 none) + (v0-1 none) + (v0-2 int) + (v1-0 uint) + (v1-1 uint) + (v1-2 uint) + (v1-3 none) + (v1-4 none) + (v1-5 none) + (v1-6 none) + (v1-7 none) + (v1-8 none) + (v1-9 none) + (v1-10 none) + (v1-11 none) + (v1-12 none) + (v1-13 none) + (v1-14 none) + (v1-15 none) + (v1-16 none) + (v1-17 none) + (v1-18 none) + (v1-19 none) + (v1-20 none) + (v1-21 none) + (v1-22 none) + (v1-23 none) + (v1-24 none) + (v1-25 none) + (v1-26 none) + (v1-27 none) + (v1-28 none) + (v1-29 none) + (a0-1 int) + (a0-2 none) + (a1-1 string) + (a1-2 none) + (a2-1 none) + (a3-0 none) + (a3-1 none) + (t0-0 none) + (t0-1 none) + (t1-0 none) + (t1-1 none) + (t2-0 none) + (s2-0 uint) + (s3-0 int) + (s4-0 int) + (t9-0 (function _varargs_ object)) + (t9-1 none) + ) + (set! s4-0 #x1100c000) + (set! s3-0 0) + (while (<.si s3-0 a1-0) + (set! s2-0 (+ s3-0 a0-0)) + (set! t9-0 format) + (set! a0-1 0) + (set! a1-1 L54) + (set! a2-0 s2-0) + (set! v1-0 (sll s2-0 2)) + (set! v1-1 (sll v1-0 2)) + (set! v1-2 (+ s4-0 v1-1)) + (set! a3-0 (the-as none (l.wu v1-2))) + (set! v1-3 (the-as none (sll s2-0 2))) + (set! v1-4 (the-as none (+ v1-3 1))) + (set! v1-5 (the-as none (sll v1-4 2))) + (set! v1-6 (the-as none (+ s4-0 v1-5))) + (set! t0-0 (the-as none (l.wu v1-6))) + (set! v1-7 (the-as none (sll s2-0 2))) + (set! v1-8 (the-as none (+ v1-7 2))) + (set! v1-9 (the-as none (sll v1-8 2))) + (set! v1-10 (the-as none (+ s4-0 v1-9))) + (set! t1-0 (the-as none (l.wu v1-10))) + (set! v1-11 (the-as none (sll s2-0 2))) + (set! v1-12 (the-as none (+ v1-11 3))) + (set! v1-13 (the-as none (sll v1-12 2))) + (set! v1-14 (the-as none (+ s4-0 v1-13))) + (set! t2-0 (the-as none (l.wu v1-14))) + (call!) + (set! t9-1 (the-as none format)) + (set! a0-2 (the-as none 0)) + (set! a1-2 (the-as none L55)) + (set! v1-15 (the-as none (sll s2-0 2))) + (set! v1-16 (the-as none (sll v1-15 2))) + (set! v1-17 (the-as none (+ s4-0 v1-16))) + (set! a2-1 (the-as none (l.wu v1-17))) + (set! v1-18 (the-as none (sll s2-0 2))) + (set! v1-19 (the-as none (+ v1-18 1))) + (set! v1-20 (the-as none (sll v1-19 2))) + (set! v1-21 (the-as none (+ s4-0 v1-20))) + (set! a3-1 (the-as none (l.wu v1-21))) + (set! v1-22 (the-as none (sll s2-0 2))) + (set! v1-23 (the-as none (+ v1-22 2))) + (set! v1-24 (the-as none (sll v1-23 2))) + (set! v1-25 (the-as none (+ s4-0 v1-24))) + (set! t0-1 (the-as none (l.wu v1-25))) + (set! v1-26 (the-as none (sll s2-0 2))) + (set! v1-27 (the-as none (+ v1-26 3))) + (set! v1-28 (the-as none (sll v1-27 2))) + (set! v1-29 (the-as none (+ s4-0 v1-28))) + (set! t1-1 (the-as none (l.wu v1-29))) + (call!) + (set! v1-30 (the-as none v0-1)) + (set! s3-0 (the-as int (+ s3-0 1))) + ) + (set! v0-2 0) + (ret-value v0-2) + ) + +;; definition for function reset-vif1-path +;; WARN: Return type mismatch int vs none. +(defun reset-vif1-path () + (format 0 "~`dma-bank-vif`I~`vif-bank`I" #x10009000 #x10003c00) + (reset-path) + (set-graphics-mode) + (format 0 "gkernel: vif1 path reset!~%") + 0 + (none) + ) + +;; definition for function ultimate-memcpy +;; WARN: Return type mismatch int vs none. +;; ERROR: Failed store: (s.w! (+ s4-0 16) arg1) at op 26 +;; ERROR: Failed store: (s.w! (+ s4-0 128) 0) at op 27 +;; ERROR: Failed store: (s.w! (+ s4-0 32) s1-0) at op 28 +;; ERROR: Failed store: (s.w! s4-0 v1-3) at op 31 +;; ERROR: Failed store: (s.w! (+ s3-0 16) arg0) at op 40 +;; ERROR: Failed store: (s.w! (+ s3-0 128) 0) at op 41 +;; ERROR: Failed store: (s.w! (+ s3-0 32) s1-0) at op 42 +;; ERROR: Failed store: (s.w! s3-0 v1-5) at op 45 +(defun ultimate-memcpy ((arg0 pointer) (arg1 pointer) (arg2 uint)) + (let ((s4-0 #x1000d400) + (s3-0 #x1000d000) + (s2-0 (shr arg2 4)) + ) + (flush-cache 0) + (dma-sync (the-as pointer s4-0) 0 0) + (dma-sync (the-as pointer s3-0) 0 0) + (while (> s2-0 0) + (let ((s1-0 (the-as int s2-0))) + (if (< (the-as uint 1024) (the-as uint s1-0)) + (set! s1-0 1024) + ) + (set! s2-0 (- s2-0 (the-as uint s1-0))) + (.sync.l) + (s.w! (+ s4-0 16) arg1) + (s.w! (+ s4-0 128) 0) + (s.w! (+ s4-0 32) s1-0) + (.sync.l) + (let ((v1-3 256)) + (s.w! s4-0 v1-3) + ) + (.sync.l) + (dma-sync (the-as pointer s4-0) 0 0) + (&+! arg1 (* s1-0 16)) + (s.w! (+ s3-0 16) arg0) + (s.w! (+ s3-0 128) 0) + (s.w! (+ s3-0 32) s1-0) + (.sync.l) + (let ((v1-5 256)) + (s.w! s3-0 v1-5) + ) + (.sync.l) + (dma-sync (the-as pointer s3-0) 0 0) + (&+! arg0 (* s1-0 16)) + ) + ) + ) + 0 + (none) + ) + +;; definition for function symlink2 +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for function symlink3 +;; ERROR: failed type prop at 1: Couldn't figure out integer subtract: (- a1 #f) ( and '#f) + +;; ERROR: Function may read a register that is not set: a0 +;; ERROR: Function may read a register that is not set: a1 +;; ERROR: Function may read a register that is not set: a2 +;; ERROR: Function may read a register that is not set: ra +;; ERROR: Unsupported inline assembly instruction kind - [sll a3, a3, 16] +;; ERROR: Unsupported inline assembly instruction kind - [jr ra] +(defun symlink3 () + (local-vars + (v0-0 none) + (v1-0 none) + (a0-0 none) + (a1-0 none) + (a2-0 none) + (a3-0 int) + (a3-1 none) + (t0-0 none) + (t1-0 none) + (t3-0 none) + (t3-1 none) + (t3-2 none) + (t4-0 none) + (t4-1 none) + (t4-2 none) + (t4-3 none) + (t4-4 none) + (ra-0 none) + ) + (set! a3-0 #xffff) + (set! v1-0 (the-as none (- a1-0 #f))) + (.sll a3-1 a3-0 16) + (set! t0-0 (the-as none 1020)) + (set! t1-0 (the-as none (logior a3-1 #xffff))) + (until (begin (label cfg-5) (zero? t4-2)) + (label cfg-1) + (set! t4-0 (the-as none (l.bu a2-0))) + (set! a2-0 (the-as none (+ a2-0 1))) + (set! t4-1 (the-as none (sll t4-0 2))) + (nop!) + ((b! (= t4-1 t0-0) L2 (set! a0-0 (+ a0-0 t4-1))) (set! a0-0 (the-as none (+ a0-0 t4-1)))) + (set! t3-0 (the-as none (l.w a0-0))) + (set! t4-2 (the-as none (l.bu a2-0))) + (bl! (= t3-0 t1-0) L3 (no-delay!)) + (s.w! a0-0 a1-0) + (set! t4-3 (the-as none (+ t3-0 v1-0))) + (set! t3-1 (the-as none (logand t3-0 a3-1))) + (set! t4-4 (the-as none (logand t4-3 #xffff))) + (nop!) + (set! t3-2 (the-as none (logior t3-1 t4-4))) + (set! t4-2 (the-as none (l.bu a2-0))) + (s.w! a0-0 t3-2) + (nop!) + ) + (.jr ra-0) + (set! v0-0 (the-as none (+ a2-0 1))) + (ret-none) + ) + +;; failed to figure out what this is: +(dma-initialize) + + + + diff --git a/test/decompiler/reference/jakx/engine/draw/draw-node_REF.gc b/test/decompiler/reference/jakx/engine/draw/draw-node_REF.gc new file mode 100644 index 0000000000..485c2b11dc --- /dev/null +++ b/test/decompiler/reference/jakx/engine/draw/draw-node_REF.gc @@ -0,0 +1,64 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 16 of type draw-node +;; WARN: Return type mismatch int vs none. +(defmethod collect-regions ((this draw-node) (arg0 sphere) (arg1 int) (arg2 region-prim-list)) + "Fill the region-prim-list with regions that intersect the sphere." + (dotimes (s2-0 arg1) + (if (spheres-overlap? arg0 (the-as sphere (-> this bsphere))) + (collect-regions (-> this child) arg0 (the-as int (-> this child-count)) arg2) + ) + (&+! this 32) + ) + 0 + (none) + ) + +;; definition for method 3 of type drawable-inline-array-node +(defmethod inspect ((this drawable-inline-array-node)) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~Tlength: ~D~%" (-> this length)) + (format #t "~Tdata[~D]: @ #x~X~%" (-> this length) (-> this data)) + (dotimes (s5-0 (-> this length)) + (format #t "~T [~D] ~A~%" s5-0 (-> this data s5-0)) + ) + this + ) + +;; definition for method 8 of type drawable-inline-array-node +(defmethod mem-usage ((this drawable-inline-array-node) (usage memory-usage-block) (flags int)) + (set! (-> usage length) (max 64 (-> usage length))) + (set! (-> usage data 63 name) "draw-node") + (+! (-> usage data 63 count) (-> this length)) + (let ((v1-6 (asize-of this))) + (+! (-> usage data 63 used) v1-6) + (+! (-> usage data 63 total) (logand -16 (+ v1-6 15))) + ) + this + ) + +;; definition for method 5 of type drawable-inline-array-node +;; WARN: Return type mismatch uint vs int. +(defmethod asize-of ((this drawable-inline-array-node)) + (the-as int (+ (-> drawable-inline-array-node size) (* (+ (-> this length) -1) 32))) + ) + +;; definition for method 16 of type drawable-inline-array-node +;; WARN: Return type mismatch int vs none. +(defmethod collect-regions ((this drawable-inline-array-node) (arg0 sphere) (arg1 int) (arg2 region-prim-list)) + "Fill the region-prim-list with regions that intersect the sphere." + (collect-regions (the-as draw-node (-> this data)) arg0 (-> this length) arg2) + 0 + (none) + ) + +;; definition for function draw-node-cull +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/draw/drawable-group_REF.gc b/test/decompiler/reference/jakx/engine/draw/drawable-group_REF.gc new file mode 100644 index 0000000000..b7ca6a4425 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/draw/drawable-group_REF.gc @@ -0,0 +1,115 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 0 of type drawable-group +(defmethod new drawable-group ((allocation symbol) (type-to-make type) (arg0 int)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (+ (-> type-to-make size) (* arg0 4)))))) + (set! (-> v0-0 length) arg0) + v0-0 + ) + ) + +;; definition for method 2 of type drawable-group +(defmethod print ((this drawable-group)) + (format #t "#<~A @ #x~X [~D]" (-> this type) this (-> this length)) + (dotimes (s5-0 (-> this length)) + (format #t " ~A" (-> this data s5-0)) + ) + (format #t ">") + this + ) + +;; definition for method 4 of type drawable-group +(defmethod length ((this drawable-group)) + (-> this length) + ) + +;; definition for method 5 of type drawable-group +;; WARN: Return type mismatch uint vs int. +(defmethod asize-of ((this drawable-group)) + (the-as int (+ (-> drawable-group size) (* (-> this length) 4))) + ) + +;; definition for method 8 of type drawable-group +(defmethod mem-usage ((this drawable-group) (usage memory-usage-block) (flags int)) + (set! (-> usage length) (max 1 (-> usage length))) + (set! (-> usage data 0 name) "drawable-group") + (+! (-> usage data 0 count) 1) + (let ((v1-6 (asize-of this))) + (+! (-> usage data 0 used) v1-6) + (+! (-> usage data 0 total) (logand -16 (+ v1-6 15))) + ) + (dotimes (s3-0 (-> this length)) + (mem-usage (-> this data s3-0) usage flags) + ) + this + ) + +;; definition for method 9 of type drawable-group +(defmethod login ((this drawable-group)) + "Initialize the object after it is loaded." + (dotimes (s5-0 (-> this length)) + (login (-> this data s5-0)) + ) + this + ) + +;; definition for method 10 of type drawable-group +;; WARN: Return type mismatch int vs none. +(defmethod draw ((this drawable-group)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (when (vis-cull (-> this id)) + (when (sphere-cull (-> this bsphere)) + (dotimes (s5-0 (-> this length)) + (draw (-> this data s5-0)) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 13 of type drawable-group +;; WARN: Return type mismatch int vs none. +(defmethod collect-stats ((this drawable-group)) + "Collect triangle/perf statistics for rendering. + This is only called when viewing stats. + The vis-bits and culling registers are loaded during this time." + (when (vis-cull (-> this id)) + (when (sphere-cull (-> this bsphere)) + (dotimes (s5-0 (-> this length)) + (collect-stats (-> this data s5-0)) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 14 of type drawable-group +;; WARN: Return type mismatch int vs none. +(defmethod debug-draw ((this drawable-group)) + "Debug-draw a drawable and its children. Typically uses the debug-draw functions." + (when (vis-cull (-> this id)) + (when (sphere-cull (-> this bsphere)) + (dotimes (s5-0 (-> this length)) + (debug-draw (-> this data s5-0)) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 15 of type drawable-group +(defmethod unpack-vis ((this drawable-group) (arg0 (pointer int8)) (arg1 (pointer int8))) + (dotimes (s4-0 (-> this length)) + (set! arg1 (unpack-vis (-> this data s4-0) arg0 arg1)) + ) + arg1 + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/draw/drawable-inline-array_REF.gc b/test/decompiler/reference/jakx/engine/draw/drawable-inline-array_REF.gc new file mode 100644 index 0000000000..def4db5bc4 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/draw/drawable-inline-array_REF.gc @@ -0,0 +1,44 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 4 of type drawable-inline-array +(defmethod length ((this drawable-inline-array)) + (-> this length) + ) + +;; definition for method 9 of type drawable-inline-array +(defmethod login ((this drawable-inline-array)) + "Initialize the object after it is loaded." + this + ) + +;; definition for method 10 of type drawable-inline-array +;; WARN: Return type mismatch int vs none. +(defmethod draw ((this drawable-inline-array)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + 0 + (none) + ) + +;; definition for method 13 of type drawable-inline-array +;; WARN: Return type mismatch int vs none. +(defmethod collect-stats ((this drawable-inline-array)) + "Collect triangle/perf statistics for rendering. + This is only called when viewing stats. + The vis-bits and culling registers are loaded during this time." + 0 + (none) + ) + +;; definition for method 14 of type drawable-inline-array +;; WARN: Return type mismatch int vs none. +(defmethod debug-draw ((this drawable-inline-array)) + "Debug-draw a drawable and its children. Typically uses the debug-draw functions." + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/draw/drawable-tree_REF.gc b/test/decompiler/reference/jakx/engine/draw/drawable-tree_REF.gc new file mode 100644 index 0000000000..afb8996669 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/draw/drawable-tree_REF.gc @@ -0,0 +1,101 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 10 of type drawable-tree-array +;; WARN: Return type mismatch int vs none. +(defmethod draw ((this drawable-tree-array)) + "Draw the drawable, and typically its children. + This usually means adding stuff to a list to be drawn later, rather than expensive drawing here." + (case (-> *level* draw-level *draw-index* display?) + (('special #f) + ) + (else + (dotimes (s5-0 (-> this length)) + (draw (-> this trees s5-0)) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 13 of type drawable-tree-array +;; WARN: Return type mismatch int vs none. +(defmethod collect-stats ((this drawable-tree-array)) + "Collect triangle/perf statistics for rendering. + This is only called when viewing stats. + The vis-bits and culling registers are loaded during this time." + (dotimes (s5-0 (-> this length)) + (collect-stats (-> this trees s5-0)) + ) + 0 + (none) + ) + +;; definition for method 14 of type drawable-tree-array +;; WARN: Return type mismatch int vs none. +(defmethod debug-draw ((this drawable-tree-array)) + "Debug-draw a drawable and its children. Typically uses the debug-draw functions." + (dotimes (s5-0 (-> this length)) + (debug-draw (-> this trees s5-0)) + ) + 0 + (none) + ) + +;; definition for method 15 of type drawable-tree +(defmethod unpack-vis ((this drawable-tree) (arg0 (pointer int8)) (arg1 (pointer int8))) + (local-vars (t5-1 uint)) + (let* ((v1-0 (the-as drawable-inline-array-node (-> this data 0))) + (a3-1 (/ (-> v1-0 data 0 id) 8)) + (t0-0 (-> v1-0 length)) + (v1-1 (&+ arg0 a3-1)) + (a3-3 (/ (+ t0-0 7) 8)) + ) + (dotimes (t0-1 a3-3) + (let ((t1-0 (-> arg1 0))) + (set! arg1 (&-> arg1 1)) + (set! (-> v1-1 0) t1-0) + ) + (set! v1-1 (&-> v1-1 1)) + ) + ) + (let ((v1-5 (+ (-> this length) -1))) + (when (nonzero? v1-5) + (dotimes (a3-5 v1-5) + (let* ((t0-4 (-> this data a3-5)) + (t2-0 (the-as drawable-inline-array-node (-> this data (+ a3-5 1)))) + (t1-5 (/ (-> (the-as drawable-inline-array-node t0-4) data 0 id) 8)) + (t2-2 (/ (-> t2-0 data 0 id) 8)) + (t0-5 (-> (the-as drawable-inline-array-node t0-4) length)) + (t1-6 (&+ arg0 t1-5)) + (t2-3 (the-as object (&+ arg0 t2-2))) + ) + (loop + (let ((t3-0 (-> t1-6 0))) + (set! t1-6 (&-> t1-6 1)) + (let ((t4-0 128)) + (label cfg-7) + (b! (not (logtest? t3-0 t4-0)) cfg-9 :delay (set! t5-1 (the-as uint (-> arg1 0)))) + (set! arg1 (&-> arg1 1)) + (set! (-> (the-as (pointer int8) t2-3) 0) (the-as int t5-1)) + (label cfg-9) + (+! t0-5 -1) + (b! (zero? t0-5) cfg-12 :delay (shift-arith-right-32 t4-0 t4-0 1)) + (b! (nonzero? (the-as uint t4-0)) cfg-7 :delay (set! t2-3 (&-> (the-as (pointer int8) t2-3) 1))) + ) + ) + ) + ) + (label cfg-12) + (nop!) + 0 + ) + ) + ) + arg1 + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/jakx/engine/entity/actor-link-h_REF.gc new file mode 100644 index 0000000000..6d65cd57d1 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/entity/actor-link-h_REF.gc @@ -0,0 +1,408 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function entity-actor-lookup +;; INFO: Used lq/sq +;; WARN: Return type mismatch entity vs entity-actor. +(defun entity-actor-lookup ((arg0 res-lump) (arg1 symbol) (arg2 int)) + (let* ((sv-16 (new 'static 'res-tag)) + (v1-1 (res-lump-data arg0 arg1 pointer :tag-ptr (& sv-16))) + ) + (the-as + entity-actor + (when (and v1-1 (< arg2 (the-as int (-> sv-16 elt-count)))) + (if (= (-> sv-16 elt-type) string) + (entity-by-name (the-as string (-> (the-as (pointer uint32) (&+ v1-1 (* arg2 4)))))) + (entity-by-aid (-> (the-as (pointer uint32) (&+ v1-1 (* arg2 4))))) + ) + ) + ) + ) + ) + +;; definition for function entity-actor-count +;; WARN: Check prologue - tricky store of r0 +;; INFO: Used lq/sq +(defun entity-actor-count ((arg0 res-lump) (arg1 symbol)) + (let ((sv-16 (new 'static 'res-tag))) + (if (res-lump-data arg0 arg1 pointer :tag-ptr (& sv-16)) + (the-as int (-> sv-16 elt-count)) + 0 + ) + ) + ) + +;; definition of type actor-link-info +(deftype actor-link-info (basic) + "A linked list of actors. + +Actors allocate this on their process heap if they have a +`next-actor` or `prev-actor` defined in their lump +and use it for entity lookups." + ((process process) + (next entity-actor) + (prev entity-actor) + ) + (:methods + (new (symbol type process symbol) _type_) + (get-matching-actor-type-mask (_type_ type) int) + (actor-count-before (_type_) int) + (link-to-next-and-prev-actor (_type_) actor-link-info) + (get-next (_type_) entity-actor) + (get-prev (_type_) entity-actor) + (get-next-process (_type_) process) + (get-prev-process (_type_) process) + (apply-function-forward (_type_ (function entity-actor object object) object) int) + (apply-function-reverse (_type_ (function entity-actor object object) object) int) + (apply-all (_type_ (function entity-actor object object) object) int) + (send-to-all (_type_ symbol) none) + (send-to-all-after (_type_ symbol) object) + (send-to-all-before (_type_ symbol) object) + (send-to-next-and-prev (_type_ symbol) none) + (send-to-next (_type_ symbol) none) + (send-to-prev (_type_ symbol) none) + (actor-count (_type_) int) + ) + ) + +;; definition for method 3 of type actor-link-info +(defmethod inspect ((this actor-link-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tprocess: ~A~%" (-> this process)) + (format #t "~1Tnext: ~A~%" (-> this next)) + (format #t "~1Tprev: ~A~%" (-> this prev)) + (label cfg-4) + this + ) + +;; definition for method 27 of type entity-actor +(defmethod next-actor ((this entity-actor)) + (entity-actor-lookup this 'next-actor 0) + ) + +;; definition for method 28 of type entity-actor +(defmethod prev-actor ((this entity-actor)) + (entity-actor-lookup this 'prev-actor 0) + ) + +;; definition for method 0 of type actor-link-info +(defmethod new actor-link-info ((allocation symbol) (type-to-make type) (arg0 process) (arg1 symbol)) + (let* ((a0-1 (-> arg0 entity)) + (s4-0 (entity-actor-lookup a0-1 'next-actor 0)) + (a0-2 (-> arg0 entity)) + (s3-0 (entity-actor-lookup a0-2 'prev-actor 0)) + ) + (when (or (not arg1) s4-0 s3-0) + (let ((v0-2 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-2 process) arg0) + (set! (-> v0-2 next) s4-0) + (set! (-> v0-2 prev) s3-0) + v0-2 + ) + ) + ) + ) + +;; definition for method 12 of type actor-link-info +(defmethod get-next ((this actor-link-info)) + (-> this next) + ) + +;; definition for method 13 of type actor-link-info +(defmethod get-prev ((this actor-link-info)) + (-> this prev) + ) + +;; definition for method 14 of type actor-link-info +;; WARN: Return type mismatch basic vs process. +(defmethod get-next-process ((this actor-link-info)) + (the-as process (and (-> this next) (-> this next extra process))) + ) + +;; definition for method 15 of type actor-link-info +;; WARN: Return type mismatch basic vs process. +(defmethod get-prev-process ((this actor-link-info)) + (the-as process (and (-> this prev) (-> this prev extra process))) + ) + +;; definition for method 11 of type actor-link-info +(defmethod link-to-next-and-prev-actor ((this actor-link-info)) + (let ((a0-1 (-> this process entity))) + (set! (-> this next) (entity-actor-lookup a0-1 'next-actor 0)) + ) + (let ((a0-2 (-> this process entity))) + (set! (-> this prev) (entity-actor-lookup a0-2 'prev-actor 0)) + ) + this + ) + +;; definition for method 16 of type actor-link-info +(defmethod apply-function-forward ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object)) + (let ((s3-0 (-> this next))) + (while s3-0 + (if (arg0 s3-0 arg1) + (return (the-as int #f)) + ) + (set! s3-0 (entity-actor-lookup s3-0 'next-actor 0)) + ) + ) + 0 + ) + +;; definition for method 17 of type actor-link-info +(defmethod apply-function-reverse ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object)) + (let ((s3-0 (-> this prev))) + (while s3-0 + (if (arg0 s3-0 arg1) + (return (the-as int #f)) + ) + (set! s3-0 (entity-actor-lookup s3-0 'prev-actor 0)) + ) + ) + 0 + ) + +;; definition for method 18 of type actor-link-info +(defmethod apply-all ((this actor-link-info) (arg0 (function entity-actor object object)) (arg1 object)) + (let ((s4-0 (-> this process entity))) + (while (let ((a0-2 s4-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + (while s4-0 + (if (arg0 s4-0 arg1) + (return (the-as int #f)) + ) + (let ((a0-4 s4-0)) + (set! s4-0 (entity-actor-lookup a0-4 'next-actor 0)) + ) + ) + ) + 0 + ) + +;; definition for method 20 of type actor-link-info +(defmethod send-to-all-after ((this actor-link-info) (arg0 symbol)) + (with-pp + (let ((s4-0 (-> this next)) + (s5-0 (the-as object #f)) + ) + (while s4-0 + (let ((a0-1 (-> s4-0 extra process))) + (when a0-1 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) (process->ppointer pp)) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) arg0) + (set! s5-0 (or (send-event-function a0-1 a1-1) s5-0)) + ) + ) + ) + (set! s4-0 (entity-actor-lookup s4-0 'next-actor 0)) + ) + s5-0 + ) + ) + ) + +;; definition for method 21 of type actor-link-info +(defmethod send-to-all-before ((this actor-link-info) (arg0 symbol)) + (with-pp + (let ((s4-0 (-> this prev)) + (s5-0 (the-as object #f)) + ) + (while s4-0 + (let ((a0-1 (-> s4-0 extra process))) + (when a0-1 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) (process->ppointer pp)) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) arg0) + (set! s5-0 (or (send-event-function a0-1 a1-1) s5-0)) + ) + ) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + s5-0 + ) + ) + ) + +;; definition for method 23 of type actor-link-info +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-next ((this actor-link-info) (arg0 symbol)) + (let ((a0-1 (-> this next))) + (when a0-1 + (let ((a0-2 (-> a0-1 extra process))) + (if a0-2 + (send-event a0-2 arg0) + ) + ) + ) + ) + (none) + ) + +;; definition for method 24 of type actor-link-info +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-prev ((this actor-link-info) (arg0 symbol)) + (let ((a0-1 (-> this prev))) + (when a0-1 + (let ((a0-2 (-> a0-1 extra process))) + (if a0-2 + (send-event a0-2 arg0) + ) + ) + ) + ) + (none) + ) + +;; definition for method 22 of type actor-link-info +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-next-and-prev ((this actor-link-info) (arg0 symbol)) + (send-to-next this arg0) + (send-to-prev this arg0) + (none) + ) + +;; definition for method 19 of type actor-link-info +;; WARN: Return type mismatch symbol vs none. +(defmethod send-to-all ((this actor-link-info) (arg0 symbol)) + (send-to-all-after this arg0) + (send-to-all-before this arg0) + (none) + ) + +;; definition for method 25 of type actor-link-info +(defmethod actor-count ((this actor-link-info)) + (let ((s5-0 (-> this process entity)) + (gp-0 0) + ) + (while (let ((a0-2 s5-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s5-0 (entity-actor-lookup s5-0 'prev-actor 0)) + ) + (while s5-0 + (+! gp-0 1) + (let ((a0-3 s5-0)) + (set! s5-0 (entity-actor-lookup a0-3 'next-actor 0)) + ) + ) + gp-0 + ) + ) + +;; definition for method 9 of type actor-link-info +(defmethod get-matching-actor-type-mask ((this actor-link-info) (arg0 type)) + (let ((s3-0 (-> this process entity)) + (s5-0 0) + ) + (let ((s4-0 1)) + (while (let ((a0-2 s3-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s3-0 (entity-actor-lookup s3-0 'prev-actor 0)) + ) + (while s3-0 + (if (= (-> s3-0 etype) arg0) + (set! s5-0 (logior s5-0 s4-0)) + ) + (let ((a0-3 s3-0)) + (set! s3-0 (entity-actor-lookup a0-3 'next-actor 0)) + ) + (set! s4-0 (* s4-0 2)) + ) + ) + s5-0 + ) + ) + +;; definition for method 10 of type actor-link-info +(defmethod actor-count-before ((this actor-link-info)) + (let* ((s5-0 (-> this process entity)) + (s4-0 s5-0) + (gp-0 0) + ) + (while (let ((a0-2 s4-0)) + (entity-actor-lookup a0-2 'prev-actor 0) + ) + (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) + ) + (while (!= s4-0 s5-0) + (+! gp-0 1) + (let ((a0-3 s4-0)) + (set! s4-0 (entity-actor-lookup a0-3 'next-actor 0)) + ) + ) + gp-0 + ) + ) + +;; definition for function actor-link-subtask-complete-hook +(defun actor-link-subtask-complete-hook ((arg0 entity-actor) (arg1 (pointer symbol))) + (cond + ((logtest? (-> arg0 extra perm status) (entity-perm-status subtask-complete)) + (set! (-> arg1 0) #t) + #f + ) + (else + (set! (-> arg1 0) #f) + #t + ) + ) + ) + +;; definition for function actor-link-subtask-incomplete-count-hook +(defun actor-link-subtask-incomplete-count-hook ((arg0 entity-actor) (arg1 (pointer uint64))) + (cond + ((logtest? (-> arg0 extra perm status) (entity-perm-status subtask-complete)) + #f + ) + (else + (+! (-> arg1 0) 1) + #f + ) + ) + ) + +;; definition for function actor-link-dead-hook +(defun actor-link-dead-hook ((arg0 entity-actor) (arg1 (pointer symbol))) + (cond + ((logtest? (-> arg0 extra perm status) (entity-perm-status dead)) + (set! (-> arg1 0) #t) + #f + ) + (else + (set! (-> arg1 0) #f) + #t + ) + ) + ) + +;; definition for function alt-actor-list-subtask-incomplete-count +(defun alt-actor-list-subtask-incomplete-count ((arg0 process-drawable)) + (let ((s4-0 (entity-actor-count (-> arg0 entity) 'alt-actor)) + (gp-0 0) + ) + (dotimes (s3-0 s4-0) + (let ((a0-3 (entity-actor-lookup (-> arg0 entity) 'alt-actor s3-0))) + (if (or (not a0-3) (not (logtest? (-> a0-3 extra perm status) (entity-perm-status subtask-complete)))) + (+! gp-0 1) + ) + ) + ) + gp-0 + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/entity/entity-h_REF.gc b/test/decompiler/reference/jakx/engine/entity/entity-h_REF.gc index 82ca79ab77..1890e1413c 100644 --- a/test/decompiler/reference/jakx/engine/entity/entity-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/entity/entity-h_REF.gc @@ -262,9 +262,9 @@ that gets accessed by the accompanying process." ;; definition of type entity-actor (deftype entity-actor (entity) "Child class of [[entity]] used to spawn [[process-drawable]] actors." - ((etype type :offset 56) + ((etype type :offset 60) (task game-task) - (kill-mask task-mask :overlay-at unknown) + (kill-mask task-mask :offset 56) (vis-id int16) (quat quaternion :inline) ) @@ -371,3 +371,7 @@ that gets accessed by the accompanying process." ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/jakx/engine/entity/entity-table_REF.gc b/test/decompiler/reference/jakx/engine/entity/entity-table_REF.gc new file mode 100644 index 0000000000..b7b84680b6 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/entity/entity-table_REF.gc @@ -0,0 +1,54 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *entity-info*, type (array entity-info) +(define *entity-info* + (new 'static 'boxed-array :type entity-info + (new 'static 'entity-info + :ptype (type-ref bubbles-path :method-count 56) + :pool '*16k-dead-pool* + :heap-size #x8000 + ) + (new 'static 'entity-info :ptype 'veger-npc :pool '*16k-dead-pool* :heap-size #x10000) + (new 'static 'entity-info :ptype 'seem-npc :pool '*16k-dead-pool* :heap-size #x20000) + (new 'static 'entity-info :ptype 'kleever-npc :pool '*16k-dead-pool* :heap-size #x18000) + (new 'static 'entity-info :ptype 'damus-npc :pool '*16k-dead-pool* :heap-size #x10000) + (new 'static 'entity-info + :ptype (type-ref nav-graph :method-count 45) + :pool '*16k-dead-pool* + :heap-size #x4000 + ) + ) + ) + +;; definition for function entity-info-lookup +;; WARN: Return type mismatch basic vs entity-info. +(defun entity-info-lookup ((arg0 type)) + (the-as entity-info (cond + ((nonzero? (-> arg0 method-table 13)) + (-> arg0 method-table 13) + ) + (else + (let ((v1-1 *entity-info*)) + (dotimes (a1-0 (-> v1-1 length)) + (let ((a2-3 (-> v1-1 a1-0 ptype))) + (when (if (logtest? (the-as int a2-3) 1) + (= (-> arg0 symbol) a2-3) + (= arg0 a2-3) + ) + (set! (-> arg0 method-table 13) (the-as function (-> v1-1 a1-0))) + (return (the-as entity-info (-> v1-1 a1-0))) + ) + ) + ) + ) + (set! (-> arg0 method-table 13) #f) + (the-as basic #f) + ) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/entity/res_REF.gc b/test/decompiler/reference/jakx/engine/entity/res_REF.gc index 767b4713a2..321f92ec46 100644 --- a/test/decompiler/reference/jakx/engine/entity/res_REF.gc +++ b/test/decompiler/reference/jakx/engine/entity/res_REF.gc @@ -920,3 +920,7 @@ ;; definition for symbol *res-static-buf*, type pointer (define *res-static-buf* (malloc 'global 128)) + + + + diff --git a/test/decompiler/reference/jakx/engine/game/game-info-h_REF.gc b/test/decompiler/reference/jakx/engine/game/game-info-h_REF.gc new file mode 100644 index 0000000000..59000beb96 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/game/game-info-h_REF.gc @@ -0,0 +1,607 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type game-bank +(deftype game-bank (basic) + ((life-max-default float) + (life-start-default float) + (life-single-inc float) + (money-task-inc float) + (money-oracle-inc float) + ) + ) + +;; definition for method 3 of type game-bank +(defmethod inspect ((this game-bank)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlife-max-default: ~f~%" (-> this life-max-default)) + (format #t "~1Tlife-start-default: ~f~%" (-> this life-start-default)) + (format #t "~1Tlife-single-inc: ~f~%" (-> this life-single-inc)) + (format #t "~1Tmoney-task-inc: ~f~%" (-> this money-task-inc)) + (format #t "~1Tmoney-oracle-inc: ~f~%" (-> this money-oracle-inc)) + (label cfg-4) + this + ) + +;; definition for symbol *GAME-bank*, type game-bank +(define *GAME-bank* (new 'static 'game-bank + :life-max-default 99.0 + :life-start-default 5.0 + :life-single-inc 1.0 + :money-task-inc 90.0 + :money-oracle-inc 120.0 + ) + ) + +;; definition of type actor-id +(deftype actor-id (uint32) + () + ) + +;; definition of type highscore-info +(deftype highscore-info (structure) + ((flags highscore-flags) + ) + ) + +;; definition for method 3 of type highscore-info +(defmethod inspect ((this highscore-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'highscore-info) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (label cfg-4) + this + ) + +;; definition of type level-buffer-state +(deftype level-buffer-state (structure) + ((name symbol) + (display? symbol) + (force-vis? symbol) + (force-inside? symbol) + (slot int32) + (force-reload basic) + ) + :allow-misaligned + ) + +;; definition for method 3 of type level-buffer-state +(defmethod inspect ((this level-buffer-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'level-buffer-state) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tdisplay?: ~A~%" (-> this display?)) + (format #t "~1Tforce-vis?: ~A~%" (-> this force-vis?)) + (format #t "~1Tforce-inside?: ~A~%" (-> this force-inside?)) + (format #t "~1Tslot: ~D~%" (-> this slot)) + (format #t "~1Tforce-reload: ~A~%" (-> this force-reload)) + (label cfg-4) + this + ) + +;; definition of type level-buffer-state-small +(deftype level-buffer-state-small (structure) + ((name symbol) + (display? symbol) + ) + :pack-me + ) + +;; definition for method 3 of type level-buffer-state-small +(defmethod inspect ((this level-buffer-state-small)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'level-buffer-state-small) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tdisplay?: ~A~%" (-> this display?)) + (label cfg-4) + this + ) + +;; definition of type level-buffer-state-split +(deftype level-buffer-state-split (structure) + ((name basic) + (display? symbol 2) + ) + :pack-me + ) + +;; definition for method 3 of type level-buffer-state-split +(defmethod inspect ((this level-buffer-state-split)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'level-buffer-state-split) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tdisplay?[2] @ #x~X~%" (-> this display?)) + (label cfg-4) + this + ) + +;; definition of type load-state +(deftype load-state (basic) + ((want level-buffer-state 18 :inline) + (want-exp level-buffer-state 18 :inline) + (want-split level-buffer-state-split 18 :inline) + (target level-buffer-state 18 :inline) + (want-sound sound-bank-state 7 :inline) + (target-sound sound-bank-state 7 :inline) + (vis-nick symbol) + (command-list pair) + (object-name string 256) + (object-status basic 256) + (update-callback (function load-state object)) + ) + (:methods + (new (symbol type) _type_) + (load-state-method-9 () none) + (load-state-method-10 () none) + (load-state-method-11 () none) + (load-state-method-12 () none) + (load-state-method-13 () none) + (load-state-method-14 () none) + (load-state-method-15 () none) + (load-state-method-16 () none) + (load-state-method-17 () none) + (load-state-method-18 () none) + (load-state-method-19 () none) + (load-state-method-20 () none) + (load-state-method-21 () none) + (load-state-method-22 () none) + (load-state-method-23 () none) + (load-state-method-24 () none) + (load-state-method-25 () none) + (load-state-method-26 () none) + ) + ) + +;; definition for method 3 of type load-state +(defmethod inspect ((this load-state)) + (when (not this) + (set! this this) + (goto cfg-22) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Twant[18] @ #x~X~%" (-> this want)) + (dotimes (s5-0 18) + (format #t "~T [~D]~1Twant: ~`level-buffer-state`P~%" s5-0 (-> this want s5-0)) + ) + (format #t "~1Twant-exp[18] @ #x~X~%" (-> this want-exp)) + (dotimes (s5-1 18) + (format #t "~T [~D]~1Twant-exp: ~`level-buffer-state`P~%" s5-1 (-> this want-exp s5-1)) + ) + (format #t "~1Twant-split[18] @ #x~X~%" (-> this want-split)) + (dotimes (s5-2 18) + (format #t "~T [~D]~1Twant-split: ~`level-buffer-state-split`P~%" s5-2 (-> this want-split s5-2)) + ) + (format #t "~1Ttarget[18] @ #x~X~%" (-> this target)) + (dotimes (s5-3 18) + (format #t "~T [~D]~1Ttarget: ~`level-buffer-state`P~%" s5-3 (-> this target s5-3)) + ) + (format #t "~1Twant-sound[7] @ #x~X~%" (-> this want-sound)) + (dotimes (s5-4 7) + (format #t "~T [~D]~1Twant-sound: ~`sound-bank-state`P~%" s5-4 (-> this want-sound s5-4)) + ) + (format #t "~1Ttarget-sound[7] @ #x~X~%" (-> this target-sound)) + (dotimes (s5-5 7) + (format #t "~T [~D]~1Ttarget-sound: ~`sound-bank-state`P~%" s5-5 (-> this target-sound s5-5)) + ) + (format #t "~1Tvis-nick: ~A~%" (-> this vis-nick)) + (format #t "~1Tcommand-list: ~A~%" (-> this command-list)) + (format #t "~1Tobject-name[256] @ #x~X~%" (-> this object-name)) + (format #t "~1Tobject-status[256] @ #x~X~%" (-> this object-status)) + (format #t "~1Tupdate-callback: ~A~%" (-> this update-callback)) + (label cfg-22) + this + ) + +;; definition for method 0 of type load-state +;; WARN: Return type mismatch none vs load-state. +(defmethod new load-state ((allocation symbol) (type-to-make type)) + (let ((a0-1 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> a0-1 update-callback) #f) + (the-as load-state ((method-of-object a0-1 load-state-method-9))) + ) + ) + +;; definition of type continue-point +(deftype continue-point (basic) + ((name string) + (level symbol) + (flags continue-flags) + (trans vector :inline) + (velocity vector :inline) + (camera-trans vector :inline) + (quat vector4h :inline) + (camera-rot int16 9) + (on-goto object) + (vis-nick symbol) + (vehicle-type uint8) + (want-count int8) + (want (inline-array level-buffer-state-small)) + (want-sound symbol 1) + ) + (:methods + (continue-point-method-9 () none) + (continue-point-method-10 () none) + (continue-point-method-11 () none) + ) + ) + +;; definition for method 3 of type continue-point +(defmethod inspect ((this continue-point)) + (when (not this) + (set! this this) + (goto cfg-10) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tlevel: ~A~%" (-> this level)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Ttrans: ~`vector`P~%" (-> this trans)) + (format #t "~1Tvelocity: ~`vector`P~%" (-> this velocity)) + (format #t "~1Tcamera-trans: ~`vector`P~%" (-> this camera-trans)) + (format #t "~1Tquat: #~%" (-> this quat)) + (format #t "~1Tcamera-rot[9] @ #x~X~%" (-> this camera-rot)) + (format #t "~1Ton-goto: ~A~%" (-> this on-goto)) + (format #t "~1Tvis-nick: ~A~%" (-> this vis-nick)) + (format #t "~1Tvehicle-type: ~D~%" (-> this vehicle-type)) + (format #t "~1Twant-count: ~D~%" (-> this want-count)) + (format #t "~1Twant: #x~X~%" (-> this want)) + (dotimes (s5-0 (-> this want-count)) + (format #t "~T [~D]~1Twant: ~`level-buffer-state-small`P~%" s5-0 (-> this want s5-0)) + ) + (format #t "~1Twant-sound[1] @ #x~X~%" (-> this want-sound)) + (dotimes (s5-1 1) + (format #t "~T [~D]~1Twant-sound: ~`symbol`P~%" s5-1 (-> this want-sound s5-1)) + ) + (label cfg-10) + this + ) + +;; definition of type game-info-player +(deftype game-info-player (structure) + ((current-continue continue-point) + (last-continue continue-point) + (vehicle handle) + (cash float) + (camera-inside-view symbol) + (last-selected-vehicle uint8) + ) + ) + +;; definition for method 3 of type game-info-player +(defmethod inspect ((this game-info-player)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'game-info-player) + (format #t "~1Tcurrent-continue: ~A~%" (-> this current-continue)) + (format #t "~1Tlast-continue: ~A~%" (-> this last-continue)) + (format #t "~1Tvehicle: ~D~%" (-> this vehicle)) + (format #t "~1Tcash: ~f~%" (-> this cash)) + (format #t "~1Tcamera-inside-view: ~A~%" (-> this camera-inside-view)) + (format #t "~1Tlast-selected-vehicle: ~D~%" (-> this last-selected-vehicle)) + (label cfg-4) + this + ) + +;; definition for symbol *static-continues*, type (array continue-point) +(define *static-continues* + (new 'static 'boxed-array :type continue-point + (new 'static 'continue-point :want (new 'static 'inline-array level-buffer-state-small 16 + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + ) + ) + (new 'static 'continue-point :want (new 'static 'inline-array level-buffer-state-small 16 + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + (new 'static 'level-buffer-state-small) + ) + ) + ) + ) + +;; definition for function continue-point-copy! +;; WARN: Return type mismatch int vs none. +(defun continue-point-copy! ((arg0 continue-point) (arg1 continue-point)) + (let ((s4-0 (-> arg0 want))) + (mem-copy! (&-> arg0 type) (&-> arg1 type) 112) + (set! (-> arg0 want) s4-0) + ) + (mem-copy! (the-as pointer (-> arg0 want)) (the-as pointer (-> arg1 want)) 128) + 0 + (none) + ) + +;; definition of type game-info +(deftype game-info (basic) + ((mode symbol) + (save-name string) + (player-info game-info-player 2 :inline) + (car-info car-info-array :inline) + (features uint64) + (debug-features uint64) + (old-features uint64) + (items uint64) + (debug-items uint64) + (old-items uint64) + (secrets uint64) + (purchase-secrets uint64) + (vehicles uint64) + (debug-vehicles uint64) + (old-vehicles uint64) + (health-bar float) + (health-bar-owner uint64) + (attack-id uint32) + (perm-list entity-perm-array) + (game-info-pad1 int32 3) + (task-node-commands (array game-task-node-command)) + (task-counter uint32) + (game-info-pad2 int32 1) + (level-opened uint8 32) + (total-deaths int32) + (continue-deaths int32) + (task-deaths int32) + (total-trys int32) + (game-start-time uint64) + (continue-time uint64) + (death-time uint64) + (hit-time uint64) + (task-pickup-time uint64) + (stop-watch-start uint64) + (stop-watch-stop uint64) + (blackout-time uint64) + (letterbox-time uint64) + (hint-play-time uint64) + (display-text-time uint64) + (display-text-handle uint64) + (death-movie-tick int32) + (want-auto-save symbol) + (auto-save-proc uint64) + (auto-save-status mc-status-code) + (auto-save-card int32) + (auto-save-which int32) + (auto-save-count int32) + (pov-camera-handle uint64) + (other-camera-handle uint64) + (controller handle 2) + (bot-health float 3) + (demo-state uint32) + (distance float) + (kiosk-timeout uint64) + (pause-start-time uint64) + (game-score (array float)) + (goal float) + (miss float) + (miss-max float) + (health-bar-vehicle float) + (pause-menu uint64) + (current-vehicle uint8) + (collision-damage-multiplier float) + (traction-multiplier float) + (turbo-factor float) + (turbo-disabled int8) + (turbo-last-disabled int32) + (fragile-vehicle basic) + (music-data uint32 4) + (music-info uint32 :overlay-at (-> music-data 0)) + (playing-grand-prix? symbol :overlay-at (-> music-data 3)) + (grand-prix-index uint32) + (collision-vs-rbody-damage-multiplier float) + (global-speed-factor float) + (this-race-grand-prix-score uint32 23) + (cumulative-grand-prix-score uint32 23) + (driver-info uint64) + (driver-unlock uint32 :overlay-at driver-info) + (driver-award uint32 :offset 1700) + ) + (:methods + (game-info-method-9 () none) + (game-info-method-10 () none) + (game-info-method-11 () none) + (game-info-method-12 () none) + (game-info-method-13 () none) + (game-info-method-14 () none) + (game-info-method-15 () none) + (game-info-method-16 () none) + (debug-inspect (_type_ symbol) _type_) + (game-info-method-18 () none) + (game-info-method-19 () none) + (game-info-method-20 () none) + (game-info-method-21 () none) + (game-info-method-22 () none) + (game-info-method-23 () none) + (game-info-method-24 () none) + (game-info-method-25 () none) + (get-next-attack-id! (_type_) uint) + (game-info-method-27 () none) + (game-info-method-28 () none) + (game-info-method-29 () none) + (game-info-method-30 () none) + ) + ) + +;; definition for method 3 of type game-info +(defmethod inspect ((this game-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tmode: ~A~%" (-> this mode)) + (format #t "~1Tsave-name: ~A~%" (-> this save-name)) + (format #t "~1Tplayer-info[2] @ #x~X~%" (-> this player-info)) + (format #t "~1Tcar-info: #~%" (-> this car-info)) + (format #t "~1Tfeatures: ~D~%" (-> this features)) + (format #t "~1Tdebug-features: ~D~%" (-> this debug-features)) + (format #t "~1Told-features: ~D~%" (-> this old-features)) + (format #t "~1Titems: ~D~%" (-> this items)) + (format #t "~1Tdebug-items: ~D~%" (-> this debug-items)) + (format #t "~1Told-items: ~D~%" (-> this old-items)) + (format #t "~1Tsecrets: ~D~%" (-> this secrets)) + (format #t "~1Tpurchase-secrets: ~D~%" (-> this purchase-secrets)) + (format #t "~1Tvehicles: ~D~%" (-> this vehicles)) + (format #t "~1Tdebug-vehicles: ~D~%" (-> this debug-vehicles)) + (format #t "~1Told-vehicles: ~D~%" (-> this old-vehicles)) + (format #t "~1Thealth-bar: ~f~%" (-> this health-bar)) + (format #t "~1Thealth-bar-owner: ~D~%" (-> this health-bar-owner)) + (format #t "~1Tattack-id: ~D~%" (-> this attack-id)) + (format #t "~1Tperm-list: ~A~%" (-> this perm-list)) + (format #t "~1Ttask-node-commands: ~A~%" (-> this task-node-commands)) + (format #t "~1Ttask-counter: ~D~%" (-> this task-counter)) + (format #t "~1Tlevel-opened[32] @ #x~X~%" (-> this level-opened)) + (format #t "~1Ttotal-deaths: ~D~%" (-> this total-deaths)) + (format #t "~1Tcontinue-deaths: ~D~%" (-> this continue-deaths)) + (format #t "~1Ttask-deaths: ~D~%" (-> this task-deaths)) + (format #t "~1Ttotal-trys: ~D~%" (-> this total-trys)) + (format #t "~1Tgame-start-time: ~D~%" (-> this game-start-time)) + (format #t "~1Tcontinue-time: ~D~%" (-> this continue-time)) + (format #t "~1Tdeath-time: ~D~%" (-> this death-time)) + (format #t "~1Thit-time: ~D~%" (-> this hit-time)) + (format #t "~1Ttask-pickup-time: ~D~%" (-> this task-pickup-time)) + (format #t "~1Tstop-watch-start: ~D~%" (-> this stop-watch-start)) + (format #t "~1Tstop-watch-stop: ~D~%" (-> this stop-watch-stop)) + (format #t "~1Tblackout-time: ~D~%" (-> this blackout-time)) + (format #t "~1Tletterbox-time: ~D~%" (-> this letterbox-time)) + (format #t "~1Thint-play-time: ~D~%" (-> this hint-play-time)) + (format #t "~1Tdisplay-text-time: ~D~%" (-> this display-text-time)) + (format #t "~1Tdisplay-text-handle: ~D~%" (-> this display-text-handle)) + (format #t "~1Tdeath-movie-tick: ~D~%" (-> this death-movie-tick)) + (format #t "~1Twant-auto-save: ~A~%" (-> this want-auto-save)) + (format #t "~1Tauto-save-proc: ~D~%" (-> this auto-save-proc)) + (format #t "~1Tauto-save-status: ~D~%" (-> this auto-save-status)) + (format #t "~1Tauto-save-card: ~D~%" (-> this auto-save-card)) + (format #t "~1Tauto-save-which: ~D~%" (-> this auto-save-which)) + (format #t "~1Tauto-save-count: ~D~%" (-> this auto-save-count)) + (format #t "~1Tpov-camera-handle: ~D~%" (-> this pov-camera-handle)) + (format #t "~1Tother-camera-handle: ~D~%" (-> this other-camera-handle)) + (format #t "~1Tcontroller[2] @ #x~X~%" (-> this controller)) + (format #t "~1Tbot-health[3] @ #x~X~%" (-> this bot-health)) + (format #t "~1Tdemo-state: ~D~%" (-> this demo-state)) + (format #t "~1Tdistance: ~f~%" (-> this distance)) + (format #t "~1Tkiosk-timeout: ~D~%" (-> this kiosk-timeout)) + (format #t "~1Tpause-start-time: ~D~%" (-> this pause-start-time)) + (format #t "~1Tgame-score: ~A~%" (-> this game-score)) + (format #t "~1Tgoal: ~f~%" (-> this goal)) + (format #t "~1Tmiss: ~f~%" (-> this miss)) + (format #t "~1Tmiss-max: ~f~%" (-> this miss-max)) + (format #t "~1Thealth-bar-vehicle: ~f~%" (-> this health-bar-vehicle)) + (format #t "~1Tpause-menu: ~D~%" (-> this pause-menu)) + (format #t "~1Tcurrent-vehicle: ~D~%" (-> this current-vehicle)) + (format #t "~1Tcollision-damage-multiplier: ~f~%" (-> this collision-damage-multiplier)) + (format #t "~1Ttraction-multiplier: ~f~%" (-> this traction-multiplier)) + (format #t "~1Tturbo-factor: ~f~%" (-> this turbo-factor)) + (format #t "~1Tturbo-disabled: ~D~%" (-> this turbo-disabled)) + (format #t "~1Tturbo-last-disabled: ~D~%" (-> this turbo-last-disabled)) + (format #t "~1Tfragile-vehicle: ~A~%" (-> this fragile-vehicle)) + (format #t "~1Tmusic-data[4] @ #x~X~%" (-> this music-data)) + (format #t "~1Tmusic-info: ~D~%" (-> this music-info)) + (format #t "~1Tplaying-grand-prix?: #~%" (-> this playing-grand-prix?)) + (format #t "~1Tgrand-prix-index: ~D~%" (-> this grand-prix-index)) + (format #t "~1Tcollision-vs-rbody-damage-multiplier: ~f~%" (-> this collision-vs-rbody-damage-multiplier)) + (format #t "~1Tglobal-speed-factor: ~f~%" (-> this global-speed-factor)) + (format #t "~1Tthis-race-grand-prix-score[23] @ #x~X~%" (-> this this-race-grand-prix-score)) + (format #t "~1Tcumulative-grand-prix-score[23] @ #x~X~%" (-> this cumulative-grand-prix-score)) + (format #t "~1Tdriver-info: ~D~%" (-> this driver-info)) + (format #t "~1Tdriver-info2[2] @ #x~X~%" (&-> this driver-info)) + (format #t "~1Tdriver-unlock: ~D~%" (-> this driver-unlock)) + (format #t "~1Tdriver-award: ~D~%" (-> this driver-award)) + (label cfg-4) + this + ) + +;; definition for method 26 of type game-info +(defmethod get-next-attack-id! ((this game-info)) + (let ((v0-0 (+ (-> this attack-id) 1))) + (set! (-> this attack-id) v0-0) + v0-0 + ) + ) + +;; failed to figure out what this is: +(when (or (not *game-info*) (zero? *game-info*)) + (let ((gp-0 (new 'static 'game-info :mode 'debug :turbo-disabled -1))) + (set! (-> gp-0 save-name) (new 'global 'string 32 (the-as string #f))) + (set! (-> gp-0 driver-unlock) (the-as uint -1)) + (dotimes (v1-19 2) + (set! (-> gp-0 player-info v1-19 current-continue) #f) + (set! (-> gp-0 player-info v1-19 last-continue) #f) + ) + (set! (-> gp-0 driver-unlock) (the-as uint -1)) + (set! *game-info* gp-0) + ) + ) + +;; definition for symbol *use-menu2*, type symbol +(define *use-menu2* #t) + +;; definition for symbol *lobby-adv-selected-cup*, type int +(define *lobby-adv-selected-cup* 0) + +;; definition for symbol *lobby-adv-selected-map*, type int +(define *lobby-adv-selected-map* 0) + +;; definition for symbol *lobby-adv-selected-venue*, type symbol +(define *lobby-adv-selected-venue* #f) + +;; definition for symbol *lobby-adv-selected-level*, type symbol +(define *lobby-adv-selected-level* #f) + +;; definition for symbol *lobby-adv-previous-score*, type int +(define *lobby-adv-previous-score* 0) + +;; definition for symbol *lobby-adv-cup*, type int +(define *lobby-adv-cup* -1) + +;; definition for symbol *lobby-adv-selected-task*, type int +(define *lobby-adv-selected-task* 0) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/game/main-h_REF.gc b/test/decompiler/reference/jakx/engine/game/main-h_REF.gc index 892dcebc7c..e6a143404d 100644 --- a/test/decompiler/reference/jakx/engine/game/main-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/game/main-h_REF.gc @@ -342,7 +342,7 @@ (define *race-record-path* #f) ;; definition for symbol *select-race*, type race-selection -(define *select-race* (race-selection desrally-record)) +(define *select-race* (race-selection eightb-start)) ;; definition for symbol *select-race-path*, type int (define *select-race-path* 0) diff --git a/test/decompiler/reference/jakx/engine/game/settings-h_REF.gc b/test/decompiler/reference/jakx/engine/game/settings-h_REF.gc index 81f9bbd6f7..41a5d586bd 100644 --- a/test/decompiler/reference/jakx/engine/game/settings-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/game/settings-h_REF.gc @@ -116,11 +116,11 @@ (death-info resetter-spec) (quit-info resetter-spec) (extra-bank-count uint32) - (extra-bank pair 3) + (extra-bank pair 3) (borrow-count uint32) - (borrow pair 3) + (borrow pair 3) (exclusive-task-count uint32) - (exclusive-task int32 3) + (exclusive-task int32 3) (level-trans-time int32) (unknown-usd-19 int32) (unknown-usd-20 int32) @@ -139,12 +139,14 @@ (unknown-usd-31 int32) (unknown-usd-32 int32) (borrow-city-count uint32) - (borrow-city pair 3) - (unknown-usd-33 int32 28) + (borrow-city pair 3) + (unknown-usd-33 int32 28) (audio-language uint8) - (unknown-usd-34 int32 11) + (unknown-usd-34 int32 11) (special-volume float) - (unknown-usd-35 int32 17) + (unknown-usd-35 int32 17) + (unknown-uint32-1 uint32 :overlay-at (-> unknown-usd-35 11)) + (unknown-float float :overlay-at (-> unknown-usd-35 13)) ) (:methods (user-setting-data-method-9 () none) @@ -745,3 +747,7 @@ ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/jakx/engine/geometry/bounding-box_REF.gc b/test/decompiler/reference/jakx/engine/geometry/bounding-box_REF.gc index 10cd9b2d77..b2e1e10a09 100644 --- a/test/decompiler/reference/jakx/engine/geometry/bounding-box_REF.gc +++ b/test/decompiler/reference/jakx/engine/geometry/bounding-box_REF.gc @@ -373,3 +373,7 @@ ) ) ) + + + + diff --git a/test/decompiler/reference/jakx/engine/geometry/path-h_REF.gc b/test/decompiler/reference/jakx/engine/geometry/path-h_REF.gc index 7470e29694..b20757b70b 100644 --- a/test/decompiler/reference/jakx/engine/geometry/path-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/geometry/path-h_REF.gc @@ -353,3 +353,7 @@ These path-controls are typically allocated on a process heap." ) ) ) + + + + diff --git a/test/decompiler/reference/jakx/engine/geometry/vol-h_REF.gc b/test/decompiler/reference/jakx/engine/geometry/vol-h_REF.gc new file mode 100644 index 0000000000..3903d67a25 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/geometry/vol-h_REF.gc @@ -0,0 +1,145 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type plane-volume +(deftype plane-volume (structure) + ((volume-type symbol) + (point-count int16) + (normal-count int16) + (first-point (pointer vector)) + (first-normal (pointer vector)) + (num-planes int32) + (plane (inline-array plane)) + ) + :pack-me + (:methods + (plane-volume-method-9 (_type_ symbol vector-array vector-array) plane-volume) + (debug-draw (_type_) none) + (point-in-vol? (_type_ vector float) symbol) + ) + ) + +;; definition for method 3 of type plane-volume +(defmethod inspect ((this plane-volume)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'plane-volume) + (format #t "~1Tvolume-type: ~A~%" (-> this volume-type)) + (format #t "~1Tpoint-count: ~D~%" (-> this point-count)) + (format #t "~1Tnormal-count: ~D~%" (-> this normal-count)) + (format #t "~1Tfirst-point: #~%" (-> this first-point)) + (format #t "~1Tfirst-normal: #~%" (-> this first-normal)) + (format #t "~1Tnum-planes: ~D~%" (-> this num-planes)) + (format #t "~1Tplane: #x~X~%" (-> this plane)) + (label cfg-4) + this + ) + +;; definition of type vol-control +(deftype vol-control (basic) + ((flags vol-flags) + (process process-drawable) + (pos-vol-count int32) + (pos-vol plane-volume 32 :inline) + (neg-vol-count int32) + (neg-vol plane-volume 32 :inline) + (debug-point vector-array) + (debug-normal vector-array) + ) + (:methods + (new (symbol type process-drawable) _type_) + (debug-draw (_type_) none) + (vol-control-method-10 (_type_ plane) symbol) + (should-display? (_type_) symbol) + ) + ) + +;; definition for method 3 of type vol-control +(defmethod inspect ((this vol-control)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tflags: #x~X~%" (-> this flags)) + (format #t "~1Tprocess: ~A~%" (-> this process)) + (format #t "~1Tpos-vol-count: ~D~%" (-> this pos-vol-count)) + (format #t "~1Tpos-vol[32] @ #x~X~%" (-> this pos-vol)) + (format #t "~1Tneg-vol-count: ~D~%" (-> this neg-vol-count)) + (format #t "~1Tneg-vol[32] @ #x~X~%" (-> this neg-vol)) + (format #t "~1Tdebug-point: ~A~%" (-> this debug-point)) + (format #t "~1Tdebug-normal: ~A~%" (-> this debug-normal)) + (label cfg-4) + this + ) + +;; definition for method 0 of type vol-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch object vs vol-control. +(defmethod new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable)) + (let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size)))))) + (when (zero? (the-as vol-control gp-0)) + (go process-drawable-art-error "memory") + (set! gp-0 0) + (goto cfg-13) + ) + (set! (-> (the-as vol-control gp-0) process) arg0) + (let* ((s5-1 (-> (the-as vol-control gp-0) process entity)) + (s4-0 (-> ((method-of-type res-lump lookup-tag-idx) s5-1 'vol 'base -1000000000.0) lo)) + ) + (when (>= (the-as int s4-0) 0) + (let ((s3-0 (the-as int s4-0)) + (s2-0 (-> s5-1 tag s4-0)) + ) + 0 + (while (= (-> s2-0 name) (-> s5-1 tag s4-0 name)) + (let ((v1-12 (make-property-data s5-1 0.0 (the-as res-tag-pair s3-0) (the-as pointer #f))) + (a0-8 (-> (the-as vol-control gp-0) pos-vol (-> (the-as vol-control gp-0) pos-vol-count))) + ) + (set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count))) + (set! (-> a0-8 plane) (the-as (inline-array plane) v1-12)) + ) + (+! (-> (the-as vol-control gp-0) pos-vol-count) 1) + (+! s3-0 1) + (set! s2-0 (-> s5-1 tag s3-0)) + ) + ) + ) + ) + (let* ((s5-2 (-> (the-as vol-control gp-0) process entity)) + (s4-1 (-> ((method-of-type res-lump lookup-tag-idx) s5-2 'cutoutvol 'base -1000000000.0) lo)) + ) + (when (>= (the-as int s4-1) 0) + (let ((s3-1 (the-as int s4-1)) + (s2-1 (-> s5-2 tag s4-1)) + ) + 0 + (while (= (-> s2-1 name) (-> s5-2 tag s4-1 name)) + (let ((v1-31 (make-property-data s5-2 0.0 (the-as res-tag-pair s3-1) (the-as pointer #f))) + (a0-19 (-> (the-as vol-control gp-0) neg-vol (-> (the-as vol-control gp-0) neg-vol-count))) + ) + (set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count))) + (set! (-> a0-19 plane) (the-as (inline-array plane) v1-31)) + ) + (+! (-> (the-as vol-control gp-0) neg-vol-count) 1) + (+! s3-1 1) + (set! s2-1 (-> s5-2 tag s3-1)) + ) + ) + ) + ) + (label cfg-13) + (the-as vol-control gp-0) + ) + ) + +;; definition for method 11 of type vol-control +(defmethod should-display? ((this vol-control)) + (and *display-vol-marks* (logtest? (-> this flags) (vol-flags display?))) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/geometry/vol_REF.gc b/test/decompiler/reference/jakx/engine/geometry/vol_REF.gc new file mode 100644 index 0000000000..30a463c240 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/geometry/vol_REF.gc @@ -0,0 +1,292 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function plane-volume-intersect-dist +(defun plane-volume-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector)) + (let ((f0-1 (vector-dot arg1 arg0)) + (f1-1 (vector-dot arg2 arg0)) + ) + (if (< 0.00001 (fabs f1-1)) + (/ (- (-> arg0 w) f0-1) f1-1) + 409600000.0 + ) + ) + ) + +;; definition for method 9 of type plane-volume +;; INFO: Used lq/sq +(defmethod plane-volume-method-9 ((this plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (set! (-> this volume-type) arg0) + (set! (-> this point-count) 0) + (set! (-> this first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length)))) + (set! (-> this normal-count) 0) + (set! (-> this first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length)))) + (dotimes (s3-0 (-> this num-planes)) + (let ((sv-176 (new 'stack-no-clear 'vector))) + (set! (-> sv-176 quad) (the-as uint128 0)) + (let ((sv-192 (new 'stack-no-clear 'vector))) + (set! (-> sv-192 quad) (the-as uint128 0)) + (let ((sv-208 (new 'stack-no-clear 'vector))) + (set! (-> sv-208 quad) (the-as uint128 0)) + (let ((sv-224 (new 'stack-no-clear 'vector))) + (set! (-> sv-224 quad) (the-as uint128 0)) + 0.0 + 0.0 + 0.0 + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (let ((s1-0 (new-stack-vector0)) + (s0-0 0) + (s2-0 (-> this plane)) + ) + (let ((sv-240 0)) + (while (< sv-240 (-> this num-planes)) + (when (!= s3-0 sv-240) + (vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w)) + (vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0))) + (vector-normalize! sv-192 1.0) + (vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240))) + (vector-normalize! sv-208 1.0) + (let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208))) + (when (!= f0-4 409600000.0) + (vector+float*! sv-224 sv-176 sv-208 f0-4) + (let ((sv-144 (new-stack-vector0)) + (sv-148 (the-as float 0.0)) + (sv-152 0) + ) + (let ((sv-160 (new-stack-vector0))) + (set! (-> sv-144 quad) (-> sv-224 quad)) + (let ((sv-256 0)) + (while (< sv-256 (-> this num-planes)) + (when (and (!= sv-256 s3-0) (!= sv-256 sv-240)) + (let ((f0-6 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192))) + (cond + ((= f0-6 409600000.0) + ) + ((zero? sv-152) + (vector+float*! sv-144 sv-144 sv-192 f0-6) + (set! (-> sv-160 quad) (-> s2-0 sv-256 quad)) + (set! sv-148 (the-as float 8192000.0)) + (set! sv-152 1) + ) + ((begin (vector-float*! sv-224 sv-192 f0-6) (>= (vector-dot sv-224 sv-160) 0.0)) + ) + ((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0) + (when (< (fabs f0-6) (fabs sv-148)) + (set! sv-148 f0-6) + (+! sv-152 1) + ) + ) + (else + (vector+float*! sv-144 sv-144 sv-192 f0-6) + (set! (-> sv-160 quad) (-> s2-0 sv-256 quad)) + (+! sv-152 1) + (set! sv-148 (cond + ((< (fabs f0-6) (fabs sv-148)) + (set! sv-148 (- sv-148 f0-6)) + sv-148 + ) + (else + (the-as float 0.0) + ) + ) + ) + ) + ) + ) + ) + (+! sv-256 1) + ) + ) + ) + (cond + ((zero? sv-152) + ) + ((= sv-148 0.0) + ) + (else + (dotimes (v1-75 (-> this num-planes)) + (when (and (!= v1-75 s3-0) (!= v1-75 sv-240)) + (if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-75))) (-> s2-0 v1-75 w))) + (goto cfg-42) + ) + ) + ) + (vector+float*! sv-224 sv-144 sv-192 sv-148) + (cond + ((< (-> arg1 allocated-length) (+ (-> arg1 length) 2)) + (format 0 "ERROR : vol-control #x~X out of volume points~%" this) + ) + (else + (set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad)) + (set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad)) + (+! (-> arg1 length) 2) + (+! (-> this point-count) 2) + ) + ) + (let ((a1-20 s1-0)) + (let ((a0-51 sv-144)) + (.lvf vf4 (&-> s1-0 quad)) + (.lvf vf5 (&-> a0-51 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-20 quad) vf6) + ) + (let ((a1-21 s1-0)) + (let ((a0-52 sv-224)) + (.lvf vf4 (&-> s1-0 quad)) + (.lvf vf5 (&-> a0-52 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-21 quad) vf6) + ) + (+! s0-0 2) + ) + ) + ) + ) + ) + ) + (label cfg-42) + (+! sv-240 1) + ) + ) + (when (nonzero? s0-0) + (vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0))) + (cond + ((< (-> arg2 allocated-length) (+ (-> arg2 length) 2)) + (format 0 "ERROR : vol-control #x~X out of volume normals~%" this) + ) + (else + (set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad)) + (set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad)) + (+! (-> arg2 length) 2) + (set! (-> this normal-count) (+ (-> this normal-count) 2)) + ) + ) + ) + ) + ) + ) + ) + ) + ) + this + ) + ) + +;; definition for method 10 of type plane-volume +;; WARN: Return type mismatch int vs none. +(defmethod debug-draw ((this plane-volume)) + (let* ((v1-0 (-> this volume-type)) + (s5-0 (cond + ((= v1-0 'vol) + (the-as uint #x8000c000) + ) + ((= v1-0 'pvol) + (the-as uint #x80808080) + ) + (else + (the-as uint #x800000c0) + ) + ) + ) + (s4-0 (-> this first-point)) + ) + (dotimes (s3-0 (/ (-> this point-count) 2)) + (add-debug-line + #t + (bucket-id bucket785) + (the-as vector s4-0) + (the-as vector (&-> s4-0 4)) + (the-as rgba s5-0) + #f + (the-as rgba -1) + ) + (set! s4-0 (&-> s4-0 8)) + ) + ) + 0 + (none) + ) + +;; definition for method 11 of type plane-volume +(defmethod point-in-vol? ((this plane-volume) (arg0 vector) (arg1 float)) + (dotimes (v1-0 (-> this num-planes)) + (if (< arg1 (- (vector-dot arg0 (the-as vector (-> this plane v1-0))) (-> this plane v1-0 w))) + (return #f) + ) + ) + #t + ) + +;; definition for method 9 of type vol-control +;; WARN: Return type mismatch int vs none. +(defmethod debug-draw ((this vol-control)) + (with-pp + (let ((a0-1 this)) + (when (and (and *display-vol-marks* (logtest? (-> a0-1 flags) (vol-flags display?))) + (logtest? (-> this flags) (vol-flags vol-flags-1)) + ) + (when (zero? (-> this debug-point)) + (let ((s5-0 pp)) + (set! pp (-> this process)) + (let ((s4-0 0)) + (dotimes (v1-8 (-> this pos-vol-count)) + (+! s4-0 (-> this pos-vol v1-8 num-planes)) + ) + (dotimes (v1-11 (-> this neg-vol-count)) + (+! s4-0 (-> this neg-vol v1-11 num-planes)) + ) + (set! (-> this debug-point) (new 'debug 'vector-array (* 10 s4-0))) + (set! (-> this debug-normal) (new 'debug 'vector-array (* 10 s4-0))) + ) + (set! pp s5-0) + ) + (set! (-> this debug-point length) 0) + (set! (-> this debug-normal length) 0) + (dotimes (s5-1 (-> this pos-vol-count)) + (plane-volume-method-9 (-> this pos-vol s5-1) 'vol (-> this debug-point) (-> this debug-normal)) + ) + (dotimes (s5-2 (-> this neg-vol-count)) + (plane-volume-method-9 (-> this neg-vol s5-2) 'vol (-> this debug-point) (-> this debug-normal)) + ) + ) + (dotimes (s5-3 (-> this pos-vol-count)) + (debug-draw (-> this pos-vol s5-3)) + ) + (dotimes (s5-4 (-> this neg-vol-count)) + (debug-draw (-> this neg-vol s5-4)) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for method 10 of type vol-control +(defmethod vol-control-method-10 ((this vol-control) (arg0 plane)) + (dotimes (s4-0 (-> this neg-vol-count)) + (if (point-in-vol? (-> this neg-vol s4-0) arg0 0.0) + (return #f) + ) + ) + (dotimes (s4-1 (-> this pos-vol-count)) + (if (point-in-vol? (-> this pos-vol s4-1) arg0 0.0) + (return #t) + ) + ) + #f + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/background/subdivide_REF.gc b/test/decompiler/reference/jakx/engine/gfx/background/subdivide_REF.gc new file mode 100644 index 0000000000..92ee82a8f8 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/background/subdivide_REF.gc @@ -0,0 +1,380 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *merc-global-stats*, type merc-global-stats +(define *merc-global-stats* (new 'global 'merc-global-stats)) + +;; definition for function clear-tr-stat +;; WARN: Return type mismatch int vs none. +(defun clear-tr-stat ((arg0 tr-stat)) + "Reset all statistics to 0." + (set! (-> arg0 groups) (the-as uint 0)) + (set! (-> arg0 fragments) (the-as uint 0)) + (set! (-> arg0 tris) (the-as uint 0)) + (set! (-> arg0 dverts) (the-as uint 0)) + (set! (-> arg0 instances) (the-as uint 0)) + 0 + (none) + ) + +;; definition for symbol *stat-string-tfrag*, type string +(define *stat-string-tfrag* (new 'global 'string 128 (the-as string #f))) + +;; definition for symbol *stat-string-tfrag-scissor*, type string +(define *stat-string-tfrag-scissor* (new 'global 'string 128 (the-as string #f))) + +;; definition for symbol *stat-string-total*, type string +(define *stat-string-total* (new 'global 'string 128 (the-as string #f))) + +;; definition (debug) for function print-tr-stat +;; WARN: Return type mismatch uint vs none. +(defun-debug print-tr-stat ((arg0 tr-stat) (arg1 string) (arg2 string)) + "Print a single tr-stat to the screen." + (clear arg2) + (when (nonzero? (+ (-> arg0 groups) (-> arg0 fragments) (-> arg0 tris) (-> arg0 dverts) (-> arg0 instances))) + (format arg2 "~0k~4d ~5d ~6d ~6d" (-> arg0 groups) (-> arg0 fragments) (-> arg0 tris) (-> arg0 dverts)) + (format + arg2 + "~0k ~7f ~5d ~s" + (/ (* 2.0 (the float (-> arg0 tris))) (the float (- (-> arg0 dverts) (-> arg0 tris)))) + (-> arg0 instances) + arg1 + ) + (format *stdcon* "~S~%" arg2) + (+! (-> *terrain-stats* total groups) (-> arg0 groups)) + (+! (-> *terrain-stats* total fragments) (-> arg0 fragments)) + (+! (-> *terrain-stats* total tris) (-> arg0 tris)) + (+! (-> *terrain-stats* total dverts) (-> arg0 dverts)) + (+! (-> *terrain-stats* total instances) (-> arg0 instances)) + ) + (none) + ) + +;; definition (debug) for function print-terrain-stats +;; WARN: Return type mismatch int vs none. +(defun-debug print-terrain-stats () + "Print all tr-stats for renderers to the screen." + (format *stdcon* "~0k~%grps frags tris dverts strip insts~%") + (print-tr-stat (-> *terrain-stats* pris) "pris" *temp-string*) + (print-tr-stat (-> *merc-global-stats* merc) "merc" *temp-string*) + (print-tr-stat (-> *merc-global-stats* emerc) "emerc" *temp-string*) + (print-tr-stat (-> *merc-global-stats* mercneric) "mercneric" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-generic) "tie-generic" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-vanish) "tie-vanish" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie) "tie" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-scissor) "tie-scissor" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-envmap) "tie-envmap" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-envmap-scissor) "tie-envmap-scissor" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-trans) "tie-trans" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-scissor-trans) "tie-scissor-trans" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-envmap-trans) "tie-envmap-trans" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-envmap-scissor-trans) "tie-envmap-scissor-trans" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-water) "tie-water" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-scissor-water) "tie-scissor-water" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-envmap-water) "tie-envmap-water" *temp-string*) + (print-tr-stat (-> *terrain-stats* tie-envmap-scissor-water) "tie-envmap-scissor-water" *temp-string*) + (print-tr-stat (-> *terrain-stats* shrub-near) "shrub-near" *temp-string*) + (print-tr-stat (-> *terrain-stats* shrub) "shrub" *temp-string*) + (print-tr-stat (-> *terrain-stats* tfrag-scissor) "tfrag-scissor" *stat-string-tfrag-scissor*) + (print-tr-stat (-> *terrain-stats* tfrag) "tfrag" *stat-string-tfrag*) + (print-tr-stat (-> *terrain-stats* tfrag-trans) "tfrag-trans" *temp-string*) + (print-tr-stat (-> *terrain-stats* tfrag-scissor-trans) "tfrag-scissor-trans" *temp-string*) + (print-tr-stat (-> *terrain-stats* tfrag-water) "tfrag-water" *temp-string*) + (print-tr-stat (-> *terrain-stats* tfrag-scissor-water) "tfrag-scissor-water" *temp-string*) + (print-tr-stat (-> *terrain-stats* trans-pris) "trans-pris" *temp-string*) + (print-tr-stat (-> *terrain-stats* billboard) "billboard" *temp-string*) + (print-tr-stat (-> *terrain-stats* trans-shrub) "trans-shrub" *temp-string*) + (print-tr-stat (-> *terrain-stats* ocean-mid) "ocean-mid" *temp-string*) + (print-tr-stat (-> *terrain-stats* ocean-near) "ocean-near" *temp-string*) + (print-tr-stat (-> *terrain-stats* shadow) "shadow" *temp-string*) + (format *stdcon* "~0k---------------------------------------------------------------~%") + (print-tr-stat (-> *terrain-stats* total) "total" *stat-string-total*) + (clear-tr-stat (-> *terrain-stats* pris)) + (clear-tr-stat (-> *merc-global-stats* merc)) + (clear-tr-stat (-> *merc-global-stats* emerc)) + (clear-tr-stat (-> *merc-global-stats* mercneric)) + (clear-tr-stat (-> *terrain-stats* shrub-near)) + (clear-tr-stat (-> *terrain-stats* tie-generic)) + (clear-tr-stat (-> *terrain-stats* tie-vanish)) + (clear-tr-stat (-> *terrain-stats* tie)) + (clear-tr-stat (-> *terrain-stats* tie-scissor)) + (clear-tr-stat (-> *terrain-stats* tie-envmap)) + (clear-tr-stat (-> *terrain-stats* tie-envmap-scissor)) + (clear-tr-stat (-> *terrain-stats* tie-trans)) + (clear-tr-stat (-> *terrain-stats* tie-scissor-trans)) + (clear-tr-stat (-> *terrain-stats* tie-envmap-trans)) + (clear-tr-stat (-> *terrain-stats* tie-envmap-scissor-trans)) + (clear-tr-stat (-> *terrain-stats* tie-water)) + (clear-tr-stat (-> *terrain-stats* tie-scissor-water)) + (clear-tr-stat (-> *terrain-stats* tie-envmap-water)) + (clear-tr-stat (-> *terrain-stats* tie-envmap-scissor-water)) + (clear-tr-stat (-> *terrain-stats* shrub)) + (clear-tr-stat (-> *terrain-stats* tfrag-scissor)) + (clear-tr-stat (-> *terrain-stats* tfrag)) + (clear-tr-stat (-> *terrain-stats* tfrag-trans)) + (clear-tr-stat (-> *terrain-stats* tfrag-scissor-trans)) + (clear-tr-stat (-> *terrain-stats* tfrag-water)) + (clear-tr-stat (-> *terrain-stats* tfrag-scissor-water)) + (clear-tr-stat (-> *terrain-stats* trans-pris)) + (clear-tr-stat (-> *terrain-stats* billboard)) + (clear-tr-stat (-> *terrain-stats* trans-shrub)) + (clear-tr-stat (-> *terrain-stats* ocean-mid)) + (clear-tr-stat (-> *terrain-stats* ocean-near)) + (clear-tr-stat (-> *terrain-stats* shadow)) + (clear-tr-stat (-> *terrain-stats* total)) + 0 + (none) + ) + +;; definition for function update-subdivide-settings! +;; WARN: Return type mismatch int vs none. +(defun update-subdivide-settings! ((arg0 subdivide-settings) (arg1 math-camera) (arg2 int)) + "Update the subdivide settings from the far/close settings + This caches the settings in subdivide-settings itself, + as well as in tfrag-work, used by EE tfrag code." + (set! (-> arg0 meters 0) (-> arg0 far arg2)) + (set! (-> arg0 meters 4) (-> arg0 close arg2)) + (let ((f0-3 (* 0.14285715 (- (-> arg0 meters 0) (-> arg0 meters 4))))) + (set! (-> arg0 meters 3) (+ (-> arg0 meters 4) (/ f0-3 2))) + (set! (-> arg0 meters 2) (+ (-> arg0 meters 3) f0-3)) + (set! (-> arg0 meters 1) (+ (-> arg0 meters 2) (* 2.0 f0-3))) + ) + (let ((f0-7 (* (-> arg1 fov-correction-factor) (/ (-> arg1 inv-hmge-scale w) (-> arg1 d))))) + (dotimes (v1-8 5) + (set! (-> arg0 dist v1-8) (* f0-7 (-> arg0 meters v1-8))) + ) + ) + (set! (-> *tfrag-work* frag-dists x) (- (-> arg0 meters 0))) + (set! (-> *tfrag-work* frag-dists y) (- (-> arg0 meters 1))) + (set! (-> *tfrag-work* frag-dists z) (- (-> arg0 meters 2))) + (set! (-> *tfrag-work* frag-dists w) (- (-> arg0 meters 4))) + 0 + (none) + ) + +;; definition for symbol *subdivide-settings*, type subdivide-settings +(define *subdivide-settings* (new 'global 'subdivide-settings 122880.0 286720.0)) + +;; definition for function set-tfrag-dists! +;; WARN: Return type mismatch tfrag-dists vs none. +(defun set-tfrag-dists! ((arg0 tfrag-dists)) + "Update the subdivide settings used in tfrag VU1 code. + This must be called after update-subdivide-settings!" + (let ((f2-0 (-> *subdivide-settings* dist 0)) + (f1-0 (-> *subdivide-settings* dist 1)) + (f0-0 (-> *subdivide-settings* dist 2)) + ) + (set! (-> arg0 data 3) (the-as uint f2-0)) + (set! (-> arg0 data 7) (the-as uint f1-0)) + (let ((f4-1 (/ 1.0 (- f2-0 f1-0))) + (f3-2 (/ 1.0 (- f1-0 f0-0))) + ) + (set! (-> arg0 data 1) (the-as uint (- f4-1))) + (set! (-> arg0 data 5) (the-as uint (- f3-2))) + (set! (-> arg0 data 0) (the-as uint (/ f4-1 2))) + (set! (-> arg0 data 4) (the-as uint (/ f3-2 2))) + (let ((f2-1 (* f2-0 f4-1)) + (f5-7 (* f1-0 f3-2)) + ) + (set! (-> arg0 data 9) (the-as uint f2-1)) + (set! (-> arg0 data 13) (the-as uint f5-7)) + ) + (set! (-> arg0 data 8) (the-as uint (* (/ f4-1 -2) f1-0))) + (set! (-> arg0 data 12) (the-as uint (* (/ f3-2 -2) f0-0))) + ) + ) + (none) + ) + +;; failed to figure out what this is: +(kmemopen global "terrain-context") + +;; definition for symbol *terrain-context*, type terrain-context +(define *terrain-context* (new 'global 'terrain-context)) + +;; failed to figure out what this is: +(kmemclose) + +;; definition for method 10 of type perf-stat +;; WARN: Return type mismatch perf-stat vs none. +(defmethod print-to-stream ((this perf-stat) (arg0 string) (arg1 basic)) + (format + *stdcon* + "~3d ~8d ~8d ~6d ~6d" + (-> this count) + (-> this cycles) + (-> this instructions) + (-> this icache) + (-> this dcache) + ) + (format *stdcon* " ~2d ~2d ~2d" (-> this to-vu0-waits) (-> this to-spr-waits) (-> this from-spr-waits)) + (format *stdcon* " ~s~%" arg0) + (none) + ) + +;; definition for symbol GSH_ENABLE, type symbol +(define GSH_ENABLE #f) + +;; definition for symbol GSH_BUCKET, type bucket-id +(define GSH_BUCKET (bucket-id blit)) + +;; definition for symbol GSH_WHICH_STAT, type int +(define GSH_WHICH_STAT 1) + +;; definition for symbol GSH_MAX_DISPLAY, type basic +(define GSH_MAX_DISPLAY (the-as basic #f)) + +;; definition for symbol GSH_TIME, type int +(define GSH_TIME 64) + +;; definition for symbol *perf-stats*, type perf-stat-array +(define *perf-stats* (new 'debug 'perf-stat-array 59)) + +;; this part is debug only +(when *debug-segment* +;; definition for symbol *gomi-stats-hack*, type (inline-array perf-stat) +(define *gomi-stats-hack* (the-as (inline-array perf-stat) (malloc 'debug (* 52 (+ GSH_TIME 1))))) + +) +;; definition (debug) for function start-perf-stat-collection +;; INFO: this function exists in multiple non-identical object files +;; WARN: Return type mismatch int vs none. +(defun-debug start-perf-stat-collection () + "Start the per-frame performance stats. + This automatically cycles through various stats/categories, + collecting and aggregating the latest data. + The `gomi-stats-hack` likely refers to how the stat being + collected" + (let ((v1-2 (+ (-> *perf-stats* data 0 frame-number) 1))) + (set! (-> *perf-stats* data 0 frame-number) v1-2) + (let ((gp-0 (mod v1-2 (the-as uint 118)))) + (when GSH_ENABLE + (let ((v1-5 GSH_BUCKET)) + (let ((a0-2 GSH_WHICH_STAT)) + (set! gp-0 (+ (* v1-5 2) a0-2)) + ) + (when GSH_MAX_DISPLAY + (let ((a0-7 (logand (-> *perf-stats* data 0 frame-number) (+ GSH_TIME -1)))) + (set! (-> *gomi-stats-hack* a0-7 cycles) (-> *perf-stats* data (the-as int v1-5) cycles)) + (set! (-> *gomi-stats-hack* a0-7 instructions) (-> *perf-stats* data (the-as int v1-5) instructions)) + (set! (-> *gomi-stats-hack* a0-7 icache) (-> *perf-stats* data (the-as int v1-5) icache)) + (set! (-> *gomi-stats-hack* a0-7 dcache) (-> *perf-stats* data (the-as int v1-5) dcache)) + (when (zero? a0-7) + (set! (-> *gomi-stats-hack* GSH_TIME cycles) (the-as uint 0)) + (set! (-> *gomi-stats-hack* GSH_TIME instructions) (the-as uint 0)) + (set! (-> *gomi-stats-hack* GSH_TIME icache) (the-as uint 0)) + (set! (-> *gomi-stats-hack* GSH_TIME dcache) (the-as uint 0)) + (dotimes (v1-22 GSH_TIME) + (if (< (-> *gomi-stats-hack* GSH_TIME cycles) (-> *gomi-stats-hack* v1-22 cycles)) + (set! (-> *gomi-stats-hack* GSH_TIME cycles) (-> *gomi-stats-hack* v1-22 cycles)) + ) + (if (< (-> *gomi-stats-hack* GSH_TIME instructions) (-> *gomi-stats-hack* v1-22 instructions)) + (set! (-> *gomi-stats-hack* GSH_TIME instructions) (-> *gomi-stats-hack* v1-22 instructions)) + ) + (if (< (-> *gomi-stats-hack* GSH_TIME icache) (-> *gomi-stats-hack* v1-22 icache)) + (set! (-> *gomi-stats-hack* GSH_TIME icache) (-> *gomi-stats-hack* v1-22 icache)) + ) + (if (< (-> *gomi-stats-hack* GSH_TIME dcache) (-> *gomi-stats-hack* v1-22 dcache)) + (set! (-> *gomi-stats-hack* GSH_TIME dcache) (-> *gomi-stats-hack* v1-22 dcache)) + ) + ) + ) + ) + (format *stdcon* "~%") + (print-to-stream (-> *gomi-stats-hack* GSH_TIME) "max-value" *stdcon*) + ) + ) + ) + (dotimes (v1-27 59) + (cond + ((!= v1-27 (shr gp-0 1)) + (set! (-> *perf-stats* data v1-27 ctrl) (the-as uint 0)) + 0 + ) + (else + (let ((a1-61 (logand gp-0 1)) + (a0-62 (the-as uint #x80004010)) + ) + (cond + ((zero? a1-61) + (set! a0-62 (+ #x60020 a0-62)) + ) + ((= a1-61 1) + (set! a0-62 (+ #x300c0 a0-62)) + ) + ) + (set! (-> *perf-stats* data v1-27 count) (the-as uint 0)) + (set! (-> *perf-stats* data v1-27 select) a1-61) + (set! (-> *perf-stats* data v1-27 ctrl) a0-62) + ) + (set! (-> *perf-stats* data v1-27 accum0) (the-as uint 0)) + (set! (-> *perf-stats* data v1-27 accum1) (the-as uint 0)) + (set! (-> *perf-stats* data v1-27 to-vu0-waits) (the-as uint 0)) + (set! (-> *perf-stats* data v1-27 to-spr-waits) (the-as uint 0)) + (set! (-> *perf-stats* data v1-27 from-spr-waits) (the-as uint 0)) + 0 + ) + ) + ) + ) + ) + (-> *perf-stats* data) + 0 + 0 + (none) + ) + +;; failed to figure out what this is: +(if (not *debug-segment*) + (set! start-perf-stat-collection L1) + ) + +;; definition (debug) for function end-perf-stat-collection +;; WARN: Return type mismatch int vs none. +(defun-debug end-perf-stat-collection () + "End the per-frame performance stats" + (-> *perf-stats* data) + 0 + (dotimes (v1-3 59) + (when (nonzero? (-> *perf-stats* data v1-3 ctrl)) + (let ((a2-0 (-> *perf-stats* data v1-3 select)) + (a1-6 (-> *perf-stats* data v1-3 accum0)) + (a0-10 (-> *perf-stats* data v1-3 accum1)) + ) + (cond + ((zero? a2-0) + (set! (-> *perf-stats* data v1-3 cycles) a1-6) + (set! (-> *perf-stats* data v1-3 instructions) a0-10) + ) + ((= a2-0 1) + (set! (-> *perf-stats* data v1-3 icache) a1-6) + (set! (-> *perf-stats* data v1-3 dcache) a0-10) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition (debug) for function print-perf-stats +;; WARN: Return type mismatch int vs none. +(defun-debug print-perf-stats () + (format *stdcon* "~0k~%count cycles instr icache dcache vu0/to/from~%") + (dotimes (gp-0 59) + (if (and (nonzero? (-> *perf-stats* data gp-0 count)) (< (the-as uint 500) (-> *perf-stats* data gp-0 cycles))) + (print-to-stream + (-> *perf-stats* data gp-0) + (perf-stat-bucket->string (the-as perf-stat-bucket gp-0)) + *stdcon* + ) + ) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/background/tfrag/tfrag-near_REF.gc b/test/decompiler/reference/jakx/engine/gfx/background/tfrag/tfrag-near_REF.gc new file mode 100644 index 0000000000..c9aaa9df44 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/background/tfrag/tfrag-near_REF.gc @@ -0,0 +1,76 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol tnear-vu1-block, type vu-function +(define tnear-vu1-block (new 'static 'vu-function :length #x398 :qlength #x1cc)) + +;; definition (debug) for function tfrag-details +;; WARN: Return type mismatch symbol vs none. +(defun-debug tfrag-details ((arg0 tfragment)) + (format 0 "id = ~d~%" (-> arg0 id)) + (format 0 "common:~%") + (let ((s5-0 (-> arg0 dma-qwc 0)) + (s4-0 (-> arg0 dma-common)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-0 s4-0) + (disasm-vif-tag (the-as (pointer vif-tag) s4-0) (the-as int (* s5-0 4)) (the-as symbol 0) #t) + ) + (format 0 "base:~%") + (let ((s5-1 (-> arg0 dma-qwc 1)) + (s4-1 (-> arg0 dma-base)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-1 s4-1) + (disasm-vif-tag (the-as (pointer vif-tag) s4-1) (the-as int (* s5-1 4)) (the-as symbol 0) #t) + ) + (format 0 "level-0:~%") + (let ((s5-2 (-> arg0 dma-qwc 3)) + (s4-2 (-> arg0 dma-qwc-word)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-2 s4-2) + (disasm-vif-tag (the-as (pointer vif-tag) s4-2) (the-as int (* s5-2 4)) (the-as symbol 0) #t) + ) + (format 0 "level-1:~%") + (let ((s5-3 (-> arg0 dma-qwc 2)) + (gp-1 (-> arg0 dma-level-1)) + ) + (format 0 "qwc = ~d, ref = ~x~%" s5-3 gp-1) + (disasm-vif-tag (the-as (pointer vif-tag) gp-1) (the-as int (* s5-3 4)) (the-as symbol 0) #t) + ) + (none) + ) + +;; definition (debug) for function clip-restore +;; INFO: Used lq/sq +;; WARN: Return type mismatch vector vs none. +(defun-debug clip-restore () + (let ((a0-0 (new-stack-vector0)) + (a1-0 (new-stack-matrix0)) + ) + (set! (-> a0-0 x) 92648.22) + (set! (-> a0-0 y) 238025.03) + (set! (-> a0-0 z) 199836.31) + (set! (-> a0-0 w) 1.0) + (set! (-> a1-0 rvec x) -0.9283) + (set! (-> a1-0 rvec y) 0.0) + (set! (-> a1-0 rvec z) 0.3716) + (set! (-> a1-0 rvec w) 0.0) + (set! (-> a1-0 uvec x) -0.2257) + (set! (-> a1-0 uvec y) 0.7945) + (set! (-> a1-0 uvec z) -0.5637) + (set! (-> a1-0 uvec w) 0.0) + (set! (-> a1-0 fvec x) -0.2952) + (set! (-> a1-0 fvec y) -0.6072) + (set! (-> a1-0 fvec z) -0.7375) + (set! (-> a1-0 fvec w) 0.0) + (set! (-> a1-0 trans x) 0.0) + (set! (-> a1-0 trans y) 0.0) + (set! (-> a1-0 trans z) 0.0) + (set! (-> a1-0 trans w) 1.0) + (debug-set-camera-pos-rot! a0-0 a1-0) + ) + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/background/tfrag/tfrag-work_REF.gc b/test/decompiler/reference/jakx/engine/gfx/background/tfrag/tfrag-work_REF.gc new file mode 100644 index 0000000000..8fc6970bd7 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/background/tfrag/tfrag-work_REF.gc @@ -0,0 +1,45 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *tfrag-work*, type tfrag-work +(define *tfrag-work* (new 'static 'tfrag-work + :base-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :level-0-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :common-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :level-1-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x102 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xc000 :cmd (vif-cmd unpack-v4-8)) + ) + :max-fragment #xffff + ) + ) + +;; failed to figure out what this is: +(set! (-> *tfrag-work* color-ptr x) (+ 6144 #x70000000)) + +;; failed to figure out what this is: +(set! (-> *tfrag-work* color-ptr y) (+ 6144 #x70000000)) + +;; failed to figure out what this is: +(set! (-> *tfrag-work* color-ptr z) (+ 6144 #x70000000)) + +;; failed to figure out what this is: +(set! (-> *tfrag-work* color-ptr w) (+ 6144 #x70000000)) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/font-h_REF.gc b/test/decompiler/reference/jakx/engine/gfx/font-h_REF.gc index 19d29ff465..1b534a4e94 100644 --- a/test/decompiler/reference/jakx/engine/gfx/font-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/gfx/font-h_REF.gc @@ -74,7 +74,7 @@ (:methods (new (symbol type matrix int int float font-color font-flags) _type_) (font-context-method-9 () none) - (font-context-method-10 () none) + (set-origin! (font-context int int) font-context) (font-context-method-11 () none) (font-context-method-12 () none) (set-mat! (_type_ matrix) none) diff --git a/test/decompiler/reference/jakx/engine/gfx/foreground/debug-foreground_REF.gc b/test/decompiler/reference/jakx/engine/gfx/foreground/debug-foreground_REF.gc new file mode 100644 index 0000000000..c5fb385a82 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/foreground/debug-foreground_REF.gc @@ -0,0 +1,497 @@ +;;-*-Lisp-*- +(in-package goal) + +;; this file is debug only +(declare-file (debug)) + +;; definition for function diag-frag-print +;; INFO: Used lq/sq +;; ERROR: failed type prop at 26: Could not figure out load: (set! a2 (l.bu s0)) +;; WARN: Return type mismatch symbol vs none. +(defun diag-frag-print ((a0-0 merc-effect) (a1-0 int)) + (local-vars + (v0-0 int) + (v0-1 int) + (v0-2 object) + (v0-3 none) + (v0-4 none) + (v0-5 none) + (v0-6 none) + (v0-7 none) + (v0-8 none) + (v0-9 none) + (v0-10 none) + (v0-11 none) + (v0-12 none) + (v0-13 none) + (v0-14 none) + (v0-15 none) + (v0-16 none) + (v0-17 none) + (v0-18 none) + (v0-19 none) + (v0-20 none) + (v0-21 none) + (v0-22 none) + (v1-0 int) + (v1-1 int) + (v1-2 type) + (v1-3 type) + (v1-4 none) + (v1-6 none) + (v1-7 none) + (v1-8 none) + (v1-9 none) + (v1-10 none) + (v1-11 none) + (v1-12 none) + (v1-13 none) + (v1-15 none) + (v1-16 none) + (v1-17 none) + (v1-18 none) + (v1-19 none) + (v1-20 none) + (v1-21 none) + (v1-24 none) + (v1-25 none) + (v1-27 none) + (v1-28 none) + (v1-29 none) + (v1-30 none) + (v1-31 none) + (v1-33 none) + (v1-34 none) + (v1-35 none) + (v1-36 none) + (v1-37 none) + (v1-38 none) + (v1-39 none) + (v1-40 none) + (v1-41 none) + (v1-42 none) + (v1-43 none) + (v1-44 none) + (v1-45 none) + (v1-48 none) + (v1-49 none) + (v1-50 none) + (v1-51 none) + (v1-52 none) + (v1-55 none) + (v1-56 none) + (v1-57 none) + (v1-58 none) + (v1-61 none) + (v1-62 none) + (v1-65 uint) + (a0-1 uint) + (a0-2 uint) + (a0-3 symbol) + (a0-4 symbol) + (a0-5 none) + (a0-6 none) + (a0-7 none) + (a0-8 none) + (a0-9 none) + (a0-10 none) + (a0-11 none) + (a0-12 none) + (a0-13 none) + (a0-14 none) + (a0-15 none) + (a0-16 none) + (a0-17 none) + (a0-18 none) + (a0-19 none) + (a0-20 none) + (a0-21 none) + (a0-22 none) + (a0-23 none) + (a0-24 none) + (a0-25 none) + (a0-26 none) + (a0-27 none) + (a0-28 none) + (a0-29 none) + (a0-30 none) + (a0-31 none) + (a0-32 none) + (a0-33 none) + (a0-34 none) + (a0-35 none) + (a0-37 none) + (a0-38 none) + (a0-40 none) + (a1-1 string) + (a1-2 string) + (a1-3 none) + (a1-4 none) + (a1-5 none) + (a1-6 none) + (a1-7 none) + (a1-8 none) + (a1-9 none) + (a1-10 none) + (a1-11 none) + (a1-12 none) + (a1-13 none) + (a1-14 none) + (a1-15 none) + (a1-16 none) + (a1-17 none) + (a1-18 none) + (a1-19 none) + (a2-0 int) + (a2-1 none) + (a2-2 none) + (a2-3 none) + (a2-4 none) + (a2-5 none) + (a2-6 none) + (a2-7 none) + (a2-8 none) + (a2-9 none) + (a2-10 none) + (a2-11 none) + (a2-12 none) + (a3-0 none) + (a3-1 none) + (a3-2 none) + (a3-3 none) + (a3-4 none) + (a3-5 none) + (a3-6 none) + (a3-7 none) + (a3-8 none) + (t0-0 none) + (t0-1 none) + (t0-2 none) + (t0-3 none) + (t0-4 none) + (t0-5 none) + (t0-6 none) + (t0-7 none) + (t1-0 none) + (t1-1 none) + (t1-2 none) + (t1-3 none) + (t1-4 none) + (t1-5 none) + (t1-6 none) + (t1-7 none) + (t2-0 none) + (t2-1 none) + (s0-0 uint) + (s0-1 none) + (s0-2 none) + (s1-0 int) + (s2-0 int) + (s3-0 int) + (s4-0 uint) + (s5-0 uint) + (t9-0 (function merc-fragment-control int)) + (t9-1 (function merc-fragment int)) + (t9-2 (function _varargs_ object)) + (t9-3 (function _varargs_ object)) + (t9-4 none) + (t9-5 none) + (t9-6 none) + (t9-7 none) + (t9-8 none) + (t9-9 none) + (t9-10 none) + (t9-11 none) + (t9-12 none) + (t9-13 none) + (t9-14 none) + (t9-15 none) + (t9-16 none) + (t9-17 none) + (t9-18 none) + (t9-19 none) + (t9-20 none) + (t9-21 none) + (t9-22 none) + (gp-0 int) + (sv-16 none) + (sv-32 none) + (sv-48 none) + (sv-64 none) + (sv-80 none) + (sv-96 none) + (sv-112 none) + (sv-128 none) + (sv-144 none) + ) + (set! v1-0 (sll a1-0 5)) + (set! v1-1 (+ v1-0 172)) + (set! gp-0 (+ v1-1 a0-0)) + (set! s5-0 (l.wu (+ gp-0 4))) + (set! s4-0 (-> (the-as (pointer uint32) gp-0))) + (set! s3-0 0) + (while (begin (set! v1-65 (l.hu (+ gp-0 18))) (<.si s3-0 v1-65)) + (when (begin + (set! a0-1 s5-0) + (set! v1-2 merc-fragment-control) + (set! t9-0 (method-of-type v1-2 asize-of)) + (set! v0-0 (call! a0-1)) + (set! s2-0 v0-0) + (set! a0-2 s4-0) + (set! v1-3 merc-fragment) + (set! t9-1 (method-of-type v1-3 asize-of)) + (set! v0-1 (call! a0-2)) + (set! s1-0 v0-1) + (set! s0-0 s4-0) + (set! t9-2 format) + (set! a0-3 #t) + (set! a1-1 L97) + (set! a2-0 s3-0) + (call! a0-3 a1-1 a2-0) + (set! t9-3 format) + (set! a0-4 #t) + (set! a1-2 L96) + (set! a2-1 (the-as none (l.bu s0-0))) + (set! a3-0 (the-as none (l.bu (+ s0-0 1)))) + (set! t0-0 (the-as none (l.bu (+ s0-0 2)))) + (set! t1-0 (the-as none (l.bu (+ s0-0 3)))) + (call!) + (set! t9-4 (the-as none format)) + (set! a0-5 (the-as none #t)) + (set! a1-3 (the-as none L95)) + (set! a2-2 (the-as none (l.bu (+ s0-0 4)))) + (set! a3-1 (the-as none (l.bu (+ s0-0 5)))) + (set! t0-1 (the-as none (l.bu (+ s0-0 6)))) + (set! t1-1 (the-as none (l.bu (+ s0-0 7)))) + (call!) + (set! t9-5 (the-as none format)) + (set! a0-6 (the-as none #t)) + (set! a1-4 (the-as none L94)) + (set! a2-3 (the-as none (l.bu (+ s0-0 8)))) + (set! a3-2 (the-as none (l.bu (+ s0-0 9)))) + (set! t0-2 (the-as none (l.bu (+ s0-0 10)))) + (set! t1-2 (the-as none (l.bu (+ s0-0 11)))) + (call!) + (set! t9-6 (the-as none format)) + (set! a0-7 (the-as none #t)) + (set! a1-5 (the-as none L93)) + (set! a2-4 (the-as none (l.bu (+ s0-0 12)))) + (call!) + (set! t9-7 (the-as none format)) + (set! a0-8 (the-as none #t)) + (set! a1-6 (the-as none L92)) + (call!) + (set! v1-4 (the-as none (l.bu (+ s4-0 13)))) + (nonzero? v1-4) + ) + (set! v1-6 (the-as none 0)) + (set! sv-16 v1-6) + (while (begin + (set! v1-11 sv-16) + (set! v1-12 (the-as none (+ v1-11 s4-0))) + (set! v1-13 (the-as none (l.bu (+ v1-12 13)))) + (nonzero? v1-13) + ) + (set! t9-8 (the-as none format)) + (set! a0-9 (the-as none #t)) + (set! a1-7 (the-as none L91)) + (set! v1-7 sv-16) + (set! v1-8 (the-as none (+ v1-7 s4-0))) + (set! a2-5 (the-as none (l.bu (+ v1-8 13)))) + (call!) + (set! v1-9 sv-16) + (set! v1-10 (the-as none (+ v1-9 1))) + (set! sv-16 v1-10) + ) + ) + (set! t9-9 (the-as none format)) + (set! a0-10 (the-as none #t)) + (set! a1-8 (the-as none L90)) + (call!) + (set! sv-32 s4-0) + (set! sv-48 s4-0) + (set! v1-15 (the-as none (l.bu (+ s0-0 1)))) + (set! sv-64 v1-15) + (set! v1-16 (the-as none (l.bu (+ s0-0 2)))) + (set! a0-11 (the-as none (l.bu (+ s0-0 1)))) + (set! v1-17 (the-as none (- v1-16 a0-11))) + (set! sv-80 v1-17) + (set! v1-18 (the-as none (l.bu (+ s0-0 3)))) + (set! a0-12 (the-as none (l.bu (+ s0-0 2)))) + (set! v1-19 (the-as none (- v1-18 a0-12))) + (set! a0-13 (the-as none 3)) + (set! v1-20 (the-as none (/.ui v1-19 a0-13))) + (set! sv-96 v1-20) + (set! t9-10 (the-as none format)) + (set! a0-14 (the-as none #t)) + (set! a1-9 (the-as none L89)) + (call!) + (set! v1-21 (the-as none 0)) + (while (begin (set! a0-17 sv-64) (<.si v1-21 a0-17)) + (set! a0-15 sv-48) + (set! a0-16 (the-as none (+ a0-15 4))) + (set! sv-48 a0-16) + (set! v1-21 (the-as none (+ v1-21 1))) + ) + (set! t9-11 (the-as none format)) + (set! a0-18 (the-as none #t)) + (set! a1-10 (the-as none L88)) + (call!) + (set! v1-24 (the-as none 0)) + (set! sv-112 v1-24) + (while (begin (set! v1-45 sv-112) (set! a0-25 sv-80) (<.si v1-45 a0-25)) + (when (begin + (when (begin (set! v1-25 (the-as none 2)) (!= s3-0 v1-25)) + (set! v1-27 sv-48) + (s.b! v1-27 0) + (set! v1-28 sv-48) + (s.b! (+ v1-28 1) 0) + (set! v1-29 (the-as none 128)) + (set! a0-19 sv-48) + (s.b! (+ a0-19 2) v1-29) + (set! a0-20 (the-as none 128)) + (set! v1-30 sv-48) + (s.b! (+ v1-30 3) a0-20) + ) + (set! v1-31 (the-as none 2)) + (= s3-0 v1-31) + ) + (set! v1-33 (the-as none 128)) + (set! a0-21 sv-48) + (s.b! a0-21 v1-33) + (set! v1-34 (the-as none 128)) + (set! a0-22 sv-48) + (s.b! (+ a0-22 1) v1-34) + (set! v1-35 sv-48) + (s.b! (+ v1-35 2) 0) + (set! a0-23 (the-as none 128)) + (set! v1-36 sv-48) + (s.b! (+ v1-36 3) a0-23) + ) + (set! t9-12 (the-as none format)) + (set! a0-24 (the-as none #t)) + (set! a1-11 (the-as none L87)) + (set! a2-6 sv-112) + (set! v1-37 sv-48) + (set! a3-3 (the-as none (l.bu v1-37))) + (set! v1-38 sv-48) + (set! t0-3 (the-as none (l.bu (+ v1-38 1)))) + (set! v1-39 sv-48) + (set! t1-3 (the-as none (l.bu (+ v1-39 2)))) + (set! v1-40 sv-48) + (set! t2-0 (the-as none (l.bu (+ v1-40 3)))) + (call!) + (set! v1-41 sv-48) + (set! v1-42 (the-as none (+ v1-41 4))) + (set! sv-48 v1-42) + (set! v1-43 sv-112) + (set! v1-44 (the-as none (+ v1-43 1))) + (set! sv-112 v1-44) + ) + (set! t9-13 (the-as none format)) + (set! a0-26 (the-as none #t)) + (set! a1-12 (the-as none L86)) + (call!) + (set! v1-48 sv-32) + (set! a0-27 (the-as none (l.bu (+ s0-0 2)))) + (set! a0-28 (the-as none (+ a0-27 3))) + (set! a0-29 (the-as none (srl a0-28 2))) + (set! a0-30 (the-as none (sll a0-29 4))) + (set! s0-1 (the-as none (+ v1-48 a0-30))) + (set! v1-49 (the-as none 0)) + (set! sv-128 v1-49) + (while (begin (set! v1-52 sv-128) (set! a0-35 sv-96) (<.si v1-52 a0-35)) + (set! t9-14 (the-as none format)) + (set! a0-31 (the-as none #t)) + (set! a1-13 (the-as none L87)) + (set! a2-7 sv-128) + (set! a3-4 (the-as none (l.bu s0-1))) + (set! t0-4 (the-as none (l.bu (+ s0-1 1)))) + (set! t1-4 (the-as none (l.bu (+ s0-1 2)))) + (set! t2-1 (the-as none (l.bu (+ s0-1 3)))) + (call!) + (set! t9-15 (the-as none format)) + (set! a0-32 (the-as none #t)) + (set! a1-14 (the-as none L85)) + (set! a2-8 (the-as none (l.bu (+ s0-1 4)))) + (set! a3-5 (the-as none (l.bu (+ s0-1 5)))) + (set! t0-5 (the-as none (l.bu (+ s0-1 6)))) + (set! t1-5 (the-as none (l.bu (+ s0-1 7)))) + (call!) + (set! t9-16 (the-as none format)) + (set! a0-33 (the-as none #t)) + (set! a1-15 (the-as none L85)) + (set! a2-9 (the-as none (l.bu (+ s0-1 8)))) + (set! a3-6 (the-as none (l.bu (+ s0-1 9)))) + (set! t0-6 (the-as none (l.bu (+ s0-1 10)))) + (set! t1-6 (the-as none (l.bu (+ s0-1 11)))) + (call!) + (set! t9-17 (the-as none format)) + (set! a0-34 (the-as none #t)) + (set! a1-16 (the-as none L84)) + (set! a2-10 (the-as none (l.bu (+ s0-1 4)))) + (set! a3-7 (the-as none (l.bu (+ s0-1 5)))) + (call!) + (set! s0-1 (the-as none (+ s0-1 12))) + (set! v1-50 sv-128) + (set! v1-51 (the-as none (+ v1-50 1))) + (set! sv-128 v1-51) + ) + (set! t9-18 (the-as none merc-fragment-fp-data)) + (set! a0-36 (the-as none s4-0)) + (set! v0-18 (the-as none (call!))) + (set! s0-2 (the-as none v0-18)) + (set! t9-19 (the-as none format)) + (set! a0-37 (the-as none #t)) + (set! a1-17 (the-as none L83)) + (call!) + (set! v1-55 (the-as none 0)) + (set! sv-144 v1-55) + (while (begin (set! v1-58 sv-144) (<.si v1-58 6)) + (set! t9-20 (the-as none format)) + (set! a0-38 (the-as none #t)) + (set! a1-18 (the-as none L82)) + (set! a2-11 (the-as none (l.wu s0-2))) + (set! a3-8 (the-as none (l.wu (+ s0-2 4)))) + (set! t0-7 (the-as none (l.wu (+ s0-2 8)))) + (set! t1-7 (the-as none (l.wu (+ s0-2 12)))) + (call!) + (set! s0-2 (the-as none (+ s0-2 16))) + (set! v1-56 sv-144) + (set! v1-57 (the-as none (+ v1-56 1))) + (set! sv-144 v1-57) + ) + (set! t9-21 (the-as none merc-fragment-fp-data)) + (set! a0-39 (the-as none s4-0)) + (set! v0-21 (the-as none (call!))) + (set! v1-61 (the-as none v0-21)) + (set! v1-62 (the-as none (l.wu (+ v1-61 44)))) + (set! a2-12 (the-as none (logand v1-62 255))) + (set! t9-22 (the-as none format)) + (set! a0-40 (the-as none #t)) + (set! a1-19 (the-as none L81)) + (call!) + (set! v1-63 (the-as none v0-22)) + (set! s4-0 (the-as uint (+ s4-0 s1-0))) + (set! s5-0 (the-as uint (+ s5-0 s2-0))) + (set! v1-64 (the-as none s5-0)) + (set! s3-0 (the-as int (+ s3-0 1))) + ) + (ret-none) + ) + +;; definition for function debug-merc-highres-runtime +;; ERROR: function has no type analysis. Cannot decompile. + +;; definition for function debug-merc-size-runtime +;; ERROR: function has no type analysis. Cannot decompile. + +;; definition for function debug-merc-fade-runtime +;; ERROR: function has no type analysis. Cannot decompile. + +;; definition for function foreground-check-longest-edge +;; ERROR: function has no type analysis. Cannot decompile. + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/foreground/lights_REF.gc b/test/decompiler/reference/jakx/engine/gfx/foreground/lights_REF.gc new file mode 100644 index 0000000000..748e024d8c --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/foreground/lights_REF.gc @@ -0,0 +1,584 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *light-hash-work*, type light-hash-work +(define *light-hash-work* (new 'static 'light-hash-work :ones (new 'static 'vector4w :x 1 :y 1 :z 1))) + +;; definition for function light-slerp +(defun light-slerp ((light-out light) (light-a light) (light-b light) (alpha float)) + (let ((clamped-alpha (fmax 0.0 (fmin 1.0 alpha)))) + (vector-lerp! (-> light-out color) (-> light-a color) (-> light-b color) clamped-alpha) + (vector-deg-slerp (-> light-out direction) (-> light-a direction) (-> light-b direction) clamped-alpha) + (let ((extra-x-a (-> light-a extra x)) + (extra-x-b (-> light-b extra x)) + ) + (set! (-> light-out extra x) (+ extra-x-a (* clamped-alpha (- extra-x-b extra-x-a)))) + ) + ) + light-out + ) + +;; definition for function light-group-slerp +(defun light-group-slerp ((light-group-out light-group) (light-group-a light-group) (light-group-b light-group) (alpha float)) + (dotimes (group-idx 4) + (light-slerp + (-> light-group-out lights group-idx) + (-> light-group-a lights group-idx) + (-> light-group-b lights group-idx) + alpha + ) + ) + light-group-out + ) + +;; definition for function light-group-process! +(defun light-group-process! ((vu-lights vu-lights) (light-group light-group) (vec1 vector) (vec2 vector)) + (rotate-y<-vector+vector vec2 vec1) + (vu-lights<-light-group! vu-lights light-group) + (none) + ) + +;; definition for symbol *default-lights*, type vu-lights +(define *default-lights* (new 'global 'vu-lights)) + +;; definition for function vu-lights-default! +(defun vu-lights-default! ((lights vu-lights)) + (set-vector! (-> lights ambient) 0.3 0.3 0.3 1.0) + (set-vector! (-> lights color 0) 1.0 1.0 1.0 1.0) + (set-vector! (-> lights color 1) 0.2 0.2 0.2 1.0) + (set-vector! (-> lights color 2) 0.0 0.0 0.0 1.0) + (set-vector! (-> lights direction 0) 1.0 0.0 0.0 1.0) + (set-vector! (-> lights direction 1) 0.0 1.0 0.0 1.0) + (set-vector! (-> lights direction 2) 0.0 0.0 1.0 1.0) + lights + ) + +;; definition (debug) for function init-light-hash +;; WARN: Return type mismatch pointer vs none. +(defun-debug init-light-hash () + (when (not *light-hash*) + (set! *light-hash* (new 'loading-level 'light-hash)) + (set! (-> *light-hash* num-lights) (the-as uint 0)) + (set! (-> *light-hash* num-indices) (the-as uint 0)) + (set! (-> *light-hash* num-buckets) (the-as uint 0)) + (set! (-> *light-hash* bucket-array) (the-as (inline-array light-hash-bucket) (malloc 'loading-level 4096))) + (set! (-> *light-hash* index-array) (malloc 'loading-level 8192)) + (set! (-> *light-hash* light-sphere-array) + (the-as (inline-array light-sphere) (malloc 'loading-level #x40000)) + ) + ) + (none) + ) + +;; failed to figure out what this is: +(init-light-hash) + +;; definition (debug) for function light-hash-count-items +;; INFO: function output is handled by mips2c +(def-mips2c light-hash-count-items (function light-hash light-sphere none)) + +;; definition (debug) for function light-hash-add-items +;; INFO: function output is handled by mips2c +(def-mips2c light-hash-add-items (function light-hash light-sphere integer object)) + +;; definition (debug) for function reset-light-hash +;; WARN: Return type mismatch int vs none. +(defun-debug reset-light-hash ((arg0 light-hash)) + (set! (-> *light-hash* num-lights) (the-as uint 0)) + (set! (-> *light-hash* num-indices) (the-as uint 0)) + (set! (-> *light-hash* num-buckets) (the-as uint 0)) + 0 + (none) + ) + +;; definition (debug) for function update-light-hash +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun-debug update-light-hash ((arg0 light-hash)) + (let ((v1-0 (new 'stack-no-clear 'bounding-box)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (let ((f0-0 0.0)) + (set-vector! (-> v1-0 min) 4095996000.0 4095996000.0 4095996000.0 1.0) + (set-vector! (-> v1-0 max) -4095996000.0 -4095996000.0 -4095996000.0 1.0) + (dotimes (a0-3 (the-as int (-> arg0 num-lights))) + (let ((a1-9 (-> arg0 light-sphere-array a0-3))) + (set! (-> v1-0 min x) (fmin (-> v1-0 min x) (- (-> a1-9 bsphere x) (-> a1-9 bsphere w)))) + (set! (-> v1-0 min y) (fmin (-> v1-0 min y) (- (-> a1-9 bsphere y) (-> a1-9 bsphere w)))) + (set! (-> v1-0 min z) (fmin (-> v1-0 min z) (- (-> a1-9 bsphere z) (-> a1-9 bsphere w)))) + (set! (-> v1-0 max x) (fmax (-> v1-0 max x) (+ (-> a1-9 bsphere x) (-> a1-9 bsphere w)))) + (set! (-> v1-0 max y) (fmax (-> v1-0 max y) (+ (-> a1-9 bsphere y) (-> a1-9 bsphere w)))) + (set! (-> v1-0 max z) (fmax (-> v1-0 max z) (+ (-> a1-9 bsphere z) (-> a1-9 bsphere w)))) + (+! f0-0 (-> a1-9 bsphere w)) + ) + ) + (set! (-> arg0 base-trans quad) (-> v1-0 min quad)) + (let ((f0-1 (/ f0-0 (the float (-> arg0 num-lights))))) + (dotimes (a0-8 3) + (set! (-> s5-0 data a0-8) (- (-> v1-0 max data a0-8) (-> v1-0 min data a0-8))) + (set! (-> s4-0 data a0-8) (if (= (-> s5-0 data a0-8) 0.0) + 1.0 + (/ (-> s5-0 data a0-8) (/ f0-1 (the float (-> arg0 num-lights)))) + ) + ) + ) + ) + ) + (let ((f0-5 (cube-root (/ (the float (-> arg0 num-lights)) (* (-> s4-0 x) (-> s4-0 y) (-> s4-0 z)))))) + (set! (-> arg0 dimension-array x) (max 1 (min 16 (the int (+ 0.5 (* f0-5 (-> s4-0 x))))))) + (set! (-> arg0 dimension-array y) (max 1 (min 4 (the int (+ 0.5 (* f0-5 (-> s4-0 y))))))) + (set! (-> arg0 dimension-array z) (max 1 (min 16 (the int (+ 0.5 (* f0-5 (-> s4-0 z))))))) + ) + ) + (set! (-> arg0 bucket-step 0) (the-as uint (* (-> arg0 dimension-array z) (-> arg0 dimension-array x)))) + (set! (-> arg0 bucket-step 1) (the-as uint (-> arg0 dimension-array x))) + (dotimes (v1-13 3) + (set! (-> arg0 axis-scale data v1-13) + (/ (the float (-> arg0 dimension-array data v1-13)) (-> s5-0 data v1-13)) + ) + ) + ) + (set! (-> arg0 num-buckets) + (the-as uint (* (* (-> arg0 dimension-array x) (-> arg0 dimension-array y)) (-> arg0 dimension-array z))) + ) + (dotimes (v1-19 (the-as int (-> arg0 num-buckets))) + (let ((a0-27 + (the-as light-hash-bucket (+ (the-as uint (the-as light-hash-bucket (-> arg0 bucket-array))) (* v1-19 4))) + ) + ) + (set! (-> a0-27 index) (the-as uint 0)) + (set! (-> a0-27 count) (the-as uint 0)) + ) + 0 + ) + (dotimes (s5-1 (the-as int (-> arg0 num-lights))) + (light-hash-count-items arg0 (-> arg0 light-sphere-array s5-1)) + ) + (let ((v1-26 0)) + (dotimes (a0-31 (the-as int (-> arg0 num-buckets))) + (let ((a1-38 + (the-as light-hash-bucket (+ (the-as uint (the-as light-hash-bucket (-> arg0 bucket-array))) (* a0-31 4))) + ) + ) + (set! (-> a1-38 index) (the-as uint v1-26)) + (+! v1-26 (-> a1-38 count)) + (set! (-> a1-38 count) (the-as uint 0)) + ) + 0 + ) + (set! (-> arg0 num-indices) (the-as uint v1-26)) + ) + (dotimes (s5-2 (the-as int (-> arg0 num-lights))) + (light-hash-add-items arg0 (-> arg0 light-sphere-array s5-2) s5-2) + ) + 0 + (none) + ) + +;; definition for function lookup-light-sphere-by-name +(defun lookup-light-sphere-by-name ((name string) (hash light-hash)) + (when (and hash (nonzero? hash)) + (dotimes (num-lights (the-as int (-> hash num-lights))) + (let ((light (-> hash light-sphere-array num-lights))) + (if (string= name (-> light name)) + (return light) + ) + ) + ) + ) + (the-as light-sphere #f) + ) + +;; definition for function light-hash-get-bucket-index +;; INFO: function output is handled by mips2c +(def-mips2c light-hash-get-bucket-index (function light-hash vector int)) + +;; definition for function add-light-sphere-to-light-group +;; INFO: function output is handled by mips2c +(def-mips2c add-light-sphere-to-light-group (function object object object object object)) + +;; definition for function light-merge! +;; WARN: Return type mismatch int vs none. +(defun light-merge! ((out light-group) (other light-group)) + (local-vars + (v1-0 float) + (v1-1 float) + (v1-3 float) + (v1-5 float) + (a1-1 float) + (a1-3 float) + (a2-0 float) + (a2-2 float) + (a2-4 float) + (a3-0 float) + (f6-0 float) + ) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf12 :class vf) + (vf13 :class vf) + (vf14 :class vf) + (vf15 :class vf) + (vf16 :class vf) + (vf17 :class vf) + (vf2 :class vf) + (vf22 :class vf) + (vf23 :class vf) + (vf24 :class vf) + (vf25 :class vf) + (vf26 :class vf) + (vf27 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (nop!) + (.max.w.vf vf1 vf0 vf0) + (.lvf vf3 (&-> out dir0 color quad)) + (nop!) + (.lvf vf4 (&-> out dir1 color quad)) + (nop!) + (.lvf vf5 (&-> out dir2 color quad)) + (nop!) + (.lvf vf15 (&-> out dir0 extra quad)) + (nop!) + (.lvf vf16 (&-> out dir1 extra quad)) + (nop!) + (.lvf vf17 (&-> out dir2 extra quad)) + (nop!) + (.lvf vf25 (&-> out dir0 direction quad)) + (.mul.x.vf vf3 vf3 vf15) + (.lvf vf26 (&-> out dir1 direction quad)) + (.mul.x.vf vf4 vf4 vf16) + (.lvf vf27 (&-> out dir2 direction quad)) + (.mul.x.vf vf5 vf5 vf17) + (.mov v1-0 vf1) + (.mul.x.vf vf25 vf25 vf15) + (let ((f1-0 v1-0)) + (.mul.x.vf vf26 vf26 vf16) + (.lvf vf6 (&-> other dir0 direction quad)) + (.mul.x.vf vf27 vf27 vf17) + (.lvf vf2 (&-> other dir0 color quad)) + (nop!) + (.lvf vf23 (&-> other dir0 extra quad)) + (nop!) + (.mov a2-0 vf15) + (nop!) + (.mov a3-0 vf16) + (nop!) + (.mov v1-1 vf17) + (nop!) + (let ((a2-1 (shl (the-as int a2-0) 32))) + (nop!) + (let ((a3-1 (shl (the-as int a3-0) 32))) + (nop!) + (let ((v1-2 (shl (the-as int v1-1) 32))) + (b! (zero? a2-1) cfg-9 :delay (set! f6-0 (-> other dir0 extra x))) + (b! (zero? a3-1) cfg-10 :delay (nop!)) + (b! (zero? v1-2) cfg-11 :delay (nop!)) + ) + ) + ) + (.mul.x.vf acc vf15 vf15) + (nop!) + (.add.mul.x.vf acc vf16 vf16 acc) + (nop!) + (.add.mul.x.vf vf22 vf17 vf17 acc) + (nop!) + (.mul.x.vf vf2 vf2 vf23) + (nop!) + (.mul.x.vf vf6 vf6 vf23) + (nop!) + (nop!) + (.isqrt.vf Q vf0 vf22 :fsf #b11 :ftf #b0) + (nop!) + (.wait.vf) + (.mul.vf vf15 vf15 Q) + (nop!) + (.mul.vf vf16 vf16 Q) + (nop!) + (.mul.vf vf17 vf17 Q) + (nop!) + (.sub.x.vf vf15 vf1 vf15) + (nop!) + (.sub.x.vf vf16 vf1 vf16) + (nop!) + (.sub.x.vf vf17 vf1 vf17) + (nop!) + (.mul.x.vf acc vf1 vf15) + (nop!) + (.add.mul.x.vf acc vf1 vf16 acc) + (nop!) + (.add.mul.x.vf vf22 vf1 vf17 acc) + (nop!) + (nop!) + (.div.vf Q vf0 vf22 :fsf #b11 :ftf #b0) + (nop!) + (.lvf vf12 (&-> out dir0 extra quad)) + (nop!) + (.lvf vf13 (&-> out dir1 extra quad)) + (nop!) + (.lvf vf14 (&-> out dir2 extra quad)) + (nop!) + (.wait.vf) + (.mul.vf vf15 vf15 Q) + (nop!) + (.mul.vf vf16 vf16 Q) + (nop!) + (.mul.vf vf17 vf17 Q) + (nop!) + (.mul.vf acc vf1 vf25) + (.mov a2-2 vf15) + (.add.mul.x.vf vf25 vf6 vf15 acc) + (.mov a1-1 vf16) + (.mul.vf acc vf1 vf26) + (.mov v1-3 vf17) + (.add.mul.x.vf vf26 vf6 vf16 acc) + (let ((a2-3 (shl (the-as int a2-2) 32))) + (.mul.vf acc vf1 vf27) + (let ((a1-2 (shl (the-as int a1-1) 32))) + (.add.mul.x.vf vf27 vf6 vf17 acc) + (let ((v1-4 (shl (the-as int v1-3) 32))) + (.mul.vf acc vf1 vf3) + (nop!) + (.add.mul.x.vf vf3 vf2 vf15 acc) + (nop!) + (.mul.vf acc vf1 vf4) + (nop!) + (.add.mul.x.vf vf4 vf2 vf16 acc) + (nop!) + (.mul.vf acc vf1 vf5) + (nop!) + (.add.mul.x.vf vf5 vf2 vf17 acc) + (nop!) + (b! (zero? a2-3) cfg-5 :delay (nop!)) + (.mul.vf vf24 vf25 vf25) + (nop!) + (.mul.vf vf15 vf15 vf23) + (nop!) + (.mul.x.vf acc vf1 vf24) + (nop!) + (.add.mul.y.vf acc vf1 vf24 acc) + (nop!) + (.add.mul.z.vf vf24 vf1 vf24 acc) + (nop!) + (.isqrt.vf Q vf0 vf24 :fsf #b11 :ftf #b0) + (nop!) + (.add.vf vf15 vf15 vf12) + (nop!) + (nop!) + (.mov a2-4 vf15) + (nop!) + (let ((f10-1 (/ f1-0 a2-4))) + (nop!) + (nop!) + (set! (-> out dir0 extra x) a2-4) + (nop!) + (nop!) + (let ((a2-6 f10-1)) + (.mov vf15 a2-6) + ) + ) + (.mul.x.vf vf3 vf3 vf15) + (nop!) + (nop!) + (.wait.vf) + (.mul.vf vf25 vf25 Q) + (.svf (&-> out dir0 color quad) vf3) + (nop!) + (.svf (&-> out dir0 direction quad) vf25) + (label cfg-5) + (b! (zero? a1-2) cfg-7 :delay (nop!)) + (.mul.vf vf24 vf26 vf26) + (nop!) + (.mul.vf vf16 vf16 vf23) + (nop!) + (.mul.x.vf acc vf1 vf24) + (nop!) + (.add.mul.y.vf acc vf1 vf24 acc) + (nop!) + (.add.mul.z.vf vf24 vf1 vf24 acc) + (nop!) + (.isqrt.vf Q vf0 vf24 :fsf #b11 :ftf #b0) + (nop!) + (.add.vf vf16 vf16 vf13) + (nop!) + (nop!) + (.mov a1-3 vf16) + (nop!) + (let ((f11-1 (/ f1-0 a1-3))) + (nop!) + (nop!) + (set! (-> out dir1 extra x) a1-3) + (nop!) + (nop!) + (let ((a1-5 f11-1)) + (.mov vf16 a1-5) + ) + ) + (.mul.x.vf vf4 vf4 vf16) + (nop!) + (nop!) + (.wait.vf) + (.mul.vf vf26 vf26 Q) + (.svf (&-> out dir1 color quad) vf4) + (nop!) + (.svf (&-> out dir1 direction quad) vf26) + (label cfg-7) + (b! (zero? v1-4) cfg-12 :delay (nop!)) + ) + ) + ) + (.mul.vf vf24 vf27 vf27) + (nop!) + (.mul.vf vf17 vf17 vf23) + (nop!) + (.mul.x.vf acc vf1 vf24) + (nop!) + (.add.mul.y.vf acc vf1 vf24 acc) + (nop!) + (.add.mul.z.vf vf24 vf1 vf24 acc) + (nop!) + (.isqrt.vf Q vf0 vf24 :fsf #b11 :ftf #b0) + (nop!) + (.add.vf vf17 vf17 vf14) + (nop!) + (nop!) + (.mov v1-5 vf17) + (nop!) + (let ((f12-1 (/ f1-0 v1-5))) + (nop!) + (nop!) + (set! (-> out dir2 extra x) v1-5) + (nop!) + (nop!) + (let ((v1-7 f12-1)) + (.mov vf17 v1-7) + ) + ) + ) + (.mul.x.vf vf5 vf5 vf17) + (nop!) + (nop!) + (.wait.vf) + (.mul.vf vf27 vf27 Q) + (.svf (&-> out dir2 color quad) vf5) + (b! #t cfg-12 :delay (.svf (&-> out dir2 direction quad) vf27)) + (label cfg-9) + (nop!) + (.svf (&-> out dir0 direction quad) vf6) + (nop!) + (.svf (&-> out dir0 color quad) vf2) + (b! #t cfg-12 :delay (set! (-> out dir0 extra x) f6-0)) + (label cfg-10) + (nop!) + (.svf (&-> out dir1 direction quad) vf6) + (nop!) + (.svf (&-> out dir1 color quad) vf2) + (b! #t cfg-12 :delay (set! (-> out dir1 extra x) f6-0)) + (label cfg-11) + (nop!) + (.svf (&-> out dir2 direction quad) vf6) + (nop!) + (.svf (&-> out dir2 color quad) vf2) + (nop!) + (set! (-> out dir2 extra x) f6-0) + (label cfg-12) + 0 + (none) + ) + ) + +;; definition for function light-group-scale! +;; WARN: Return type mismatch int vs none. +(defun light-group-scale! ((group light-group) (backup-ptr (pointer light-group)) (scale float)) + (if (!= group backup-ptr) + (mem-copy! (the-as pointer group) backup-ptr 192) + ) + (when (!= scale 1.0) + (dotimes (light-idx 4) + (set! (-> group lights light-idx extra x) (* (-> group lights light-idx extra x) scale)) + ) + ) + 0 + (none) + ) + +;; definition for function light-group-madd! +;; WARN: Return type mismatch int vs none. +(defun light-group-madd! ((group light-group) (backup-ptr (pointer light-group)) (other light-group) (scalar float)) + (if (!= group backup-ptr) + (mem-copy! (the-as pointer group) backup-ptr 192) + ) + (when (!= scalar 0.0) + (let ((new-light (new 'stack 'light)) + (ambi-scaled (* (-> other ambi extra x) scalar)) + ) + (let ((dir0-scaled (* (-> other dir0 extra x) scalar)) + (dir1-scaled (* (-> other dir1 extra x) scalar)) + (dir2-scaled (* (-> other dir2 extra x) scalar)) + ) + (when (!= dir0-scaled 0.0) + (mem-copy! (the-as pointer new-light) (the-as pointer (-> other dir0)) 48) + (set! (-> new-light extra x) dir0-scaled) + (light-merge! group (the-as light-group new-light)) + (set! (-> group dir0 extra y) 0.0) + ) + (when (!= dir1-scaled 0.0) + (mem-copy! (the-as pointer new-light) (the-as pointer (-> other dir1)) 48) + (set! (-> new-light extra x) dir1-scaled) + (light-merge! group (the-as light-group new-light)) + (set! (-> group dir1 extra y) 0.0) + ) + (when (!= dir2-scaled 0.0) + (mem-copy! (the-as pointer new-light) (the-as pointer (-> other dir2)) 48) + (set! (-> new-light extra x) dir2-scaled) + (light-merge! group (the-as light-group new-light)) + (set! (-> group dir2 extra y) 0.0) + ) + ) + (vector4-scale! + (the-as vector4 (-> group ambi color)) + (the-as vector4 (-> group ambi color)) + (-> group ambi extra x) + ) + (vector4-madd! + (the-as vector4 (-> group ambi color)) + (the-as vector4 (-> group ambi color)) + (the-as vector4 (-> other ambi color)) + ambi-scaled + ) + ) + (set! (-> group ambi extra x) 1.0) + ) + 0 + (none) + ) + +;; definition for function light-group-lerp! +;; WARN: Return type mismatch int vs none. +(defun light-group-lerp! ((group light-group) (backup-ptr (pointer light-group)) (other light-group) (scalar float)) + (light-group-scale! group backup-ptr (- 1.0 scalar)) + (light-group-madd! group backup-ptr other scalar) + 0 + (none) + ) + +;; definition for function shadow-info-copy! +;; WARN: Return type mismatch int vs none. +(defun shadow-info-copy! ((dest light-group) (src light-group)) + (dotimes (light-idx 4) + (set! (-> dest lights light-idx extra y) (-> src lights light-idx extra y)) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/foreground/merc/merc-death_REF.gc b/test/decompiler/reference/jakx/engine/gfx/foreground/merc/merc-death_REF.gc new file mode 100644 index 0000000000..c2be274108 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/foreground/merc/merc-death_REF.gc @@ -0,0 +1,167 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *merc-death-globals*, type vector +(define *merc-death-globals* (new 'global 'vector)) + +;; definition for function birth-func-death-sparks +;; WARN: Return type mismatch int vs none. +(defun birth-func-death-sparks () + 0 + (none) + ) + +;; definition for symbol death-seed, type death-info +(define death-seed + (new 'static 'death-info :vertex-skip #x8 :timer #xe0 :overlap #xff :effect #x27 :sound "temp-enemy-die") + ) + +;; definition for function start-seed-effect +;; WARN: Return type mismatch int vs none. +(defun start-seed-effect ((arg0 process-drawable) (arg1 vector) (arg2 cspace)) + (let ((v1-0 (-> arg0 draw)) + (a1-1 death-seed) + ) + (set! (-> v1-0 death-vertex-skip) (-> a1-1 vertex-skip)) + (set! (-> v1-0 death-effect) (-> a1-1 effect)) + (set! (-> v1-0 death-timer) (+ (-> a1-1 timer) 1)) + (set! (-> v1-0 death-timer-org) (-> v1-0 death-timer)) + (set! (-> v1-0 death-draw-overlap) (-> a1-1 overlap)) + ) + (send-event + arg0 + 'trans-hook + (lambda :behavior process-drawable () (let ((v0-0 200)) + (set! (-> self draw death-timer) (the-as uint v0-0)) + (the-as time-frame v0-0) + ) + ) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(defpart 39 + :init-specs ((:scale-x (meters 1)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0 196.0) + (:g 196.0 64.0) + (:b 0.0) + (:a 4.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:func 'sparticle-texture-glow-soft) + ) + ) + +;; definition for symbol death-default, type death-info +(define death-default + (new 'static 'death-info :vertex-skip #xa :timer #x4b :overlap #x4 :effect #x28 :sound "enemy-fizz") + ) + +;; definition for symbol death-warp-in, type death-info +(define death-warp-in + (new 'static 'death-info :vertex-skip #x96 :timer #x4b :effect #x29 :sound "warpgate-tele") + ) + +;; definition for symbol death-warp-out, type death-info +(define death-warp-out + (new 'static 'death-info :vertex-skip #x96 :timer #x96 :effect #x29 :sound "warpgate-tele") + ) + +;; definition for function sparticle-texture-glow-soft +;; WARN: Return type mismatch int vs none. +(defun sparticle-texture-glow-soft ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (particle-adgif-callback (-> arg1 adgif) (new 'static 'texture-id :index #x17 :page #x4)) + (set! (-> arg1 sp-func) (the-as (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) 0)) + 0 + (none) + ) + +;; failed to figure out what this is: +(defpart 41 + :init-specs ((:scale-x (meters 0.5) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 32.0 32.0) + (:g 32.0 64.0) + (:b 128.0 128.0) + (:a 128.0) + (:scalevel-x (meters 0.02) (meters 0.02)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0 -1.28) + (:friction 0.92 0.02) + (:timer (seconds 1.667)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 glow)) + (:next-time (seconds 0.1) (seconds 0.065)) + (:next-launcher 42) + ) + ) + +;; failed to figure out what this is: +(defpart 42 + :init-specs ((:scale-x (meters 0.3) (meters 0.2)) + (:scale-y :copy scale-x) + (:a 64.0 32.0) + (:omega (degrees 0.045) (degrees 0.03375)) + (:vel-x (meters -0.053333335) (meters 0.10666667)) + (:vel-y (meters -0.026666667) (meters 0.093333334)) + (:vel-z (meters -0.053333335) (meters 0.10666667)) + (:scalevel-x (meters -0.001) (meters -0.008)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0) + (:func 'sparticle-motion-blur) + ) + ) + +;; failed to figure out what this is: +(defpart 40 + :init-specs ((:scale-x (meters 0.5) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 96.0 150.0) + (:g 32.0 64.0) + (:b 128.0 128.0) + (:a 128.0) + (:scalevel-x (meters 0.02) (meters 0.02)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0 -1.28) + (:friction 0.92 0.02) + (:timer (seconds 1.667)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 glow)) + (:next-time (seconds 0.1) (seconds 0.065)) + (:next-launcher 43) + ) + ) + +;; failed to figure out what this is: +(defpart 43 + :init-specs ((:scale-x (meters 0.3) (meters 0.2)) + (:scale-y :copy scale-x) + (:a 64.0 32.0) + (:omega (degrees 0.045) (degrees 0.03375)) + (:vel-x (meters -0.053333335) (meters 0.10666667)) + (:vel-y (meters -0.026666667) (meters 0.093333334)) + (:vel-z (meters -0.053333335) (meters 0.10666667)) + (:scalevel-x (meters -0.001) (meters -0.008)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0) + (:func 'sparticle-motion-blur) + ) + ) + +;; definition for function merc-death-spawn +;; WARN: Return type mismatch int vs none. +(defun merc-death-spawn ((arg0 int) (arg1 vector) (arg2 vector)) + (let ((v1-2 (-> *part-id-table* arg0))) + (if (and (nonzero? v1-2) (= (-> v1-2 type) sparticle-launcher)) + (sp-launch-particles-death *sp-particle-system-2d* v1-2 arg1) + ) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/foreground/ripple_REF.gc b/test/decompiler/reference/jakx/engine/gfx/foreground/ripple_REF.gc new file mode 100644 index 0000000000..bc6c6b83ce --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/foreground/ripple_REF.gc @@ -0,0 +1,251 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type ripple-request +(deftype ripple-request (structure) + ((waveform ripple-wave) + (effect merc-effect) + ) + :pack-me + ) + +;; definition for method 3 of type ripple-request +(defmethod inspect ((this ripple-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'ripple-request) + (format #t "~1Twaveform: ~A~%" (-> this waveform)) + (format #t "~1Teffect: #~%" (-> this effect)) + (label cfg-4) + this + ) + +;; definition of type ripple-globals +(deftype ripple-globals (structure) + ((count int32) + (requests ripple-request 16 :inline) + ) + ) + +;; definition for method 3 of type ripple-globals +(defmethod inspect ((this ripple-globals)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'ripple-globals) + (format #t "~1Tcount: ~D~%" (-> this count)) + (format #t "~1Trequests[16] @ #x~X~%" (-> this requests)) + (label cfg-4) + this + ) + +;; definition for symbol *ripple-globals*, type ripple-globals +(define *ripple-globals* (new 'global 'ripple-globals)) + +;; definition for function ripple-make-request +;; WARN: Return type mismatch int vs none. +(defun ripple-make-request ((arg0 ripple-wave) (arg1 merc-effect)) + (let ((v1-1 (-> *ripple-globals* count)) + (a2-1 (-> *ripple-globals* requests)) + (a3-0 0) + ) + (when (< v1-1 16) + (dotimes (t0-1 v1-1) + (if (= arg1 (-> a2-1 t0-1 effect)) + (set! a3-0 1) + ) + ) + (when (zero? a3-0) + (set! (-> a2-1 v1-1 effect) arg1) + (set! (-> a2-1 v1-1 waveform) arg0) + (+! (-> *ripple-globals* count) 1) + ) + ) + ) + 0 + (none) + ) + +;; definition for function ripple-update-waveform-offs +;; WARN: Return type mismatch int vs none. +(defun ripple-update-waveform-offs ((arg0 ripple-wave-set) (arg1 clock)) + (let ((f0-1 (the float (- (-> arg1 integral-frame-counter) (the-as int (-> arg0 frame-save)))))) + (when (!= f0-1 0.0) + (dotimes (v1-3 (-> arg0 count)) + (let ((a2-4 (-> arg0 wave v1-3))) + (+! (-> a2-4 offs) (* f0-1 (-> a2-4 delta))) + (set! (-> a2-4 offs) (the float (logand (the int (-> a2-4 offs)) #xffff))) + ) + ) + (set! (-> arg0 frame-save) (the-as uint (-> arg1 integral-frame-counter))) + ) + ) + 0 + (none) + ) + +;; definition for function ripple-execute-init +;; INFO: function output is handled by mips2c +(def-mips2c ripple-execute-init (function none)) + +;; definition for function ripple-create-wave-table +;; INFO: function output is handled by mips2c +(def-mips2c ripple-create-wave-table (function ripple-wave-set int)) + +;; definition for function ripple-apply-wave-table +;; INFO: function output is handled by mips2c +(def-mips2c ripple-apply-wave-table (function merc-effect symbol)) + +;; definition for function ripple-execute +;; WARN: Return type mismatch int vs none. +(defun ripple-execute () + (when (-> *ripple-globals* count) + (ripple-execute-init) + (let ((gp-0 0) + (s5-0 (-> *ripple-globals* count)) + (s4-0 (-> *ripple-globals* requests)) + ) + (while (!= gp-0 s5-0) + (when (-> s4-0 gp-0 waveform) + (let ((s3-0 gp-0) + (s2-0 (-> s4-0 gp-0 waveform)) + ) + (ripple-create-wave-table (the-as ripple-wave-set s2-0)) + (while (!= s3-0 s5-0) + (when (= s2-0 (-> s4-0 s3-0 waveform)) + (ripple-apply-wave-table (-> s4-0 s3-0 effect)) + (set! (-> s4-0 s3-0 waveform) #f) + ) + (+! s3-0 1) + ) + ) + ) + (+! gp-0 1) + ) + ) + (set! (-> *ripple-globals* count) 0) + 0 + ) + 0 + (none) + ) + +;; definition for function ripple-matrix-scale +;; INFO: function output is handled by mips2c +(def-mips2c ripple-matrix-scale (function merc-effect none)) + +;; definition (debug) for function ripple-add-debug-sphere +;; INFO: Used lq/sq +;; WARN: Return type mismatch symbol vs none. +(defun-debug ripple-add-debug-sphere ((arg0 process-drawable) (arg1 vector) (arg2 float) (arg3 float)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((f30-0 (- (quaternion-y-angle (the-as quaternion (-> arg0 root rot))))) + (s5-0 (new-stack-vector0)) + ) + (let ((f28-0 (+ (-> arg1 x) (* arg2 (-> arg1 z)))) + (f26-0 (+ (-> arg1 y) (* arg3 (-> arg1 z)))) + ) + (set! (-> s5-0 x) (- (* f28-0 (cos f30-0)) (* f26-0 (sin f30-0)))) + (set! (-> s5-0 y) 0.0) + (set! (-> s5-0 z) (+ (* f26-0 (cos f30-0)) (* f28-0 (sin f30-0)))) + ) + (set! (-> s5-0 w) 0.0) + (let ((a0-6 s5-0)) + (let ((v1-1 s5-0) + (a1-2 (-> arg0 root trans)) + ) + (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a1-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-6 quad) vf6) + ) + (add-debug-sphere #t (bucket-id bucket793) s5-0 (meters 0.5) (new 'static 'rgba :r #xff :g #xff :a #x80)) + ) + (none) + ) + ) + +;; definition for function ripple-slow-add-sine-waves +(defun ripple-slow-add-sine-waves ((arg0 ripple-wave-set) (arg1 float) (arg2 float)) + (let ((f30-0 0.0)) + (dotimes (s3-0 (-> arg0 count)) + (let* ((v1-3 (-> arg0 wave s3-0)) + (f0-2 (+ (-> v1-3 offs) (* arg1 (-> v1-3 xmul)) (* arg2 (-> v1-3 zmul)))) + ) + (+! f30-0 (* (-> v1-3 scale) (cos f0-2))) + ) + ) + (fmax -127.0 (fmin 127.0 f30-0)) + ) + ) + +;; definition for function ripple-find-height +(defun ripple-find-height ((arg0 process-drawable) (arg1 int) (arg2 vector)) + (let ((f30-0 (-> arg0 root trans y)) + (sv-16 (-> arg0 draw)) + ) + (if (or (zero? sv-16) (not (-> sv-16 ripple))) + (return f30-0) + ) + (let ((v1-11 (-> sv-16 lod-set lod (-> sv-16 cur-lod) geo effect))) + (if (not (logtest? (-> v1-11 0 effect-bits) (effect-bits ripple))) + (return f30-0) + ) + (let* ((v1-12 (-> v1-11 0 extra-info)) + (s4-0 (the-as mei-ripple (+ (the-as uint v1-12) (* (-> v1-12 ripple-offset) 16)))) + (gp-0 (-> sv-16 ripple)) + (s5-0 (-> gp-0 waveform)) + ) + (if (not (-> gp-0 waveform)) + (return f30-0) + ) + (if (not (-> s5-0 converted)) + (return f30-0) + ) + (let* ((f28-0 (- (-> arg2 x) (-> arg0 root trans x))) + (f26-0 (- (-> arg2 z) (-> arg0 root trans z))) + (f22-0 (+ (quaternion-y-angle (the-as quaternion (-> arg0 root rot))) (-> s4-0 angle))) + (f24-0 (cos f22-0)) + (f1-3 (sin f22-0)) + (f0-4 (- (* f28-0 f24-0) (* f26-0 f1-3))) + (f1-5 (+ (* f26-0 f24-0) (* f28-0 f1-3))) + (f2-3 (/ 1.0 (-> s4-0 grid-size))) + (f28-1 (* f2-3 (- f0-4 (-> s4-0 x-base)))) + (f26-1 (* f2-3 (- f1-5 (-> s4-0 z-base)))) + ) + (ripple-update-waveform-offs s5-0 (-> *display* bg-clock)) + (let* ((f22-1 (the float (the int f28-1))) + (f24-1 (the float (the int f26-1))) + (f20-0 (ripple-slow-add-sine-waves s5-0 f22-1 f24-1)) + (sv-32 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) f24-1)) + (sv-48 (ripple-slow-add-sine-waves s5-0 f22-1 (+ 1.0 f24-1))) + (f1-6 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) (+ 1.0 f24-1))) + (f0-22 (+ f20-0 (* (- f28-1 f22-1) (- sv-32 f20-0)))) + (f1-9 (+ sv-48 (* (- f28-1 f22-1) (- f1-6 sv-48)))) + (f1-12 (+ f0-22 (* (- f26-1 f24-1) (- f1-9 f0-22)))) + (f0-23 (-> gp-0 faded-scale)) + ) + (if (< f0-23 0.0) + (set! f0-23 (-> gp-0 global-scale)) + ) + (+ f30-0 (* (/ f1-12 128) f0-23)) + ) + ) + ) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/generic/lightning/lightning-new-h_REF.gc b/test/decompiler/reference/jakx/engine/gfx/generic/lightning/lightning-new-h_REF.gc new file mode 100644 index 0000000000..ae77296592 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/generic/lightning/lightning-new-h_REF.gc @@ -0,0 +1,315 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type lightning-appearance +(deftype lightning-appearance (structure) + ((base-alpha float) + (width-range-start float) + (width-range-end float) + (tex-id uint32) + (blend-mode uint64) + (fade-time uint64) + (regenerate-time-start uint64) + (regenerate-time-end uint64) + (alpha-1-curve curve2d-fast) + (alpha-1-mode uint64) + (alpha-1-repeat-dist float) + (alpha-2-curve curve2d-fast) + (alpha-2-mode uint64) + (alpha-2-repeat-dist float) + (width-curve curve2d-fast) + (width-mode uint64) + (width-repeat-dist float) + (uv-repeat-dist float) + (uv-shift? symbol) + (uv-shift-speed uint64) + (use-sprite-bucket? symbol) + (use-accurate-interp? symbol) + ) + ) + +;; definition for method 3 of type lightning-appearance +(defmethod inspect ((this lightning-appearance)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'lightning-appearance) + (format #t "~1Tbase-alpha: ~f~%" (-> this base-alpha)) + (format #t "~1Twidth-range-start: ~f~%" (-> this width-range-start)) + (format #t "~1Twidth-range-end: ~f~%" (-> this width-range-end)) + (format #t "~1Ttex-id: ~D~%" (-> this tex-id)) + (format #t "~1Tblend-mode: ~D~%" (-> this blend-mode)) + (format #t "~1Tfade-time: ~D~%" (-> this fade-time)) + (format #t "~1Tregenerate-time-start: ~D~%" (-> this regenerate-time-start)) + (format #t "~1Tregenerate-time-end: ~D~%" (-> this regenerate-time-end)) + (format #t "~1Talpha-1-curve: ~A~%" (-> this alpha-1-curve)) + (format #t "~1Talpha-1-mode: ~D~%" (-> this alpha-1-mode)) + (format #t "~1Talpha-1-repeat-dist: ~f~%" (-> this alpha-1-repeat-dist)) + (format #t "~1Talpha-2-curve: ~A~%" (-> this alpha-2-curve)) + (format #t "~1Talpha-2-mode: ~D~%" (-> this alpha-2-mode)) + (format #t "~1Talpha-2-repeat-dist: ~f~%" (-> this alpha-2-repeat-dist)) + (format #t "~1Twidth-curve: ~A~%" (-> this width-curve)) + (format #t "~1Twidth-mode: ~D~%" (-> this width-mode)) + (format #t "~1Twidth-repeat-dist: ~f~%" (-> this width-repeat-dist)) + (format #t "~1Tuv-repeat-dist: ~f~%" (-> this uv-repeat-dist)) + (format #t "~1Tuv-shift?: ~A~%" (-> this uv-shift?)) + (format #t "~1Tuv-shift-speed: ~D~%" (-> this uv-shift-speed)) + (format #t "~1Tuse-sprite-bucket?: ~A~%" (-> this use-sprite-bucket?)) + (format #t "~1Tuse-accurate-interp?: ~A~%" (-> this use-accurate-interp?)) + (label cfg-4) + this + ) + +;; definition of type lightning-span-internal +(deftype lightning-span-internal (structure) + ((index int16) + (span-flags uint8) + (num-inner-points int8) + ) + :pack-me + ) + +;; definition for method 3 of type lightning-span-internal +(defmethod inspect ((this lightning-span-internal)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'lightning-span-internal) + (format #t "~1Tindex: ~D~%" (-> this index)) + (format #t "~1Tspan-flags: ~D~%" (-> this span-flags)) + (format #t "~1Tnum-inner-points: ~D~%" (-> this num-inner-points)) + (label cfg-4) + this + ) + +;; definition of type lightning-span +(deftype lightning-span (structure) + ((random-offset-size-start float) + (inner-random-offset-size float) + ) + :pack-me + ) + +;; definition for method 3 of type lightning-span +(defmethod inspect ((this lightning-span)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'lightning-span) + (format #t "~1Trandom-offset-size-start: ~f~%" (-> this random-offset-size-start)) + (format #t "~1Tinner-random-offset-size: ~f~%" (-> this inner-random-offset-size)) + (label cfg-4) + this + ) + +;; definition of type lightning-spans-array +(deftype lightning-spans-array (inline-array-class) + ((data lightning-span :inline :dynamic) + ) + ) + +;; definition for method 3 of type lightning-spans-array +(defmethod inspect ((this lightning-spans-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> lightning-spans-array heap-base) (the-as uint 8)) + +;; definition of type lightning-spans-internal-array +(deftype lightning-spans-internal-array (inline-array-class) + ((data lightning-span-internal :inline :dynamic) + ) + ) + +;; definition for method 3 of type lightning-spans-internal-array +(defmethod inspect ((this lightning-spans-internal-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> lightning-spans-internal-array heap-base) (the-as uint 4)) + +;; definition of type tex-u-holder +(deftype tex-u-holder (structure) + ((uu float) + (last-dist float) + ) + ) + +;; definition for method 3 of type tex-u-holder +(defmethod inspect ((this tex-u-holder)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'tex-u-holder) + (format #t "~1Tuu: ~f~%" (-> this uu)) + (format #t "~1Tlast-dist: ~f~%" (-> this last-dist)) + (label cfg-4) + this + ) + +;; definition of type lightning-bolt +(deftype lightning-bolt (basic) + ((current-points vector-array) + (desired-points vector-array) + (span-pts-start vector-array) + (spans lightning-spans-array) + (spans-internal lightning-spans-internal-array) + (strip1 prim-strip) + (strip2 prim-strip) + (inner-point-travel-time uint64) + (start-fade-time uint64) + (new-inner-point-generate-time uint64) + (last-generate-time uint64) + (base-width float) + (current-uv-shift float) + (current-fade-scalar float) + (fractal-reduction float) + (appearance lightning-appearance) + (fade-mode uint64) + (generate-mode uint64) + (snap-inner-points? symbol) + (span-data int8 2) + (num-active-spans int8 :overlay-at (-> span-data 0)) + (num-spans int8 :overlay-at (-> span-data 1)) + (base-color rgba) + ) + (:methods + (init! (_type_ int int lightning-appearance) none) + (reset-spans! (_type_) none) + (lightning-bolt-method-11 (_type_) none) + (lightning-bolt-method-12 (_type_) none) + (lightning-bolt-method-13 (_type_ int) none) + (lightning-bolt-method-14 (_type_) int) + (lightning-bolt-method-15 (_type_ object int lightning-span-internal) none) + (lightning-bolt-method-16 (_type_ vector float float vector matrix) none) + (lightning-bolt-method-17 (_type_ uint float float curve2d-fast float) float) + (lightning-bolt-method-18 (_type_ prim-strip vector rgba float float) none) + (lightning-bolt-method-19 (_type_ vector int int matrix float float) none) + (lightning-bolt-method-20 (_type_ int lightning-span-internal) vector) + (lightning-bolt-method-21 (_type_ int int float) none) + (lightning-bolt-method-22 (_type_) none) + ) + ) + +;; definition for method 3 of type lightning-bolt +(defmethod inspect ((this lightning-bolt)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tcurrent-points: ~A~%" (-> this current-points)) + (format #t "~1Tdesired-points: ~A~%" (-> this desired-points)) + (format #t "~1Tspan-pts-start: ~A~%" (-> this span-pts-start)) + (format #t "~1Tspans: ~A~%" (-> this spans)) + (format #t "~1Tspans-internal: ~A~%" (-> this spans-internal)) + (format #t "~1Tstrip1: ~A~%" (-> this strip1)) + (format #t "~1Tstrip2: ~A~%" (-> this strip2)) + (format #t "~1Tinner-point-travel-time: ~D~%" (-> this inner-point-travel-time)) + (format #t "~1Tstart-fade-time: ~D~%" (-> this start-fade-time)) + (format #t "~1Tnew-inner-point-generate-time: ~D~%" (-> this new-inner-point-generate-time)) + (format #t "~1Tlast-generate-time: ~D~%" (-> this last-generate-time)) + (format #t "~1Tbase-width: ~f~%" (-> this base-width)) + (format #t "~1Tcurrent-uv-shift: ~f~%" (-> this current-uv-shift)) + (format #t "~1Tcurrent-fade-scalar: ~f~%" (-> this current-fade-scalar)) + (format #t "~1Tfractal-reduction: ~f~%" (-> this fractal-reduction)) + (format #t "~1Tappearance: #~%" (-> this appearance)) + (format #t "~1Tfade-mode: ~D~%" (-> this fade-mode)) + (format #t "~1Tgenerate-mode: ~D~%" (-> this generate-mode)) + (format #t "~1Tsnap-inner-points?: ~A~%" (-> this snap-inner-points?)) + (format #t "~1Tspan-data[2] @ #x~X~%" (-> this span-data)) + (format #t "~1Tnum-active-spans: ~D~%" (-> this num-active-spans)) + (format #t "~1Tnum-spans: ~D~%" (-> this num-spans)) + (format #t "~1Tbase-color: ~D~%" (-> this base-color)) + (label cfg-4) + this + ) + +;; definition of type lightning-new-tracker +(deftype lightning-new-tracker (process) + ((bolt lightning-bolt) + (lifetime uint64) + (state-time uint64) + ) + (:state-methods + active + die + ) + ) + +;; definition for method 3 of type lightning-new-tracker +(defmethod inspect ((this lightning-new-tracker)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process inspect))) + (t9-0 this) + ) + (format #t "~2Tbolt: ~A~%" (-> this bolt)) + (format #t "~2Tlifetime: ~D~%" (-> this lifetime)) + (format #t "~2Tstate-time: ~D~%" (-> this state-time)) + (label cfg-4) + this + ) + +;; definition of type lightning-tracker-init-params +(deftype lightning-tracker-init-params (structure) + ((appearance lightning-appearance) + (start-pt vector :inline) + (end-pt vector :inline) + (lifetime uint64) + (num-inner-points int8) + (inner-random-offset-size float) + (random-offset-size-start float) + ) + ) + +;; definition for method 3 of type lightning-tracker-init-params +(defmethod inspect ((this lightning-tracker-init-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'lightning-tracker-init-params) + (format #t "~1Tappearance: #~%" (-> this appearance)) + (format #t "~1Tstart-pt: #~%" (-> this start-pt)) + (format #t "~1Tend-pt: #~%" (-> this end-pt)) + (format #t "~1Tlifetime: ~D~%" (-> this lifetime)) + (format #t "~1Tnum-inner-points: ~D~%" (-> this num-inner-points)) + (format #t "~1Tinner-random-offset-size: ~f~%" (-> this inner-random-offset-size)) + (format #t "~1Trandom-offset-size-start: ~f~%" (-> this random-offset-size-start)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/generic/lightning/lightning-new_REF.gc b/test/decompiler/reference/jakx/engine/gfx/generic/lightning/lightning-new_REF.gc new file mode 100644 index 0000000000..bf7c69cc2c --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/generic/lightning/lightning-new_REF.gc @@ -0,0 +1,934 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *lightning-alpha-additive*, type gs-alpha +(define *lightning-alpha-additive* (new 'static 'gs-alpha :b #x2 :d #x1)) + +;; definition for symbol *lightning-alpha-blend*, type gs-alpha +(define *lightning-alpha-blend* (new 'static 'gs-alpha :b #x1 :d #x1)) + +;; definition for symbol *lightning-alpha-subtractive*, type gs-alpha +(define *lightning-alpha-subtractive* (new 'static 'gs-alpha :a #x2 :d #x1)) + +;; definition for method 9 of type lightning-bolt +;; WARN: Return type mismatch int vs none. +(defmethod init! ((this lightning-bolt) (arg0 int) (arg1 int) (arg2 lightning-appearance)) + (set! (-> this num-spans) arg0) + (set! (-> this spans) (new 'process 'lightning-spans-array arg0)) + (set! (-> this num-active-spans) 0) + (set! (-> this span-pts-start) (new 'process 'vector-array arg0)) + (let ((s3-0 (* arg1 arg0))) + (let ((s2-1 (+ (* arg1 (+ arg0 -1)) 1))) + (set! (-> this current-points) (new 'process 'vector-array s2-1)) + (set! (-> this desired-points) (new 'process 'vector-array s2-1)) + ) + (let ((f30-0 (* 2.0 (the float s3-0)))) + (set! (-> this strip1) + (new 'process 'prim-strip (the int f30-0) (new 'static 'texture-id :index #x3 :page #x1) (the-as string #f)) + ) + (set! (-> this strip2) + (new 'process 'prim-strip (the int f30-0) (new 'static 'texture-id :index #x3 :page #x1) (the-as string #f)) + ) + ) + ) + (set! (-> this appearance) arg2) + (set! (-> this spans-internal) (new 'process 'lightning-spans-internal-array arg0)) + (set! (-> this current-uv-shift) 0.0) + (set! (-> this strip1 clamp) (new 'static 'gs-clamp)) + (set! (-> this strip2 clamp) (new 'static 'gs-clamp)) + (set! (-> this new-inner-point-generate-time) + (the-as + uint + (rand-vu-int-range + (the-as int (-> this appearance regenerate-time-start)) + (the-as int (-> this appearance regenerate-time-end)) + ) + ) + ) + (set! (-> this base-width) + (rand-vu-float-range (-> this appearance width-range-start) (-> this appearance width-range-end)) + ) + (set! (-> this fade-mode) (the-as uint 0)) + (set! (-> this current-fade-scalar) 1.0) + (when (-> this appearance uv-shift?) + (let* ((v1-22 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-23 (the-as number (logior #x3f800000 v1-22))) + ) + (set! (-> this current-uv-shift) (+ -1.0 (the-as float v1-23))) + ) + ) + (let ((v1-26 (the-as number 0))) + (while (< (the-as int v1-26) (-> this num-spans)) + (logand! (-> this spans-internal data (the-as int v1-26) span-flags) -2) + (set! (-> this spans-internal data (the-as int v1-26) index) (the-as int v1-26)) + (set! v1-26 (+ (the-as int v1-26) 1)) + ) + ) + (set! (-> this base-color) *color-gray*) + 0 + (none) + ) + +;; definition for method 10 of type lightning-bolt +;; WARN: Return type mismatch int vs none. +(defmethod reset-spans! ((this lightning-bolt)) + (set! (-> this num-active-spans) 0) + 0 + (none) + ) + +;; definition for method 20 of type lightning-bolt +;; INFO: Used lq/sq +(defmethod lightning-bolt-method-20 ((this lightning-bolt) (arg0 int) (arg1 lightning-span-internal)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let* ((f30-0 -0.5) + (v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-3 (the-as number (logior #x3f800000 v1-2))) + ) + (set! (-> s3-0 x) (+ f30-0 (+ -1.0 (the-as float v1-3)))) + ) + (let* ((f30-1 -0.5) + (v1-7 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-8 (the-as number (logior #x3f800000 v1-7))) + ) + (set! (-> s3-0 y) (+ f30-1 (+ -1.0 (the-as float v1-8)))) + ) + (set! (-> s3-0 z) (the float (-> arg1 index))) + (set! (-> s3-0 w) 1.0) + (set! (-> this desired-points data arg0 quad) (-> s3-0 quad)) + ) + (set! (-> this current-points data arg0 z) (the float (-> arg1 index))) + (-> this desired-points data arg0) + ) + +;; definition for method 21 of type lightning-bolt +;; WARN: Return type mismatch int vs none. +(defmethod lightning-bolt-method-21 ((this lightning-bolt) (arg0 int) (arg1 int) (arg2 float)) + (let ((v1-0 (-> this desired-points))) + (when (< 1 (- arg1 arg0)) + (let ((sv-16 (/ (+ arg0 arg1) 2))) + (let ((sv-24 (-> v1-0 data arg0)) + (sv-28 (-> v1-0 data arg1)) + (sv-32 (the-as float 1.0)) + ) + (set! sv-32 (-> sv-28 z)) + (let ((s2-0 (-> v1-0 data sv-16))) + (let* ((f30-0 (* 0.5 (+ (-> sv-24 x) (-> sv-28 x)))) + (f28-0 arg2) + (f26-0 -0.5) + (v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-7 (the-as number (logior #x3f800000 v1-6))) + ) + (set! (-> s2-0 x) (+ f30-0 (* f28-0 (+ f26-0 (+ -1.0 (the-as float v1-7)))))) + ) + (let* ((f30-1 (* 0.5 (+ (-> sv-24 y) (-> sv-28 y)))) + (f28-1 arg2) + (f26-1 -0.5) + (v1-14 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-15 (the-as number (logior #x3f800000 v1-14))) + ) + (set! (-> s2-0 y) (+ f30-1 (* f28-1 (+ f26-1 (+ -1.0 (the-as float v1-15)))))) + ) + (set! (-> s2-0 z) (lerp (-> sv-24 z) sv-32 0.5)) + ) + ) + (lightning-bolt-method-21 this arg0 sv-16 (* arg2 (-> this fractal-reduction))) + (lightning-bolt-method-21 this sv-16 arg1 (* arg2 (-> this fractal-reduction))) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 15 of type lightning-bolt +(defmethod lightning-bolt-method-15 ((this lightning-bolt) (arg0 object) (arg1 int) (arg2 lightning-span-internal)) + (let ((v1-0 (-> this generate-mode))) + (cond + ((zero? v1-0) + (let ((f30-0 (the float (-> arg2 index))) + (f28-0 (the float (+ (-> arg2 index) 1))) + (f26-0 (/ 1.0 (the float (+ (-> arg2 num-inner-points) 1)))) + ) + 0.0 + (let ((f24-0 (+ 0.0 f26-0))) + (dotimes (s3-0 (-> arg2 num-inner-points)) + (let ((f22-0 (lerp f30-0 f28-0 f24-0))) + (let ((s2-0 (-> this desired-points data (+ s3-0 1 arg1)))) + (let* ((f20-0 -0.5) + (v1-13 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-14 (the-as number (logior #x3f800000 v1-13))) + ) + (set! (-> s2-0 x) (+ f20-0 (+ -1.0 (the-as float v1-14)))) + ) + (let* ((f20-1 -0.5) + (v1-18 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-19 (the-as number (logior #x3f800000 v1-18))) + ) + (set! (-> s2-0 y) (+ f20-1 (+ -1.0 (the-as float v1-19)))) + ) + (set! (-> s2-0 z) f22-0) + (set! (-> s2-0 w) 1.0) + ) + (set! (-> this current-points data (+ s3-0 1 arg1) z) f22-0) + ) + (+! f24-0 f26-0) + ) + ) + ) + ) + ((= v1-0 1) + (lightning-bolt-method-21 this arg1 (+ (-> arg2 num-inner-points) 1 arg1) 1.0) + ) + ) + ) + (none) + ) + +;; definition for method 14 of type lightning-bolt +;; WARN: Return type mismatch uint vs int. +(defmethod lightning-bolt-method-14 ((this lightning-bolt)) + (the-as int (-> this fade-mode)) + ) + +;; definition for method 13 of type lightning-bolt +;; WARN: Return type mismatch int vs none. +(defmethod lightning-bolt-method-13 ((this lightning-bolt) (arg0 int)) + (when (!= (-> this fade-mode) arg0) + (let ((v1-1 arg0)) + (cond + ((zero? v1-1) + (set! (-> this current-fade-scalar) 1.0) + (set! (-> this start-fade-time) (the-as uint (current-time))) + ) + ((= v1-1 2) + (set! (-> this start-fade-time) (the-as uint (current-time))) + (set! (-> this current-fade-scalar) 1.0) + ) + ((= v1-1 1) + (set! (-> this current-fade-scalar) 0.0) + (set! (-> this start-fade-time) (the-as uint (current-time))) + ) + ((= v1-1 3) + (dotimes (v1-12 (-> this num-spans)) + (logand! (-> this spans-internal data v1-12 span-flags) -2) + ) + ) + ) + ) + (set! (-> this fade-mode) (the-as uint arg0)) + ) + (none) + ) + +;; definition for method 11 of type lightning-bolt +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +;; WARN: Function (method 11 lightning-bolt) has a return type of none, but the expression builder found a return statement. +(defmethod lightning-bolt-method-11 ((this lightning-bolt)) + (with-pp + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (case (-> this fade-mode) + ((2) + (let* ((f1-2 (/ (the float (- (current-time) (the-as int (-> this start-fade-time)))) + (the float (-> this appearance fade-time)) + ) + ) + (f0-3 (fmax 0.0 (fmin 1.0 f1-2))) + ) + (set! (-> this current-fade-scalar) (lerp 1.0 0.0 f0-3)) + ) + (if (>= 0.0 (-> this current-fade-scalar)) + (lightning-bolt-method-13 this 3) + ) + ) + ((1) + (let* ((f1-7 (/ (the float (- (current-time) (the-as int (-> this start-fade-time)))) + (the float (-> this appearance fade-time)) + ) + ) + (f0-9 (fmax 0.0 (fmin 1.0 f1-7))) + ) + (set! (-> this current-fade-scalar) (lerp 0.0 1.0 f0-9)) + ) + (if (>= (-> this current-fade-scalar) 1.0) + (lightning-bolt-method-13 this 0) + ) + ) + ) + (if (= (-> this fade-mode) 3) + (return 0) + ) + (if (zero? (-> this fade-mode)) + (set! (-> this current-fade-scalar) 1.0) + ) + (set! (-> this num-active-spans) (min (-> this num-active-spans) (+ (-> this num-spans) -1))) + (let ((v1-31 (-> this num-active-spans)) + (a0-14 (+ (-> this num-spans) -1)) + ) + (while (>= a0-14 v1-31) + (let ((a1-6 (-> this spans-internal data v1-31))) + (logand! (-> a1-6 span-flags) -2) + ) + (+! v1-31 1) + ) + ) + (let ((v1-37 (time-elapsed? + (the-as int (-> this last-generate-time)) + (the-as time-frame (-> this new-inner-point-generate-time)) + ) + ) + ) + (dotimes (a0-17 (-> this num-active-spans)) + (-> this spans data a0-17) + (let ((a1-12 (-> this spans-internal data a0-17))) + (if (or v1-37 (not (logtest? (-> a1-12 span-flags) 1))) + (logior! (-> a1-12 span-flags) 2) + (logand! (-> a1-12 span-flags) -3) + ) + ) + ) + ) + (let ((s5-0 0)) + (dotimes (s4-0 (-> this num-active-spans)) + (-> this spans data s4-0) + (let* ((a2-13 (-> this spans-internal data s4-0)) + (s3-0 (+ (-> a2-13 num-inner-points) 1)) + ) + (when (logtest? (-> a2-13 span-flags) 2) + (when (or (-> this snap-inner-points?) + (and (logtest? (-> a2-13 span-flags) 2) (not (logtest? (-> a2-13 span-flags) 1))) + ) + (dotimes (v1-55 s3-0) + (set! (-> this current-points data (+ v1-55 s5-0) quad) (-> this desired-points data (+ v1-55 s5-0) quad)) + ) + ) + (lightning-bolt-method-20 this s5-0 a2-13) + ) + (+! s5-0 s3-0) + ) + ) + (when (time-elapsed? + (the-as int (-> this last-generate-time)) + (the-as time-frame (-> this new-inner-point-generate-time)) + ) + (lightning-bolt-method-20 this s5-0 (-> this spans-internal data (-> this num-active-spans))) + (if (-> this snap-inner-points?) + (set! (-> this current-points data s5-0 quad) (-> this desired-points data s5-0 quad)) + ) + (set! (-> this last-generate-time) (the-as uint (current-time))) + (set! (-> this new-inner-point-generate-time) + (the-as uint (rand-vu-int-range + (the-as int (-> this appearance regenerate-time-start)) + (the-as int (-> this appearance regenerate-time-end)) + ) + ) + ) + ) + ) + (let ((s5-1 0)) + (dotimes (s4-1 (-> this num-active-spans)) + (let* ((a1-24 (-> this spans data s4-1)) + (a3-5 (-> this spans-internal data s4-1)) + (s3-1 (+ (-> a3-5 num-inner-points) 1)) + ) + (if (logtest? (-> a3-5 span-flags) 2) + (lightning-bolt-method-15 this a1-24 s5-1 a3-5) + ) + (+! s5-1 s3-1) + ) + ) + ) + (let ((s5-2 0)) + (dotimes (s4-2 (+ (-> this num-active-spans) 1)) + (-> this spans data s4-2) + (let* ((v1-102 (-> this spans-internal data s4-2)) + (s3-2 (+ (-> v1-102 num-inner-points) 1)) + ) + (if (= s4-2 (-> this num-active-spans)) + (set! s3-2 1) + ) + (cond + ((not (-> this appearance use-accurate-interp?)) + (let ((a0-49 (the-as int (- (current-time) (-> pp clock old-frame-counter))))) + 0.0 + (if (logtest? (-> v1-102 span-flags) 2) + (set! a0-49 0) + ) + (let* ((f1-12 (/ (the float a0-49) (the float (-> this inner-point-travel-time)))) + (f30-0 (fmax 0.0 (fmin 1.0 f1-12))) + ) + (dotimes (s2-0 s3-2) + (vector-lerp! + (-> this current-points data (+ s2-0 s5-2)) + (-> this current-points data (+ s2-0 s5-2)) + (-> this desired-points data (+ s2-0 s5-2)) + f30-0 + ) + ) + ) + ) + ) + (else + (let ((sv-16 (- (current-time) (- (current-time) (-> pp clock old-frame-counter)))) + (sv-24 (the-as float 0.0)) + (sv-32 (current-time)) + (sv-40 (the-as float 0.0)) + ) + (set! sv-24 (/ (the float (- sv-16 (the-as int (-> this last-generate-time)))) + (the float (-> this inner-point-travel-time)) + ) + ) + (set! sv-40 (/ (the float (- sv-32 (the-as int (-> this last-generate-time)))) + (the float (-> this inner-point-travel-time)) + ) + ) + (set! sv-24 (fmax 0.0 (fmin 1.0 sv-24))) + (set! sv-40 (fmax 0.0 (fmin 1.0 sv-40))) + (let ((f30-1 (- 1.0 sv-24))) + (dotimes (s2-1 s3-2) + (let ((sv-64 (new 'stack-no-clear 'vector)) + (sv-68 (the-as float 0.0)) + ) + (let ((sv-72 (the-as float 0.0))) + ) + (set-vector! + sv-64 + (- (-> this desired-points data (+ s2-1 s5-2) x) (-> this current-points data (+ s2-1 s5-2) x)) + (- (-> this desired-points data (+ s2-1 s5-2) y) (-> this current-points data (+ s2-1 s5-2) y)) + 0.0 + 1.0 + ) + (set! sv-68 (vector-normalize-ret-len! sv-64 1.0)) + (when (< 0.0 f30-1) + (vector-float*! sv-64 sv-64 (* (/ sv-68 f30-1) (- sv-40 sv-24))) + (let ((v1-142 (-> this current-points data (+ s2-1 s5-2)))) + (let ((a1-41 sv-64)) + (.lvf vf4 (&-> (-> this current-points data (+ s2-1 s5-2)) quad)) + (.lvf vf5 (&-> a1-41 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-142 quad) vf6) + ) + (set! (-> this current-points data (+ s2-1 s5-2) z) (-> this desired-points data (+ s2-1 s5-2) z)) + ) + ) + ) + ) + ) + ) + ) + (+! s5-2 s3-2) + ) + ) + ) + (dotimes (v1-155 (-> this num-active-spans)) + (-> this spans data v1-155) + (let ((a0-82 (-> this spans-internal data v1-155))) + (logior! (-> a0-82 span-flags) 1) + ) + ) + (none) + ) + ) + ) + +;; definition for method 19 of type lightning-bolt +;; WARN: Return type mismatch vector vs none. +(defmethod lightning-bolt-method-19 ((this lightning-bolt) (arg0 vector) (arg1 int) (arg2 int) (arg3 matrix) (arg4 float) (arg5 float)) + (let ((a1-2 + (vector-! (new 'stack-no-clear 'vector) (-> this current-points data arg2) (-> this current-points data arg1)) + ) + ) + (set! (-> a1-2 x) (* (-> a1-2 x) arg4)) + (set! (-> a1-2 y) (* (-> a1-2 y) arg4)) + (set! (-> a1-2 z) (* (-> a1-2 z) arg5)) + (vector-rotate*! arg0 a1-2 arg3) + ) + (none) + ) + +;; definition for function matrix<-vector-yz2! +;; INFO: Used lq/sq +(defun matrix<-vector-yz2! ((arg0 matrix) (arg1 vector) (arg2 vector)) + (set! (-> arg0 fvec quad) (-> arg1 quad)) + (vector-cross! (-> arg0 rvec) arg2 arg1) + (vector-normalize! (-> arg0 rvec) 1.0) + (vector-cross! (-> arg0 uvec) arg1 (-> arg0 rvec)) + (vector-normalize! (-> arg0 uvec) 1.0) + (set! (-> arg0 rvec w) 1.0) + (set! (-> arg0 uvec w) 1.0) + (set! (-> arg0 fvec w) 1.0) + arg0 + ) + +;; definition for method 22 of type lightning-bolt +;; WARN: Return type mismatch number vs none. +;; WARN: Function (method 22 lightning-bolt) has a return type of none, but the expression builder found a return statement. +(defmethod lightning-bolt-method-22 ((this lightning-bolt)) + (with-pp + (set! (-> this strip1 num-verts) (the-as uint 0)) + (set! (-> this strip2 num-verts) (the-as uint 0)) + (set! (-> this strip1 adnops 0 cmds) (gs-reg64 test-1)) + (set! (-> this strip1 data0) + (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest greater-equal)) + ) + (set! (-> this strip2 adnops 0 cmds) (gs-reg64 test-1)) + (set! (-> this strip2 data0) + (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest greater-equal)) + ) + (set! (-> this strip1 adnops 1 cmds) (gs-reg64 alpha-1)) + (set! (-> this strip2 adnops 1 cmds) (gs-reg64 alpha-1)) + (let ((v1-9 (-> this appearance blend-mode))) + (cond + ((= v1-9 1) + (set! (-> this strip1 data1) (the-as gs-test *lightning-alpha-additive*)) + (set! (-> this strip2 data1) (the-as gs-test *lightning-alpha-additive*)) + ) + ((zero? v1-9) + (set! (-> this strip1 data1) (the-as gs-test *lightning-alpha-blend*)) + (set! (-> this strip2 data1) (the-as gs-test *lightning-alpha-blend*)) + ) + ((= v1-9 2) + (set! (-> this strip1 data1) (the-as gs-test *lightning-alpha-subtractive*)) + (set! (-> this strip2 data1) (the-as gs-test *lightning-alpha-subtractive*)) + ) + ) + ) + (set! (-> this strip1 tex-id) (the-as texture-id (-> this appearance tex-id))) + (set! (-> this strip2 tex-id) (the-as texture-id (-> this appearance tex-id))) + (if (= (-> this fade-mode) 3) + (return 0) + ) + (when (-> this appearance uv-shift?) + (let ((f0-2 (/ (the float (- (current-time) (-> pp clock old-frame-counter))) + (the float (-> this appearance uv-shift-speed)) + ) + ) + ) + (+! (-> this current-uv-shift) f0-2) + ) + (let ((f0-4 (-> this current-uv-shift))) + (set! (-> this current-uv-shift) (- f0-4 (the float (the int f0-4)))) + ) + (if (< (-> this current-uv-shift) 1.0) + (+! (-> this current-uv-shift) 1.0) + ) + ) + (none) + ) + ) + +;; definition for function choose-nice-perp +(defun choose-nice-perp ((arg0 vector)) + (if (< (+ (square (-> arg0 x)) (square (-> arg0 z))) 0.01) + *x-vector* + *up-vector* + ) + ) + +;; definition for method 12 of type lightning-bolt +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +;; WARN: Function (method 12 lightning-bolt) has a return type of none, but the expression builder found a return statement. +(defmethod lightning-bolt-method-12 ((this lightning-bolt)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (when (= (-> this fade-mode) 3) + (set! (-> this strip1 num-verts) (the-as uint 0)) + (set! (-> this strip2 num-verts) (the-as uint 0)) + (return 0) + ) + (let ((sv-48 0) + (sv-56 (the-as float 0.0)) + (sv-60 (new 'stack-no-clear 'vector)) + (sv-64 (new 'stack-no-clear 'matrix)) + ) + (lightning-bolt-method-22 this) + (set! (-> sv-60 x) 0.0) + (set! (-> sv-60 y) 0.0) + (dotimes (s5-0 (-> this num-active-spans)) + (let ((sv-96 (-> this spans data s5-0)) + (sv-100 (-> this spans-internal data s5-0)) + (sv-104 (new 'stack-no-clear 'vector)) + ) + (let ((sv-224 (new 'stack-no-clear 'matrix)) + (sv-228 (new 'stack-no-clear 'vector)) + (sv-232 (new 'stack-no-clear 'vector)) + (sv-236 (the-as float 0.0)) + ) + (let ((sv-240 + (vector-! + (new 'stack-no-clear 'vector) + (-> this span-pts-start data (+ s5-0 1)) + (-> this span-pts-start data s5-0) + ) + ) + (sv-244 (the float (-> sv-100 index))) + ) + (vector-normalize! sv-240 1.0) + (set! sv-236 + (vector-vector-distance (-> this span-pts-start data s5-0) (-> this span-pts-start data (+ s5-0 1))) + ) + (matrix<-vector-yz2! sv-224 sv-240 (choose-nice-perp sv-240)) + (let ((f30-0 (-> sv-96 random-offset-size-start))) + (lightning-bolt-method-19 this sv-104 sv-48 (+ sv-48 1) sv-224 f30-0 sv-236) + (set! (-> sv-232 quad) (-> this current-points data sv-48 quad)) + (set! (-> sv-232 x) (* (-> sv-232 x) f30-0)) + (set! (-> sv-232 y) (* (-> sv-232 y) f30-0)) + ) + (set! (-> sv-232 z) (- (-> sv-232 z) sv-244)) + (set! (-> sv-232 z) (* (-> sv-232 z) sv-236)) + (vector-rotate*! sv-228 sv-232 sv-224) + (let ((a0-21 sv-228)) + (let ((v1-43 sv-228) + (a1-13 (-> this span-pts-start data s5-0)) + ) + (.lvf vf4 (&-> v1-43 quad)) + (.lvf vf5 (&-> a1-13 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-21 quad) vf6) + ) + (lightning-bolt-method-16 this sv-228 (vector-length sv-232) sv-56 sv-60 (the-as matrix sv-104)) + (let ((sv-248 (-> sv-96 inner-random-offset-size))) + (dotimes (s4-1 (-> sv-100 num-inner-points)) + (let ((sv-256 (+ sv-48 1 s4-1))) + (lightning-bolt-method-19 this sv-104 (+ sv-256 -1) sv-256 sv-224 sv-248 sv-236) + (set! (-> sv-232 quad) (-> this current-points data sv-256 quad)) + ) + (set! (-> sv-232 x) (* (-> sv-232 x) sv-248)) + (set! (-> sv-232 y) (* (-> sv-232 y) sv-248)) + (set! (-> sv-232 z) (- (-> sv-232 z) sv-244)) + (set! (-> sv-232 z) (* (-> sv-232 z) sv-236)) + (vector-rotate*! sv-228 sv-232 sv-224) + (let ((a0-30 sv-228)) + (let ((v1-63 sv-228) + (a1-20 (-> this span-pts-start data s5-0)) + ) + (.lvf vf4 (&-> v1-63 quad)) + (.lvf vf5 (&-> a1-20 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-30 quad) vf6) + ) + (lightning-bolt-method-16 this sv-228 (vector-length sv-232) sv-56 sv-60 (the-as matrix sv-104)) + ) + ) + ) + (+! sv-56 sv-236) + ) + (set! sv-48 (+ (-> sv-100 num-inner-points) 1 sv-48)) + (set! (-> sv-64 rvec quad) (-> sv-104 quad)) + ) + ) + (let* ((s5-1 (-> this num-active-spans)) + (sv-288 (-> this spans data s5-1)) + (sv-292 (-> this spans-internal data s5-1)) + ) + (let ((sv-296 (new 'stack-no-clear 'vector))) + ) + (let ((sv-416 (new 'stack-no-clear 'matrix)) + (sv-420 (new 'stack-no-clear 'vector)) + ) + (let ((sv-424 (new 'stack-no-clear 'vector))) + (let ((sv-428 (vector-! + (new 'stack-no-clear 'vector) + (-> this span-pts-start data s5-1) + (-> this span-pts-start data (+ s5-1 -1)) + ) + ) + (sv-432 (the float (-> sv-292 index))) + ) + (vector-normalize! sv-428 1.0) + (matrix<-vector-yz2! sv-416 sv-428 (choose-nice-perp sv-428)) + (let ((f0-33 (-> sv-288 random-offset-size-start))) + (set! (-> sv-424 quad) (-> this current-points data sv-48 quad)) + (set! (-> sv-424 x) (* (-> sv-424 x) f0-33)) + (set! (-> sv-424 y) (* (-> sv-424 y) f0-33)) + ) + (set! (-> sv-424 z) (- (-> sv-424 z) sv-432)) + ) + (vector-rotate*! sv-420 sv-424 sv-416) + ) + (let ((a0-49 sv-420)) + (let ((v1-102 sv-420) + (a1-33 (-> this span-pts-start data s5-1)) + ) + (.lvf vf4 (&-> v1-102 quad)) + (.lvf vf5 (&-> a1-33 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a0-49 quad) vf6) + ) + (lightning-bolt-method-16 this sv-420 0.0 sv-56 sv-60 sv-64) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for method 7 of type lightning-bolt +(defmethod relocate ((this lightning-bolt) (offset int)) + (if (nonzero? (-> this spans)) + (&+! (-> this spans) offset) + ) + (if (nonzero? (-> this strip1)) + (&+! (-> this strip1) offset) + ) + (if (nonzero? (-> this strip2)) + (&+! (-> this strip2) offset) + ) + (dotimes (v1-12 (+ (-> this num-spans) -1)) + ) + (if (nonzero? (-> this spans-internal)) + (&+! (-> this spans-internal) offset) + ) + (if (nonzero? (-> this current-points)) + (&+! (-> this current-points) offset) + ) + (if (nonzero? (-> this desired-points)) + (&+! (-> this desired-points) offset) + ) + (if (nonzero? (-> this span-pts-start)) + (&+! (-> this span-pts-start) offset) + ) + (call-parent-method this offset) + ) + +;; definition for method 17 of type lightning-bolt +(defmethod lightning-bolt-method-17 ((this lightning-bolt) (arg0 uint) (arg1 float) (arg2 float) (arg3 curve2d-fast) (arg4 float)) + (if (not arg3) + (return 1.0) + ) + (let ((v1-2 arg0)) + (cond + ((zero? v1-2) + (evaluate arg3 (/ arg2 arg4) (loop-behavior use-default)) + ) + ((= v1-2 1) + (evaluate arg3 arg1 (loop-behavior use-default)) + ) + ((= v1-2 2) + (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-7 (the-as number (logior #x3f800000 v1-6))) + ) + (+ -1.0 (the-as float v1-7)) + ) + ) + (else + 1.0 + ) + ) + ) + ) + +;; definition for method 16 of type lightning-bolt +;; WARN: Return type mismatch int vs none. +(defmethod lightning-bolt-method-16 ((this lightning-bolt) (arg0 vector) (arg1 float) (arg2 float) (arg3 vector) (arg4 matrix)) + 0.0 + 0.0 + 0.0 + (let ((f28-0 (/ (the float (- (current-time) (the-as int (-> this last-generate-time)))) + (the float (-> this inner-point-travel-time)) + ) + ) + (f30-0 (+ arg2 arg1)) + ) + (math-camera-pos) + (let* ((s2-0 (-> this appearance)) + (f24-0 (* (lightning-bolt-method-17 + this + (-> s2-0 alpha-1-mode) + f28-0 + f30-0 + (-> s2-0 alpha-1-curve) + (-> s2-0 alpha-1-repeat-dist) + ) + (lightning-bolt-method-17 + this + (-> s2-0 alpha-2-mode) + f28-0 + f30-0 + (-> s2-0 alpha-2-curve) + (-> s2-0 alpha-2-repeat-dist) + ) + (-> s2-0 base-alpha) + (-> this current-fade-scalar) + ) + ) + (f22-0 (* (lightning-bolt-method-17 + this + (-> s2-0 width-mode) + f28-0 + f30-0 + (-> s2-0 width-curve) + (-> s2-0 width-repeat-dist) + ) + (-> this base-width) + ) + ) + (f0-14 (/ f30-0 (-> s2-0 uv-repeat-dist))) + (f28-1 (+ (- f0-14 (* (the float (the int (/ f0-14 6.0))) 6.0)) (-> this current-uv-shift))) + ) + (vector-normalize! (-> arg4 rvec) 1.0) + (let* ((a2-4 (-> (camera-matrix) uvec)) + (v1-13 (matrix-f-u-compose (new 'stack-no-clear 'matrix) (-> arg4 rvec) a2-4)) + (f26-1 6.0) + (sv-160 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 rvec) (/ f22-0 2))) + (sv-164 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 rvec) (/ f22-0 -2))) + (sv-168 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 uvec) (/ f22-0 2))) + (sv-172 (vector+float*! (new 'stack-no-clear 'vector) arg0 (-> v1-13 uvec) (/ f22-0 -2))) + (sv-176 (the-as rgba (new 'stack-no-clear 'array 'rgba 1))) + ) + (set! sv-176 (copy-and-set-field (-> this base-color) a (the int (* 128.0 f24-0)))) + (when (< f28-1 (-> arg3 x)) + (let ((s3-1 (new 'stack-no-clear 'vector)) + (s4-1 (new 'stack-no-clear 'vector)) + ) + (let ((f24-1 (/ (- (+ f26-1 f28-1) (-> arg3 x)) f26-1))) + (let ((a1-10 (+ (the-as uint (-> this strip1 data 0 pos)) (* (+ (-> this strip1 num-verts) -2) 32))) + (s2-1 (+ (the-as uint (-> this strip1 data 0 pos)) (* (+ (-> this strip1 num-verts) -1) 32))) + ) + (vector-lerp! s3-1 (the-as vector a1-10) sv-160 f24-1) + (vector-lerp! s4-1 (the-as vector s2-1) sv-164 f24-1) + ) + (lightning-bolt-method-18 this (-> this strip1) s3-1 sv-176 0.0 f26-1) + (lightning-bolt-method-18 this (-> this strip1) s4-1 sv-176 1.0 f26-1) + (lightning-bolt-method-18 this (-> this strip1) s3-1 sv-176 0.0 0.0) + (lightning-bolt-method-18 this (-> this strip1) s4-1 sv-176 1.0 0.0) + (let ((a1-16 (+ (the-as uint (-> this strip2 data 0 pos)) (* (+ (-> this strip2 num-verts) -2) 32))) + (s2-2 (+ (the-as uint (-> this strip2 data 0 pos)) (* (+ (-> this strip2 num-verts) -1) 32))) + ) + (vector-lerp! s3-1 (the-as vector a1-16) sv-168 f24-1) + (vector-lerp! s4-1 (the-as vector s2-2) sv-172 f24-1) + ) + ) + (lightning-bolt-method-18 this (-> this strip2) s3-1 sv-176 1.0 f26-1) + (lightning-bolt-method-18 this (-> this strip2) s4-1 sv-176 0.0 f26-1) + (lightning-bolt-method-18 this (-> this strip2) s3-1 sv-176 1.0 0.0) + (lightning-bolt-method-18 this (-> this strip2) s4-1 sv-176 0.0 0.0) + ) + ) + (lightning-bolt-method-18 this (-> this strip1) sv-160 sv-176 0.0 f28-1) + (lightning-bolt-method-18 this (-> this strip1) sv-164 sv-176 1.0 f28-1) + (lightning-bolt-method-18 this (-> this strip2) sv-168 sv-176 1.0 f28-1) + (lightning-bolt-method-18 this (-> this strip2) sv-172 sv-176 0.0 f28-1) + ) + (set! (-> arg3 y) f30-0) + (set! (-> arg3 x) f28-1) + ) + ) + 0 + (none) + ) + +;; definition for method 18 of type lightning-bolt +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod lightning-bolt-method-18 ((this lightning-bolt) (arg0 prim-strip) (arg1 vector) (arg2 rgba) (arg3 float) (arg4 float)) + (when (< (-> arg0 num-verts) (-> arg0 allocated-num-verts)) + (let ((v1-5 (-> arg0 data (-> arg0 num-verts)))) + (set! (-> v1-5 pos quad) (-> arg1 quad)) + (set! (-> v1-5 col) arg2) + (set! (-> v1-5 stq x) arg3) + (set! (-> v1-5 stq y) arg4) + ) + (+! (-> arg0 num-verts) 1) + ) + 0 + (none) + ) + +;; definition for function lightning-new-tracker-init-by-other +;; INFO: Used lq/sq +(defbehavior lightning-new-tracker-init-by-other lightning-new-tracker ((arg0 lightning-tracker-init-params)) + (set! (-> self bolt) (new 'process 'lightning-bolt)) + (init! (-> self bolt) 2 (+ (-> arg0 num-inner-points) 2) (-> arg0 appearance)) + (set! (-> self lifetime) (-> arg0 lifetime)) + (set! (-> self bolt span-pts-start data 0 quad) (-> arg0 start-pt quad)) + (set! (-> self bolt span-pts-start data 1 quad) (-> arg0 end-pt quad)) + (set! (-> self bolt spans-internal data 0 num-inner-points) (-> arg0 num-inner-points)) + (set! (-> self bolt spans data 0 inner-random-offset-size) (-> arg0 inner-random-offset-size)) + (set! (-> self bolt spans data 0 random-offset-size-start) (-> arg0 random-offset-size-start)) + (set! (-> self bolt inner-point-travel-time) (the-as uint 5)) + (set! (-> self bolt snap-inner-points?) #t) + (set! (-> self bolt appearance) (-> arg0 appearance)) + (set! (-> self bolt fractal-reduction) 0.4) + (set! (-> self bolt generate-mode) (the-as uint 1)) + (go-virtual active) + ) + +;; definition for function create-lightning-tracker-new +;; WARN: Return type mismatch process vs lightning-new-tracker. +(defun create-lightning-tracker-new ((arg0 lightning-tracker-init-params)) + (let ((v1-1 (process-spawn lightning-new-tracker arg0 :name "lightning-new-tracker" :stack-size #x8000))) + (if v1-1 + (return (the-as lightning-new-tracker (-> v1-1 0))) + ) + ) + (the-as lightning-new-tracker #f) + ) + +;; definition for method 7 of type lightning-new-tracker +(defmethod relocate ((this lightning-new-tracker) (offset int)) + (if (nonzero? (-> this bolt)) + (&+! (-> this bolt) offset) + ) + (call-parent-method this offset) + ) + +;; failed to figure out what this is: +(defstate active (lightning-new-tracker) + :virtual #t + :enter (behavior () + (set! (-> self state-time) (the-as uint (current-time))) + (set! (-> self bolt num-active-spans) 1) + (lightning-bolt-method-13 (-> self bolt) 0) + ) + :trans (behavior () + (if (time-elapsed? (the-as int (-> self state-time)) (the-as time-frame (-> self lifetime))) + (go-virtual die) + ) + (lightning-bolt-method-11 (-> self bolt)) + (lightning-bolt-method-12 (-> self bolt)) + ) + :code sleep-code + ) + +;; failed to figure out what this is: +(defstate die (lightning-new-tracker) + :virtual #t + :enter (behavior () + (lightning-bolt-method-13 (-> self bolt) 2) + (set! (-> self state-time) (the-as uint (current-time))) + ) + :trans (behavior () + (lightning-bolt-method-11 (-> self bolt)) + (lightning-bolt-method-12 (-> self bolt)) + ) + :code (behavior () + (until (= (lightning-bolt-method-14 (-> self bolt)) 3) + (suspend) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/jakx/engine/gfx/hw/display_REF.gc new file mode 100644 index 0000000000..06d77c627c --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/hw/display_REF.gc @@ -0,0 +1,453 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function get-current-time +(defun get-current-time () + (-> *display* base-clock frame-counter) + ) + +;; definition for function get-integral-current-time +(defun get-integral-current-time () + (-> *display* base-clock integral-frame-counter) + ) + +;; definition for function get-real-current-time +(defun get-real-current-time () + (-> *display* real-clock frame-counter) + ) + +;; definition for method 9 of type display +(defmethod set-time-ratios ((this display) (arg0 float)) + (set! (-> this dog-ratio) (fmin 4.0 arg0)) + (case (get-video-mode) + (('pal) + (set! (-> this time-factor) 6.0) + ) + (else + (set! (-> this time-factor) 5.0) + ) + ) + (-> this dog-ratio) + ) + +;; definition for function set-display +(defun set-display ((arg0 display)) + "Allocate and initialize clocks for the display." + (dotimes (s5-0 22) + (set! (-> arg0 clock s5-0) (new 'global 'clock s5-0)) + ) + (set! (-> arg0 base-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 game-clock mask) (process-mask freeze pause menu progress movie)) + (set! (-> arg0 total-game-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 frame-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 target-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 camera-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 entity-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 part-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 bg-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user0-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user1-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user2-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user3-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user4-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user5-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user6-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user7-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user8-clock mask) (process-mask freeze pause menu progress)) + (set! (-> arg0 user9-clock mask) (process-mask freeze pause menu progress)) + (set! (-> *listener-process* clock) (-> arg0 real-clock)) + (set! (-> *active-pool* clock) (-> arg0 real-clock)) + (set! (-> *display-pool* clock) (-> arg0 real-clock)) + (set! (-> *mid-pool* clock) (-> arg0 real-clock)) + (+! (-> arg0 real-clock ref-count) 4) + (set! (-> *camera-pool* clock) (-> arg0 camera-clock)) + (+! (-> arg0 camera-clock ref-count) 1) + (set! (-> *target-pool* clock) (-> arg0 target-clock)) + (+! (-> arg0 target-clock ref-count) 1) + (set! (-> *pusher-pool* clock) (-> arg0 entity-clock)) + (set! (-> *locker-pool* clock) (-> arg0 entity-clock)) + (set! (-> *entity-pool* clock) (-> arg0 entity-clock)) + (+! (-> arg0 entity-clock ref-count) 3) + (set! (-> *bg-pool* clock) (-> arg0 bg-clock)) + (+! (-> arg0 bg-clock ref-count) 1) + (set! (-> *default-pool* clock) (-> arg0 base-clock)) + (+! (-> arg0 base-clock ref-count) 1) + (+! (-> *kernel-clock* ref-count) -10) + arg0 + ) + +;; definition for function allocate-dma-buffers +(defun allocate-dma-buffers ((arg0 display)) + "Allocate the main, debug, and calc dma buffers." + (when (zero? (-> arg0 frames 0 calc-buf)) + (set! (-> arg0 frames 0 calc-buf) (new 'global 'dma-buffer #x4e20)) + (set! (-> arg0 frames 1 calc-buf) (new 'global 'dma-buffer #x4e20)) + (set! (-> arg0 frames 0 global-buf) (new 'global 'dma-buffer #x180000)) + (set! (-> arg0 frames 1 global-buf) (new 'global 'dma-buffer #x180000)) + (set! (-> arg0 default-end-buffer) (new 'global 'dma-buffer 224)) + (set! (-> arg0 init-buffer-zbuf-on) (new 'global 'dma-buffer 224)) + (set! (-> arg0 init-buffer-zbuf-off) (new 'global 'dma-buffer 224)) + (when *debug-segment* + (set! (-> arg0 frames 0 debug-buf) (new 'debug 'dma-buffer #x800000)) + (set! (-> arg0 frames 1 debug-buf) (new 'debug 'dma-buffer #x800000)) + ) + (set! (-> arg0 dma-buffer-overflow) #f) + (set! (-> arg0 mem-reserve-size) (the-as uint 0)) + 0 + ) + arg0 + ) + +;; definition for function draw-sprite2d-xy +;; WARN: Return type mismatch pointer vs none. +(defun draw-sprite2d-xy ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 rgba) (arg6 int)) + (let* ((t2-2 (new 'stack 'draw-context arg1 arg2 arg3 arg4 arg5)) + (a0-3 (max 1792 (min 2304 (+ (-> t2-2 orgx) 1792)))) + (a3-3 (max 1840 (min 2256 (+ (-> t2-2 orgy) 1840)))) + (a1-6 (-> t2-2 width)) + (t1-2 (-> t2-2 height)) + (v1-6 (-> arg0 base)) + ) + (let* ((a2-2 arg0) + (t0-2 (the-as object (-> a2-2 base))) + ) + (set! (-> (the-as dma-packet t0-2) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet t0-2) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet t0-2) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a2-2 base) (&+ (the-as pointer t0-2) 16)) + ) + (let* ((a2-3 arg0) + (t0-4 (the-as object (-> a2-3 base))) + ) + (set! (-> (the-as gs-gif-tag t0-4) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :flg (gif-flag reg-list) :nreg #x4) + ) + (set! (-> (the-as gs-gif-tag t0-4) regs) + (new 'static 'gif-tag-regs :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2) :regs3 (gif-reg-id xyzf2)) + ) + (set! (-> a2-3 base) (&+ (the-as pointer t0-4) 16)) + ) + (let* ((a2-4 arg0) + (t0-6 (-> a2-4 base)) + ) + (set! (-> (the-as (pointer gs-prim) t0-6) 0) (new 'static 'gs-prim :prim (gs-prim-type sprite) :abe #x1)) + (set! (-> (the-as (pointer gs-rgbaq) t0-6) 1) (the-as gs-rgbaq (-> t2-2 color 0))) + (set! (-> (the-as (pointer gs-xyzf) t0-6) 2) (new 'static 'gs-xyzf :x (* a0-3 16) :y (* a3-3 16) :z arg6)) + (set! (-> (the-as (pointer gs-xyzf) t0-6) 3) (new 'static 'gs-xyzf + :x (* (max 1792 (min 2304 (+ a0-3 a1-6))) 16) + :y (* (max 1840 (min 2256 (+ a3-3 t1-2))) 16) + :z arg6 + ) + ) + (set! (-> a2-4 base) (&+ t0-6 32)) + ) + (let ((a0-12 (/ (the-as int (+ (- -16 (the-as int v1-6)) (the-as int (-> arg0 base)))) 16))) + (cond + ((nonzero? a0-12) + (logior! (-> (the-as (pointer uint64) v1-6) 0) (shr (shl a0-12 48) 48)) + (logior! (-> (the-as (pointer uint64) v1-6) 1) (shl (shr (shl a0-12 48) 48) 32)) + ) + (else + (set! (-> arg0 base) v1-6) + ) + ) + ) + ) + (none) + ) + +;; definition for function draw-sprite2d-xy-absolute +;; WARN: Return type mismatch pointer vs none. +(defun draw-sprite2d-xy-absolute ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 rgba) (arg6 int)) + (let ((a1-1 (+ arg1 1792)) + (a2-1 (+ arg2 1840)) + (v1-0 (-> arg0 base)) + ) + (let* ((t3-0 arg0) + (t4-0 (the-as object (-> t3-0 base))) + ) + (set! (-> (the-as dma-packet t4-0) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet t4-0) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet t4-0) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> t3-0 base) (&+ (the-as pointer t4-0) 16)) + ) + (let* ((t3-1 arg0) + (t4-2 (the-as object (-> t3-1 base))) + ) + (set! (-> (the-as gs-gif-tag t4-2) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :flg (gif-flag reg-list) :nreg #x4) + ) + (set! (-> (the-as gs-gif-tag t4-2) regs) + (new 'static 'gif-tag-regs :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2) :regs3 (gif-reg-id xyzf2)) + ) + (set! (-> t3-1 base) (&+ (the-as pointer t4-2) 16)) + ) + (let* ((t3-2 arg0) + (t4-4 (-> t3-2 base)) + ) + (set! (-> (the-as (pointer gs-prim) t4-4) 0) (new 'static 'gs-prim :prim (gs-prim-type sprite) :abe #x1)) + (set! (-> (the-as (pointer gs-rgbaq) t4-4) 1) (the-as gs-rgbaq arg5)) + (set! (-> (the-as (pointer gs-xyzf) t4-4) 2) (new 'static 'gs-xyzf :x (* a1-1 16) :y (* a2-1 16) :z arg6)) + (set! (-> (the-as (pointer gs-xyzf) t4-4) 3) + (new 'static 'gs-xyzf :x (* (+ a1-1 arg3) 16) :y (* (+ a2-1 arg4) 16) :z arg6) + ) + (set! (-> t3-2 base) (&+ t4-4 32)) + ) + (let ((a1-10 (/ (the-as int (+ (- -16 (the-as int v1-0)) (the-as int (-> arg0 base)))) 16))) + (cond + ((nonzero? a1-10) + (set! (-> (the-as (pointer uint64) v1-0) 0) + (logior (-> (the-as (pointer uint64) v1-0)) (shr (shl a1-10 48) 48)) + ) + (logior! (-> (the-as (pointer uint64) v1-0) 1) (shl (shr (shl a1-10 48) 48) 32)) + ) + (else + (set! (-> arg0 base) v1-0) + ) + ) + ) + ) + (none) + ) + +;; definition for function draw-quad2d +;; WARN: Return type mismatch pointer vs none. +(defun draw-quad2d ((arg0 dma-buffer) (arg1 draw-context)) + (let ((a3-1 (max 1792 (min 2304 (+ (-> arg1 orgx) 1792)))) + (a2-3 (max 1840 (min 2256 (+ (-> arg1 orgy) 1840)))) + (t3-0 (-> arg1 width)) + (t0-2 (-> arg1 height)) + (v1-4 (-> arg0 base)) + ) + (let* ((t1-0 arg0) + (t2-0 (the-as object (-> t1-0 base))) + ) + (set! (-> (the-as dma-packet t2-0) dma) (new 'static 'dma-tag :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet t2-0) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet t2-0) vif1) (new 'static 'vif-tag :cmd (vif-cmd direct) :msk #x1)) + (set! (-> t1-0 base) (&+ (the-as pointer t2-0) 16)) + ) + (let* ((t1-1 arg0) + (t2-2 (the-as object (-> t1-1 base))) + ) + (set! (-> (the-as gs-gif-tag t2-2) tag) + (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :flg (gif-flag reg-list) :nreg #x9) + ) + (set! (-> (the-as gs-gif-tag t2-2) regs) (new 'static 'gif-tag-regs + :regs1 (gif-reg-id rgbaq) + :regs2 (gif-reg-id xyzf2) + :regs3 (gif-reg-id rgbaq) + :regs4 (gif-reg-id xyzf2) + :regs5 (gif-reg-id rgbaq) + :regs6 (gif-reg-id xyzf2) + :regs7 (gif-reg-id rgbaq) + :regs8 (gif-reg-id xyzf2) + ) + ) + (set! (-> t1-1 base) (&+ (the-as pointer t2-2) 16)) + ) + (let* ((t1-2 arg0) + (t2-4 (-> t1-2 base)) + ) + (set! (-> (the-as (pointer gs-prim) t2-4) 0) + (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :abe #x1) + ) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 1) (the-as gs-rgbaq (-> arg1 color 0))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 2) (new 'static 'gs-xyzf :y (* a2-3 16) :x (* a3-1 16))) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 3) (the-as gs-rgbaq (-> arg1 color 1))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 4) + (new 'static 'gs-xyzf :y (* a2-3 16) :x (* (max 1792 (min 2304 (+ a3-1 t3-0))) 16)) + ) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 5) (the-as gs-rgbaq (-> arg1 color 2))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 6) + (new 'static 'gs-xyzf :y (* (max 1840 (min 2256 (+ a2-3 t0-2))) 16) :x (* a3-1 16)) + ) + (set! (-> (the-as (pointer gs-rgbaq) t2-4) 7) (the-as gs-rgbaq (-> arg1 color 3))) + (set! (-> (the-as (pointer gs-xyzf) t2-4) 8) (new 'static 'gs-xyzf + :y (* (max 1840 (min 2256 (+ a2-3 t0-2))) 16) + :x (* (max 1792 (min 2304 (+ a3-1 t3-0))) 16) + ) + ) + (set! (-> (the-as (pointer uint64) t2-4) 9) (the-as uint 0)) + (set! (-> t1-2 base) (&+ t2-4 80)) + ) + (let ((a1-11 (/ (the-as int (+ (- -16 (the-as int v1-4)) (the-as int (-> arg0 base)))) 16))) + (cond + ((nonzero? a1-11) + (set! (-> (the-as (pointer uint64) v1-4) 0) + (logior (-> (the-as (pointer uint64) v1-4)) (shr (shl a1-11 48) 48)) + ) + (logior! (-> (the-as (pointer uint64) v1-4) 1) (shl (shr (shl a1-11 48) 48) 32)) + ) + (else + (set! (-> arg0 base) v1-4) + ) + ) + ) + ) + (none) + ) + +;; definition for function screen-gradient +(defun screen-gradient ((arg0 dma-buffer) (arg1 rgba) (arg2 rgba) (arg3 rgba) (arg4 rgba)) + (let ((a1-2 (new 'stack 'draw-context 0 0 512 (-> *viewport-array* default screen-sy) (new 'static 'rgba)))) + (set! (-> a1-2 color 0) arg1) + (set! (-> a1-2 color 1) arg2) + (set! (-> a1-2 color 2) arg3) + (set! (-> a1-2 color 3) arg4) + (draw-quad2d arg0 a1-2) + ) + (none) + ) + +;; definition for function vif1-handler-debug +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for function vif1-handler +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; failed to figure out what this is: +(install-handler 5 (if *debug-segment* + vif1-handler-debug + vif1-handler + ) + ) + +;; definition for function vblank-handler +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for function set-display-gs-state +(defun set-display-gs-state ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 int)) + (let* ((t2-0 (/ (+ arg2 63) 64)) + (v1-1 *viewport-array*) + (v1-2 (-> v1-1 data (-> v1-1 current-viewport-index))) + (t3-3 *display*) + (t4-1 144) + ) + (+! (-> t3-3 mem-reserve-size) t4-1) + (when (not (-> t3-3 dma-buffer-overflow)) + (let ((t6-0 (-> t3-3 frames (-> t3-3 on-screen) global-buf))) + (if (< (-> t6-0 real-buffer-end) (the-as int (&+ (-> t6-0 base) t4-1))) + (set! (-> t3-3 dma-buffer-overflow) #t) + ) + ) + (if (not (-> t3-3 dma-buffer-overflow)) + (dma-buffer-add-gs-set-flusha arg0 + (scissor-1 (new 'static 'gs-scissor :scax1 (+ arg2 -1) :scay1 (+ arg3 -1))) + (xyoffset-1 (new 'static 'gs-xy-offset)) + (frame-1 (new 'static 'gs-frame :fbp arg1 :fbw t2-0 :psm arg5 :fbmsk arg4)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest always))) + (texa (new 'static 'gs-texa :ta0 #x80 :ta1 #x80)) + (zbuf-1 (-> v1-2 zbuf-off)) + (texflush 0) + ) + ) + ) + ) + arg0 + ) + +;; definition for function set-display-gs-state-offset +(defun set-display-gs-state-offset ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 int) (arg6 int) (arg7 int)) + (let* ((t4-0 (/ (+ arg2 63) 64)) + (v1-1 *viewport-array*) + (v1-2 (-> v1-1 data (-> v1-1 current-viewport-index))) + (t5-3 *display*) + (t6-1 144) + ) + (+! (-> t5-3 mem-reserve-size) t6-1) + (when (not (-> t5-3 dma-buffer-overflow)) + (let ((t8-0 (-> t5-3 frames (-> t5-3 on-screen) global-buf))) + (if (< (-> t8-0 real-buffer-end) (the-as int (&+ (-> t8-0 base) t6-1))) + (set! (-> t5-3 dma-buffer-overflow) #t) + ) + ) + (if (not (-> t5-3 dma-buffer-overflow)) + (dma-buffer-add-gs-set-flusha arg0 + (scissor-1 (new 'static 'gs-scissor :scax1 (+ arg2 -1) :scay1 (+ arg3 -1))) + (xyoffset-1 (new 'static 'gs-xy-offset :ofx (* arg6 16) :ofy (* arg7 16))) + (frame-1 (new 'static 'gs-frame :fbp arg1 :fbw t4-0 :psm arg5 :fbmsk arg4)) + (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest always))) + (texa (new 'static 'gs-texa :ta0 #x80 :ta1 #x80)) + (zbuf-1 (-> v1-2 zbuf-off)) + (texflush 0) + ) + ) + ) + ) + arg0 + ) + +;; definition for function reset-display-gs-state +(defun reset-display-gs-state ((arg0 display) (arg1 dma-buffer)) + (let ((v1-0 *display*) + (a2-0 144) + ) + (+! (-> v1-0 mem-reserve-size) a2-0) + (when (not (-> v1-0 dma-buffer-overflow)) + (let ((t0-0 (-> v1-0 frames (-> v1-0 on-screen) global-buf))) + (if (< (-> t0-0 real-buffer-end) (the-as int (&+ (-> t0-0 base) a2-0))) + (set! (-> v1-0 dma-buffer-overflow) #t) + ) + ) + (when (not (-> v1-0 dma-buffer-overflow)) + (let* ((v1-2 *viewport-array*) + (v1-3 (-> v1-2 data (-> v1-2 current-viewport-index))) + ) + (let* ((a2-7 arg1) + (a3-11 (the-as object (-> a2-7 base))) + ) + (set! (-> (the-as dma-packet a3-11) dma) (new 'static 'dma-tag :qwc #x8 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a3-11) vif0) (new 'static 'vif-tag :cmd (vif-cmd flusha) :msk #x1)) + (set! (-> (the-as dma-packet a3-11) vif1) (new 'static 'vif-tag :imm #x8 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a2-7 base) (&+ (the-as pointer a3-11) 16)) + ) + (let* ((a2-8 arg1) + (a3-13 (-> a2-8 base)) + ) + (set! (-> (the-as (pointer uint64) a3-13) 0) (make-u128 0 (the-as uint #x7000000000008001))) + (set! (-> (the-as (pointer uint64) a3-13) 1) (the-as uint #xeeeeeeeeeeeeeeee)) + (set! (-> a2-8 base) (&+ a3-13 16)) + ) + (let ((a2-9 (-> arg1 base))) + (set! (-> (the-as (pointer uint64) a2-9) 0) (the-as uint #x19f000001ff0000)) + (set! (-> (the-as (pointer uint64) a2-9) 1) (the-as uint 64)) + (set! (-> (the-as (pointer uint64) a2-9) 2) (the-as uint #x730000007000)) + (set! (-> (the-as (pointer uint64) a2-9) 3) (the-as uint 24)) + (set! (-> (the-as (pointer uint64) a2-9) 4) (the-as uint #x80196)) + (set! (-> (the-as (pointer uint64) a2-9) 5) (the-as uint 76)) + (set! (-> (the-as (pointer uint64) a2-9) 6) (the-as uint #x50000)) + (set! (-> (the-as (pointer uint64) a2-9) 7) (the-as uint 71)) + (set! (-> (the-as (pointer uint64) a2-9) 8) (the-as uint (shl 128 32))) + (set! (-> (the-as (pointer uint64) a2-9) 9) (the-as uint 59)) + (set! (-> (the-as (pointer uint64) a2-9) 10) (-> v1-3 zbuf-on)) + (set! (-> (the-as (pointer uint64) a2-9) 11) (the-as uint 78)) + (set! (-> (the-as (pointer uint64) a2-9) 12) (the-as uint 0)) + (set! (-> (the-as (pointer uint64) a2-9) 13) (the-as uint 63)) + (set! (-> arg1 base) (&+ a2-9 112)) + ) + ) + ) + ) + ) + arg0 + ) + +;; failed to figure out what this is: +(kmemopen global "dma-buffers") + +;; definition for symbol *vu0-dma-list*, type dma-buffer +(define *vu0-dma-list* (new 'global 'dma-buffer 4096)) + +;; definition for symbol *display*, type display +(define *display* (new 'global 'display 0 512 416 2 49)) + +;; failed to figure out what this is: +(allocate-dma-buffers *display*) + +;; failed to figure out what this is: +(kmemclose) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/jakx/engine/gfx/hw/gs_REF.gc index a3056830fc..c31b34d8e6 100644 --- a/test/decompiler/reference/jakx/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/jakx/engine/gfx/hw/gs_REF.gc @@ -295,15 +295,51 @@ pixel is performed." ) ) -;; type gs-rgbaq is defined here, but it is unknown to the decompiler +;; definition of type gs-rgbaq +(deftype gs-rgbaq (uint64) + "The GS's RGBAQ register sets the RGBA value of the vertex and the Q value of the normalized +texture coordinates." + ((r uint8 :offset 0 :size 8) + (g uint8 :offset 8 :size 8) + (b uint8 :offset 16 :size 8) + (a uint8 :offset 24 :size 8) + (q float :offset 32 :size 32) + ) + ) -;; type gs-xyz is defined here, but it is unknown to the decompiler +;; definition of type gs-xyz +(deftype gs-xyz (uint64) + ((x uint16 :offset 0 :size 16) + (y uint16 :offset 16 :size 16) + (z uint32 :offset 32 :size 32) + ) + ) -;; type gs-uv is defined here, but it is unknown to the decompiler +;; definition of type gs-uv +(deftype gs-uv (uint64) + "The GS's UV register specifies the texel coordinate (UV) values of the vertex." + ((u uint16 :offset 0 :size 16) + (v uint16 :offset 16 :size 16) + ) + ) -;; type gs-st is defined here, but it is unknown to the decompiler +;; definition of type gs-st +(deftype gs-st (uint64) + "The GS's ST register sets the S and T values of the vertex texture coordinates. +The value Q is specified by the RGBAQ register." + ((s float :offset 0 :size 32) + (t float :offset 32 :size 32) + ) + ) -;; type gs-xyzf is defined here, but it is unknown to the decompiler +;; definition of type gs-xyzf +(deftype gs-xyzf (uint64) + ((x uint16 :offset 0 :size 16) + (y uint16 :offset 16 :size 16) + (z uint32 :offset 32 :size 24) + (f uint8 :offset 56 :size 8) + ) + ) ;; definition of type gs-adcmd (deftype gs-adcmd (structure) diff --git a/test/decompiler/reference/jakx/engine/gfx/mood/mood_REF.gc b/test/decompiler/reference/jakx/engine/gfx/mood/mood_REF.gc new file mode 100644 index 0000000000..84f095161a --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/mood/mood_REF.gc @@ -0,0 +1,2081 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function set-movie-time! +;; WARN: Return type mismatch int vs none. +(defun set-movie-time! ((arg0 int) (arg1 int) (arg2 time-of-day-palette-id)) + (set! (-> *time-of-day-context* mode) arg2) + (send-event (ppointer->process *time-of-day*) 'change 'ratio 0.0) + (send-event (ppointer->process *time-of-day*) 'change 'hour arg0) + (send-event (ppointer->process *time-of-day*) 'change 'minutes arg1) + (send-event (ppointer->process *time-of-day*) 'change 'seconds 0) + (send-event (ppointer->process *time-of-day*) 'change 'frames 0) + 0 + (none) + ) + +;; definition for function set-movie-fog! +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun set-movie-fog! ((arg0 vector) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + (set! (-> *time-of-day-context* override-enable) (the-as basic #t)) + (dotimes (v1-1 8) + (let ((t1-4 (-> *override-mood-fog-table* data v1-1))) + (set! (-> t1-4 fog-color quad) (-> arg0 quad)) + (set! (-> t1-4 fog-dists x) arg1) + (set! (-> t1-4 fog-dists y) arg2) + (set! (-> t1-4 fog-dists w) arg3) + (set! (-> t1-4 fog-dists z) arg4) + ) + ) + 0 + (none) + ) + +;; definition for function set-movie-color! +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun set-movie-color! ((arg0 vector) (arg1 vector)) + (set! (-> *time-of-day-context* override-enable) (the-as basic #t)) + (dotimes (v1-1 8) + (let ((a2-3 (-> *override-mood-color-table* data v1-1))) + (set! (-> a2-3 lgt-color quad) (-> arg0 quad)) + (set! (-> a2-3 amb-color quad) (-> arg1 quad)) + ) + ) + 0 + (none) + ) + +;; definition for function palette-select-special +;; INFO: Used lq/sq +(defun palette-select-special ((arg0 mood-context-core3)) + (dotimes (v1-0 8) + (cond + ((logtest? (-> *time-of-day-context* mode) (ash 16 v1-0)) + (if (-> *time-of-day-context* override-enable) + (set! (-> arg0 times v1-0 quad) (-> *time-of-day-context* times v1-0 quad)) + (set! (-> arg0 times v1-0 w) 1.0) + ) + ) + (else + (set! (-> arg0 times v1-0 w) 0.0) + ) + ) + ) + #f + ) + +;; definition for function clear-mood-times +(defun clear-mood-times ((arg0 mood-context)) + (dotimes (v1-0 8) + (set! (-> arg0 times v1-0 w) 0.0) + ) + #f + ) + +;; definition for function update-mood-itimes +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun update-mood-itimes ((arg0 mood-context)) + (local-vars + (v1-0 uint128) + (v1-1 uint128) + (v1-2 uint128) + (v1-3 uint128) + (a1-0 uint128) + (a1-1 uint128) + (a1-2 uint128) + (a1-3 uint128) + (a2-0 uint128) + (a2-1 uint128) + (a3-0 uint128) + (a3-1 uint128) + (t0-0 uint128) + (t0-1 uint128) + (t1-0 uint128) + (t1-1 uint128) + (t2-0 uint128) + (t2-1 uint128) + (t3-0 uint128) + (t3-1 uint128) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + ) + (nop!) + (nop!) + (.lvf vf1 (&-> arg0 times 0 quad)) + (nop!) + (.lvf vf2 (&-> arg0 times 1 quad)) + (.mul.w.vf.xyz vf1 vf1 vf1) + (.lvf vf3 (&-> arg0 times 2 quad)) + (.mul.w.vf.xyz vf2 vf2 vf2) + (.lvf vf4 (&-> arg0 times 3 quad)) + (.mul.w.vf.xyz vf3 vf3 vf3) + (.lvf vf5 (&-> arg0 times 4 quad)) + (.mul.w.vf.xyz vf4 vf4 vf4) + (.lvf vf6 (&-> arg0 times 5 quad)) + (.mul.w.vf.xyz vf5 vf5 vf5) + (.lvf vf7 (&-> arg0 times 6 quad)) + (.mul.w.vf.xyz vf6 vf6 vf6) + (.lvf vf8 (&-> arg0 times 7 quad)) + (.mul.w.vf.xyz vf7 vf7 vf7) + (nop!) + (.mul.w.vf.xyz vf8 vf8 vf8) + (nop!) + (vftoi12.xyzw vf1 vf1) + (nop!) + (vftoi12.xyzw vf2 vf2) + (nop!) + (vftoi12.xyzw vf3 vf3) + (nop!) + (vftoi12.xyzw vf4 vf4) + (nop!) + (vftoi12.xyzw vf5 vf5) + (nop!) + (vftoi12.xyzw vf6 vf6) + (nop!) + (vftoi12.xyzw vf7 vf7) + (nop!) + (vftoi12.xyzw vf8 vf8) + (nop!) + (.mov v1-0 vf1) + (nop!) + (.mov a1-0 vf2) + (nop!) + (.mov a2-0 vf3) + (.pw.sra v1-1 v1-0 6) + (.mov a3-0 vf4) + (.pw.sra a1-1 a1-0 6) + (.mov t0-0 vf5) + (.pw.sra a2-1 a2-0 6) + (.mov t1-0 vf6) + (.pw.sra a3-1 a3-0 6) + (.mov t2-0 vf7) + (.pw.sra t0-1 t0-0 6) + (.mov t3-0 vf8) + (.pw.sra t1-1 t1-0 6) + (.pw.sra t2-1 t2-0 6) + (nop!) + (.pw.sra t3-1 t3-0 6) + (nop!) + (.ppach v1-2 a1-1 v1-1) + (nop!) + (.ppach a1-2 a3-1 a2-1) + (set! (-> arg0 itimes 0 quad) v1-2) + (.ppach v1-3 t1-1 t0-1) + (set! (-> arg0 itimes 1 quad) a1-2) + (.ppach a1-3 t3-1 t2-1) + (set! (-> arg0 itimes 2 quad) v1-3) + (nop!) + (set! (-> arg0 itimes 3 quad) a1-3) + 0 + (none) + ) + ) + +;; definition for function update-mood-direction +;; INFO: Used lq/sq +;; ERROR: Expression building failed: In update-mood-direction: Failed to match non-power of two case: t3-14 +(defun update-mood-direction ((arg0 mood-context-core3) (arg1 mood-table) (arg2 float)) + (local-vars + (v0-0 pointer) + (v0-1 float) + (v1-0 mood-channel-group) + (v1-3 int) + (v1-4 float) + (v1-5 float) + (v1-6 float) + (v1-7 symbol) + (v1-8 symbol) + (v1-9 float) + (v1-12 float) + (v1-13 symbol) + (v1-14 symbol) + (v1-15 float) + (v1-17 float) + (v1-19 float) + (v1-20 symbol) + (v1-21 symbol) + (v1-22 float) + (v1-24 float) + (v1-26 light-group) + (v1-27 light-group) + (v1-28 light-group) + (v1-29 light-group) + (v1-30 light-group) + (v1-31 light-group) + (a0-1 light-group) + (a1-1 int) + (a1-2 float) + (a1-3 (inline-array light-group)) + (a2-1 mood-direction-table) + (a2-2 int) + (a3-0 int) + (t0-0 int) + (t0-1 int) + (t1-0 int) + (t2-0 light-group) + (t2-1 float) + (t2-2 int) + (t3-7 int) + (t3-8 int) + (t3-9 light) + (t3-10 int) + (t3-11 int) + (t3-12 int) + (t3-13 light-group) + (t3-14 int) + (t3-15 rgbaf) + (t3-16 int) + (t3-17 int) + (t3-18 int) + (t3-19 int) + (t4-5 int) + (t4-6 int) + (t4-7 light) + (t4-8 int) + (t4-9 int) + (t4-10 light) + (t4-11 int) + (t4-12 int) + (t4-13 int) + (t4-14 int) + (t4-15 vector) + (t4-16 uint128) + (t4-17 int) + (t4-18 int) + (t4-19 int) + (t4-20 int) + (t4-21 int) + (t4-22 vector) + (t4-23 uint128) + (t9-0 (function pointer pointer int pointer)) + (f0-0 float) + (f0-1 int) + (f0-2 float) + (f0-3 float) + (f0-4 float) + (f0-5 float) + (f1-0 int) + (f1-1 float) + (f1-2 float) + (f1-3 float) + (f1-4 float) + (f1-5 float) + (f1-6 float) + (f1-7 float) + (f1-8 float) + (f1-9 float) + (f1-10 float) + (f1-11 float) + (f1-12 float) + (f1-13 float) + (f2-0 float) + (f2-1 float) + (f2-2 float) + (f2-3 float) + (f2-6 float) + (f2-7 float) + (f2-8 float) + (f2-9 float) + (f2-10 float) + (f2-11 float) + (f2-12 float) + (f2-13 float) + (f2-14 float) + (f2-15 float) + (f2-16 float) + (f3-3 float) + (f3-4 float) + (f3-5 float) + (f3-6 float) + (f3-7 float) + (f3-8 float) + (f3-9 float) + (f3-10 float) + (sv-16 light-group) + ) + (cond + ((begin + (set! v1-0 (-> arg1 mood-channel-group)) + (set! a2-1 (-> arg1 mood-direction-table)) + (set! f0-0 arg2) + (set! f0-1 (the int arg2)) + (set! a3-0 (the int arg2)) + (set! a1-1 (+ a3-0 1)) + (set! t0-0 24) + (set! t0-1 (mod (+ a3-0 1) 24)) + (set! f0-2 arg2) + (set! f1-0 (gpr->fpr a3-0)) + (set! f1-1 (the float a3-0)) + (set! f0-3 (- arg2 (the float a3-0))) + (set! a1-2 1.0) + (set! f1-2 1.0) + (set! f1-3 (- 1.0 f0-3)) + (set! t1-0 0) + (set! a1-3 (-> arg0 light-group)) + (set! t2-0 (-> arg0 light-group 1)) + (set! sv-16 t2-0) + (set! t2-1 1.0) + (set! f2-0 1.0) + (set! (-> a1-3 0 ambi extra x) f2-0) + (set! f2-1 0.0) + (set! (-> a1-3 0 dir0 extra x) f2-1) + (set! f2-2 0.0) + (set! (-> a1-3 0 dir1 extra x) f2-2) + (set! f2-3 0.0) + (set! (-> a1-3 0 dir2 extra x) f2-3) + (set! t2-2 0) + (while (<.si t2-2 4) + (when (!= f2-6 0.0) + (set! t3-7 48) + (set! t3-8 (* 48 t1-0)) + (set! t3-9 (-> a1-3 0 lights t1-0)) + (set! (-> a1-3 0 lights t1-0 extra x) f2-6) + (set! t3-10 2) + (set! t3-11 (ash 2 t2-2)) + (set! t4-5 48) + (set! t4-6 (* 48 t1-0)) + (set! t4-7 (-> a1-3 0 lights t1-0)) + (set! (-> a1-3 0 lights t1-0 mask) (the-as uint t3-11)) + (set! t3-12 (+ t2-2 1)) + (set! t4-8 48) + (set! t4-9 (* 48 t1-0)) + (set! t4-10 (-> a1-3 0 lights t1-0)) + (set! (-> a1-3 0 lights t1-0 palette-index) t3-12) + (set! t3-13 (-> a1-3 0)) + (set! t4-11 48) + (set! t4-12 (* 48 t1-0)) + (set! t3-14 (+ (the-as uint (-> a1-3 0)) (* 48 t1-0))) + (set! t4-13 (* t2-2 16)) + (set! t4-14 (+ (* t2-2 16) 0)) + (set! t4-15 (-> a2-1 data t2-2)) + (set! t4-16 (-> a2-1 data t2-2 quad)) + (set! (dynamic-array-field-access t3-14 lights PLACEHOLDER direction quad) t4-16) + (set! t3-15 (-> a1-3 0 dir0 color)) + (set! t4-17 48) + (set! t4-18 (*.si t4-17 t1-0)) + (set! t3-16 (+ t3-15 t4-18)) + (set! t4-19 (+ t2-2 1)) + (set! t4-20 (sll t4-19 4)) + (set! t4-21 (+ t4-20 1648)) + (set! t4-22 (+ t4-21 arg0)) + (set! t4-23 (-> t4-22 quad)) + (set! (the-as (pointer uint128) (-> (the-as (pointer uint128) t3-16))) t4-23) + (set! t3-17 (+ t2-2 1)) + (set! t3-18 (sll t3-17 4)) + (set! t3-19 (+ arg0 t3-18)) + (set! (dynamic-array-field-access t3-19 times PLACEHOLDER w) f2-6) + (set! t1-0 (+ t1-0 1)) + (set! t3-20 t1-0) + ) + (set! t2-2 (+ t2-2 1)) + ) + (set! v1-3 1) + (set! (-> a1-3 0 ambi mask) (the-as uint v1-3)) + (set! (-> a1-3 0 ambi palette-index) 0) + (set! t9-0 mem-copy!) + (set! a0-1 sv-16) + (set! a2-2 192) + (call! a0-1 a1-3 a2-2) + (set! v1-4 1.0) + (set! f0-4 (gpr->fpr v1-4)) + (set! v1-5 1.1) + (set! f1-4 (gpr->fpr v1-5)) + (set! v1-6 6.0) + (set! f2-7 (gpr->fpr v1-6)) + (set! f3-3 (gpr->fpr arg2)) + (set! v1-7 (>=.s f2-7 f3-3)) + (or v1-7 + (begin (set! f2-8 (gpr->fpr arg2)) (set! v1-9 18.0) (set! f3-4 (gpr->fpr v1-9)) (set! v1-8 (>=.s f2-8 f3-4))) + ) + v1-8 + ) + (set! f0-4 f1-4) + (set! v1-11 (fpr->gpr f0-4)) + ) + ((begin + (and (begin + (set! v1-12 6.0) + (set! f2-9 (gpr->fpr v1-12)) + (set! f3-5 (gpr->fpr arg2)) + (set! v1-13 (<.s f2-9 f3-5)) + v1-13 + ) + (begin + (set! f2-10 (gpr->fpr arg2)) + (set! v1-15 7.0) + (set! f3-6 (gpr->fpr v1-15)) + (set! v1-14 (<.s f2-10 f3-6)) + ) + ) + v1-14 + ) + (set! f1-5 (-.s f1-4 f0-4)) + (set! v1-17 7.0) + (set! f2-11 (gpr->fpr v1-17)) + (set! f3-7 (gpr->fpr arg2)) + (set! f2-12 (-.s f2-11 f3-7)) + (set! f1-6 (*.s f1-5 f2-12)) + (set! f0-4 (+.s f0-4 f1-6)) + (set! v1-18 (fpr->gpr f0-4)) + ) + ((begin + (and (begin + (set! v1-19 17.0) + (set! f2-13 (gpr->fpr v1-19)) + (set! f3-8 (gpr->fpr arg2)) + (set! v1-20 (<.s f2-13 f3-8)) + v1-20 + ) + (begin + (set! f2-14 (gpr->fpr arg2)) + (set! v1-22 18.0) + (set! f3-9 (gpr->fpr v1-22)) + (set! v1-21 (<.s f2-14 f3-9)) + ) + ) + v1-21 + ) + (set! f1-7 (-.s f1-4 f0-4)) + (set! v1-24 -17.0) + (set! f2-15 (gpr->fpr v1-24)) + (set! f3-10 (gpr->fpr arg2)) + (set! f2-16 (+.s f2-15 f3-10)) + (set! f1-8 (*.s f1-7 f2-16)) + (set! f0-4 (+.s f0-4 f1-8)) + (set! v1-25 (fpr->gpr f0-4)) + ) + ) + (set! v1-26 sv-16) + (set! f1-9 (-> v1-26 dir0 extra x)) + (set! f1-10 (*.s f1-9 f0-4)) + (set! v1-27 sv-16) + (set! (-> v1-27 dir0 extra x) f1-10) + (set! v1-28 sv-16) + (set! f1-11 (-> v1-28 dir1 extra x)) + (set! f1-12 (*.s f1-11 f0-4)) + (set! v1-29 sv-16) + (set! (-> v1-29 dir1 extra x) f1-12) + (set! v1-30 sv-16) + (set! f1-13 (-> v1-30 dir2 extra x)) + (set! f0-5 (*.s f1-13 f0-4)) + (set! v1-31 sv-16) + (set! (-> v1-31 dir2 extra x) f0-5) + (set! v0-1 (fpr->gpr f0-5)) + (ret-value v0-1) + ) + +;; definition for function update-mood-exterior +;; INFO: Used lq/sq +(defun update-mood-exterior ((arg0 mood-context-core3) (arg1 mood-table) (arg2 float) (arg3 int)) + (local-vars (v0-1 object)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cond + ((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode))) + (palette-select-special arg0) + ) + (else + 0 + 0 + 0.0 + (let* ((v1-3 (the int arg2)) + (f0-4 (- arg2 (the float v1-3))) + (f1-3 (- 1.0 f0-4)) + (a0-6 (/ v1-3 24)) + (v1-7 (-> arg1 mood-interp-table hour (- v1-3 (* 24 a0-6)))) + (s3-0 (-> v1-7 snapshot1)) + (s2-0 (-> v1-7 snapshot2)) + (f30-0 (+ (* f1-3 (-> v1-7 morph-start)) (* f0-4 (-> v1-7 morph-end)))) + ) + (set! v0-1 + (cond + ((and (-> *level* level arg3 bsp) + (nonzero? (-> *level* level arg3 bsp)) + (not (-> *level* level arg3 bsp ambients)) + ) + (set! v0-1 (-> arg0 times)) + (set! (-> (the-as (inline-array vector) v0-1) 0 x) 1.0) + (set! (-> (the-as (inline-array vector) v0-1) 0 y) 1.0) + (set! (-> (the-as (inline-array vector) v0-1) 0 z) 1.0) + (set! (-> (the-as (inline-array vector) v0-1) 0 w) 1.0) + v0-1 + ) + ((= s3-0 s2-0) + (let ((a2-1 (-> arg1 mood-color-table data s3-0)) + (v1-26 (-> arg0 times)) + (a1-2 (-> arg0 times 1)) + (a0-16 (-> arg0 light-group)) + ) + (set! (-> v1-26 0 quad) (-> a2-1 amb-color quad)) + (set! (-> a1-2 quad) (-> a2-1 lgt-color quad)) + (set! (-> arg0 times 2 quad) (-> a1-2 quad)) + (set! (-> arg0 times 3 quad) (-> a1-2 quad)) + (set! (-> arg0 times 4 quad) (-> a1-2 quad)) + (set! (-> a0-16 0 ambi color quad) (-> v1-26 0 quad)) + ) + (set! (-> arg0 current-sky-color quad) (-> arg1 mood-sky-table data s3-0 quad)) + (mem-copy! (the-as pointer (-> arg0 current-fog)) (the-as pointer (-> arg1 mood-fog-table data s3-0)) 48) + ) + (else + (let ((sv-32 (-> arg1 mood-color-table data s3-0)) + (sv-48 (-> arg1 mood-color-table data s2-0)) + (s1-0 (-> arg0 times)) + (sv-64 (-> arg0 times 1)) + (s0-0 (-> arg0 light-group)) + ) + (vector4-lerp! (-> s1-0 0) (-> sv-32 amb-color) (-> sv-48 amb-color) f30-0) + (vector4-lerp! sv-64 (-> sv-32 lgt-color) (-> sv-48 lgt-color) f30-0) + (set! (-> arg0 times 2 quad) (-> sv-64 quad)) + (set! (-> arg0 times 3 quad) (-> sv-64 quad)) + (set! (-> arg0 times 4 quad) (-> sv-64 quad)) + (set! (-> s0-0 0 ambi color quad) (-> s1-0 0 quad)) + ) + (vector4-lerp! + (-> arg0 current-sky-color) + (-> arg1 mood-sky-table data s3-0) + (-> arg1 mood-sky-table data s2-0) + f30-0 + ) + (vector4-array-lerp! + (the-as (inline-array vector4) (-> arg0 current-fog)) + (the-as (inline-array vector4) (-> arg1 mood-fog-table data s3-0)) + (the-as (inline-array vector4) (-> arg1 mood-fog-table data s2-0)) + f30-0 + 3 + ) + ) + ) + ) + ) + (set-vector! (-> arg0 current-prt-color) 0.0 0.0 0.0 0.0) + (set-vector! (-> arg0 current-env-color) 0.0 0.0 0.0 0.0) + (let ((f0-18 (-> *mood-control* lightning-flash)) + (a0-36 (-> *mood-control* lightning-index)) + ) + (when (and (!= f0-18 0.0) (< a0-36 4)) + (let ((v1-64 (new 'stack-no-clear 'vector)) + (a0-40 (-> arg0 times (+ a0-36 1))) + ) + (set-vector! v1-64 f0-18 f0-18 f0-18 0.0) + (let ((a1-15 a0-40)) + (.lvf vf4 (&-> a0-40 quad)) + (.lvf vf5 (&-> v1-64 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a1-15 quad) vf6) + ) + ) + ) + ) + (update-mood-direction arg0 arg1 arg2) + ) + ) + ) + ) + +;; definition for function copy-mood-exterior +;; INFO: Used lq/sq +(defun copy-mood-exterior ((arg0 mood-context)) + (set! (-> *time-of-day-context* exterior-level) (the-as basic #t)) + (cond + ((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode))) + (palette-select-special arg0) + ) + (else + (let ((v1-2 (the-as object arg0)) + (a1-4 (the-as object (-> *level* level-default mood-context))) + ) + (dotimes (a2-0 31) + (set! (-> (the-as vector v1-2) quad) (-> (the-as vector a1-4) quad)) + (set! v1-2 (-> (the-as (inline-array vector) v1-2) 1)) + (set! a1-4 (-> (the-as (inline-array vector) a1-4) 1)) + ) + ) + (let ((v1-5 (the-as object (-> arg0 times))) + (a0-3 (the-as object (-> *level* level-default mood-context times))) + ) + (dotimes (a1-5 5) + (set! (-> (the-as vector v1-5) quad) (-> (the-as vector a0-3) quad)) + (set! v1-5 (-> (the-as (inline-array vector) v1-5) 1)) + (set! a0-3 (-> (the-as (inline-array vector) a0-3) 1)) + ) + ) + #f + ) + ) + ) + +;; definition for function copy-mood-exterior-ambi +;; INFO: Used lq/sq +;; WARN: Return type mismatch object vs none. +(defun copy-mood-exterior-ambi ((arg0 mood-context) (arg1 symbol)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cond + ((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode))) + (palette-select-special arg0) + ) + (else + (let ((v1-1 arg0) + (a2-3 (-> *level* level-default mood-context)) + ) + (dotimes (a3-0 31) + (set! (-> v1-1 current-fog fog-color quad) (-> a2-3 current-fog fog-color quad)) + (set! v1-1 (the-as mood-context (-> v1-1 current-fog fog-dists))) + (set! a2-3 (the-as mood-context (-> a2-3 current-fog fog-dists))) + ) + ) + (set! (-> arg0 times 0 quad) (-> *level* level-default mood-context times 0 quad)) + (let ((a2-8 (-> arg0 times))) + (let ((v1-5 (-> arg0 times)) + (a3-3 (-> *level* level-default mood-context times 1)) + ) + (.lvf vf4 (&-> v1-5 0 quad)) + (.lvf vf5 (&-> a3-3 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-8 0 quad) vf6) + ) + (when arg1 + (set! (-> arg0 times 1 quad) (-> *level* level-default mood-context times 1 quad)) + (set! (-> arg0 times 1 w) 1.0) + ) + ) + ) + (none) + ) + ) + +;; definition for function clear-mood-context +;; INFO: Used lq/sq +(defun clear-mood-context ((arg0 mood-context)) + (let ((v1-0 arg0)) + (dotimes (a1-0 123) + (set! (-> v1-0 data a1-0) (the-as uint128 0)) + ) + ) + (dotimes (v1-3 8) + (set-vector! (-> arg0 times v1-3) 1.0 1.0 1.0 0.0) + ) + #f + ) + +;; definition for function update-mood-interior +;; INFO: Used lq/sq +(defun update-mood-interior ((arg0 mood-context) (arg1 symbol)) + (let ((v1-0 (-> arg0 light-group))) + (cond + (arg1 + (set! (-> arg0 current-fog fog-color quad) (-> *level* level-default mood-context current-fog fog-color quad)) + (set-vector! (-> arg0 current-fog fog-dists) 98304.0 3072000.0 255.0 150.0) + (set-vector! (-> arg0 current-fog erase-color) 0.0 0.0 0.0 128.0) + ) + (else + (let ((a1-4 (-> arg0 current-fog))) + (set! (-> a1-4 fog-color x) 150.0) + (set! (-> a1-4 fog-color y) 165.0) + (set! (-> a1-4 fog-color z) 220.0) + (set! (-> a1-4 fog-color w) 128.0) + ) + (set-vector! (-> arg0 current-fog fog-dists) 2048000.0 12288000.0 255.0 150.0) + (set-vector! (-> arg0 current-fog erase-color) 0.0 0.0 0.0 128.0) + ) + ) + (set-vector! (-> arg0 current-prt-color) 0.0 0.0 0.0 0.0) + (set-vector! (-> arg0 current-env-color) 96.0 96.0 96.0 128.0) + (set-vector! (-> arg0 current-sky-color) 0.0 0.0 0.0 1.0) + (let ((a0-2 (-> v1-0 0))) + (set! (-> a0-2 dir0 direction x) 0.0) + (set! (-> a0-2 dir0 direction y) 1.0) + (set! (-> a0-2 dir0 direction z) 0.0) + (set! (-> a0-2 dir0 direction w) 0.0) + ) + (set-vector! (-> v1-0 0 dir0 color) 0.667 0.667 0.667 1.0) + (set-vector! (-> v1-0 0 ambi color) 0.333 0.333 0.333 1.0) + (set! (-> v1-0 0 dir0 extra x) 1.0) + (set! (-> v1-0 0 dir1 extra x) 0.0) + (set! (-> v1-0 0 dir2 extra x) 0.0) + (set! (-> v1-0 0 ambi extra x) 1.0) + ) + ) + +;; definition for function update-mood-interior-ambient +;; INFO: Used lq/sq +(defun update-mood-interior-ambient ((arg0 mood-context) (arg1 symbol) (arg2 float)) + (update-mood-interior arg0 arg1) + (set! (-> arg0 times 0 quad) (-> *level* level-default mood-context times 0 quad)) + (vector+float*! (-> arg0 times 0) (-> arg0 times 0) (-> *level* level-default mood-context times 1) arg2) + ) + +;; definition for function update-mood-flames +;; INFO: Used lq/sq +(defbehavior update-mood-flames time-of-day-proc ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 float) (arg5 float) (arg6 float)) + (let* ((gp-0 (the-as object (+ (+ arg3 1840) (the-as int arg0)))) + (s4-0 (+ (-> (the-as flames-state gp-0) index) arg1)) + (f0-0 (-> (the-as flames-state gp-0) time)) + (v1-2 (-> (the-as flames-state gp-0) length)) + (sv-16 (-> (the-as flames-state gp-0) height)) + ) + (dotimes (a0-2 arg2) + (set! (-> arg0 times (+ arg1 a0-2) w) arg4) + ) + (cond + ((>= f0-0 (the float v1-2)) + (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-4 (the-as number (logior #x3f800000 v1-3))) + ) + (set! (-> (the-as flames-state gp-0) index) + (the-as uint (the int (* (+ -1.0 (the-as float v1-4)) (+ -0.01 (the float arg2))))) + ) + ) + (set! (-> (the-as flames-state gp-0) time) 0.0) + (let* ((f30-0 7.0) + (f28-0 8.0) + (v1-10 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-11 (the-as number (logior #x3f800000 v1-10))) + ) + (set! (-> (the-as flames-state gp-0) length) + (the-as uint (the int (* (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-11)))) arg6))) + ) + ) + (let* ((f30-1 255.0) + (v1-15 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-16 (the-as number (logior #x3f800000 v1-15))) + ) + (set! (-> (the-as flames-state gp-0) height) (the-as uint (the int (* f30-1 (+ -1.0 (the-as float v1-16)))))) + ) + (set! (-> arg0 times s4-0 w) arg4) + ) + (else + (let ((f0-22 (sin (* 32768.0 (/ f0-0 (the float v1-2)))))) + (set! (-> arg0 times s4-0 w) (+ (* (the float sv-16) f0-22 arg5) arg4)) + ) + (if (not (paused?)) + (set! (-> (the-as (pointer float) gp-0)) + (+ (-> (the-as (pointer float) gp-0)) (if (= (-> *display* bg-clock clock-ratio) 0.0) + 1.0 + (-> self clock time-adjust-ratio) + ) + ) + ) + ) + ) + ) + ) + ) + +;; definition for symbol *flash0*, type (array float) +(define *flash0* + (new 'static 'boxed-array :type float 1.0 0.0 0.5 1.0 0.5 0.0 0.5 0.35 0.4 0.35 0.25 0.1 0.04) + ) + +;; definition for symbol *flash1*, type (array float) +(define *flash1* (new 'static 'boxed-array :type float 1.0 0.8 0.0 1.0 0.5 1.0 0.4 0.2 0.1)) + +;; definition for symbol *flash2*, type (array float) +(define *flash2* (new 'static 'boxed-array :type float 1.0 0.9 0.8 0.7 0.0 0.0 1.0 0.0 1.0 0.5)) + +;; definition for symbol *flash3*, type (array float) +(define *flash3* (new 'static 'boxed-array :type float 0.5 0.0 1.0 0.9 1.0 0.8 0.3 0.0 0.0 0.5 0.1 0.5 0.35)) + +;; definition for symbol *flash4*, type (array float) +(define *flash4* + (new 'static 'boxed-array :type float 1.0 0.0 1.0 0.0 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.5 0.4 0.3 0.2 0.1) + ) + +;; definition for symbol *flash5*, type (array float) +(define *flash5* (new 'static 'boxed-array :type float + 1.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.95 + 0.9 + 0.85 + 0.8 + 0.75 + 0.7 + 0.65 + 0.6 + 0.55 + 0.5 + 0.45 + 0.4 + 0.35 + 0.3 + 0.25 + 0.2 + 0.5 + 0.45 + 0.4 + 0.35 + 0.3 + 0.25 + 0.2 + 0.15 + 0.1 + 0.05 + ) + ) + +;; definition for symbol *flash6*, type (array float) +(define *flash6* + (new 'static 'boxed-array :type float 1.0 0.0 1.0 0.0 0.5 0.0 0.5 0.35 0.0 0.0 1.0 0.0 0.2 0.1) + ) + +;; definition for symbol *flash7*, type (array float) +(define *flash7* + (new 'static 'boxed-array :type float 1.0 0.8 0.3 0.0 0.6 0.5 0.4 0.3 0.2 0.5 0.4 0.3 0.2 0.1) + ) + +;; definition for function update-mood-light +(defun update-mood-light ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float) (arg5 float) (arg6 float) (arg7 float)) + (with-pp + (let* ((gp-0 (the-as light-state (+ (+ arg2 1840) (the-as int arg0)))) + (f0-0 512.0) + (f1-1 (+ (-> gp-0 time) arg6)) + (f26-0 (* f0-0 (- f1-1 (* (the float (the int (/ f1-1 256.0))) 256.0)))) + (f30-1 (+ (fabs arg3) (* (cos f26-0) arg4))) + (f28-0 (-> gp-0 fade)) + ) + (cond + ((or (>= arg5 18.0) (>= 6.0 arg5)) + (set! f28-0 (cond + ((< arg3 0.0) + (if (not (paused?)) + (set! f28-0 (seek f28-0 1.0 (* 0.25 (seconds-per-frame)))) + ) + f28-0 + ) + (else + 1.0 + ) + ) + ) + (set! (-> gp-0 fade) f28-0) + (set! (-> arg0 times arg1 w) (* f30-1 f28-0)) + (when (not (paused?)) + (let ((f0-10 (-> gp-0 time))) + (set! arg7 (cond + ((= (-> *display* bg-clock clock-ratio) 0.0) + (empty) + arg7 + ) + (else + (* arg7 (-> pp clock time-adjust-ratio)) + ) + ) + ) + (set! (-> gp-0 time) (+ f0-10 arg7)) + ) + ) + ) + ((= f28-0 1.0) + (cond + ((< f26-0 3640.889) + (set! (-> arg0 times arg1 w) f30-1) + (set! (-> gp-0 fade) 0.99) + ) + (else + (set! (-> arg0 times arg1 w) f30-1) + ) + ) + (if (not (paused?)) + (set! (-> gp-0 time) (+ (-> gp-0 time) (if (= (-> *display* bg-clock clock-ratio) 0.0) + arg7 + (* arg7 (-> pp clock time-adjust-ratio)) + ) + ) + ) + ) + ) + ((and (< f28-0 1.0) (< 0.0 f28-0)) + (set! (-> arg0 times arg1 w) f28-0) + (when (not (paused?)) + (if (< 0.75 f28-0) + (set! (-> gp-0 fade) (- (-> gp-0 fade) (/ (-> pp clock time-adjust-ratio) 25))) + (set! (-> gp-0 fade) (- (-> gp-0 fade) (/ (-> pp clock time-adjust-ratio) 50))) + ) + ) + ) + (else + (set! (-> gp-0 fade) 0.0) + (set! (-> gp-0 time) 0.0) + ) + ) + ) + ) + ) + +;; definition of type lava-state +(deftype lava-state (structure) + ((lava float) + ) + ) + +;; definition for method 3 of type lava-state +(defmethod inspect ((this lava-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'lava-state) + (format #t "~1Tlava: ~f~%" (-> this lava)) + (label cfg-4) + this + ) + +;; definition for function update-mood-lava +(defun update-mood-lava ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float) (arg5 float) (arg6 float) (arg7 float)) + (let ((gp-0 (+ (+ arg2 1840) (the-as int arg0)))) + (let ((f0-1 (cos (-> (the-as (pointer float) gp-0))))) + (set! (-> arg0 times arg1 w) (+ arg3 (* f0-1 arg4))) + (set! (-> arg0 times (+ arg1 1) w) (+ arg3 (* (- f0-1) arg4))) + ) + (if (not (paused?)) + (set! (-> (the-as (pointer float) gp-0)) (+ (-> (the-as (pointer float) gp-0)) arg5)) + ) + ) + ) + +;; definition for function update-mood-flicker +;; WARN: Return type mismatch int vs none. +(defun update-mood-flicker ((arg0 mood-context) (arg1 int) (arg2 int)) + (let ((gp-0 (the-as object (+ (+ arg2 1840) (the-as int arg0))))) + (cond + ((nonzero? (-> (the-as flicker-state gp-0) flicker-on)) + (set! (-> arg0 times arg1 w) 1.0) + (if (not (paused?)) + (+! (-> (the-as flicker-state gp-0) flicker-on) -1) + ) + ) + ((nonzero? (-> (the-as flicker-state gp-0) flicker-off)) + (if (not (paused?)) + (+! (-> (the-as flicker-state gp-0) flicker-off) -1) + ) + ) + (else + (let* ((f30-0 2.0) + (f28-0 18.0) + (v1-11 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-12 (the-as number (logior #x3f800000 v1-11))) + ) + (set! (-> (the-as flicker-state gp-0) flicker-on) + (the-as uint (the int (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-12)))))) + ) + ) + (let* ((f30-1 3.0) + (v1-17 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-18 (the-as number (logior #x3f800000 v1-17))) + ) + (cond + ((zero? (the int (* f30-1 (+ -1.0 (the-as float v1-18))))) + (let* ((f30-2 2.0) + (f28-1 118.0) + (v1-24 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-25 (the-as number (logior #x3f800000 v1-24))) + ) + (set! (-> (the-as (pointer int8) gp-0)) (the int (+ f30-2 (* f28-1 (+ -1.0 (the-as float v1-25)))))) + ) + ) + (else + (let* ((f30-3 2.0) + (f28-2 18.0) + (v1-30 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-31 (the-as number (logior #x3f800000 v1-30))) + ) + (set! (-> (the-as (pointer int8) gp-0)) (the int (+ f30-3 (* f28-2 (+ -1.0 (the-as float v1-31)))))) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + +;; definition for function update-mood-florescent +(defun update-mood-florescent ((arg0 mood-context) (arg1 int) (arg2 int)) + (let ((gp-0 (the-as florescent-state (+ (+ arg2 1840) (the-as int arg0))))) + (set! (-> arg0 times arg1 w) (-> gp-0 value)) + (when (not (paused?)) + (cond + ((zero? (-> gp-0 delay)) + (let* ((f30-0 10.0) + (f28-0 50.0) + (v1-7 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-8 (the-as number (logior #x3f800000 v1-7))) + ) + (set! (-> gp-0 delay2) (the int (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-8)))))) + ) + (let* ((f30-1 60.0) + (f28-1 60.0) + (v1-14 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-15 (the-as number (logior #x3f800000 v1-14))) + ) + (set! (-> gp-0 delay) (the int (+ f30-1 (* f28-1 (+ -1.0 (the-as float v1-15)))))) + ) + ) + (else + (+! (-> gp-0 delay) -1) + ) + ) + (cond + ((>= (-> gp-0 delay2) (-> gp-0 delay)) + (let* ((f30-2 1.0) + (f28-2 0.5) + (v1-25 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-26 (the-as number (logior #x3f800000 v1-25))) + ) + (set! (-> gp-0 value) (+ f30-2 (* f28-2 (+ -1.0 (the-as float v1-26))))) + ) + ) + ((< (-> gp-0 delay2) (-> gp-0 delay)) + (set! (-> gp-0 value) 1.5) + ) + ) + ) + ) + ) + +;; definition for function update-mood-electricity +;; WARN: Return type mismatch float vs none. +(defun update-mood-electricity ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float)) + (let ((gp-0 (the-as object (+ (+ arg2 1840) (the-as int arg0))))) + (set! (-> arg0 times arg1 w) + (* (-> (the-as electricity-state gp-0) value) (-> (the-as electricity-state gp-0) scale)) + ) + (when (not (paused?)) + (let* ((f30-0 arg3) + (v1-4 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-5 (the-as number (logior #x3f800000 v1-4))) + ) + (set! (-> (the-as (pointer float) gp-0)) (+ f30-0 (* (+ -1.0 (the-as float v1-5)) (- arg4 arg3)))) + ) + ) + ) + (none) + ) + +;; definition for function update-mood-pulse +;; WARN: Return type mismatch float vs none. +(defun update-mood-pulse ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 float) (arg4 float) (arg5 float) (arg6 float)) + (let ((gp-0 (the-as pulse-state (+ (+ arg2 1840) (the-as int arg0))))) + (set! (-> arg0 times arg1 w) + (fmin 1.9921875 (* (+ arg3 (* (cos (+ (-> gp-0 pulse) arg6)) arg4)) (-> gp-0 brightness))) + ) + (when (not (paused?)) + (+! (-> gp-0 pulse) arg5) + (seek! (-> gp-0 brightness) (-> gp-0 target-brightness) (* (-> gp-0 speed) (seconds-per-frame))) + ) + ) + (none) + ) + +;; definition for function update-mood-strobe +(defun update-mood-strobe ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 float)) + (let ((gp-0 (+ (+ arg2 1840) (the-as int arg0)))) + (let ((a2-1 (the int (-> (the-as (pointer float) gp-0))))) + (if (logtest? arg3 (ash 1 a2-1)) + (set! (-> arg0 times arg1 w) 1.0) + (set! (-> arg0 times arg1 w) 0.3) + ) + ) + (when (not (paused?)) + (let ((f0-5 (+ (-> (the-as (pointer float) gp-0)) arg4))) + (set! (-> (the-as (pointer float) gp-0)) (- f0-5 (* (the float (the int (/ f0-5 32.0))) 32.0))) + ) + ) + ) + ) + +;; definition for function update-mood-caustics +(defun update-mood-caustics ((arg0 mood-context) (arg1 int) (arg2 float) (arg3 float) (arg4 float) (arg5 float)) + (let ((f0-2 (sin (+ arg2 arg3)))) + (set! (-> arg0 times arg1 w) (+ arg4 (* f0-2 arg5))) + ) + ) + +;; definition for function override-mood-fog +;; ERROR: function has no type analysis. Cannot decompile. + +;; definition for function override-mood-color +;; INFO: Used lq/sq +;; WARN: Return type mismatch rgbaf vs none. +(defun override-mood-color ((arg0 mood-context) (arg1 object) (arg2 int) (arg3 float)) + 0 + 0 + 0.0 + (let* ((v1-3 (-> *mood-control* mood-interp-table)) + (a0-1 (the int (the float arg1))) + (f0-4 (- (the-as float arg1) (the float a0-1))) + (f1-3 (- 1.0 f0-4)) + (a1-3 (/ a0-1 24)) + (a1-5 (-> v1-3 hour (- a0-1 (* 24 a1-3)))) + (a0-5 (-> a1-5 snapshot1)) + (v1-4 (-> a1-5 snapshot2)) + (f30-0 (+ (* f1-3 (-> a1-5 morph-start)) (* f0-4 (-> a1-5 morph-end)))) + ) + (cond + ((= a0-5 v1-4) + (let ((a0-6 (+ (* a0-5 32) 0 arg2)) + (a1-7 (-> arg0 times)) + (v1-7 (-> arg0 times 1)) + ) + (set! (-> a1-7 0 quad) (-> (the-as vector (+ a0-6 16)) quad)) + (set! (-> v1-7 quad) (-> (the-as vector (+ a0-6 0)) quad)) + (set! (-> arg0 times 2 quad) (-> v1-7 quad)) + (set! (-> arg0 times 3 quad) (-> v1-7 quad)) + (set! (-> arg0 times 4 quad) (-> v1-7 quad)) + ) + ) + (else + (let ((s3-0 (+ (* a0-5 32) 0 arg2)) + (s2-0 (+ (* v1-4 32) 0 arg2)) + (a0-14 (-> arg0 times)) + (s4-0 (-> arg0 times 1)) + ) + (vector4-lerp! (-> a0-14 0) (the-as vector (+ s3-0 16)) (the-as vector (+ s2-0 16)) f30-0) + (vector4-lerp! s4-0 (the-as vector (+ s3-0 0)) (the-as vector (+ s2-0 0)) f30-0) + (set! (-> arg0 times 2 quad) (-> s4-0 quad)) + (set! (-> arg0 times 3 quad) (-> s4-0 quad)) + (set! (-> arg0 times 4 quad) (-> s4-0 quad)) + ) + ) + ) + ) + (let ((s4-1 (-> arg0 light-group))) + (let ((s3-1 (-> *level* level-default mood-context))) + (if (!= arg3 0.0) + (vector4-array-lerp! + (the-as (inline-array vector4) (-> arg0 times)) + (the-as (inline-array vector4) (-> arg0 times)) + (the-as (inline-array vector4) (-> s3-1 times)) + arg3 + 5 + ) + ) + (dotimes (v1-17 5) + (set! (-> arg0 times v1-17 w) (-> s3-1 times v1-17 w)) + ) + ) + (set! (-> s4-1 0 ambi color quad) (-> arg0 times 0 quad)) + (set! (-> s4-1 0 dir0 color quad) (-> arg0 times 1 quad)) + (set! (-> s4-1 0 dir1 color quad) (-> arg0 times 2 quad)) + (set! (-> s4-1 0 dir2 color quad) (-> arg0 times 3 quad)) + ) + (none) + ) + +;; definition for method 16 of type mood-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod apply-mood-clouds-and-fog ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-fog-table))) + (dotimes (a0-1 24) + (set! (-> v1-0 _data a0-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-fog-table))) + (let ((f30-0 (- 1.0 (-> arg0 interp cloud)))) + (when (!= f30-0 0.0) + (let ((f0-4 (* (- 1.0 (-> arg0 interp fog)) f30-0)) + (a2-0 (-> this fogs (-> arg0 index 0))) + ) + (if (!= f0-4 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-0) + f0-4 + 24 + ) + ) + ) + (let ((f0-6 (* (-> arg0 interp fog) f30-0)) + (a2-1 (-> this fogs (-> arg0 index 1))) + ) + (if (!= f0-6 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-1) + f0-6 + 24 + ) + ) + ) + ) + ) + (let ((f30-1 (-> arg0 interp cloud))) + (when (!= f30-1 0.0) + (let ((f0-10 (* (- 1.0 (-> arg0 interp fog)) f30-1)) + (a2-2 (-> this fogs (-> arg0 index 2))) + ) + (if (!= f0-10 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-2) + f0-10 + 24 + ) + ) + ) + (let ((f0-12 (* (-> arg0 interp fog) f30-1)) + (a2-3 (-> this fogs (-> arg0 index 3))) + ) + (if (!= f0-12 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-3) + f0-12 + 24 + ) + ) + ) + ) + ) + ) + (let ((f0-13 (-> *setting-control* user-current unknown-float)) + (v1-29 (-> this mood-fog-table)) + ) + (dotimes (a0-6 8) + (set! (-> v1-29 data a0-6 fog-dists y) (* (-> v1-29 data a0-6 fog-dists y) f0-13)) + ) + ) + 0 + (none) + ) + +;; definition for method 17 of type mood-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod apply-mood-fog ((this mood-control) + (arg0 mood-control-work) + (arg1 mood-color-table) + (arg2 mood-color-table) + (arg3 mood-color-table) + (arg4 float) + ) + (let ((v1-0 (-> this mood-fog-table))) + (dotimes (a1-1 24) + (set! (-> v1-0 _data a1-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-fog-table)) + (f0-1 (fmax 0.0 (fmin 1.0 (* 5.0 (- 0.2 arg4))))) + (f30-0 (if (>= 0.2 arg4) + (fmax 0.0 (fmin 1.0 (* 5.0 arg4))) + (- 1.0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + ) + (f28-0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg1) + f0-1 + 24 + ) + ) + (if (!= f30-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg2) + f30-0 + 24 + ) + ) + (if (!= f28-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg3) + f28-0 + 24 + ) + ) + ) + 0 + (none) + ) + +;; definition for method 18 of type mood-control +;; WARN: Return type mismatch int vs none. +(defmethod apply-fog-height ((this mood-control) (arg0 mood-control-work) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + (cond + ((= arg4 0.2) + (set-fog-height! arg2) + ) + ((< arg4 0.2) + (set-fog-height! (lerp arg1 arg2 (* 5.0 arg4))) + ) + (else + (set-fog-height! (lerp arg2 arg3 (* 1.25 (+ -0.2 arg4)))) + ) + ) + 0 + (none) + ) + +;; definition for method 19 of type mood-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod apply-mood-colors ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-color-table))) + (dotimes (a0-1 16) + (set! (-> v1-0 _data a0-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-color-table))) + (let ((f0-1 (- 1.0 (-> arg0 color-interp))) + (a2-0 (-> this colors (-> arg0 color-index 0))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-0) + f0-1 + 16 + ) + ) + ) + (let ((f0-2 (-> arg0 color-interp)) + (a2-1 (-> this colors (-> arg0 color-index 1))) + ) + (if (!= f0-2 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-1) + f0-2 + 16 + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 20 of type mood-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod mood-control-method-20 ((this mood-control) + (arg0 mood-control-work) + (arg1 mood-color-table) + (arg2 mood-color-table) + (arg3 mood-color-table) + (arg4 float) + ) + (let ((v1-0 (-> this mood-color-table))) + (dotimes (a1-1 16) + (set! (-> v1-0 _data a1-1) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-color-table)) + (f0-1 (fmax 0.0 (fmin 1.0 (* 5.0 (- 0.2 arg4))))) + (f30-0 (if (>= 0.2 arg4) + (fmax 0.0 (fmin 1.0 (* 5.0 arg4))) + (- 1.0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + ) + (f28-0 (fmax 0.0 (fmin 1.0 (* 1.25 (+ -0.2 arg4))))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg1) + f0-1 + 16 + ) + ) + (if (!= f30-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg2) + f30-0 + 16 + ) + ) + (if (!= f28-0 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) arg3) + f28-0 + 16 + ) + ) + ) + 0 + (none) + ) + +;; definition for method 21 of type mood-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod apply-mood-channels ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-channel-group))) + (dotimes (a0-1 24) + (set! (-> v1-0 data 0 vecs a0-1 quad) (the-as uint128 0)) + ) + ) + (let ((s4-0 (-> this mood-channel-group))) + (let ((f0-1 (- 1.0 (-> arg0 channel-interp))) + (a2-0 (-> this channels (-> arg0 channel-index 0))) + ) + (if (!= f0-1 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-0) + f0-1 + 24 + ) + ) + ) + (let ((f0-2 (-> arg0 channel-interp)) + (a2-1 (-> this channels (-> arg0 channel-index 1))) + ) + (if (!= f0-2 0.0) + (vector4-array-madd! + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) s4-0) + (the-as (inline-array vector4) a2-1) + f0-2 + 24 + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 22 of type mood-control +;; WARN: Return type mismatch int vs none. +(defmethod adjust-num-clouds ((this mood-control) (arg0 mood-control-work)) + (let ((v1-0 (-> this mood-clouds))) + (set! (-> v1-0 cloud-min) 0.0) + (set! (-> v1-0 cloud-max) 0.0) + (let ((f0-3 (- 1.0 (-> arg0 cloud-interp))) + (a2-4 (-> this clouds (-> arg0 cloud-index 0))) + ) + (when (!= f0-3 0.0) + (set! (-> v1-0 cloud-min) (* (-> a2-4 cloud-min) f0-3)) + (set! (-> v1-0 cloud-max) (* (-> a2-4 cloud-max) f0-3)) + ) + ) + (let ((f0-5 (-> arg0 cloud-interp)) + (a0-2 (-> this clouds (-> arg0 cloud-index 1))) + ) + (when (!= f0-5 0.0) + (+! (-> v1-0 cloud-min) (* (-> a0-2 cloud-min) f0-5)) + (+! (-> v1-0 cloud-max) (* (-> a0-2 cloud-max) f0-5)) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 24 of type mood-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod play-or-stop-lightning-sfx! ((this mood-control) (arg0 sound-spec) (arg1 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (let ((s3-0 arg1) + (v1-0 (math-camera-pos)) + ) + (.lvf vf4 (&-> s3-0 quad)) + (.lvf vf5 (&-> v1-0 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> s2-0 quad) vf6) + ) + (cond + ((or ((method-of-object *level* level-group-method-28)) (movie?)) + (when (nonzero? (-> this lightning-id)) + (sound-stop (-> this lightning-id) #t) + (set! (-> this lightning-id) (new 'static 'sound-id)) + 0 + ) + ) + (else + (when (nonzero? (-> this lightning-id)) + (sound-stop (-> this lightning-id) #t) + (set! (-> this lightning-id) (new 'static 'sound-id)) + 0 + ) + (let ((s3-1 (make-sound-instance (-> *sound-info* (-> arg0 info-index)) 0 #f))) + (set! (-> this lightning-id) (the-as sound-id (cond + (s3-1 + (quad-copy! (the-as pointer s3-1) (the-as pointer arg0) 4) + (set! (-> s3-1 trans quad) (-> arg1 quad)) + (logior! (-> s3-1 flags) 96) + (the-as int (-> s3-1 id)) + ) + (else + 0 + ) + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 23 of type mood-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch number vs none. +(defmethod gen-lightning-and-thunder! ((this mood-control) (arg0 int)) + (local-vars (a1-2 (array float))) + (let ((v1-3 (-> this mood-channel-group data (-> this lightning-index))) + (a1-1 (-> this lightning-val)) + (a0-4 (/ (-> this lightning-time) 2)) + (f0-0 (-> this lightning-time2)) + ) + (set! (-> this lightning-flash) 0.0) + (cond + ((>= 0.0 f0-0) + (cond + ((zero? a1-1) + (set! a1-2 *flash0*) + ) + ((= a1-1 1) + (set! a1-2 *flash1*) + ) + ((= a1-1 2) + (set! a1-2 *flash2*) + ) + ((= a1-1 3) + (set! a1-2 *flash3*) + ) + ((= a1-1 4) + (set! a1-2 *flash4*) + ) + ((= a1-1 5) + (set! a1-2 *flash5*) + ) + ((= a1-1 6) + (set! a1-2 *flash6*) + ) + (else + (set! a1-2 *flash7*) + ) + ) + (cond + ((< a0-4 (-> a1-2 length)) + (let ((f30-0 (-> a1-2 a0-4)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (cond + ((= (-> this lightning-index) 4) + (set! (-> this lightning-flash) f30-0) + ) + ((= (-> this lightning-index) 5) + (set! (-> this lightning-flash) f30-0) + (dotimes (s4-0 8) + (set-vector! s5-0 255.0 255.0 255.0 128.0) + (vector4-lerp! + (-> this mood-fog-table data s4-0 fog-color) + (-> this mood-fog-table data s4-0 fog-color) + s5-0 + f30-0 + ) + ) + ) + (else + (set! (-> this lightning-flash) (* 1.9921875 f30-0)) + (let ((a0-17 (-> v1-3 data))) + (set! (-> a0-17 0) 1.0) + (set! (-> a0-17 1) 1.0) + (set! (-> a0-17 2) 1.0) + (set! (-> a0-17 3) 1.0) + ) + (set! (-> (the-as vector (&-> v1-3 data 4)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 8)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 12)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 16)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + (set! (-> (the-as vector (&-> v1-3 data 20)) quad) (-> (the-as vector (-> v1-3 data)) quad)) + ) + ) + ) + (if (not (paused?)) + (+! (-> this lightning-time) 1) + ) + ) + (else + (level-get-target-inside *level*) + (cond + ((!= (-> this lightning-time3) 0.0) + (set! (-> this lightning-time2) (-> this lightning-time3)) + (set! (-> this lightning-time3) 0.0) + ) + (else + (let* ((f30-1 5.0) + (f28-0 5.0) + (v1-20 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-21 (the-as number (logior #x3f800000 v1-20))) + ) + (set! (-> this lightning-time2) (+ f30-1 (* f28-0 (+ -1.0 (the-as float v1-21))))) + ) + ) + ) + ) + ) + ) + (else + (when (not (paused?)) + (set! (-> this lightning-time2) (- (-> this lightning-time2) (seconds-per-frame))) + (when (>= 0.0 (-> this lightning-time2)) + (when (= (-> this lightning-time3) 0.0) + (set! (-> this lightning-index) (mod (the-as int (rand-uint31-gen *random-generator*)) 6)) + (set! (-> this lightning-val) (the-as int (logand (rand-uint31-gen *random-generator*) 7))) + ) + (set! (-> this lightning-time) 0) + (cond + ((zero? (-> this lightning-index)) + ) + ((= (-> this lightning-index) 1) + ) + ((= (-> this lightning-index) 2) + ) + ((= (-> this lightning-index) 3) + ) + ((= (-> this lightning-index) 4) + ) + ((= (-> this lightning-index) 5) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + +;; definition for method 15 of type mood-control +;; WARN: Return type mismatch int vs none. +(defmethod set-lightning-time! ((this mood-control) (arg0 int) (arg1 int) (arg2 float)) + (set! (-> this lightning-index) arg0) + (set! (-> this lightning-val) arg1) + (set! (-> this lightning-time2) (seconds-per-frame)) + (set! (-> this lightning-time3) arg2) + 0 + (none) + ) + +;; definition for method 9 of type mood-control +;; WARN: Return type mismatch int vs none. +(defmethod init-weather! ((this mood-control)) + (local-vars (v1-33 int) (v1-200 sound-instance) (a1-12 object)) + (when (level-get-target-inside *level*) + (set! (-> this mood-direction-table) *mood-direction-table*) + (let ((s5-0 (new 'stack-no-clear 'mood-control-work))) + (let ((s4-0 this)) + (cond + ((and (-> s4-0 overide-weather-flag) (not (movie?)) (= (-> s4-0 current-special-interp) 0.0)) + (set! (-> s5-0 weather cloud) (* 2.0 (fmax 0.0 (fmin 1.0 (-> this overide cloud))))) + (set! (-> s5-0 weather fog) (* 2.0 (-> this overide fog))) + ) + (else + (set! (-> s5-0 weather cloud) (* 2.0 (fmax 0.0 (fmin 1.0 (-> this current-interp cloud))))) + (set! (-> s5-0 weather fog) (* 2.0 (fmax 0.0 (fmin 1.0 (-> this current-interp fog))))) + ) + ) + ) + (set! (-> s5-0 iweather cloud) (the int (-> s5-0 weather cloud))) + (let ((f0-12 (- (-> s5-0 weather cloud) (the float (-> s5-0 iweather cloud))))) + (cond + ((zero? (-> s5-0 iweather cloud)) + (if (< f0-12 0.5) + (set! (-> s5-0 interp cloud) 0.0) + (set! (-> s5-0 interp cloud) (* 2.0 (+ -0.5 f0-12))) + ) + ) + (else + (set! (-> s5-0 interp cloud) f0-12) + ) + ) + ) + (set! (-> s5-0 iweather fog) (the int (-> s5-0 weather fog))) + (set! (-> s5-0 interp fog) (- (-> s5-0 weather fog) (the float (-> s5-0 iweather fog)))) + (let ((a0-2 (-> s5-0 iweather fog)) + (v1-24 (-> s5-0 iweather cloud)) + ) + (set! (-> s5-0 index 0) (+ (* 3 v1-24) a0-2)) + (set! (-> s5-0 index 1) (+ a0-2 1 (* 3 v1-24))) + (set! (-> s5-0 index 2) (+ (* 3 (+ v1-24 1)) a0-2)) + (set! (-> s5-0 index 3) (+ a0-2 1 (* 3 (+ v1-24 1)))) + ) + (let ((v1-28 (-> s5-0 iweather cloud))) + (set! (-> s5-0 color-interp) (-> s5-0 interp cloud)) + (set! (-> s5-0 color-index 0) v1-28) + (set! (-> s5-0 color-index 1) (+ v1-28 1)) + ) + 0 + (let ((f0-22 (- (-> s5-0 weather cloud) (the float (-> s5-0 iweather cloud))))) + (cond + ((zero? (-> s5-0 iweather cloud)) + (set! (-> s5-0 channel-interp) 0.0) + (set! v1-33 0) + ) + ((= (-> s5-0 iweather cloud) 2) + (set! (-> s5-0 channel-interp) 0.0) + (set! v1-33 2) + ) + ((< f0-22 0.5) + (set! (-> s5-0 channel-interp) (* 2.0 f0-22)) + (set! v1-33 0) + ) + (else + (set! (-> s5-0 channel-interp) (* 2.0 (+ -0.5 f0-22))) + (set! v1-33 1) + ) + ) + ) + (set! (-> s5-0 channel-index 0) v1-33) + (set! (-> s5-0 channel-index 1) (+ v1-33 1)) + (let* ((s4-1 this) + (f0-33 (if (and (-> s4-1 overide-weather-flag) (and (not (movie?)) (= (-> s4-1 current-special-interp) 0.0))) + (* 8.0 (-> this overide cloud)) + (* 8.0 (fmax 0.0 (fmin 1.0 (-> this current-interp cloud)))) + ) + ) + (v1-46 (the int f0-33)) + ) + (set! (-> s5-0 cloud-interp) (- f0-33 (the float v1-46))) + (set! (-> s5-0 cloud-index 0) v1-46) + (set! (-> s5-0 cloud-index 1) (+ v1-46 1)) + ) + (cond + ((= (-> *time-of-day-context* special-mood) 'desert) + (apply-mood-fog + this + s5-0 + (the-as mood-color-table *desert-mood-fog-table*) + (the-as mood-color-table *sandstorm-start-mood-fog-table*) + (the-as mood-color-table *sandstorm-end-mood-fog-table*) + (-> this current-special-interp) + ) + (mood-control-method-20 + this + s5-0 + *desert-mood-color-table* + *sandstorm-start-mood-color-table* + *sandstorm-end-mood-color-table* + (-> this current-special-interp) + ) + (apply-fog-height this s5-0 327680.0 614400.0 4096000.0 (-> this current-special-interp)) + (set! a1-12 s5-0) + (adjust-num-clouds this (the-as mood-control-work a1-12)) + ) + (else + (apply-mood-clouds-and-fog this s5-0) + (apply-mood-colors this s5-0) + (apply-mood-channels this s5-0) + (set! a1-12 s5-0) + (adjust-num-clouds this (the-as mood-control-work a1-12)) + ) + ) + ) + (when (not (or (paused?) (let ((s5-1 this)) + (and (-> s5-1 overide-weather-flag) (not (movie?)) (= (-> s5-1 current-special-interp) 0.0)) + ) + ) + ) + (when (!= (-> this time-until-random cloud) -99.0) + (set! (-> this target-interp cloud) + (fmax (fmin (-> this target-interp cloud) (-> this range max-cloud)) (-> this range min-cloud)) + ) + (let ((t9-13 seek) + (a0-19 (-> this current-interp cloud)) + ) + (set! a1-12 (-> this target-interp cloud)) + (set! (-> this current-interp cloud) + (t9-13 a0-19 (the-as float a1-12) (* (/ 1.0 (-> this speed-interp cloud)) (seconds-per-frame))) + ) + ) + ) + (when (!= (-> this time-until-random fog) -99.0) + (set! (-> this target-interp fog) + (fmax (fmin (-> this target-interp fog) (-> this range max-fog)) (-> this range min-fog)) + ) + (let ((t9-14 seek) + (a0-20 (-> this current-interp fog)) + ) + (set! a1-12 (-> this target-interp fog)) + (set! (-> this current-interp fog) + (t9-14 a0-20 (the-as float a1-12) (* (/ 1.0 (-> this speed-interp fog)) (seconds-per-frame))) + ) + ) + ) + (when (!= (-> this time-until-random cloud) -99.0) + (set! (-> this time-until-random cloud) (- (-> this time-until-random cloud) (* 300.0 (seconds-per-frame)))) + (when (< (-> this time-until-random cloud) 0.0) + (let* ((f30-0 (-> this time-until-random-min cloud)) + (v1-84 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-85 (the-as number (logior #x3f800000 v1-84))) + ) + (set! (-> this time-until-random cloud) + (+ f30-0 (* (+ -1.0 (the-as float v1-85)) + (- (-> this time-until-random-max cloud) (-> this time-until-random-min cloud)) + ) + ) + ) + ) + (let* ((v1-88 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-89 (the-as number (logior #x3f800000 v1-88))) + (f30-1 (+ -1.0 (the-as float v1-89))) + (v1-92 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-93 (the-as number (logior #x3f800000 v1-92))) + (f28-0 (+ -1.0 (the-as float v1-93))) + (v1-96 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-97 (the-as number (logior #x3f800000 v1-96))) + (f26-0 (+ -1.0 (the-as float v1-97))) + (v1-100 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-101 (the-as number (logior #x3f800000 v1-100))) + (f24-0 (+ -1.0 (the-as float v1-101))) + (v1-104 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-105 (the-as number (logior #x3f800000 v1-104))) + (f1-49 (+ -1.0 (the-as float v1-105))) + ) + (set! (-> this target-interp cloud) + (fmax + (fmin (+ -0.25 (* 0.25 (+ f30-1 f28-0 f26-0 f24-0 f1-49))) (-> this range max-cloud)) + (-> this range min-cloud) + ) + ) + ) + (let* ((f30-2 30.0) + (f28-1 90.0) + (v1-113 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-114 (the-as number (logior #x3f800000 v1-113))) + ) + (set! (-> this speed-interp cloud) (+ f30-2 (* f28-1 (+ -1.0 (the-as float v1-114))))) + ) + (when (and (< 0.0 (-> *setting-control* user-current rain)) + (< (-> this target-interp cloud) 0.5) + (< 0.25 (-> this target-interp cloud)) + (or (< (-> this target-interp fog) 0.25) (< 0.75 (-> this target-interp fog))) + ) + (set! (-> this speed-interp fog) (fabs (/ (* 1.25 (-> this current-interp fog) (-> this speed-interp cloud)) + (+ -0.75 (-> this current-interp cloud)) + ) + ) + ) + (set! (-> this target-interp fog) 0.5) + (set! (-> this time-until-random fog) (-> this time-until-random cloud)) + ) + ) + ) + (when (!= (-> this time-until-random fog) -99.0) + (set! (-> this time-until-random fog) (- (-> this time-until-random fog) (* 300.0 (seconds-per-frame)))) + (when (< (-> this time-until-random fog) 0.0) + (let* ((f30-3 (-> this time-until-random-min fog)) + (v1-137 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-138 (the-as number (logior #x3f800000 v1-137))) + ) + (set! (-> this time-until-random fog) + (+ f30-3 + (* (+ -1.0 (the-as float v1-138)) (- (-> this time-until-random-max fog) (-> this time-until-random-min fog))) + ) + ) + ) + (let* ((v1-141 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-142 (the-as number (logior #x3f800000 v1-141))) + (f30-4 (+ -1.0 (the-as float v1-142))) + (v1-145 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-146 (the-as number (logior #x3f800000 v1-145))) + (f28-2 (+ -1.0 (the-as float v1-146))) + (v1-149 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-150 (the-as number (logior #x3f800000 v1-149))) + (f26-1 (+ -1.0 (the-as float v1-150))) + (v1-153 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-154 (the-as number (logior #x3f800000 v1-153))) + (f24-1 (+ -1.0 (the-as float v1-154))) + (v1-157 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-158 (the-as number (logior #x3f800000 v1-157))) + (f0-118 (+ -1.0 (the-as float v1-158))) + ) + (set! (-> this target-interp fog) + (fmax (fmin (* 0.2 (+ f30-4 f28-2 f26-1 f24-1 f0-118)) (-> this range max-fog)) (-> this range min-fog)) + ) + ) + (let* ((f30-5 30.0) + (f28-3 90.0) + (v1-165 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-166 (the-as number (logior #x3f800000 v1-165))) + ) + (set! (-> this speed-interp fog) (+ f30-5 (* f28-3 (+ -1.0 (the-as float v1-166))))) + ) + ) + ) + ) + (when (logtest? #x100000 (-> *game-info* secrets)) + (set! (-> this current-interp cloud) 1.0) + (set! (-> this current-interp fog) 1.0) + ) + (let* ((s5-2 this) + (f30-6 (if (and (-> s5-2 overide-weather-flag) (and (not (movie?)) (= (-> s5-2 current-special-interp) 0.0))) + (-> this overide cloud) + (-> this current-interp cloud) + ) + ) + (s5-3 this) + (f26-2 (if (and (-> s5-3 overide-weather-flag) (and (not (movie?)) (= (-> s5-3 current-special-interp) 0.0))) + (-> this overide fog) + (-> this current-interp fog) + ) + ) + (f28-4 (-> *time-of-day-context* max-rain)) + ) + (set! (-> this sound-pitch) (* 1.442695 (logf (-> *display* bg-clock clock-ratio)))) + (let* ((f0-140 (fmax 0.0 (fmin (* 4.0 (fmax 0.0 (+ -0.5 f26-2)) (fmax 0.0 (+ -0.5 f30-6))) f28-4))) + (f30-7 (fmin 0.75 f0-140)) + ) + (set! (-> *setting-control* user-default rain) f30-7) + (level-get-target-inside *level*) + (cond + ((and (< 0.0 (-> *setting-control* user-current rain)) (!= *master-mode* 'progress)) + (gen-lightning-and-thunder! this (the-as int a1-12)) + (cond + ((zero? (-> this rain-id)) + ) + ((begin (set! v1-200 (find-sound-instance (-> this rain-id) #t)) v1-200) + (set! (-> v1-200 volume) (the int (* 1024.0 f30-7))) + (set! (-> v1-200 pitch-mod) (the int (* 1524.0 (-> this sound-pitch)))) + (logior! (-> v1-200 flags) 64) + (logior! (-> v1-200 mask) 1) + (-> v1-200 id) + ) + (else + 0 + ) + ) + ) + (else + (set! (-> this lightning-flash) 0.0) + (when (nonzero? (-> this rain-id)) + (sound-stop (-> this rain-id) #t) + (set! (-> this rain-id) (new 'static 'sound-id)) + 0 + ) + ) + ) + ) + ) + (if (not (paused?)) + (seek! + (-> this current-special-interp) + (-> this target-special-interp) + (* (-> this rate-special-interp) (seconds-per-frame)) + ) + ) + (when (-> this display-flag) + (let ((s5-4 this)) + (cond + ((and (-> s5-4 overide-weather-flag) (not (movie?)) (= (-> s5-4 current-special-interp) 0.0)) + (format *stdcon* "override cloud ~f~%" (-> this overide cloud)) + (format *stdcon* "override fog ~f~%" (-> this overide fog)) + ) + (else + (format *stdcon* "time until random cloud ~f~%" (/ (-> this time-until-random cloud) 300)) + (format *stdcon* "current cloud ~f~%" (-> this current-interp cloud)) + (format *stdcon* "target cloud ~f~%" (-> this target-interp cloud)) + (format *stdcon* "speed cloud ~f~%" (* (/ 1.0 (-> this speed-interp cloud)) (seconds-per-frame))) + (format *stdcon* "time until random fog ~f~%" (/ (-> this time-until-random fog) 300)) + (format *stdcon* "current fog ~f~%" (-> this current-interp fog)) + (format *stdcon* "target fog ~f~%" (-> this target-interp fog)) + (format *stdcon* "speed fog ~f~%" (* (/ 1.0 (-> this speed-interp fog)) (seconds-per-frame))) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 10 of type mood-control +;; WARN: Return type mismatch int vs none. +(defmethod set-cloud-and-fog-interp! ((this mood-control) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) + (set! (-> this target-interp cloud) arg0) + (set! (-> this target-interp fog) arg1) + (set! (-> this speed-interp cloud) arg2) + (set! (-> this speed-interp fog) arg3) + (if (= arg2 0.0) + (set! (-> this current-interp cloud) arg0) + ) + (if (= arg3 0.0) + (set! (-> this current-interp fog) arg1) + ) + 0 + (none) + ) + +;; definition for method 11 of type mood-control +;; WARN: Return type mismatch int vs none. +(defmethod update-mood-range! ((this mood-control) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) + (set! (-> this range min-cloud) arg0) + (set! (-> this range max-cloud) arg1) + (set! (-> this range min-fog) arg2) + (set! (-> this range max-fog) arg3) + 0 + (none) + ) + +;; definition for method 12 of type mood-control +;; WARN: Return type mismatch int vs none. +(defmethod set-time-for-random-weather! ((this mood-control) (arg0 float) (arg1 float)) + (set! (-> this time-until-random cloud) arg0) + (set! (-> this time-until-random fog) arg1) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/mood/weather-part_REF.gc b/test/decompiler/reference/jakx/engine/gfx/mood/weather-part_REF.gc new file mode 100644 index 0000000000..c40f3761c3 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/mood/weather-part_REF.gc @@ -0,0 +1,855 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-rain-screend-drop-real + :id 1 + :flags (sp2) + :bounds (static-bspherem 0 0 0 16) + :parts ((sp-item 12 :binding 8) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 8 :flags (sp2 sp3) :binding 9) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 9 :flags (sp2 sp3)) + (sp-item 13 :binding 10) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 10 :flags (sp2 sp3) :binding 11) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + (sp-item 11 :flags (sp2 sp3)) + ) + ) + +;; definition for symbol group-rain-screend-drop, type sparticle-launch-group +(define group-rain-screend-drop (-> *part-group-id-table* 1)) + +;; failed to figure out what this is: +(defpart 13 + :init-specs ((:texture (common-white common)) + (:num 0.1) + (:x (meters -4.5) (meters 9)) + (:y (meters -3) (meters 6)) + (:scale-x (meters 2.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 12.0) + (:scalevel-x (meters 0.16666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:timer (seconds 0.035)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + ) + ) + +;; failed to figure out what this is: +(defpart 10 + :init-specs ((:texture (lakedrop level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 255.0) + (:a 20.0) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.05)) + (:next-launcher 14) + ) + ) + +;; failed to figure out what this is: +(defpart 14 + :init-specs ((:scalevel-x (meters 0.004166667)) (:scalevel-y :copy scalevel-x) (:fade-a -0.06666667)) + ) + +;; failed to figure out what this is: +(defpart 11 + :init-specs ((:num 1.0) + (:rot-x 12) + (:r 4096.0) + (:g 3276.8) + (:b 3276.8) + (:fade-r 6.068148) + (:fade-g 68.26667) + (:fade-b 3.034074) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (distort)) + (:next-time (seconds 0.1)) + (:next-launcher 15) + ) + ) + +;; failed to figure out what this is: +(defpart 15 + :init-specs ((:fade-g -5.1200004)) + ) + +;; failed to figure out what this is: +(defpart 12 + :init-specs ((:texture (common-white common)) + (:num 0.1) + (:x (meters -4.5) (meters 9)) + (:y (meters -3) (meters 6)) + (:scale-x (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 12.0) + (:scalevel-x (meters 0.26666668)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:timer (seconds 0.035)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + ) + ) + +;; failed to figure out what this is: +(defpart 8 + :init-specs ((:texture (lakedrop level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2.6)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 255.0) + (:a 20.0) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.8) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.05)) + (:next-launcher 16) + ) + ) + +;; failed to figure out what this is: +(defpart 16 + :init-specs ((:scalevel-x (meters 0.008333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.06666667)) + ) + +;; failed to figure out what this is: +(defpart 9 + :init-specs ((:num 1.0) + (:rot-x 24) + (:r 12288.0) + (:g 6553.6) + (:b 6553.6) + (:fade-r 12.136296) + (:fade-g 136.53334) + (:fade-b 6.068148) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.9)) + (:flags (distort)) + (:next-time (seconds 0.1)) + (:next-launcher 17) + ) + ) + +;; failed to figure out what this is: +(defpart 17 + :init-specs ((:fade-g -10.240001)) + ) + +;; failed to figure out what this is: +(defpartgroup group-stars + :id 2 + :flags (sp1) + :bounds (static-bspherem 0 0 0 8) + :parts ((sp-item 18 :flags (sp5)) (sp-item 19 :flags (sp5)) (sp-item 20 :flags (sp5))) + ) + +;; failed to figure out what this is: +(defpart 18 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:scale-x (meters 30) (meters 20)) + (:scale-y :copy scale-x) + (:r 256.0) + (:g 256.0) + (:b 256.0) + (:a 0.0) + (:fade-a 0.42666668) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.2) (seconds 0.797)) + (:next-launcher 21) + (:conerot-x (degrees -89) (degrees 178)) + (:conerot-y (degrees 0) (degrees 1440)) + (:rotate-y (degrees 0) (degrees 3600)) + (:conerot-radius (meters 5000)) + ) + ) + +;; failed to figure out what this is: +(defpart 21 + :init-specs ((:fade-a 0.0) (:next-time (seconds 99999)) (:next-launcher 22)) + ) + +;; failed to figure out what this is: +(defpart 22 + :init-specs ((:fade-a -0.42666668)) + ) + +;; failed to figure out what this is: +(defpart 19 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:scale-x (meters 30) (meters 20)) + (:scale-y :copy scale-x) + (:r 256.0) + (:g 256.0) + (:b 256.0) + (:a 0.0) + (:fade-a 0.42666668) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.2) (seconds 0.797)) + (:next-launcher 21) + (:conerot-x (degrees 30) (degrees 59)) + (:conerot-y (degrees 0) (degrees 2880)) + (:rotate-y (degrees 0) (degrees 3600)) + (:conerot-radius (meters 5000)) + ) + ) + +;; failed to figure out what this is: +(defpart 20 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:scale-x (meters 30) (meters 20)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:fade-a 0.42666668) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.2) (seconds 0.797)) + (:next-launcher 21) + (:conerot-x (degrees 60) (degrees 29)) + (:conerot-y (degrees 0) (degrees 5760)) + (:rotate-y (degrees 0) (degrees 3600)) + (:conerot-radius (meters 5000)) + ) + ) + +;; failed to figure out what this is: +(defpart 23 + :init-specs ((:texture (common-white common)) + (:num 4.0) + (:x (meters 10) (meters 10)) + (:y (meters 2) (meters 14)) + (:scale-x (meters 0.2) (meters 0.1)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters -0.01) (meters -0.0033333334)) + (:rotvel-z (degrees -1.2) (degrees 2.4)) + (:fade-a 0.85333335) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.25) (seconds 0.247)) + (:next-launcher 24) + (:rotate-y (degrees 0) (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 25 + :init-specs ((:texture (common-white common)) + (:num 0.0) + (:x (meters 0) (meters 20)) + (:y (meters 16)) + (:scale-x (meters 0.2) (meters 0.1)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters -0.01) (meters -0.0033333334)) + (:rotvel-z (degrees -1.2) (degrees 2.4)) + (:fade-a 0.85333335) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.25) (seconds 0.247)) + (:next-launcher 24) + (:rotate-y (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpart 24 + :init-specs ((:fade-a 0.0) (:next-time (seconds 4)) (:next-launcher 26)) + ) + +;; failed to figure out what this is: +(defpart 26 + :init-specs ((:fade-a -0.85333335)) + ) + +;; definition for function update-snow +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun update-snow ((arg0 float) (arg1 vector) (arg2 vector)) + (let ((f0-0 (lerp-scale 0.0 1.0 (vector-length arg2) 2048.0 40960.0))) + (set! (-> *part-id-table* 25 init-specs 1 initial-valuef) (- 1.0 f0-0)) + (set! (-> *part-id-table* 23 init-specs 1 initial-valuef) (* 4.0 f0-0)) + ) + (set! (-> *part-id-table* 23 init-specs 19 initial-valuef) (+ 32768.0 (vector-y-angle arg2))) + (launch-particles (-> *part-id-table* 25) arg1) + (launch-particles (-> *part-id-table* 23) arg1) + 0 + (none) + ) + +;; failed to figure out what this is: +(defpart 27 + :init-specs ((:texture (lakedrop level-default-sprite)) + (:birth-func 'birth-func-rain) + (:num 1.0) + (:x (meters -20) (meters 40)) + (:y (meters 30)) + (:scale-x (meters 0.03) (meters 0.03)) + (:scale-y (meters 0.5) (meters 0.5)) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 32.0 64.0) + (:vel-y (meters -0.1) (meters -0.2)) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:userdata 0.0) + (:func 'check-drop-level-rain) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 28 + :init-specs ((:texture (lakedrop level-default-sprite)) + (:birth-func 'birth-func-rain) + (:num 4.0) + (:x (meters -20) (meters 40)) + (:y (meters 30)) + (:scale-x (meters 0.03) (meters 0.03)) + (:scale-y (meters 0.5) (meters 0.5)) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 32.0 64.0) + (:vel-y (meters -0.06666667) (meters -0.033333335)) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:userdata 0.0) + (:func 'check-drop-level-rain2) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 29 + :init-specs ((:texture (lakedrop level-default-sprite)) + (:num 1.0 3.0) + (:scale-x (meters 0.08) (meters 0.03)) + (:rot-x 4) + (:scale-y :copy scale-x) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 64.0 64.0) + (:omega (degrees 0.01575) (degrees 0.009)) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.005) (meters -0.00066666666)) + (:friction 0.98) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 left-multiply-quat)) + (:userdata 0.0) + (:func 'check-drop-level-splash) + (:next-time (seconds 0) (seconds 0.33)) + (:next-launcher 30) + (:conerot-x (degrees 0) (degrees 50.000004)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 31 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-omega-normal-orient) + (:num 1.0) + (:y (meters 0.2)) + (:scale-x (meters 0.5) (meters 0.25)) + (:scale-y :copy scale-x) + (:r 32.0 32.0) + (:g :copy r) + (:b 64.0 32.0) + (:a 64.0 32.0) + (:omega (degrees 0)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.2) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:userdata :data (new 'static 'boxed-array :type int32 10 0 0 0 0 #x401000 #x405d00)) + (:func 'sparticle-texture-animate) + ) + ) + +;; failed to figure out what this is: +(defpart 32 + :init-specs ((:texture (motion-blur-part level-default-sprite)) + (:num 2.0 4.0) + (:scale-x (meters 2.5)) + (:rot-x 4) + (:scale-y (meters 0.06) (meters 0.03)) + (:r 255.0) + (:g 128.0 128.0) + (:b 0.0 128.0) + (:a 128.0) + (:omega (degrees 0.018) (degrees 0.01125)) + (:vel-y (meters 0.1) (meters 0.06666667)) + (:fade-g -2.55 -2.55) + (:fade-b -8.0) + (:fade-a -0.32 -0.64) + (:friction 0.8 0.02) + (:timer (seconds 0.335) (seconds 0.33)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 80)) + (:conerot-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 33 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.25)) + (:rot-x (degrees 0.225)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 196.0 128.0) + (:b 128.0 64.0) + (:a 96.0 16.0) + (:omega (degrees 3608.9998)) + (:scalevel-x (meters 0.08)) + (:scalevel-y :copy scalevel-x) + (:fade-g -6.375) + (:fade-b -13.066667) + (:fade-a -2.8) + (:timer (seconds 0.05) (seconds 0.03)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 2048.0) + ) + ) + +;; definition for function birth-func-omega-normal-orient +;; WARN: Return type mismatch int vs none. +(defun birth-func-omega-normal-orient ((arg0 sparticle-system) + (arg1 sparticle-cpuinfo) + (arg2 sprite-vec-data-3d) + (arg3 sparticle-launcher) + (arg4 sparticle-launch-state) + ) + (local-vars (v1-6 float) (v1-7 float)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s4-0 (new 'stack-no-clear 'vector)) + (gp-0 (new 'stack-no-clear 'quaternion)) + ) + (set! (-> s4-0 x) (* 0.007874016 (the float (-> arg1 datab 2)))) + (set! (-> s4-0 y) 0.0) + (set! (-> s4-0 z) (* -0.007874016 (the float (-> arg1 datab 0)))) + (vector-normalize! s4-0 1.0) + (quaternion-vector-angle! gp-0 s4-0 (acos (* 0.007874016 (the float (-> arg1 datab 1))))) + (cond + ((< (-> gp-0 w) 0.0) + (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) + (.lvf vf2 (&-> gp-0 quad)) + (.sub.vf.xyz vf1 vf0 vf2) + (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) + (.mov v1-6 vf1) + ) + (else + (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) + (.lvf vf2 (&-> gp-0 quad)) + (.add.vf.xyz vf1 vf0 vf2) + (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) + (.mov v1-7 vf1) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function birth-func-rain +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun birth-func-rain ((arg0 sparticle-system) + (arg1 sparticle-cpuinfo) + (arg2 sprite-vec-data-3d) + (arg3 sparticle-launcher) + (arg4 sparticle-launch-state) + ) + (let ((s4-0 (new 'stack-no-clear 'collide-query))) + (set! (-> s4-0 start-pos quad) (-> arg2 x-y-z-sx quad)) + (set-vector! (-> s4-0 move-dist) 0.0 -163840.0 0.0 1.0) + (let ((v1-2 s4-0)) + (set! (-> v1-2 radius) 40.96) + (set! (-> v1-2 collide-with) (collide-spec backgnd)) + (set! (-> v1-2 ignore-process0) #f) + (set! (-> v1-2 ignore-process1) #f) + (set! (-> v1-2 ignore-pat) + (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1 :board #x1) + ) + (set! (-> v1-2 action-mask) (collide-action solid)) + (set! (-> v1-2 best-other-prim) #f) + ) + ((method-of-object *collide-cache* collide-cache-method-13)) + (cond + ((>= (the-as float (gpr->fpr ((method-of-object *collide-cache* collide-cache-method-16)))) 0.0) + (set! (-> arg1 user-float) (-> s4-0 best-other-tri intersect y)) + (let ((f0-8 (+ 65536.0 (-> (view-get-active-math-camera) trans y)))) + (if (< (-> arg1 user-float) f0-8) + (set! (-> arg2 x-y-z-sx y) f0-8) + ) + ) + (set! (-> arg1 datab 0) (the int (* 127.0 (-> s4-0 best-other-tri normal x)))) + (set! (-> arg1 datab 1) (the int (* 127.0 (-> s4-0 best-other-tri normal y)))) + (set! (-> arg1 datab 2) (the int (* 127.0 (-> s4-0 best-other-tri normal z)))) + (set! (-> arg1 datab 3) (the-as int (-> s4-0 best-other-tri pat event))) + ) + (else + (set! (-> arg1 omega) 65280.0) + (set! (-> arg1 user-float) (+ -204800.0 (-> arg2 x-y-z-sx y))) + ) + ) + ) + *ocean* + (let ((t9-3 (method-of-type ocean ocean-method-11))) + (-> arg2 x-y-z-sx) + (let ((f0-21 (gpr->fpr (t9-3)))) + (when (!= (the-as float f0-21) 4095996000.0) + (when (< (-> arg1 user-float) (the-as float f0-21)) + (set! (-> arg1 user-float) (the-as float f0-21)) + (set! (-> arg1 datab 0) 0) + (set! (-> arg1 datab 1) 127) + (set! (-> arg1 datab 2) 0) + (set! (-> arg1 datab 3) 0) + 0 + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for function check-drop-level-rain +;; INFO: Used lq/sq +(defun check-drop-level-rain ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (when (< (-> arg2 y) (-> arg1 user-float)) + (let ((s4-0 (new 'stack-no-clear 'vector)) + (gp-0 (new 'stack-no-clear 'matrix)) + ) + (let ((f30-0 (-> arg1 user-float))) + (sp-kill-particle arg0 arg1) + (set-vector! s4-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) + (-> arg1 omega) + (set-vector! + (-> gp-0 uvec) + (* 0.007874016 (the float (-> arg1 datab 0))) + (* 0.007874016 (the float (-> arg1 datab 1))) + (* 0.007874016 (the float (-> arg1 datab 2))) + 0.0 + ) + (set-vector! (-> gp-0 fvec) 0.0 0.0 1.0 0.0) + (vector-cross! (-> gp-0 rvec) (-> gp-0 uvec) (-> gp-0 fvec)) + (set! (-> gp-0 trans quad) (-> s4-0 quad)) + (set! (-> *part-id-table* 29 init-specs 23 initial-valuef) (vector-y-angle (-> gp-0 uvec))) + (set! (-> *part-id-table* 29 init-specs 22 initial-valuef) (- 16384.0 (vector-x-angle (-> gp-0 uvec)))) + (set! (-> *part-id-table* 29 init-specs 16 initial-valuef) f30-0) + ) + (launch-particles (-> *part-id-table* 29) gp-0 :origin-is-matrix #t) + (set! (-> *part-id-table* 31 init-specs 10 initial-valuef) (-> arg1 omega)) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 31) gp-0 :origin-is-matrix #t) + ) + ) + (none) + ) + +;; definition for function check-drop-level-rain2 +;; WARN: Return type mismatch symbol vs none. +(defun check-drop-level-rain2 ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (if (< (-> arg2 y) (-> arg1 user-float)) + (sp-kill-particle arg0 arg1) + ) + (none) + ) + +;; definition for function check-drop-level-splash +;; WARN: Return type mismatch symbol vs none. +(defun check-drop-level-splash ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (sparticle-motion-blur arg0 arg1 arg2) + (if (< (-> arg2 y) (-> arg1 user-float)) + (sp-kill-particle arg0 arg1) + ) + (none) + ) + +;; definition for function cam-master-effect +;; WARN: Return type mismatch int vs none. +(defbehavior cam-master-effect camera-master () + 0 + (none) + ) + +;; definition for function sparticle-track-sun +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun sparticle-track-sun ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 matrix)) + (-> arg1 key 0) + (let* ((s2-0 (the int (-> arg1 user-float))) + (s5-0 (math-camera-pos)) + (s4-0 (+ (the-as uint (-> *sky-work* upload-data)) (* (/ s2-0 4) 64))) + ) + (let ((s3-0 *time-of-day*) + (v1-4 (-> (view-get-active-math-camera) inv-camera-rot)) + ) + (cond + ((= s2-0 1) + (set! (-> arg2 uvec z) (+ 8192.0 (* 0.5 (vector-y-angle (-> v1-4 fvec))))) + (set! (-> s3-0 0 sun-count) 1) + ) + ((= s2-0 4) + (set! (-> arg2 uvec z) (+ -8192.0 (* 0.5 (vector-y-angle (-> v1-4 fvec))))) + (+! (-> s3-0 0 green-sun-count) 1) + ) + ((= s2-0 8) + (set! (-> arg2 uvec z) (+ -8192.0 (* 0.5 (vector-y-angle (-> v1-4 fvec))))) + (+! (-> s3-0 0 moon-count) 1) + ) + ) + ) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (dynamic-array-field-access s4-0 sun PLACEHOLDER pos quad)) + (if (-> *time-of-day-context* use-camera-other) + (vector-matrix*! s3-1 s3-1 (-> (view-get-active-math-camera) camera-rot-other-sky)) + ) + (vector+float*! s3-1 s5-0 s3-1 4096.0) + (set! (-> arg2 rvec x) (-> s3-1 x)) + (set! (-> arg2 rvec y) (-> s3-1 y)) + (set! (-> arg2 rvec z) (-> s3-1 z)) + ) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-sun + :id 3 + :flags (sp1) + :bounds (static-bspherem 0 0 0 70) + :parts ((sp-item 34 :flags (sp3 sp5)) (sp-item 35 :flags (sp3 sp5))) + ) + +;; failed to figure out what this is: +(defpart 34 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2550)) + (:rot-x (degrees 1687.5)) + (:rot-z (degrees 30)) + (:scale-y (meters 2550)) + (:r 64.0) + (:g 64.0) + (:b 16.0) + (:a 70.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + (:func 'sparticle-track-sun) + ) + ) + +;; failed to figure out what this is: +(defpart 35 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 12000)) + (:rot-x (degrees 1687.5)) + (:rot-z (degrees 30)) + (:scale-y (meters 12000)) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 80.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + (:func 'sparticle-track-sun) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-green-sun + :id 4 + :flags (sp1) + :bounds (static-bspherem 0 0 0 70) + :parts ((sp-item 36 :flags (sp3 sp5)) (sp-item 37 :flags (sp3 sp5))) + ) + +;; failed to figure out what this is: +(defpart 36 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1500)) + (:rot-x (degrees 1125)) + (:rot-z (degrees 30)) + (:scale-y (meters 1500)) + (:r 16.0) + (:g 64.0) + (:b 32.0) + (:a 64.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 4.0) + (:func 'sparticle-track-sun) + ) + ) + +;; failed to figure out what this is: +(defpart 37 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 3000)) + (:rot-x (degrees 1125)) + (:rot-z (degrees 30)) + (:scale-y (meters 3000)) + (:r 0.0) + (:g 43.0) + (:b 8.0) + (:a 64.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 4.0) + (:func 'sparticle-track-sun) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-moon + :id 5 + :flags (sp1) + :bounds (static-bspherem 0 0 0 70) + :parts ((sp-item 38 :flags (sp3 sp5))) + ) + +;; failed to figure out what this is: +(defpart 38 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 6000)) + (:rot-x (degrees 2992.5)) + (:rot-z (degrees 30)) + (:scale-y (meters 6000)) + (:r 16.0) + (:g 32.0) + (:b 64.0) + (:a 64.0) + (:omega (degrees 0)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 8.0) + (:func 'sparticle-track-sun) + ) + ) diff --git a/test/decompiler/reference/jakx/engine/gfx/shrub/shrub-work_REF.gc b/test/decompiler/reference/jakx/engine/gfx/shrub/shrub-work_REF.gc new file mode 100644 index 0000000000..aefd909b87 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/shrub/shrub-work_REF.gc @@ -0,0 +1,323 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *instance-shrub-work*, type instance-shrub-work +(define *instance-shrub-work* + (new 'static 'instance-shrub-work + :matrix-tmpl (new 'static 'inline-array qword 20 + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050143)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050148)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05014d)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050152)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050157)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05015c)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050161)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050166)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05016b)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050170)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c050176)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05017b)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050180)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050185)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05018a)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05018f)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050194)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c050199)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x20000005 #x0 #x0 #x6c05019e)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x10000005 #x0 #x0 #x6c0501a3)) + ) + :count-tmpl (new 'static 'inline-array vector4w 20 + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 10) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 1) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 2) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 3) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 4) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 5) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 6) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 7) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 8) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 9) + (new 'static 'vector4w :x #x20000000 :z #x60010142 :w 10) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 1) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 2) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 3) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 4) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 5) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 6) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 7) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 8) + (new 'static 'vector4w :x #x20000000 :z #x60010175 :w 9) + ) + :mscalf-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :cmd (vif-cmd mscalf) :msk #x1) + ) + :mscalf-ret-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ret)) + :vif0 (new 'static 'vif-tag :cmd (vif-cmd mscalf) :msk #x1) + ) + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id next)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x1000000000008005 #xe) + ) + :billboard-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xd :id (dma-tag-id next)) + :vif1 (new 'static 'vif-tag :imm #xd :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x303e400000008004 #x412) + ) + :shrub-near-packets (new 'static 'inline-array shrub-near-packet 6 + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x9 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x400a :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #xb :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x345 #x117)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x120 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4121 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x122 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x363 #x22e)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x237 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4238 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x239 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x345 #x0)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x9 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x400a :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #xb :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x363 #x117)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x345 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x34c :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x120 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4121 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x122 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x345 #x22e)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + (new 'static 'shrub-near-packet + :matrix-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x363 :num #x6 :cmd (vif-cmd unpack-v4-32)) + ) + :header-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x36a :cmd (vif-cmd unpack-v4-32)) + ) + :stq-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif0 (new 'static 'vif-tag :imm #x103 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x237 :cmd (vif-cmd unpack-v2-16)) + ) + :color-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x4238 :cmd (vif-cmd unpack-v3-8)) + ) + :vertex-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id ref)) + :vif1 (new 'static 'vif-tag :imm #x239 :cmd (vif-cmd unpack-v3-16)) + ) + :mscal-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1) + ) + :init-tmpl (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id next)) + :vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)) + :vif1 (new 'static 'vif-tag :imm #x388 :num #x1 :cmd (vif-cmd unpack-v4-32)) + ) + :init-data (new 'static 'inline-array qword 2 + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x363 #x0)) + (new 'static 'qword :data (new 'static 'array uint32 4 #x0 #x0 #x0 #x1500000c)) + ) + ) + ) + :dma-ref (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id ref))) + :dma-end (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id end))) + :wind-const (new 'static 'vector :data (new 'static 'array float 4 0.5 100.0 0.0166 -1.0)) + :constants (new 'static 'vector :data (new 'static 'array float 4 128.0 1.0 0.0 0.0)) + :color-constant (new 'static 'vector4w :x #x47000000 :y #x47000000 :z #x47000000) + :start-bank (new 'static 'array uint8 20 #x0 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *instance-shrub-work* mscalf-tmpl vif0 imm) 103) + +;; failed to figure out what this is: +(set! (-> *instance-shrub-work* mscalf-ret-tmpl vif0 imm) 103) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/sky/sky-data_REF.gc b/test/decompiler/reference/jakx/engine/gfx/sky/sky-data_REF.gc new file mode 100644 index 0000000000..1fdc289dd4 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/sky/sky-data_REF.gc @@ -0,0 +1,1190 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *sky-work*, type sky-work +(define *sky-work* + (new 'static 'sky-work + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x1000000000008005 #xe) + ) + :draw-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x502b400000008001 #x42421) + ) + :draw-tmpl2 (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x50ab400000008001 #x43431) + ) + :fog-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x902a400000008001 #x424242421) + ) + :blend-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x50ab400000008001 #x43431) + ) + :sprite-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x2003400000008001 #x55) + ) + :sprite-tmpl2 (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x21 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x21 :cmd (vif-cmd direct) :msk #x1) + ) + :gif (new 'static 'array uint64 2 #x2003400000008010 #x55) + ) + :sun-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -267.0 -267.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 267.0 267.0 0.0 0.0)) + ) + :green-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -126.0 -126.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 126.0 126.0 0.0 0.0)) + ) + :moon0-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -357.0 -357.0 0.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 357.0 357.0 0.0 0.0)) + ) + :moon1-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -1207.0 -1207.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 1207.0 1207.0 0.0 0.0)) + ) + :moon2-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -232.0 -232.0 0.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 232.0 232.0 0.0 0.0)) + ) + :star-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -1.5 -1.5 0.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 1.5 1.5 0.0 0.0)) + ) + :sun-colors (new 'static 'inline-array vector4w 2 + (new 'static 'vector4w :x #xff :y 64 :w 64) + (new 'static 'vector4w :x #xff :y #xff :z #x80 :w 64) + ) + :green-colors (new 'static 'inline-array vector4w 2 + (new 'static 'vector4w :y #xc4 :w #x80) + (new 'static 'vector4w :x #xc4 :y #xff :z #xff :w #x80) + ) + :moon-colors (new 'static 'inline-array vector4w 3 + (new 'static 'vector4w :x 16 :y 32 :z 64 :w 96) + (new 'static 'vector4w :x 16 :y 32 :z 64 :w 64) + (new 'static 'vector4w :x 80 :y 80 :z 80 :w #x80) + ) + :st-coords (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.0)) + (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 0.0)) + ) + :random (new 'static 'inline-array vector4w 8 + (new 'static 'vector4w :x #x181920 :y #x141516 :z #x101112 :w #x234567) + (new 'static 'vector4w :x #x878237 :y #x48778 :z #x489197 :w #x893830) + (new 'static 'vector4w :x #x24762 :y #x289278 :z #x724781 :w #x712983) + (new 'static 'vector4w :x #x176128 :y #x387487 :z #x780983 :w #x723176) + (new 'static 'vector4w :x #x987239 :y #x699872 :z #x987165 :w #x982397) + (new 'static 'vector4w :x #x723897 :y #x238723 :z #x987293 :w #x102981) + (new 'static 'vector4w :x #x387528 :y #x723099 :z #x140983 :w #x874310) + (new 'static 'vector4w :x #x2387 :y #x129818 :z #x219810 :w #x623790) + ) + :giftag-base (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan)) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-haze (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :abe #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-roof (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-clouds (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :abe #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :giftag-ocean (new 'static 'dma-gif + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :fge #x1) + :nreg #x3 + ) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) + ) + :disable-day-star #f + ) + ) + +;; definition for symbol sky-base-polygons, type (inline-array sky-vertex) +(define sky-base-polygons + (new 'static 'inline-array sky-vertex 12 + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -40960000.0 0.0 0.0)) + ) + ) + ) + +;; definition for symbol sky-roof-polygons, type (inline-array sky-vertex) +(define sky-roof-polygons + (new 'static 'inline-array sky-vertex 12 + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 40960000.0 0.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 40960000.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 -40960000.0 0.0 0.0 0.0)) + ) + (new 'static 'sky-vertex + :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -40960000.0 0.0)) + ) + (new 'static 'sky-vertex :pos (new 'static 'vector :data (new 'static 'array float 4 0.0 10240000.0 0.0 0.0))) + ) + ) + +;; definition for symbol *cloud-vert-array*, type cloud-vert-array +(define *cloud-vert-array* (new 'static 'cloud-vert-array)) + +;; definition for symbol *cloud-poly*, type (inline-array sky-vertex) +(define *cloud-poly* (new 'static 'inline-array sky-vertex 648 + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + ) + ) + +;; definition for function init-cloud-vert-array +;; INFO: Used lq/sq +(defun init-cloud-vert-array () + (let ((gp-0 *cloud-vert-array*)) + (dotimes (s5-0 10) + (dotimes (s4-0 10) + (let ((s3-0 (-> gp-0 data (+ (* 10 s5-0) s4-0)))) + (set! (-> s3-0 pos x) (* 2.0 (+ -4.5 (the float s4-0)))) + (set! (-> s3-0 pos z) (* 2.0 (+ -4.5 (the float s5-0)))) + (set! (-> s3-0 pos y) + (fmin (cos (* 182.04445 (* 10.0 (-> s3-0 pos x)))) (cos (* 182.04445 (* 10.0 (-> s3-0 pos z))))) + ) + (set-vector! (-> s3-0 stq) (* 0.25 (the float (+ s4-0 -4))) (* 0.25 (the float (+ s5-0 -4))) 1.0 1.0) + (set! (-> s3-0 nrm quad) (-> s3-0 pos quad)) + (+! (-> s3-0 nrm y) 1.0) + (vector-normalize! (-> s3-0 nrm) 1.0) + (vector-negate! (-> s3-0 nrm2) (-> s3-0 nrm)) + (cond + ((or (zero? s5-0) (= s5-0 9) (zero? s4-0) (= s4-0 9)) + (set! (-> s3-0 col w) 0.0) + (set! (-> s3-0 col2 w) 0.0) + ) + ((or (= s5-0 1) (= s5-0 8) (= s4-0 1) (= s4-0 8)) + (set! (-> s3-0 col w) 48.0) + (set! (-> s3-0 col2 w) 48.0) + ) + (else + (set! (-> s3-0 col w) 128.0) + (set! (-> s3-0 col2 w) 128.0) + ) + ) + ) + ) + ) + ) + #f + ) + +;; failed to figure out what this is: +(init-cloud-vert-array) + +;; definition for symbol *haze-vert-array*, type haze-vert-array +(define *haze-vert-array* (new 'static 'haze-vert-array)) + +;; definition for symbol *haze-poly*, type (inline-array sky-vertex) +(define *haze-poly* (new 'static 'inline-array sky-vertex 144 + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + (new 'static 'sky-vertex) + ) + ) + +;; definition for function init-haze-vert-array +;; INFO: Used lq/sq +(defun init-haze-vert-array () + (let ((gp-0 *haze-vert-array*)) + (dotimes (s5-0 36) + (let ((s4-0 (-> gp-0 data s5-0))) + (set! (-> s4-0 pos x) (* 9.0 (sin (* 182.04445 (* 10.0 (the float s5-0)))))) + (set! (-> s4-0 pos z) (* 9.0 (cos (* 182.04445 (* 10.0 (the float s5-0)))))) + (set! (-> s4-0 pos y) 0.0) + (set! (-> s4-0 nrm quad) (-> s4-0 pos quad)) + (+! (-> s4-0 nrm y) 1.0) + (vector-normalize! (-> s4-0 nrm) 1.0) + ) + ) + ) + #f + ) + +;; failed to figure out what this is: +(init-haze-vert-array) + +;; definition for method 9 of type sky-work +;; WARN: Return type mismatch int vs none. +(defmethod init-sun-data! ((this sky-work) (arg0 int) (arg1 float) (arg2 float) (arg3 float)) + (let ((v1-0 (logand arg0 1))) + (set! (-> this upload-data sun v1-0 r-sun) arg1) + (set! (-> this upload-data sun v1-0 r-halo) arg2) + (set! (-> this upload-data sun v1-0 r-aurora) arg3) + ) + 0 + (none) + ) + +;; definition for method 10 of type sky-work +;; WARN: Return type mismatch int vs none. +(defmethod init-orbit-settings! ((this sky-work) (arg0 int) (arg1 float) (arg2 float) (arg3 float) (arg4 float) (arg5 float) (arg6 float)) + (set! (-> this orbit arg0 high-noon) arg1) + (set! (-> this orbit arg0 tilt) (* 0.017453292 arg2)) + (set! (-> this orbit arg0 rise) (* 0.017453292 arg3)) + (set! (-> this orbit arg0 dist) arg4) + (set! (-> this orbit arg0 min-halo) arg5) + (set! (-> this orbit arg0 max-halo) arg6) + 0 + (none) + ) + +;; definition for function sky-make-sun-data +;; WARN: Return type mismatch int vs none. +(defun sky-make-sun-data ((arg0 sky-work) (arg1 int) (arg2 float)) + (let* ((s4-0 (-> arg0 orbit arg1)) + (s3-0 (the-as sky-sun-data (+ (the-as uint (-> arg0 upload-data)) (* arg1 64)))) + (f0-1 (- arg2 (-> s4-0 high-noon))) + (f30-0 (* 2730.6667 f0-1)) + (f28-0 (* (sin f30-0) (-> s4-0 dist))) + (f30-1 (cos f30-0)) + ) + (let* ((f24-0 (* f30-1 (-> s4-0 dist))) + (f26-0 (* f24-0 (cos-rad (-> s4-0 tilt)))) + (f24-1 (* f24-0 (sin-rad (-> s4-0 tilt)))) + (f22-0 (sin-rad (-> s4-0 rise))) + (f0-10 (cos-rad (-> s4-0 rise))) + ) + (set! (-> s3-0 pos z) (- (+ (* f28-0 f0-10) (* f24-1 f22-0)))) + (set! (-> s3-0 pos y) f26-0) + (set! (-> s3-0 pos x) (- (* f24-1 f0-10) (* f28-0 f22-0))) + ) + (let ((f0-14 (if (< f30-1 0.0) + 0.0 + f30-1 + ) + ) + ) + (set! (-> arg0 upload-data sun arg1 r-aurora) + (+ (* (-> s4-0 min-halo) (- 1.0 f0-14)) (* (-> s4-0 max-halo) f0-14)) + ) + ) + ) + 0 + (none) + ) + +;; definition for function sky-make-moon-data +;; WARN: Return type mismatch int vs none. +(defun sky-make-moon-data ((arg0 sky-work) (arg1 float)) + (let* ((s5-0 (-> arg0 orbit 2)) + (gp-0 (-> arg0 upload-data moon)) + (f0-1 (- arg1 (-> s5-0 high-noon))) + (f28-0 (* 2730.6667 f0-1)) + (f30-0 (* (sin f28-0) (-> s5-0 dist))) + (f26-0 (* (cos f28-0) (-> s5-0 dist))) + (f28-1 (* f26-0 (cos-rad (-> s5-0 tilt)))) + (f26-1 (* f26-0 (sin-rad (-> s5-0 tilt)))) + (f24-0 (sin-rad (-> s5-0 rise))) + (f0-10 (cos-rad (-> s5-0 rise))) + ) + (set! (-> gp-0 pos z) (- (+ (* f30-0 f0-10) (* f26-1 f24-0)))) + (set! (-> gp-0 pos y) f28-1) + (set! (-> gp-0 pos x) (- (* f26-1 f0-10) (* f30-0 f24-0))) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(init-sun-data! *sky-work* 0 60.0 200.0 300.0) + +;; failed to figure out what this is: +(init-sun-data! *sky-work* 1 15.0 20.0 300.0) + +;; failed to figure out what this is: +(init-orbit-settings! *sky-work* 0 12.5 -20.0 90.0 9950.0 300.0 300.0) + +;; failed to figure out what this is: +(init-orbit-settings! *sky-work* 1 4.0 0.0 90.0 9950.0 300.0 300.0) + +;; failed to figure out what this is: +(init-orbit-settings! *sky-work* 2 0.5 -40.0 90.0 9950.0 300.0 300.0) + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/sky/sky-h_REF.gc b/test/decompiler/reference/jakx/engine/gfx/sky/sky-h_REF.gc index 26c4f43f6d..724491ab57 100644 --- a/test/decompiler/reference/jakx/engine/gfx/sky/sky-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/gfx/sky/sky-h_REF.gc @@ -401,8 +401,8 @@ (disable-day-star basic) ) (:methods - (sky-work-method-9 () none) - (sky-work-method-10 () none) + (init-sun-data! (_type_ int float float float) none) + (init-orbit-settings! (_type_ int float float float float float float) none) (sky-work-method-11 () none) (sky-work-method-12 () none) (sky-work-method-13 () none) diff --git a/test/decompiler/reference/jakx/engine/gfx/sprite/particles/light-trails-h_REF.gc b/test/decompiler/reference/jakx/engine/gfx/sprite/particles/light-trails-h_REF.gc new file mode 100644 index 0000000000..9c55d6c6c4 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/gfx/sprite/particles/light-trails-h_REF.gc @@ -0,0 +1,534 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type color-array +(deftype color-array (inline-array-class) + ((data rgbaf :inline :dynamic) + ) + ) + +;; definition for method 3 of type color-array +(defmethod inspect ((this color-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> color-array heap-base) (the-as uint 16)) + +;; definition of type light-trail-composition +(deftype light-trail-composition (structure) + ((color-mode uint64) + (color-curve curve-color-piecewise) + (color-repeat-dist float) + (alpha-1-mode uint64) + (alpha-2-mode uint64) + (base-alpha float) + (alpha-curve-1 curve2d-piecewise) + (alpha-curve-2 curve2d-piecewise) + (alpha-repeat-dist float) + (width-mode uint64) + (base-width float) + (width-curve curve2d-piecewise) + (width-repeat-dist float) + (uv-mode uint64) + (uv-repeat-dist float) + (max-age uint64) + (tex-id texture-id) + (tex-name basic) + (lie-mode uint64) + (lie-vector vector :inline) + (zbuffer? symbol) + (use-tape-mode? symbol) + (blend-mode uint64) + (frame-stagger uint8) + ) + ) + +;; definition for method 3 of type light-trail-composition +(defmethod inspect ((this light-trail-composition)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'light-trail-composition) + (format #t "~1Tcolor-mode: ~D~%" (-> this color-mode)) + (format #t "~1Tcolor-curve: ~A~%" (-> this color-curve)) + (format #t "~1Tcolor-repeat-dist: ~f~%" (-> this color-repeat-dist)) + (format #t "~1Talpha-1-mode: ~D~%" (-> this alpha-1-mode)) + (format #t "~1Talpha-2-mode: ~D~%" (-> this alpha-2-mode)) + (format #t "~1Tbase-alpha: ~f~%" (-> this base-alpha)) + (format #t "~1Talpha-curve-1: ~A~%" (-> this alpha-curve-1)) + (format #t "~1Talpha-curve-2: ~A~%" (-> this alpha-curve-2)) + (format #t "~1Talpha-repeat-dist: ~f~%" (-> this alpha-repeat-dist)) + (format #t "~1Twidth-mode: ~D~%" (-> this width-mode)) + (format #t "~1Tbase-width: ~f~%" (-> this base-width)) + (format #t "~1Twidth-curve: ~A~%" (-> this width-curve)) + (format #t "~1Twidth-repeat-dist: ~f~%" (-> this width-repeat-dist)) + (format #t "~1Tuv-mode: ~D~%" (-> this uv-mode)) + (format #t "~1Tuv-repeat-dist: ~f~%" (-> this uv-repeat-dist)) + (format #t "~1Tmax-age: ~D~%" (-> this max-age)) + (format #t "~1Ttex-id: ~D~%" (-> this tex-id)) + (format #t "~1Ttex-name: ~A~%" (-> this tex-name)) + (format #t "~1Tlie-mode: ~D~%" (-> this lie-mode)) + (format #t "~1Tlie-vector: #~%" (-> this lie-vector)) + (format #t "~1Tzbuffer?: ~A~%" (-> this zbuffer?)) + (format #t "~1Tuse-tape-mode?: ~A~%" (-> this use-tape-mode?)) + (format #t "~1Tblend-mode: ~D~%" (-> this blend-mode)) + (format #t "~1Tframe-stagger: ~D~%" (-> this frame-stagger)) + (label cfg-4) + this + ) + +;; definition of type light-trail-breadcrumb +(deftype light-trail-breadcrumb (structure) + ((pos vector :inline) + (birth-time uint32 :overlay-at (-> pos data 3)) + ) + ) + +;; definition for method 3 of type light-trail-breadcrumb +(defmethod inspect ((this light-trail-breadcrumb)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'light-trail-breadcrumb) + (format #t "~1Tpos: #~%" (-> this pos)) + (format #t "~1Tbirth-time: ~D~%" (-> this pos w)) + (label cfg-4) + this + ) + +;; definition of type breadcrumb-array +(deftype breadcrumb-array (inline-array-class) + ((data light-trail-breadcrumb :inline :dynamic) + ) + ) + +;; definition for method 3 of type breadcrumb-array +(defmethod inspect ((this breadcrumb-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> breadcrumb-array heap-base) (the-as uint 16)) + +;; definition of type light-trail +(deftype light-trail (prim-client) + ((crumb-array (array uint8)) + (crumb-size uint8) + (crumb-count int16) + (max-crumb-count int16) + (appearance light-trail-composition) + (start-marker uint64) + (end-marker uint64) + (decision uint64) + (total-distance-traveled float) + (strip prim-strip) + (strip2 prim-strip) + (cache-vector vector 4 :inline) + ) + (:methods + (light-trail-method-10 () none) + (light-trail-method-11 () none) + (light-trail-method-12 () none) + (light-trail-method-13 () none) + (light-trail-method-14 () none) + (light-trail-method-15 () none) + (light-trail-method-16 () none) + (light-trail-method-17 () none) + (light-trail-method-18 () none) + (light-trail-method-19 () none) + (light-trail-method-20 () none) + (light-trail-method-21 () none) + (light-trail-method-22 () none) + ) + ) + +;; definition for method 3 of type light-trail +(defmethod inspect ((this light-trail)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tcrumb-array: ~A~%" (-> this crumb-array)) + (format #t "~1Tcrumb-size: ~D~%" (-> this crumb-size)) + (format #t "~1Tcrumb-count: ~D~%" (-> this crumb-count)) + (format #t "~1Tmax-crumb-count: ~D~%" (-> this max-crumb-count)) + (format #t "~1Tappearance: #~%" (-> this appearance)) + (format #t "~1Tstart-marker: ~D~%" (-> this start-marker)) + (format #t "~1Tend-marker: ~D~%" (-> this end-marker)) + (format #t "~1Tdecision: ~D~%" (-> this decision)) + (format #t "~1Ttotal-distance-traveled: ~f~%" (-> this total-distance-traveled)) + (format #t "~1Tstrip: ~A~%" (-> this strip)) + (format #t "~1Tstrip2: ~A~%" (-> this strip2)) + (format #t "~1Tcache-vector[4] @ #x~X~%" (-> this cache-vector)) + (label cfg-4) + this + ) + +;; definition of type weapon-trail-crumb +(deftype weapon-trail-crumb (light-trail-breadcrumb) + ((offset vector :inline) + ) + ) + +;; definition for method 3 of type weapon-trail-crumb +(defmethod inspect ((this weapon-trail-crumb)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'weapon-trail-crumb) + (format #t "~1Tpos: #~%" (-> this pos)) + (format #t "~1Tbirth-time: ~D~%" (-> this pos w)) + (format #t "~1Toffset: #~%" (-> this offset)) + (label cfg-4) + this + ) + +;; definition of type weapon-trail +(deftype weapon-trail (light-trail) + () + (:methods + (weapon-trail-method-23 () none) + (weapon-trail-method-24 () none) + ) + ) + +;; definition for method 3 of type weapon-trail +(defmethod inspect ((this weapon-trail)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tcrumb-array: ~A~%" (-> this crumb-array)) + (format #t "~1Tcrumb-size: ~D~%" (-> this crumb-size)) + (format #t "~1Tcrumb-count: ~D~%" (-> this crumb-count)) + (format #t "~1Tmax-crumb-count: ~D~%" (-> this max-crumb-count)) + (format #t "~1Tappearance: #~%" (-> this appearance)) + (format #t "~1Tstart-marker: ~D~%" (-> this start-marker)) + (format #t "~1Tend-marker: ~D~%" (-> this end-marker)) + (format #t "~1Tdecision: ~D~%" (-> this decision)) + (format #t "~1Ttotal-distance-traveled: ~f~%" (-> this total-distance-traveled)) + (format #t "~1Tstrip: ~A~%" (-> this strip)) + (format #t "~1Tstrip2: ~A~%" (-> this strip2)) + (format #t "~1Tcache-vector[4] @ #x~X~%" (-> this cache-vector)) + (label cfg-4) + this + ) + +;; definition of type tread-trail-crumb +(deftype tread-trail-crumb (light-trail-breadcrumb) + ((normal vector :inline) + ) + ) + +;; definition for method 3 of type tread-trail-crumb +(defmethod inspect ((this tread-trail-crumb)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'tread-trail-crumb) + (format #t "~1Tpos: #~%" (-> this pos)) + (format #t "~1Tbirth-time: ~D~%" (-> this pos w)) + (format #t "~1Tnormal: #~%" (-> this normal)) + (label cfg-4) + this + ) + +;; definition of type tread-trail +(deftype tread-trail (light-trail) + () + (:methods + (tread-trail-method-23 () none) + (tread-trail-method-24 () none) + ) + ) + +;; definition for method 3 of type tread-trail +(defmethod inspect ((this tread-trail)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tcrumb-array: ~A~%" (-> this crumb-array)) + (format #t "~1Tcrumb-size: ~D~%" (-> this crumb-size)) + (format #t "~1Tcrumb-count: ~D~%" (-> this crumb-count)) + (format #t "~1Tmax-crumb-count: ~D~%" (-> this max-crumb-count)) + (format #t "~1Tappearance: #~%" (-> this appearance)) + (format #t "~1Tstart-marker: ~D~%" (-> this start-marker)) + (format #t "~1Tend-marker: ~D~%" (-> this end-marker)) + (format #t "~1Tdecision: ~D~%" (-> this decision)) + (format #t "~1Ttotal-distance-traveled: ~f~%" (-> this total-distance-traveled)) + (format #t "~1Tstrip: ~A~%" (-> this strip)) + (format #t "~1Tstrip2: ~A~%" (-> this strip2)) + (format #t "~1Tcache-vector[4] @ #x~X~%" (-> this cache-vector)) + (label cfg-4) + this + ) + +;; definition of type light-trail-tracker-spawn-params +(deftype light-trail-tracker-spawn-params (structure) + ((appearance light-trail-composition) + (max-num-crumbs int32) + (tracked-obj uint64) + (track-immediately? symbol) + ) + ) + +;; definition for method 3 of type light-trail-tracker-spawn-params +(defmethod inspect ((this light-trail-tracker-spawn-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'light-trail-tracker-spawn-params) + (format #t "~1Tappearance: #~%" (-> this appearance)) + (format #t "~1Tmax-num-crumbs: ~D~%" (-> this max-num-crumbs)) + (format #t "~1Ttracked-obj: ~D~%" (-> this tracked-obj)) + (format #t "~1Ttrack-immediately?: ~A~%" (-> this track-immediately?)) + (label cfg-4) + this + ) + +;; definition of type weapon-trail-tracker-spawn-params +(deftype weapon-trail-tracker-spawn-params (light-trail-tracker-spawn-params) + ((joint0 int16) + (joint1 int16) + ) + ) + +;; definition for method 3 of type weapon-trail-tracker-spawn-params +(defmethod inspect ((this weapon-trail-tracker-spawn-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'weapon-trail-tracker-spawn-params) + (format #t "~1Tappearance: #~%" (-> this appearance)) + (format #t "~1Tmax-num-crumbs: ~D~%" (-> this max-num-crumbs)) + (format #t "~1Ttracked-obj: ~D~%" (-> this tracked-obj)) + (format #t "~1Ttrack-immediately?: ~A~%" (-> this track-immediately?)) + (format #t "~1Tjoint0: ~D~%" (-> this joint0)) + (format #t "~1Tjoint1: ~D~%" (-> this joint1)) + (label cfg-4) + this + ) + +;; definition of type light-trail-tracker +(deftype light-trail-tracker (process) + ((trail light-trail) + (tracked-object handle) + (offscreen? symbol) + (offscreen-start-time uint64) + (next-line-check-time uint64) + (last-add-frame-val uint32) + ) + (:state-methods + tracking + die + ) + (:methods + (light-trail-tracker-method-16 () none) + (light-trail-tracker-method-17 () none) + (light-trail-tracker-method-18 () none) + (light-trail-tracker-method-19 () none) + (light-trail-tracker-method-20 () none) + ) + ) + +;; definition for method 3 of type light-trail-tracker +(defmethod inspect ((this light-trail-tracker)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process inspect))) + (t9-0 this) + ) + (format #t "~2Ttrail: ~A~%" (-> this trail)) + (format #t "~2Ttracked-object: ~D~%" (-> this tracked-object)) + (format #t "~2Toffscreen?: ~A~%" (-> this offscreen?)) + (format #t "~2Toffscreen-start-time: ~D~%" (-> this offscreen-start-time)) + (format #t "~2Tnext-line-check-time: ~D~%" (-> this next-line-check-time)) + (format #t "~2Tlast-add-frame-val: ~D~%" (-> this last-add-frame-val)) + (label cfg-4) + this + ) + +;; definition of type weapon-trail-tracker +(deftype weapon-trail-tracker (light-trail-tracker) + ((joint0 int16) + (joint1 int16) + (state-time uint64) + ) + (:methods + (weapon-trail-tracker-method-22 () none) + ) + ) + +;; definition for method 3 of type weapon-trail-tracker +(defmethod inspect ((this weapon-trail-tracker)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type light-trail-tracker inspect))) + (t9-0 this) + ) + (format #t "~2Tjoint0: ~D~%" (-> this joint0)) + (format #t "~2Tjoint1: ~D~%" (-> this joint1)) + (format #t "~2Tstate-time: ~D~%" (-> this state-time)) + (label cfg-4) + this + ) + +;; definition of type tread-trail-tracker +(deftype tread-trail-tracker (light-trail-tracker) + () + ) + +;; definition for method 3 of type tread-trail-tracker +(defmethod inspect ((this tread-trail-tracker)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type light-trail-tracker inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition for function light-trail-tracker-init-by-other +(defbehavior light-trail-tracker-init-by-other light-trail-tracker ((arg0 light-trail-tracker-spawn-params)) + (stack-size-set! (-> self main-thread) 32) + (set! (-> self tracked-object) (the-as handle (-> arg0 tracked-obj))) + (set! (-> self trail) (new 'process 'light-trail)) + (set! (-> self next-line-check-time) (the-as uint 0)) + (set! (-> self last-add-frame-val) (the-as uint 0)) + (set! (-> self offscreen?) #f) + (let ((t9-2 (method-of-object (-> self trail) light-trail-method-10))) + (-> arg0 appearance) + (-> arg0 max-num-crumbs) + (t9-2) + ) + (when (-> arg0 track-immediately?) + (handle->process (-> self tracked-object)) + (when ((method-of-object self light-trail-tracker-method-17)) + (let ((s4-0 (method-of-object (-> self trail) light-trail-method-12))) + (let ((t9-4 (method-of-object self light-trail-tracker-method-16))) + (new 'stack-no-clear 'vector) + (t9-4) + ) + #x2dc6c0 + (s4-0) + ) + ) + ) + (go-virtual tracking) + ) + +;; definition for function weapon-trail-tracker-init-by-other +(defbehavior weapon-trail-tracker-init-by-other weapon-trail-tracker ((arg0 weapon-trail-tracker-spawn-params)) + (set! (-> self tracked-object) (the-as handle (-> arg0 tracked-obj))) + (set! (-> self trail) (new 'process 'weapon-trail)) + (set! (-> self next-line-check-time) (the-as uint 0)) + (set! (-> self last-add-frame-val) (the-as uint 0)) + (set! (-> self joint0) (-> arg0 joint0)) + (set! (-> self joint1) (-> arg0 joint1)) + (set! (-> self offscreen?) #f) + (let ((t9-1 (method-of-object (-> self trail) light-trail-method-10))) + (-> arg0 appearance) + (-> arg0 max-num-crumbs) + (t9-1) + ) + (go-virtual tracking) + ) + +;; definition for function tread-trail-tracker-init-by-other +(defbehavior tread-trail-tracker-init-by-other tread-trail-tracker ((arg0 light-trail-tracker-spawn-params)) + (set! (-> self tracked-object) (the-as handle (-> arg0 tracked-obj))) + (set! (-> self trail) (new 'process 'tread-trail)) + (set! (-> self offscreen?) #f) + (set! (-> self next-line-check-time) (the-as uint 0)) + (set! (-> self last-add-frame-val) (the-as uint 0)) + (let ((t9-1 (method-of-object (-> self trail) light-trail-method-10))) + (-> arg0 appearance) + (-> arg0 max-num-crumbs) + (t9-1) + ) + (go-virtual tracking) + ) + +;; definition of type light-trail-tracker-water +(deftype light-trail-tracker-water (light-trail-tracker) + () + ) + +;; definition for method 3 of type light-trail-tracker-water +(defmethod inspect ((this light-trail-tracker-water)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type light-trail-tracker inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type light-trail-tracker-projectile +(deftype light-trail-tracker-projectile (light-trail-tracker) + ((state-time uint64) + ) + (:methods + (light-trail-tracker-projectile-method-22 () none) + ) + ) + +;; definition for method 3 of type light-trail-tracker-projectile +(defmethod inspect ((this light-trail-tracker-projectile)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type light-trail-tracker inspect))) + (t9-0 this) + ) + (format #t "~2Tstate-time: ~D~%" (-> this state-time)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/gfx/texture/texture-anim-h_REF.gc b/test/decompiler/reference/jakx/engine/gfx/texture/texture-anim-h_REF.gc index 6052bb92c4..2481ed4622 100644 --- a/test/decompiler/reference/jakx/engine/gfx/texture/texture-anim-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/gfx/texture/texture-anim-h_REF.gc @@ -108,8 +108,8 @@ (data texture-anim-layer :dynamic) ) (:methods - (texture-anim-method-9 () none) - (texture-anim-method-10 () none) + (init-textures! (_type_) _type_) + (clear-textures! (_type_) _type_) ) ) diff --git a/test/decompiler/reference/jakx/engine/level/bsp-h_REF.gc b/test/decompiler/reference/jakx/engine/level/bsp-h_REF.gc new file mode 100644 index 0000000000..e2522190dd --- /dev/null +++ b/test/decompiler/reference/jakx/engine/level/bsp-h_REF.gc @@ -0,0 +1,248 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type bsp-node +(deftype bsp-node (structure) + ((front int16) + (back int16) + (front-box-min vector4b :inline) + (front-box-max vector4b :inline) + (back-box-min vector4b :inline) + (back-box-max vector4b :inline) + ) + ) + +;; definition for method 3 of type bsp-node +(defmethod inspect ((this bsp-node)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'bsp-node) + (format #t "~1Tfront: ~D~%" (-> this front)) + (format #t "~1Tback: ~D~%" (-> this back)) + (format #t "~1Tfront-box-min: #~%" (-> this front-box-min)) + (format #t "~1Tfront-box-max: #~%" (-> this front-box-max)) + (format #t "~1Tback-box-min: #~%" (-> this back-box-min)) + (format #t "~1Tback-box-max: #~%" (-> this back-box-max)) + (label cfg-4) + this + ) + +;; definition of type bsp-header +(deftype bsp-header (drawable) + "The bsp-header is really an entire level. +This probably started as a very simple structure, but now it is extremely complicated." + ((info file-info :overlay-at id) + (all-visible-list (pointer uint8)) + (visible-list-length int16) + (extra-vis-list-length int16) + (drawable-trees drawable-tree-array) + (pat pointer) + (pat-length int32) + (texture-remap-table (pointer uint64)) + (texture-remap-table-len int32) + (texture-ids (pointer texture-id)) + (texture-page-count int32) + (unknown-basic basic) + (name symbol) + (nickname symbol) + (vis-info level-vis-info 8) + (actors drawable-inline-array-actor) + (cameras (array entity-camera)) + (nodes (inline-array bsp-node)) + (level level) + (current-leaf-idx uint16) + (texture-flags texture-page-flag 10) + (cam-outside-bsp uint8 :offset 152) + (cam-using-back uint8) + (cam-box-idx uint16) + (ambients symbol) + (subdivide-close float :offset 160) + (subdivide-far float) + (race-meshes (array entity-race-mesh)) + (actor-birth-order (pointer uint32) :offset 172) + (light-hash light-hash) + (nav-meshes (array entity-nav-mesh)) + (actor-groups (array actor-group)) + (region-trees (array drawable-tree-region-prim) :offset 188) + (region-array region-array) + (collide-hash collide-hash :offset 196) + (wind-array uint32 :offset 200) + (wind-array-length int32 :offset 204) + (city-level-info city-level-info :offset 208) + (vis-spheres vector-array :offset 216) + (vis-spheres-length uint32 :offset 248) + (region-tree drawable-tree-region-prim :offset 252) + (tfrag-masks texture-masks-array :offset 256) + (tfrag-closest (pointer float)) + (tfrag-mask-count uint32 :overlay-at tfrag-closest) + (shrub-masks texture-masks-array) + (shrub-closest (pointer float)) + (shrub-mask-count uint32 :overlay-at shrub-closest) + (alpha-masks texture-masks-array) + (alpha-closest (pointer float)) + (alpha-mask-count uint32 :overlay-at alpha-closest) + (water-masks texture-masks-array) + (water-closest (pointer float)) + (water-mask-count uint32 :overlay-at water-closest) + (bsp-scale vector :inline :offset 288) + (bsp-offset vector :inline) + (hfrag-drawable drawable :offset 320) + (unknown-bsp-1 uint32 :offset 324) + (end uint8 :offset 399) + ) + (:methods + (birth (_type_) none) + (deactivate-entities (_type_) none) + ) + ) + +;; definition of type game-level +(deftype game-level (basic) + ((master-bsp basic) + ) + ) + +;; definition for method 3 of type game-level +(defmethod inspect ((this game-level)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tmaster-bsp: ~A~%" (-> this master-bsp)) + (label cfg-4) + this + ) + +;; definition of type view-frustum +(deftype view-frustum (structure) + ((hither-top-left vector :inline) + (hither-top-right vector :inline) + (hither-bottom-left vector :inline) + (hither-bottom-right vector :inline) + (yon-top-left vector :inline) + (yon-top-right vector :inline) + (yon-bottom-left vector :inline) + (yon-bottom-right vector :inline) + ) + ) + +;; definition for method 3 of type view-frustum +(defmethod inspect ((this view-frustum)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'view-frustum) + (format #t "~1Thither-top-left: #~%" (-> this hither-top-left)) + (format #t "~1Thither-top-right: #~%" (-> this hither-top-right)) + (format #t "~1Thither-bottom-left: #~%" (-> this hither-bottom-left)) + (format #t "~1Thither-bottom-right: #~%" (-> this hither-bottom-right)) + (format #t "~1Tyon-top-left: #~%" (-> this yon-top-left)) + (format #t "~1Tyon-top-right: #~%" (-> this yon-top-right)) + (format #t "~1Tyon-bottom-left: #~%" (-> this yon-bottom-left)) + (format #t "~1Tyon-bottom-right: #~%" (-> this yon-bottom-right)) + (label cfg-4) + this + ) + +;; definition for method 3 of type bsp-header +(defmethod inspect ((this bsp-header)) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~Tall-visible-list: #x~X~%" (-> this all-visible-list)) + (format #t "~Tvisible-list-length: ~D~%" (-> this visible-list-length)) + (format #t "~Tdrawable-trees: ~A~%" (-> this drawable-trees)) + (format #t "~Tpat: #x~X~%" (-> this pat)) + (format #t "~Tpat-length: ~D~%" (-> this pat-length)) + (inspect-bsp-tree this (-> this nodes 0)) + this + ) + +;; definition (debug) for function inspect-bsp-tree +;; WARN: Return type mismatch bsp-header vs none. +(defun-debug inspect-bsp-tree ((arg0 bsp-header) (arg1 bsp-node)) + (cond + ((zero? arg1) + ) + (else + (format #t "_#x~X________________~%" arg1) + (inspect arg1) + (let ((s4-0 *print-column*)) + (set! *print-column* (+ *print-column* 64)) + (if (> (-> arg1 front) 0) + (inspect-bsp-tree arg0 (the-as bsp-node (-> arg1 front))) + (format #t "_#x~X________________~%" arg1) + ) + (if (> (-> arg1 back) 0) + (inspect-bsp-tree arg0 (the-as bsp-node (-> arg1 back))) + (format #t "_#x~X________________~%" arg1) + ) + (set! *print-column* s4-0) + ) + ) + ) + (none) + ) + +;; definition for function map-bsp-tree +;; WARN: Return type mismatch bsp-header vs none. +(defun map-bsp-tree ((arg0 (function bsp-node none)) (arg1 bsp-header) (arg2 bsp-node)) + (cond + ((zero? arg2) + ) + (else + (if (> (-> arg2 front) 0) + (map-bsp-tree arg0 arg1 (the-as bsp-node (-> arg2 front))) + (arg0 arg2) + ) + (if (> (-> arg2 back) 0) + (map-bsp-tree arg0 arg1 (the-as bsp-node (-> arg2 back))) + (arg0 arg2) + ) + ) + ) + (none) + ) + +;; definition of type collide-stats +(deftype collide-stats (structure) + "Very strange collide stats type. It has been somewhat broken in all versions of the game. +The final stopwatch is cut off. For jak 3, I just fixed it." + ((calls uint32) + (spheres uint32) + (nodes uint32) + (frags uint32) + (tris uint32) + (output uint32) + (junk (pointer uint32) 24) + ) + ) + +;; definition for method 3 of type collide-stats +(defmethod inspect ((this collide-stats)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'collide-stats) + (format #t "~1Tcalls: ~D~%" (-> this calls)) + (format #t "~1Tspheres: ~D~%" (-> this spheres)) + (format #t "~1Tnodes: ~D~%" (-> this nodes)) + (format #t "~1Tfrags: ~D~%" (-> this frags)) + (format #t "~1Ttris: ~D~%" (-> this tris)) + (format #t "~1Toutput: ~D~%" (-> this output)) + (format #t "~1Ttotal-target: #~%" (&-> this junk 1)) + (format #t "~1Ttarget-cache-fill: #~%" (&-> this junk 9)) + (format #t "~1Ttarget-ray-poly: #~%" (&-> this junk 17)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/level/level-h_REF.gc b/test/decompiler/reference/jakx/engine/level/level-h_REF.gc index 5f90ead8db..49edca9fe6 100644 --- a/test/decompiler/reference/jakx/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/level/level-h_REF.gc @@ -415,14 +415,14 @@ (level-method-13 () none) (level-method-14 () none) (level-method-15 () none) - (level-method-16 () none) + (update-vis! (_type_ level-vis-info uint (pointer uint8) int) symbol) (level-method-17 () none) (level-method-18 () none) (level-method-19 () none) (level-method-20 () none) (level-method-21 () none) (level-method-22 () none) - (level-method-23 () none) + (lookup-text (_type_ text-id symbol) string) (level-method-24 () none) (level-method-25 () none) (level-method-26 () none) @@ -634,7 +634,7 @@ (pad int32) ) (:methods - (level-group-method-9 () none) + (level-get (_type_ symbol) level) (level-group-method-10 () none) (level-group-method-11 () none) (level-group-method-12 () none) @@ -645,9 +645,9 @@ (level-group-method-17 () none) (level-group-method-18 () none) (level-group-method-19 () none) - (level-group-method-20 () none) + (level-get-target-inside (_type_) level) (level-group-method-21 () none) - (level-group-method-22 () none) + (art-group-get-by-name (_type_ string (pointer level)) art-group) (level-group-method-23 () none) (level-group-method-24 () none) (level-group-method-25 () none) diff --git a/test/decompiler/reference/jakx/engine/nav/nav-control-h_REF.gc b/test/decompiler/reference/jakx/engine/nav/nav-control-h_REF.gc new file mode 100644 index 0000000000..64a8cc3014 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/nav/nav-control-h_REF.gc @@ -0,0 +1,398 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type check-vector-collision-with-nav-spheres-info +(deftype check-vector-collision-with-nav-spheres-info (structure) + ((u float) + (intersect vector :inline) + (normal vector :inline) + ) + ) + +;; definition for method 3 of type check-vector-collision-with-nav-spheres-info +(defmethod inspect ((this check-vector-collision-with-nav-spheres-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'check-vector-collision-with-nav-spheres-info) + (format #t "~1Tu: ~f~%" (-> this u)) + (format #t "~1Tintersect: #~%" (-> this intersect)) + (format #t "~1Tnormal: #~%" (-> this normal)) + (label cfg-4) + this + ) + +;; definition of type nav-gap-info +(deftype nav-gap-info (structure) + ((dest vector :inline) + (poly nav-poly) + ) + ) + +;; definition for method 3 of type nav-gap-info +(defmethod inspect ((this nav-gap-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-gap-info) + (format #t "~1Tdest: ~`vector`P~%" (-> this dest)) + (format #t "~1Tpoly: #~%" (-> this poly)) + (label cfg-4) + this + ) + +;; definition of type nav-avoid-spheres-params +(deftype nav-avoid-spheres-params (structure) + ((current-pos vector :inline) + (travel vector :inline) + (pref-dir vector :inline) + (out-travel vector 2 :inline) + (closest-sphere-dist2 float) + (avoiding-sphere? symbol) + ) + ) + +;; definition for method 3 of type nav-avoid-spheres-params +(defmethod inspect ((this nav-avoid-spheres-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-avoid-spheres-params) + (format #t "~1Tcurrent-pos: #~%" (-> this current-pos)) + (format #t "~1Ttravel: #~%" (-> this travel)) + (format #t "~1Tpref-dir: #~%" (-> this pref-dir)) + (format #t "~1Tout-travel[2] @ #x~X~%" (-> this out-travel)) + (format #t "~1Tclosest-sphere-dist2: ~f~%" (-> this closest-sphere-dist2)) + (format #t "~1Tavoiding-sphere?: ~A~%" (-> this avoiding-sphere?)) + (label cfg-4) + this + ) + +;; definition of type nav-callback-info +(deftype nav-callback-info (structure) + ((callback-count int32) + (callback-array (function object nav-control none) 10) + ) + ) + +;; definition for method 3 of type nav-callback-info +(defmethod inspect ((this nav-callback-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-callback-info) + (format #t "~1Tcallback-count: ~D~%" (-> this callback-count)) + (format #t "~1Tcallback-array[10] @ #x~X~%" (-> this callback-array)) + (label cfg-4) + this + ) + +;; definition of type nav-state +(deftype nav-state (structure) + ((flags nav-state-flag) + (nav nav-control) + (user-poly nav-poly) + (mesh nav-mesh) + (current-poly nav-poly) + (virtual-current-poly nav-poly) + (next-poly nav-poly) + (target-poly nav-poly) + (rotation-rate float) + (speed meters) + (prev-speed meters) + (pad0 uint32 1) + (travel vector :inline) + (target-pos vector :inline) + (current-pos vector :inline) + (current-pos-local vector :inline) + (virtual-current-pos-local vector :inline) + (velocity vector :inline) + (heading vector :inline) + (target-dir vector :inline) + (accel vector :inline :overlay-at target-dir) + (user-position vector :inline :overlay-at virtual-current-pos-local) + (normal vector :inline :overlay-at virtual-current-pos-local) + ) + (:methods + (nav-state-method-9 () none) + (nav-state-method-10 () none) + (nav-state-method-11 () none) + (nav-state-method-12 () none) + (nav-state-method-13 () none) + (nav-state-method-14 () none) + (nav-state-method-15 () none) + (nav-state-method-16 () none) + (nav-state-method-17 () none) + (nav-state-method-18 () none) + (nav-state-method-19 () none) + (nav-state-method-20 () none) + (nav-state-method-21 () none) + (nav-state-method-22 () none) + (nav-state-method-23 () none) + (nav-state-method-24 () none) + (nav-state-method-25 () none) + (nav-state-method-26 () none) + (nav-state-method-27 () none) + (nav-state-method-28 () none) + (nav-state-method-29 () none) + (nav-state-method-30 () none) + (nav-state-method-31 () none) + (nav-state-method-32 () none) + (nav-state-method-33 () none) + (nav-state-method-34 () none) + (nav-state-method-35 () none) + (nav-state-method-36 () none) + (nav-state-method-37 () none) + (nav-state-method-38 () none) + (nav-state-method-39 () none) + (nav-state-method-40 () none) + (nav-state-method-41 () none) + (nav-state-method-42 () none) + (nav-state-method-43 () none) + (nav-state-method-44 () none) + (nav-state-method-45 () none) + (nav-state-method-46 () none) + (nav-state-method-47 () none) + (nav-state-method-48 () none) + (nav-state-method-49 () none) + (nav-state-method-50 () none) + (nav-state-method-51 () none) + (nav-state-method-52 () none) + (nav-state-method-53 () none) + (nav-state-method-54 () none) + (nav-state-method-55 () none) + (nav-state-method-56 () none) + ) + ) + +;; definition for method 3 of type nav-state +(defmethod inspect ((this nav-state)) + (when (not this) + (set! this this) + (goto cfg-36) + ) + (format #t "[~8x] ~A~%" this 'nav-state) + (format #t "~1Tflags: #x~X : (nav-state-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (nav-state-flag in-target-poly)) (nav-state-flag in-target-poly)) + (format #t "in-target-poly ") + ) + (if (= (logand s5-0 (nav-state-flag directional-mode)) (nav-state-flag directional-mode)) + (format #t "directional-mode ") + ) + (if (= (logand s5-0 (nav-state-flag initialized)) (nav-state-flag initialized)) + (format #t "initialized ") + ) + (if (= (logand s5-0 (nav-state-flag display-marks)) (nav-state-flag display-marks)) + (format #t "display-marks ") + ) + (if (= (logand s5-0 (nav-state-flag recovery-mode)) (nav-state-flag recovery-mode)) + (format #t "recovery-mode ") + ) + (if (= (logand s5-0 (nav-state-flag touching-sphere)) (nav-state-flag touching-sphere)) + (format #t "touching-sphere ") + ) + (if (= (logand s5-0 (nav-state-flag trapped-by-sphere)) (nav-state-flag trapped-by-sphere)) + (format #t "trapped-by-sphere ") + ) + (if (= (logand s5-0 (nav-state-flag blocked)) (nav-state-flag blocked)) + (format #t "blocked ") + ) + (if (= (logand s5-0 (nav-state-flag avoiding-sphere)) (nav-state-flag avoiding-sphere)) + (format #t "avoiding-sphere ") + ) + (if (= (logand s5-0 (nav-state-flag target-inside)) (nav-state-flag target-inside)) + (format #t "target-inside ") + ) + (if (= (logand s5-0 (nav-state-flag debug)) (nav-state-flag debug)) + (format #t "debug ") + ) + (if (= (logand s5-0 (nav-state-flag at-gap)) (nav-state-flag at-gap)) + (format #t "at-gap ") + ) + (if (= (logand s5-0 (nav-state-flag use-position)) (nav-state-flag use-position)) + (format #t "user-position ") + ) + (if (= (logand s5-0 (nav-state-flag in-mesh)) (nav-state-flag in-mesh)) + (format #t "in-mesh ") + ) + (if (= (logand s5-0 (nav-state-flag at-target)) (nav-state-flag at-target)) + (format #t "at-target ") + ) + (if (= (logand s5-0 (nav-state-flag target-poly-dirty)) (nav-state-flag target-poly-dirty)) + (format #t "target-poly-dirty ") + ) + ) + (format #t ")~%") + (format #t "~1Tnav: ~A~%" (-> this nav)) + (format #t "~1Tuser-poly: #~%" (-> this user-poly)) + (format #t "~1Tmesh: ~A~%" (-> this mesh)) + (format #t "~1Tcurrent-poly: #~%" (-> this current-poly)) + (format #t "~1Tvirtual-current-poly: #~%" (-> this virtual-current-poly)) + (format #t "~1Tnext-poly: #~%" (-> this next-poly)) + (format #t "~1Ttarget-poly: #~%" (-> this target-poly)) + (format #t "~1Trotation-rate: ~f~%" (-> this rotation-rate)) + (format #t "~1Tspeed: (meters ~m)~%" (-> this speed)) + (format #t "~1Tprev-speed: (meters ~m)~%" (-> this prev-speed)) + (format #t "~1Tpad0[1] @ #x~X~%" (-> this pad0)) + (format #t "~1Ttravel: ~`vector`P~%" (-> this travel)) + (format #t "~1Ttarget-pos: ~`vector`P~%" (-> this target-pos)) + (format #t "~1Tcurrent-pos: ~`vector`P~%" (-> this current-pos)) + (format #t "~1Tcurrent-pos-local: ~`vector`P~%" (-> this current-pos-local)) + (format #t "~1Tvirtual-current-pos-local: ~`vector`P~%" (-> this virtual-current-pos-local)) + (format #t "~1Tvelocity: ~`vector`P~%" (-> this velocity)) + (format #t "~1Theading: ~`vector`P~%" (-> this heading)) + (format #t "~1Ttarget-dir: ~`vector`P~%" (-> this target-dir)) + (format #t "~1Taccel: #~%" (-> this target-dir)) + (format #t "~1Tuser-position: #~%" (-> this virtual-current-pos-local)) + (format #t "~1Tnormal: #~%" (-> this virtual-current-pos-local)) + (label cfg-36) + this + ) + +;; definition of type nav-control +(deftype nav-control (structure) + ((flags nav-control-flag) + (callback-info nav-callback-info) + (process process) + (pad0 uint32) + (shape collide-shape) + (nearest-y-threshold meters) + (nav-cull-radius meters) + (sec-per-frame float) + (target-speed meters) + (acceleration meters) + (turning-acceleration meters) + (max-rotation-rate float) + (speed-scale float) + (sphere-count int32) + (sphere-array (inline-array sphere)) + (root-sphere-id uint8) + (sphere-mask uint8) + (pad1 uint8 2) + (sphere-id-array uint8 16) + (extra-nav-sphere vector :inline) + (root-nav-sphere vector :inline) + (state nav-state :inline) + (mesh basic :overlay-at (-> state mesh)) + ) + (:methods + (nav-control-method-9 () none) + (nav-control-method-10 () none) + (nav-control-method-11 () none) + (nav-control-method-12 () none) + (nav-control-method-13 () none) + (nav-control-method-14 () none) + (nav-control-method-15 () none) + (nav-control-method-16 () none) + (nav-control-method-17 () none) + (nav-control-method-18 () none) + (nav-control-method-19 () none) + (nav-control-method-20 () none) + (nav-control-method-21 () none) + (nav-control-method-22 () none) + (nav-control-method-23 () none) + (nav-control-method-24 () none) + (nav-control-method-25 () none) + (nav-control-method-26 () none) + (nav-control-method-27 () none) + (nav-control-method-28 () none) + (nav-control-method-29 () none) + (nav-control-method-30 () none) + (nav-control-method-31 () none) + (nav-control-method-32 () none) + (nav-control-method-33 () none) + (nav-control-method-34 () none) + (nav-control-method-35 () none) + (nav-control-method-36 () none) + (nav-control-method-37 () none) + (nav-control-method-38 () none) + (nav-control-method-39 () none) + (nav-control-method-40 () none) + (nav-control-method-41 () none) + (nav-control-method-42 () none) + (nav-control-method-43 () none) + (nav-control-method-44 () none) + (nav-control-method-45 () none) + (nav-control-method-46 () none) + (nav-control-method-47 () none) + ) + ) + +;; definition for method 3 of type nav-control +(defmethod inspect ((this nav-control)) + (when (not this) + (set! this this) + (goto cfg-25) + ) + (format #t "[~8x] ~A~%" this 'nav-control) + (format #t "~1Tflags: #x~X : (nav-control-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (nav-control-flag display-marks)) (nav-control-flag display-marks)) + (format #t "display-marks ") + ) + (if (= (logand s5-0 (nav-control-flag limit-rotation-rate)) (nav-control-flag limit-rotation-rate)) + (format #t "limit-rotation-rate ") + ) + (if (= (logand s5-0 (nav-control-flag update-heading-from-facing)) (nav-control-flag update-heading-from-facing)) + (format #t "update-heading-from-facing ") + ) + (if (= (logand s5-0 (nav-control-flag use-momentum)) (nav-control-flag use-momentum)) + (format #t "use-momentum ") + ) + (if (= (logand s5-0 (nav-control-flag output-sphere-hash)) (nav-control-flag output-sphere-hash)) + (format #t "output-sphere-hash ") + ) + (if (= (logand s5-0 (nav-control-flag no-redirect-in-clamp)) (nav-control-flag no-redirect-in-clamp)) + (format #t "no-redirect-in-clamp ") + ) + (if (= (logand s5-0 (nav-control-flag momentum-ignore-heading)) (nav-control-flag momentum-ignore-heading)) + (format #t "momentum-ignore-heading ") + ) + (if (= (logand s5-0 (nav-control-flag debug)) (nav-control-flag debug)) + (format #t "debug ") + ) + (if (= (logand s5-0 (nav-control-flag kernel-run)) (nav-control-flag kernel-run)) + (format #t "kernel-run ") + ) + ) + (format #t ")~%") + (format #t "~1Tcallback-info: #~%" (-> this callback-info)) + (format #t "~1Tprocess: ~A~%" (-> this process)) + (format #t "~1Tpad0: ~D~%" (-> this pad0)) + (format #t "~1Tshape: ~A~%" (-> this shape)) + (format #t "~1Tnearest-y-threshold: (meters ~m)~%" (-> this nearest-y-threshold)) + (format #t "~1Tnav-cull-radius: (meters ~m)~%" (-> this nav-cull-radius)) + (format #t "~1Tsec-per-frame: ~f~%" (-> this sec-per-frame)) + (format #t "~1Ttarget-speed: (meters ~m)~%" (-> this target-speed)) + (format #t "~1Tacceleration: (meters ~m)~%" (-> this acceleration)) + (format #t "~1Tturning-acceleration: (meters ~m)~%" (-> this turning-acceleration)) + (format #t "~1Tmax-rotation-rate: ~f~%" (-> this max-rotation-rate)) + (format #t "~1Tspeed-scale: ~f~%" (-> this speed-scale)) + (format #t "~1Tsphere-count: ~D~%" (-> this sphere-count)) + (format #t "~1Tsphere-array: #x~X~%" (-> this sphere-array)) + (format #t "~1Troot-sphere-id: ~D~%" (-> this root-sphere-id)) + (format #t "~1Tsphere-mask: ~D~%" (-> this sphere-mask)) + (format #t "~1Tpad1[2] @ #x~X~%" (-> this pad1)) + (format #t "~1Tsphere-id-array[16] @ #x~X~%" (-> this sphere-id-array)) + (dotimes (s5-1 (-> this sphere-count)) + (format #t "~T [~D]~1Tsphere-id-array: ~D~%" s5-1 (-> this sphere-id-array s5-1)) + ) + (format #t "~1Textra-nav-sphere: ~`vector`P~%" (-> this extra-nav-sphere)) + (format #t "~1Troot-nav-sphere: ~`vector`P~%" (-> this root-nav-sphere)) + (format #t "~1Tstate: #~%" (-> this state)) + (format #t "~1Tmesh: ~A~%" (-> this state mesh)) + (label cfg-25) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/nav/nav-mesh-h_REF.gc b/test/decompiler/reference/jakx/engine/nav/nav-mesh-h_REF.gc new file mode 100644 index 0000000000..1ca8bef17c --- /dev/null +++ b/test/decompiler/reference/jakx/engine/nav/nav-mesh-h_REF.gc @@ -0,0 +1,1026 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type nav-mesh-work-debug +(deftype nav-mesh-work-debug (structure) + "Debug outputs for the nav-mesh assembly functions" + ((debug-vec1 vector :inline) + (debug-vec2 vector :inline) + (debug-vec3 vector :inline) + (debug-vec4 vector :inline) + (debug-vec5 vector :inline) + (debug-vec6 vector :inline) + (debug-vec7 vector :inline) + (debug-vec8 vector :inline) + (debug-vec9 vector :inline) + (debug-vec10 vector :inline) + (debug-vec11 vector :inline) + (debug-vec12 vector :inline) + (sphere-array sphere 16 :inline) + ) + ) + +;; definition for method 3 of type nav-mesh-work-debug +(defmethod inspect ((this nav-mesh-work-debug)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-work-debug) + (format #t "~1Tdebug-vec1: ~`vector`P~%" (-> this debug-vec1)) + (format #t "~1Tdebug-vec2: ~`vector`P~%" (-> this debug-vec2)) + (format #t "~1Tdebug-vec3: ~`vector`P~%" (-> this debug-vec3)) + (format #t "~1Tdebug-vec4: ~`vector`P~%" (-> this debug-vec4)) + (format #t "~1Tdebug-vec5: ~`vector`P~%" (-> this debug-vec5)) + (format #t "~1Tdebug-vec6: ~`vector`P~%" (-> this debug-vec6)) + (format #t "~1Tdebug-vec7: ~`vector`P~%" (-> this debug-vec7)) + (format #t "~1Tdebug-vec8: ~`vector`P~%" (-> this debug-vec8)) + (format #t "~1Tdebug-vec9: ~`vector`P~%" (-> this debug-vec9)) + (format #t "~1Tdebug-vec10: ~`vector`P~%" (-> this debug-vec10)) + (format #t "~1Tdebug-vec11: ~`vector`P~%" (-> this debug-vec11)) + (format #t "~1Tdebug-vec12: ~`vector`P~%" (-> this debug-vec12)) + (format #t "~1Tsphere-array[16] @ #x~X~%" (-> this sphere-array)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh-work +(deftype nav-mesh-work (structure) + "Workspace for nav-mesh processing functions." + ((vert0-table int8 4) + (vert1-table int8 4) + (edge-mask-table uint8 3) + (pad0 uint32) + (deg-to-rad float) + (rad-to-deg float) + (nav-poly-min-dist float) + (nav-poly-epsilon float) + (sphere-array sphere 16 :inline) + (debug nav-mesh-work-debug) + (work-struct-in-scratch int8) + (mesh-struct-in-scratch int8) + (polys-in-scratch int8) + (mesh nav-mesh) + (nav basic) + (poly0 nav-poly) + (poly1 nav-poly) + (poly-id int32) + ) + ) + +;; definition for method 3 of type nav-mesh-work +(defmethod inspect ((this nav-mesh-work)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-work) + (format #t "~1Tvert0-table[4] @ #x~X~%" (-> this vert0-table)) + (format #t "~1Tvert1-table[4] @ #x~X~%" (-> this vert1-table)) + (format #t "~1Tedge-mask-table[3] @ #x~X~%" (-> this edge-mask-table)) + (format #t "~1Tpad0: ~D~%" (-> this pad0)) + (format #t "~1Tdeg-to-rad: ~f~%" (-> this deg-to-rad)) + (format #t "~1Trad-to-deg: ~f~%" (-> this rad-to-deg)) + (format #t "~1Tnav-poly-min-dist: ~f~%" (-> this nav-poly-min-dist)) + (format #t "~1Tnav-poly-epsilon: ~f~%" (-> this nav-poly-epsilon)) + (format #t "~1Tsphere-array[16] @ #x~X~%" (-> this sphere-array)) + (format #t "~1Tdebug: #~%" (-> this debug)) + (format #t "~1Twork-struct-in-scratch: ~D~%" (-> this work-struct-in-scratch)) + (format #t "~1Tmesh-struct-in-scratch: ~D~%" (-> this mesh-struct-in-scratch)) + (format #t "~1Tpolys-in-scratch: ~D~%" (-> this polys-in-scratch)) + (format #t "~1Tmesh: ~A~%" (-> this mesh)) + (format #t "~1Tnav: ~A~%" (-> this nav)) + (format #t "~1Tpoly0: ~A~%" (-> this poly0)) + (format #t "~1Tpoly1: ~A~%" (-> this poly1)) + (format #t "~1Tpoly-id: ~D~%" (-> this poly-id)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh-link +(deftype nav-mesh-link (structure) + "Link between two different meshes" + ((id uint32) + (dest-mesh-id uint32) + (src-link-poly-id uint8) + (src-switch-poly-id uint8) + (dest-link-poly-id uint8) + (dest-switch-poly-id uint8) + (dest-mesh nav-mesh) + ) + ) + +;; definition for method 3 of type nav-mesh-link +(defmethod inspect ((this nav-mesh-link)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-link) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tdest-mesh-id: ~D~%" (-> this dest-mesh-id)) + (format #t "~1Tsrc-link-poly-id: ~D~%" (-> this src-link-poly-id)) + (format #t "~1Tsrc-switch-poly-id: ~D~%" (-> this src-switch-poly-id)) + (format #t "~1Tdest-link-poly-id: ~D~%" (-> this dest-link-poly-id)) + (format #t "~1Tdest-switch-poly-id: ~D~%" (-> this dest-switch-poly-id)) + (format #t "~1Tdest-mesh: ~A~%" (-> this dest-mesh)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh-link-search-node +(deftype nav-mesh-link-search-node (structure) + ((pprev uint32) + (next nav-mesh-link-search-node) + (parent nav-mesh-link-search-node) + (link nav-mesh-link) + (cost-to-start float) + (cost-to-end float) + (status nav-mesh-link-search-node-status) + ) + ) + +;; definition for method 3 of type nav-mesh-link-search-node +(defmethod inspect ((this nav-mesh-link-search-node)) + (when (not this) + (set! this this) + (goto cfg-8) + ) + (format #t "[~8x] ~A~%" this 'nav-mesh-link-search-node) + (format #t "~1Tpprev: #x~X~%" (-> this pprev)) + (format #t "~1Tnext: #~%" (-> this next)) + (format #t "~1Tparent: #~%" (-> this parent)) + (format #t "~1Tlink: #~%" (-> this link)) + (format #t "~1Tcost-to-start: ~f~%" (-> this cost-to-start)) + (format #t "~1Tcost-to-end: ~f~%" (-> this cost-to-end)) + (format #t "~1Tstatus: #x~X : (nav-mesh-link-search-node-status " (-> this status)) + (let ((s5-0 (-> this status))) + (if (= (logand s5-0 (nav-mesh-link-search-node-status closed)) (nav-mesh-link-search-node-status closed)) + (format #t "closed ") + ) + (if (= (logand s5-0 (nav-mesh-link-search-node-status open)) (nav-mesh-link-search-node-status open)) + (format #t "open ") + ) + ) + (format #t ")~%") + (label cfg-8) + this + ) + +;; definition of type nav-poly +(deftype nav-poly (structure) + "Polygon within a nav-mesh. Can be a tri or quad. +Based on the implementation of point-poly-intersection?, these should likely be convex." + ((data uint8 64 :offset 0) + (vertex vector 4 :inline :overlay-at (-> data 0)) + (vertex0 vector :inline :overlay-at (-> vertex 0)) + (vertex1 vector :inline :overlay-at (-> vertex 1)) + (vertex2 vector :inline :overlay-at (-> vertex 2)) + (vertex3 vector :inline :overlay-at (-> vertex 3)) + (id uint8 :overlay-at (-> data 12)) + (pat uint8 :overlay-at (-> data 13)) + (vertex-count uint8 :overlay-at (-> data 14)) + (link uint8 :overlay-at (-> data 15)) + (adj-poly uint8 4 :overlay-at (-> data 28)) + (adj-poly0 uint8 :overlay-at (-> adj-poly 0)) + (adj-poly1 uint8 :overlay-at (-> adj-poly 1)) + (adj-poly2 uint8 :overlay-at (-> adj-poly 2)) + (adj-poly3 uint8 :overlay-at (-> adj-poly 3)) + (min-y float :overlay-at (-> data 44)) + (max-y float :overlay-at (-> data 60)) + ) + ) + +;; definition for method 3 of type nav-poly +(defmethod inspect ((this nav-poly)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-poly) + (format #t "~1Tdata[64] @ #x~X~%" (-> this vertex)) + (format #t "~1Tvertex[4] @ #x~X~%" (-> this vertex)) + (format #t "~1Tvertex0: ~`vector`P~%" (-> this vertex)) + (format #t "~1Tvertex1: ~`vector`P~%" (-> this vertex1)) + (format #t "~1Tvertex2: ~`vector`P~%" (-> this vertex2)) + (format #t "~1Tvertex3: ~`vector`P~%" (-> this vertex3)) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tpat: ~D~%" (-> this pat)) + (format #t "~1Tvertex-count: ~D~%" (-> this vertex-count)) + (format #t "~1Tlink: ~D~%" (-> this link)) + (format #t "~1Tadj-poly[4] @ #x~X~%" (&-> this vertex1 w)) + (format #t "~1Tadj-poly0: ~D~%" (-> this adj-poly0)) + (format #t "~1Tadj-poly1: ~D~%" (-> this adj-poly1)) + (format #t "~1Tadj-poly2: ~D~%" (-> this adj-poly2)) + (format #t "~1Tadj-poly3: ~D~%" (-> this adj-poly3)) + (format #t "~1Tmin-y: ~f~%" (-> this vertex2 w)) + (format #t "~1Tmax-y: ~f~%" (-> this vertex3 w)) + (label cfg-4) + this + ) + +;; definition of type nav-vertex +(deftype nav-vertex (vector) + () + ) + +;; definition for method 3 of type nav-vertex +;; INFO: Used lq/sq +(defmethod inspect ((this nav-vertex)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-vertex) + (format #t "~1Tdata[4] @ #x~X~%" (-> this data)) + (format #t "~1Tx: ~f~%" (-> this x)) + (format #t "~1Ty: ~f~%" (-> this y)) + (format #t "~1Tz: ~f~%" (-> this z)) + (format #t "~1Tw: ~f~%" (-> this w)) + (format #t "~1Tquad: ~D~%" (-> this quad)) + (label cfg-4) + this + ) + +;; definition of type nav-sphere +(deftype nav-sphere (structure) + ((trans sphere :inline) + ) + ) + +;; definition for method 3 of type nav-sphere +(defmethod inspect ((this nav-sphere)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-sphere) + (format #t "~1Ttrans: #~%" (-> this trans)) + (label cfg-4) + this + ) + +;; definition of type nav-ray +(deftype nav-ray (structure) + ((current-pos vector :inline) + (dir vector :inline) + (dest-pos vector :inline) + (current-mesh nav-mesh) + (current-poly nav-poly) + (next-mesh nav-mesh) + (next-poly nav-poly) + (len meters) + (last-edge int8) + (ignore uint8) + (terminated symbol) + (reached-dest symbol) + (hit-boundary symbol) + (hit-gap symbol) + (cross-meshes nav-mesh-link) + ) + (:methods + (nav-ray-method-9 (_type_ nav-mesh nav-poly vector vector) none) + (nav-ray-method-10 (_type_ nav-mesh nav-poly vector vector) none) + (nav-ray-method-11 (_type_) none) + (nav-ray-method-12 (_type_) none) + ) + ) + +;; definition for method 3 of type nav-ray +(defmethod inspect ((this nav-ray)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-ray) + (format #t "~1Tcurrent-pos: #~%" (-> this current-pos)) + (format #t "~1Tdir: #~%" (-> this dir)) + (format #t "~1Tdest-pos: #~%" (-> this dest-pos)) + (format #t "~1Tcurrent-mesh: ~A~%" (-> this current-mesh)) + (format #t "~1Tcurrent-poly: #~%" (-> this current-poly)) + (format #t "~1Tnext-mesh: ~A~%" (-> this next-mesh)) + (format #t "~1Tnext-poly: #~%" (-> this next-poly)) + (format #t "~1Tlen: (meters ~m)~%" (-> this len)) + (format #t "~1Tlast-edge: ~D~%" (-> this last-edge)) + (format #t "~1Tignore: ~D~%" (-> this ignore)) + (format #t "~1Tterminated: ~A~%" (-> this terminated)) + (format #t "~1Treached-dest: ~A~%" (-> this reached-dest)) + (format #t "~1Thit-boundary: ~A~%" (-> this hit-boundary)) + (format #t "~1Thit-gap: ~A~%" (-> this hit-gap)) + (format #t "~1Tcross-meshes: ~A~%" (-> this cross-meshes)) + (label cfg-4) + this + ) + +;; definition of type nav-route-portal +(deftype nav-route-portal (structure) + ((vertex nav-vertex 2 :inline) + (next-poly nav-poly) + (edge-index int8) + ) + ) + +;; definition for method 3 of type nav-route-portal +(defmethod inspect ((this nav-route-portal)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-route-portal) + (format #t "~1Tvertex[2] @ #x~X~%" (-> this vertex)) + (format #t "~1Tnext-poly: #~%" (-> this next-poly)) + (format #t "~1Tedge-index: ~D~%" (-> this edge-index)) + (label cfg-4) + this + ) + +;; definition of type nav-find-poly-parms +(deftype nav-find-poly-parms (structure) + ((point vector :inline) + (y-threshold float) + (ignore uint8) + (poly nav-poly) + (dist float) + (point-inside? symbol) + ) + ) + +;; definition for method 3 of type nav-find-poly-parms +(defmethod inspect ((this nav-find-poly-parms)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-find-poly-parms) + (format #t "~1Tpoint: #~%" (-> this point)) + (format #t "~1Ty-threshold: ~f~%" (-> this y-threshold)) + (format #t "~1Tignore: ~D~%" (-> this ignore)) + (format #t "~1Tpoly: #~%" (-> this poly)) + (format #t "~1Tdist: ~f~%" (-> this dist)) + (format #t "~1Tpoint-inside?: ~A~%" (-> this point-inside?)) + (label cfg-4) + this + ) + +;; definition of type clamp-travel-vector-to-mesh-return-info +(deftype clamp-travel-vector-to-mesh-return-info (structure) + ((found-boundary symbol) + (intersection vector :inline) + (boundary-normal vector :inline) + (prev-normal vector :inline) + (next-normal vector :inline) + (poly nav-poly) + (mesh basic) + (gap-poly nav-poly) + (edge int8) + (ignore uint8) + (vert-prev vector :inline) + (vert-0 vector :inline) + (vert-1 vector :inline) + (vert-next vector :inline) + ) + (:methods + (clamp-travel-vector-to-mesh-return-info-method-9 () none) + (clamp-travel-vector-to-mesh-return-info-method-10 () none) + ) + ) + +;; definition for method 3 of type clamp-travel-vector-to-mesh-return-info +(defmethod inspect ((this clamp-travel-vector-to-mesh-return-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'clamp-travel-vector-to-mesh-return-info) + (format #t "~1Tfound-boundary: ~A~%" (-> this found-boundary)) + (format #t "~1Tintersection: #~%" (-> this intersection)) + (format #t "~1Tboundary-normal: #~%" (-> this boundary-normal)) + (format #t "~1Tprev-normal: #~%" (-> this prev-normal)) + (format #t "~1Tnext-normal: #~%" (-> this next-normal)) + (format #t "~1Tpoly: #~%" (-> this poly)) + (format #t "~1Tmesh: ~A~%" (-> this mesh)) + (format #t "~1Tgap-poly: #~%" (-> this gap-poly)) + (format #t "~1Tedge: ~D~%" (-> this edge)) + (format #t "~1Tignore: ~D~%" (-> this ignore)) + (format #t "~1Tvert-prev: #~%" (-> this vert-prev)) + (format #t "~1Tvert-0: #~%" (-> this vert-0)) + (format #t "~1Tvert-1: #~%" (-> this vert-1)) + (format #t "~1Tvert-next: #~%" (-> this vert-next)) + (label cfg-4) + this + ) + +;; definition of type nav-find-corner-portal-params +(deftype nav-find-corner-portal-params (structure) + ((start-poly nav-poly) + (target-poly nav-poly) + (corner-poly nav-poly) + (start-pos vector :inline) + (target-pos vector :inline) + (corner-verts vector 2 :inline) + (vert-select int8) + ) + ) + +;; definition for method 3 of type nav-find-corner-portal-params +(defmethod inspect ((this nav-find-corner-portal-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-find-corner-portal-params) + (format #t "~1Tstart-poly: #~%" (-> this start-poly)) + (format #t "~1Ttarget-poly: #~%" (-> this target-poly)) + (format #t "~1Tcorner-poly: #~%" (-> this corner-poly)) + (format #t "~1Tstart-pos: #~%" (-> this start-pos)) + (format #t "~1Ttarget-pos: #~%" (-> this target-pos)) + (format #t "~1Tcorner-verts[2] @ #x~X~%" (-> this corner-verts)) + (format #t "~1Tvert-select: ~D~%" (-> this vert-select)) + (label cfg-4) + this + ) + +;; definition of type nav-mesh +(deftype nav-mesh (basic) + "Mesh used for creature/enemy navigation." + ((work nav-mesh-work) + (poly-array (inline-array nav-poly)) + (static-sphere-count uint8) + (poly-count uint8) + (nav-control-count uint8) + (max-nav-control-count uint8) + (route (pointer uint8)) + (poly-hash grid-hash) + (nav-control-array (inline-array nav-control)) + (sphere-hash sphere-hash) + (static-sphere (inline-array sphere)) + (user-list engine) + (next-nav-mesh basic) + (prev-nav-mesh basic) + (bounds sphere :inline) + (origin vector :inline :overlay-at (-> bounds data 0)) + (entity entity) + (link-array (inline-array nav-mesh-link)) + (link-count uint8) + (flags nav-mesh-flag) + (pad1 uint8 2) + (nearest-y-threshold meters) + (water-max-height meters) + (link-search-node-array uint32) + (pad2 uint32 6) + ) + (:methods + (nav-mesh-method-9 () none) + (nav-mesh-method-10 () none) + (nav-mesh-method-11 () none) + (nav-mesh-method-12 () none) + (nav-mesh-method-13 () none) + (nav-mesh-method-14 () none) + (nav-mesh-method-15 () none) + (nav-mesh-method-16 () none) + (nav-mesh-method-17 () none) + (nav-mesh-method-18 () none) + (nav-mesh-method-19 () none) + (nav-mesh-method-20 () none) + (nav-mesh-method-21 () none) + (nav-mesh-method-22 () none) + (nav-mesh-method-23 () none) + (nav-mesh-method-24 () none) + (nav-mesh-method-25 () none) + (nav-mesh-method-26 () none) + (nav-mesh-method-27 () none) + (nav-mesh-method-28 () none) + (nav-mesh-method-29 () none) + (nav-mesh-method-30 () none) + (nav-mesh-method-31 () none) + (nav-mesh-method-32 () none) + (nav-mesh-method-33 () none) + (nav-mesh-method-34 () none) + (nav-mesh-method-35 () none) + (nav-mesh-method-36 () none) + (point-in-poly? (_type_ nav-poly vector) symbol) + (nav-mesh-method-38 () none) + (nav-mesh-method-39 (_type_ nav-poly vector vector) vector) + (nav-mesh-method-40 () none) + (nav-mesh-method-41 (_type_ nav-poly vector vector vector (pointer nav-poly)) vector) + (nav-mesh-method-42 () none) + (nav-mesh-method-43 () none) + (nav-mesh-method-44 () none) + (nav-mesh-method-45 () none) + (nav-mesh-method-46 () none) + ) + ) + +;; definition for method 3 of type nav-mesh +(defmethod inspect ((this nav-mesh)) + (when (not this) + (set! this this) + (goto cfg-8) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Twork: #~%" (-> this work)) + (format #t "~1Tpoly-array: #x~X~%" (-> this poly-array)) + (format #t "~1Tstatic-sphere-count: ~D~%" (-> this static-sphere-count)) + (format #t "~1Tpoly-count: ~D~%" (-> this poly-count)) + (format #t "~1Tnav-control-count: ~D~%" (-> this nav-control-count)) + (format #t "~1Tmax-nav-control-count: ~D~%" (-> this max-nav-control-count)) + (format #t "~1Troute: #x~X~%" (-> this route)) + (format #t "~1Tpoly-hash: ~A~%" (-> this poly-hash)) + (format #t "~1Tnav-control-array: #x~X~%" (-> this nav-control-array)) + (format #t "~1Tsphere-hash: ~A~%" (-> this sphere-hash)) + (format #t "~1Tstatic-sphere: #x~X~%" (-> this static-sphere)) + (format #t "~1Tuser-list: ~A~%" (-> this user-list)) + (format #t "~1Tnext-nav-mesh: ~A~%" (-> this next-nav-mesh)) + (format #t "~1Tprev-nav-mesh: ~A~%" (-> this prev-nav-mesh)) + (format #t "~1Tbounds: ~`sphere`P~%" (-> this bounds)) + (format #t "~1Torigin: #~%" (-> this bounds)) + (format #t "~1Tentity: ~A~%" (-> this entity)) + (format #t "~1Tlink-array: #x~X~%" (-> this link-array)) + (format #t "~1Tlink-count: ~D~%" (-> this link-count)) + (format #t "~1Tflags: #x~X : (nav-mesh-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (nav-mesh-flag dummy)) (nav-mesh-flag dummy)) + (format #t "dummy ") + ) + (if (= (logand s5-0 (nav-mesh-flag water)) (nav-mesh-flag water)) + (format #t "water ") + ) + ) + (format #t ")~%") + (format #t "~1Tpad1[2] @ #x~X~%" (-> this pad1)) + (format #t "~1Tnearest-y-threshold: (meters ~m)~%" (-> this nearest-y-threshold)) + (format #t "~1Twater-max-height: (meters ~m)~%" (-> this water-max-height)) + (format #t "~1Tlink-search-node-array: #x~X~%" (-> this link-search-node-array)) + (format #t "~1Tpad2[6] @ #x~X~%" (-> this pad2)) + (label cfg-8) + this + ) + +;; definition of type nav-location +(deftype nav-location (structure) + ((nav-mesh nav-mesh) + (nav-poly nav-poly) + ) + ) + +;; definition for method 3 of type nav-location +(defmethod inspect ((this nav-location)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'nav-location) + (format #t "~1Tnav-mesh: ~A~%" (-> this nav-mesh)) + (format #t "~1Tnav-poly: #~%" (-> this nav-poly)) + (label cfg-4) + this + ) + +;; definition for function vector-normalize-unity! +(defun vector-normalize-unity! ((arg0 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (let ((v0-0 arg0)) + (let ((f0-0 1.0)) + (.lvf vf1 (&-> v0-0 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((v1-1 f0-0)) + (.mov vf3 v1-1) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v0-0 quad) vf1) + v0-0 + ) + ) + ) + +;; definition for function vector-normalize-unity-copy! +;; INFO: Used lq/sq +(defun vector-normalize-unity-copy! ((arg0 vector) (arg1 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (set! (-> arg0 quad) (-> arg1 quad)) + (let ((v0-0 arg0)) + (let ((f0-0 1.0)) + (.lvf vf1 (&-> v0-0 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((v1-2 f0-0)) + (.mov vf3 v1-2) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v0-0 quad) vf1) + v0-0 + ) + ) + ) + +;; definition (debug) for function debug-validate-current-poly +(defun-debug debug-validate-current-poly () + #f + ) + +;; definition for method 9 of type nav-ray +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod nav-ray-method-9 ((this nav-ray) (arg0 nav-mesh) (arg1 nav-poly) (arg2 vector) (arg3 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (set! (-> this current-mesh) arg0) + (set! (-> this current-poly) arg1) + (vector-! (-> this current-pos) arg2 (the-as vector (-> arg0 bounds))) + (let ((a2-2 (-> this dest-pos))) + (let ((v1-2 (-> this current-pos)) + (a1-2 arg3) + ) + (.lvf vf4 (&-> v1-2 quad)) + (.lvf vf5 (&-> a1-2 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-2 quad) vf6) + ) + (set! (-> this dir quad) (-> arg3 quad)) + (set! (-> this dir y) 0.0) + (let ((v1-4 (-> this dir))) + (let ((f0-1 1.0)) + (.lvf vf1 (&-> v1-4 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((a1-6 f0-1)) + (.mov vf3 a1-6) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v1-4 quad) vf1) + ) + (set! (-> this ignore) (the-as uint 2)) + (set! (-> this cross-meshes) #f) + (nav-ray-method-11 this) + 0 + (none) + ) + ) + +;; definition for method 10 of type nav-ray +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod nav-ray-method-10 ((this nav-ray) (arg0 nav-mesh) (arg1 nav-poly) (arg2 vector) (arg3 vector)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (set! (-> this current-mesh) arg0) + (set! (-> this current-poly) arg1) + (set! (-> this current-pos quad) (-> arg2 quad)) + (let ((a2-1 (-> this dest-pos))) + (let ((v1-1 (-> this current-pos)) + (a1-3 arg3) + ) + (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a1-3 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-1 quad) vf6) + ) + (set! (-> this dir quad) (-> arg3 quad)) + (set! (-> this dir y) 0.0) + (let ((v1-3 (-> this dir))) + (let ((f0-1 1.0)) + (.lvf vf1 (&-> v1-3 quad)) + (.mul.vf.xyz vf2 vf1 vf1) + (let ((a1-7 f0-1)) + (.mov vf3 a1-7) + ) + ) + (.mul.x.vf.w acc vf0 vf2) + (.add.mul.y.vf.w acc vf0 vf2 acc) + (.add.mul.z.vf.w vf2 vf0 vf2 acc) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf.xyz vf1 vf1 Q) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> v1-3 quad) vf1) + ) + (set! (-> this ignore) (the-as uint 2)) + (set! (-> this cross-meshes) #f) + (nav-ray-method-11 this) + 0 + (none) + ) + ) + +;; definition for method 11 of type nav-ray +;; WARN: Return type mismatch int vs none. +(defmethod nav-ray-method-11 ((this nav-ray)) + (set! (-> this next-mesh) (-> this current-mesh)) + (set! (-> this next-poly) #f) + (set! (-> this len) 0.0) + (set! (-> this last-edge) -1) + (set! (-> this terminated) #f) + (set! (-> this reached-dest) #f) + (set! (-> this hit-boundary) #f) + (set! (-> this hit-gap) #f) + 0 + (none) + ) + +;; definition for function point-poly-intersection? +(defun point-poly-intersection? ((arg0 nav-mesh) (arg1 vector) (arg2 int) (arg3 (inline-array vector))) + (let ((v1-1 (-> arg0 work vert0-table)) + (a0-2 (-> arg0 work vert1-table)) + ) + (dotimes (t0-0 arg2) + (let* ((t1-3 (-> arg3 (-> v1-1 t0-0))) + (t2-3 (-> arg3 (-> a0-2 t0-0))) + (f0-1 (- (-> t1-3 z) (-> t2-3 z))) + (f1-2 (- (-> t2-3 x) (-> t1-3 x))) + (f2-2 (- (-> arg1 x) (-> t1-3 x))) + (f3-2 (- (-> arg1 z) (-> t1-3 z))) + (f0-3 (+ (* f2-2 f0-1) (* f3-2 f1-2))) + ) + (if (< 0.0 f0-3) + (return #f) + ) + ) + ) + ) + #t + ) + +;; definition for method 37 of type nav-mesh +(defmethod point-in-poly? ((this nav-mesh) (arg0 nav-poly) (arg1 vector)) + (let* ((a3-0 this) + (v1-0 arg1) + (a0-1 (-> arg0 vertex-count)) + (a1-1 (-> arg0 vertex)) + (a2-2 (-> a3-0 work vert0-table)) + (a3-2 (-> a3-0 work vert1-table)) + ) + (dotimes (t0-0 (the-as int a0-1)) + (let* ((t1-3 (-> a1-1 (-> a2-2 t0-0))) + (t2-3 (-> a1-1 (-> a3-2 t0-0))) + (f0-1 (- (-> t1-3 z) (-> t2-3 z))) + (f1-2 (- (-> t2-3 x) (-> t1-3 x))) + (f2-2 (- (-> v1-0 x) (-> t1-3 x))) + (f3-2 (- (-> v1-0 z) (-> t1-3 z))) + (f0-3 (+ (* f2-2 f0-1) (* f3-2 f1-2))) + ) + (if (< 0.0 f0-3) + (return #f) + ) + ) + ) + ) + #t + ) + +;; definition for method 39 of type nav-mesh +;; INFO: Used lq/sq +(defmethod nav-mesh-method-39 ((this nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector)) + (let ((sv-48 (new 'stack-no-clear 'vector)) + (sv-52 (new 'stack-no-clear 'vector)) + ) + (let* ((sv-56 10000000000000000000000000000000000000.0) + (s3-0 (-> arg0 vertex-count)) + (v1-3 (the-as int (+ s3-0 -1))) + ) + (dotimes (s2-0 (the-as int s3-0)) + (let ((f0-1 (vector-segment-distance-point! arg2 (-> arg0 vertex v1-3) (-> arg0 vertex s2-0) sv-48))) + (when (< f0-1 (the-as float sv-56)) + (set! sv-56 f0-1) + (set! (-> sv-52 quad) (-> sv-48 quad)) + ) + ) + (set! v1-3 s2-0) + ) + ) + (set! (-> arg1 quad) (-> sv-52 quad)) + ) + arg1 + ) + +;; definition for method 41 of type nav-mesh +;; INFO: Used lq/sq +(defmethod nav-mesh-method-41 ((this nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 (pointer nav-poly))) + (cond + ((point-in-poly? this arg0 arg2) + (set! (-> arg1 quad) (-> arg2 quad)) + ) + (else + (let ((s5-1 arg1) + (sv-48 (new 'stack-no-clear 'vector)) + (sv-52 (new 'stack-no-clear 'vector)) + ) + (let* ((sv-56 10000000000000000000000000000000000000.0) + (s2-0 (-> arg0 vertex-count)) + (v1-6 (the-as int (+ s2-0 -1))) + ) + (dotimes (s1-0 (the-as int s2-0)) + (let ((f0-1 (vector-segment-distance-point! arg2 (-> arg0 vertex v1-6) (-> arg0 vertex s1-0) sv-48))) + (when (< f0-1 (the-as float sv-56)) + (set! sv-56 f0-1) + (set! (-> sv-52 quad) (-> sv-48 quad)) + ) + ) + (set! v1-6 s1-0) + ) + ) + (set! (-> s5-1 quad) (-> sv-52 quad)) + ) + ) + ) + arg1 + ) + +;; definition for method 12 of type nav-ray +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod nav-ray-method-12 ((this nav-ray)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((sv-16 this) + (sv-24 -1) + ) + (let ((sv-32 (-> sv-16 current-mesh work))) + ) + (let ((sv-36 (-> sv-16 current-poly)) + (sv-40 (-> sv-16 current-poly vertex-count)) + (sv-44 (-> sv-16 current-mesh work vert0-table)) + (sv-48 (-> sv-16 current-mesh work vert1-table)) + (sv-52 (- (-> sv-16 dest-pos x) (-> sv-16 current-pos x))) + (sv-56 (- (-> sv-16 dest-pos z) (-> sv-16 current-pos z))) + ) + (dotimes (v1-21 (the-as int sv-40)) + (let* ((sv-60 (-> sv-36 vertex (-> sv-44 v1-21))) + (sv-64 (-> sv-36 vertex (-> sv-48 v1-21))) + (sv-68 (- (-> sv-60 z) (-> sv-64 z))) + (sv-72 (- (-> sv-64 x) (-> sv-60 x))) + (f0-10 (+ (* sv-52 sv-68) (* sv-56 sv-72))) + ) + (when (< 0.0 f0-10) + (let ((f1-10 + (+ (* sv-68 (- (-> sv-60 x) (-> sv-16 current-pos x))) (* sv-72 (- (-> sv-60 z) (-> sv-16 current-pos z)))) + ) + ) + (when (< f1-10 f0-10) + (set! sv-24 v1-21) + (let ((f0-12 (fmax 0.0 (/ f1-10 f0-10)))) + (set! sv-52 (* sv-52 f0-12)) + (set! sv-56 (* sv-56 f0-12)) + ) + ) + ) + ) + ) + ) + (let ((f0-16 (+ (* sv-52 (-> sv-16 dir x)) (* sv-56 (-> sv-16 dir z))))) + (+! (-> sv-16 len) f0-16) + ) + 0 + (set! (-> sv-16 next-poly) #f) + (cond + ((= sv-24 -1) + (set! (-> sv-16 current-pos quad) (-> sv-16 dest-pos quad)) + (set! (-> sv-16 reached-dest) #t) + (set! (-> sv-16 terminated) #t) + ) + (else + (+! (-> sv-16 current-pos x) sv-52) + (+! (-> sv-16 current-pos z) sv-56) + (let ((sv-76 (-> sv-36 adj-poly sv-24))) + (when (!= sv-76 255) + (set! (-> sv-16 next-poly) (-> sv-16 current-mesh poly-array sv-76)) + (set! (-> sv-16 next-mesh) (-> sv-16 current-mesh)) + (when (and (logtest? (-> sv-16 next-poly pat) 4) (!= (-> sv-16 next-poly link) 255) (-> sv-16 cross-meshes)) + (let* ((v1-64 (-> sv-16 current-mesh link-array (-> sv-16 next-poly link))) + (sv-80 (-> v1-64 dest-mesh)) + ) + (when sv-80 + (set! (-> sv-16 next-mesh) sv-80) + (set! (-> sv-16 next-poly) (-> sv-80 poly-array (-> v1-64 dest-link-poly-id))) + (let ((v1-69 (-> sv-16 current-pos))) + (let ((a0-50 (-> sv-16 current-pos)) + (a1-5 (-> sv-16 current-mesh bounds)) + ) + (.lvf vf4 (&-> a0-50 quad)) + (.lvf vf5 (&-> a1-5 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-69 quad) vf6) + ) + (vector-! (-> sv-16 current-pos) (-> sv-16 current-pos) (the-as vector (-> sv-16 next-mesh bounds))) + (let ((v1-74 (-> sv-16 dest-pos))) + (let ((a0-54 (-> sv-16 dest-pos)) + (a1-11 (-> sv-16 current-mesh bounds)) + ) + (.lvf vf4 (&-> a0-54 quad)) + (.lvf vf5 (&-> a1-11 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> v1-74 quad) vf6) + ) + (vector-! (-> sv-16 dest-pos) (-> sv-16 dest-pos) (the-as vector (-> sv-16 next-mesh bounds))) + (debug-validate-nav-poly (the-as nav-mesh-link (-> sv-16 next-mesh)) (-> sv-16 next-poly)) + ) + ) + ) + ) + ) + (cond + ((and (-> sv-16 next-poly) (-> sv-16 next-mesh) (not (logtest? (-> sv-16 next-poly pat) (-> sv-16 ignore)))) + (set! (-> sv-16 current-mesh) (-> sv-16 next-mesh)) + (set! (-> sv-16 current-poly) (-> sv-16 next-poly)) + ) + (else + (set! (-> sv-16 last-edge) sv-24) + (if (-> sv-16 next-poly) + (set! (-> sv-16 hit-gap) #t) + (set! (-> sv-16 hit-boundary) #t) + ) + (set! (-> sv-16 terminated) #t) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition (debug) for function nav-sphere-from-cam +;; WARN: Return type mismatch int vs none. +(defun-debug nav-sphere-from-cam () + (let ((v1-0 (camera-pos))) + (format #t "SPHEREM(~4,,1M, ~4,,1M, ~4,,1M, 1.0)~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/net/net-eco-h_REF.gc b/test/decompiler/reference/jakx/engine/net/net-eco-h_REF.gc new file mode 100644 index 0000000000..fbd5b5cd87 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/net-eco-h_REF.gc @@ -0,0 +1,141 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type eco-perm +(deftype eco-perm (structure) + ((time int32) + (owner int8) + (hit-by-local int8) + (flags uint64) + ) + ) + +;; definition for method 3 of type eco-perm +(defmethod inspect ((this eco-perm)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'eco-perm) + (format #t "~1Ttime: ~D~%" (-> this time)) + (format #t "~1Towner: ~D~%" (-> this owner)) + (format #t "~1Thit-by-local: ~D~%" (-> this hit-by-local)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (label cfg-4) + this + ) + +;; definition of type eco +(deftype eco (process-drawable) + () + (:methods + (eco-method-50 () none) + (eco-method-51 () none) + (eco-method-52 () none) + (eco-method-53 () none) + (eco-method-54 () none) + (eco-method-55 () none) + ) + ) + +;; definition for method 3 of type eco +(defmethod inspect ((this eco)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type eco-mgr +(deftype eco-mgr (process-nettable) + () + (:methods + (eco-mgr-method-42 () none) + (eco-mgr-method-43 () none) + (eco-mgr-method-44 () none) + (eco-mgr-method-45 () none) + (eco-mgr-method-46 () none) + (eco-mgr-method-47 () none) + (eco-mgr-method-48 () none) + (eco-mgr-method-49 () none) + (eco-mgr-method-50 () none) + ) + ) + +;; definition for method 3 of type eco-mgr +(defmethod inspect ((this eco-mgr)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process-nettable inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition for function eco-mgr-init-remote +;; WARN: Return type mismatch int vs none. +(defbehavior eco-mgr-init-remote eco-mgr ((arg0 process)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self (the-as int arg0)) + (process-nettable-method-36 self) + 0 + (none) + ) + +;; definition for method 41 of type eco-mgr +(defmethod process-nettable-method-41 ((this eco-mgr) (arg0 int)) + (ppointer->process (process-spawn eco-mgr :init eco-mgr-init-remote arg0 :name "eco-mgr")) + ) + +;; definition for method 37 of type eco-mgr +;; WARN: Return type mismatch int vs none. +(defmethod process-nettable-method-37 ((this eco-mgr) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'req-owner) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'set-owner) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'collected) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'respawn) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +;; definition for symbol *msg-map-eco-mgr*, type (array symbol) +(define *msg-map-eco-mgr* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +;; definition for symbol *net-process-class-info-eco-mgr*, type net-process-class-info +(define *net-process-class-info-eco-mgr* (new 'static 'net-process-class-info)) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-eco-mgr* msg-map) *msg-map-eco-mgr*) + +;; failed to figure out what this is: +(write-msg-map-rec eco-mgr *net-process-class-info-eco-mgr*) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-eco-mgr* owner-type) eco-mgr) + +;; failed to figure out what this is: +(net-process-class-register *net-process-class-info-eco-mgr*) + +;; definition for method 40 of type eco-mgr +(defmethod process-nettable-method-40 ((this eco-mgr)) + *net-process-class-info-eco-mgr* + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/net-logging-h_REF.gc b/test/decompiler/reference/jakx/engine/net/net-logging-h_REF.gc new file mode 100644 index 0000000000..9971d7c130 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/net-logging-h_REF.gc @@ -0,0 +1,41 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type net-log-event-header +(deftype net-log-event-header (structure) + ((length uint16) + (type uint8) + (pad int8) + (time int32) + (id int32) + ) + ) + +;; definition for method 3 of type net-log-event-header +(defmethod inspect ((this net-log-event-header)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-log-event-header) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Ttype: ~D~%" (-> this type)) + (format #t "~1Tpad: ~D~%" (-> this pad)) + (format #t "~1Ttime: ~D~%" (-> this time)) + (format #t "~1Tid: ~D~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition for symbol *net-log-tmp-header*, type net-log-event-header +(define *net-log-tmp-header* (new 'static 'net-log-event-header)) + +;; definition for symbol *comment-string*, type string +(define *comment-string* (new 'global 'string 200 "")) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/net-mgr-medius-cache-h_REF.gc b/test/decompiler/reference/jakx/engine/net/net-mgr-medius-cache-h_REF.gc new file mode 100644 index 0000000000..9e08b8ebf8 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/net-mgr-medius-cache-h_REF.gc @@ -0,0 +1,125 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type medius-cached-info +(deftype medius-cached-info (basic) + ((medius-id int32) + (accessed-time int32) + (fetched-time int32) + (status uint64) + ) + (:methods + (medius-cached-info-method-9 () none) + (medius-cached-info-method-10 () none) + (medius-cached-info-method-11 () none) + ) + ) + +;; definition for method 3 of type medius-cached-info +(defmethod inspect ((this medius-cached-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tmedius-id: ~D~%" (-> this medius-id)) + (format #t "~1Taccessed-time: ~D~%" (-> this accessed-time)) + (format #t "~1Tfetched-time: ~D~%" (-> this fetched-time)) + (format #t "~1Tstatus: ~D~%" (-> this status)) + (label cfg-4) + this + ) + +;; definition of type medius-cache +(deftype medius-cache (basic) + ((objects (array medius-cached-info)) + ) + (:methods + (medius-cache-method-9 () none) + (medius-cache-method-10 () none) + (medius-cache-method-11 () none) + (clear-objects! (_type_) none) + (medius-cache-method-13 () none) + (medius-cache-method-14 () none) + ) + ) + +;; definition for method 3 of type medius-cache +(defmethod inspect ((this medius-cache)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tobjects: ~A~%" (-> this objects)) + (label cfg-4) + this + ) + +;; definition of type medius-cache-index +(deftype medius-cache-index (structure) + ((id int32) + ) + (:methods + (medius-cache-index-method-9 () none) + (medius-cache-index-method-10 () none) + ) + ) + +;; definition for method 3 of type medius-cache-index +(defmethod inspect ((this medius-cache-index)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-cache-index) + (format #t "~1Tid: ~D~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition of type medius-cache-index-array +(deftype medius-cache-index-array (structure) + ((ct int32) + (max-ct int32) + (data medius-cache :dynamic) + ) + (:methods + (medius-cache-index-array-method-9 () none) + (medius-cache-index-array-method-10 () none) + (medius-cache-index-array-method-11 () none) + (medius-cache-index-array-method-12 () none) + ) + ) + +;; definition for method 3 of type medius-cache-index-array +(defmethod inspect ((this medius-cache-index-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-cache-index-array) + (format #t "~1Tct: ~D~%" (-> this ct)) + (format #t "~1Tmax-ct: ~D~%" (-> this max-ct)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition for method 12 of type medius-cache +;; WARN: Return type mismatch int vs none. +(defmethod clear-objects! ((this medius-cache)) + (dotimes (v1-0 (-> this objects length)) + (set! (-> this objects v1-0 medius-id) -1) + (set! (-> this objects v1-0 status) (the-as uint 0)) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/net-player-h_REF.gc b/test/decompiler/reference/jakx/engine/net/net-player-h_REF.gc new file mode 100644 index 0000000000..78622f3cbe --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/net-player-h_REF.gc @@ -0,0 +1,288 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type net-player-respawn-info +(deftype net-player-respawn-info (structure) + ((position vector :inline) + (quat quaternion :inline) + (velocity vector :inline) + (want-count int8) + (want uint32) + ) + (:methods + (net-player-respawn-info-method-9 () none) + (net-player-respawn-info-method-10 () none) + ) + ) + +;; definition for method 3 of type net-player-respawn-info +(defmethod inspect ((this net-player-respawn-info)) + (when (not this) + (set! this this) + (goto cfg-7) + ) + (format #t "[~8x] ~A~%" this 'net-player-respawn-info) + (format #t "~1Tposition: #~%" (-> this position)) + (format #t "~1Tquat: #~%" (-> this quat)) + (format #t "~1Tvelocity: #~%" (-> this velocity)) + (format #t "~1Twant-count: ~D~%" (-> this want-count)) + (format #t "~1Twant: #x~X~%" (-> this want)) + (dotimes (s5-0 (-> this want-count)) + (format #t "~T [~D]~1Twant: ~`level-buffer-state-small`P~%" s5-0 (+ (-> this want) (* s5-0 8))) + ) + (label cfg-7) + this + ) + +;; definition of type net-player +(deftype net-player (process-nettable) + ((last-known-pos vector :inline) + (last-known-pos-valid basic) + (mgr basic) + (vehicle uint64) + (rev-mgr uint64) + (pad1 uint32) + (score int32) + (player-num int8) + (team uint8) + (color uint32) + (font-color uint8) + (multiplier int8) + (death-indicator-1 uint64) + (death-indicator-2 uint64) + (wpn-left-type uint8) + (wpn-right-type uint8) + (wpn-left-ammo uint8) + (wpn-right-ammo uint8) + (turbo-qty uint8) + (dark-eco uint8) + (health uint8) + (last-weapon-provision float) + (top-speed float) + (player-id int8) + (flags uint8) + (rank int8) + (human-rank int8) + (next-spawn-time uint64) + (state-time uint64) + (vehicle-impact-callback basic) + (spawn-count int32) + (speech-id uint8) + (last-speech-time uint64) + (best-power-slide float) + (best-hang-time int32) + (display-score int32) + (kills int32) + (deaths int32) + (last-spawn-time uint64) + (dead-camera-pos-valid basic) + (dead-camera-pos vector :inline) + ) + (:methods + (net-player-method-42 () none) + (net-player-method-43 () none) + (net-player-method-44 () none) + (net-player-method-45 () none) + (net-player-method-46 () none) + (net-player-method-47 () none) + (net-player-method-48 () none) + (net-player-method-49 () none) + (net-player-method-50 () none) + (net-player-method-51 () none) + (net-player-method-52 () none) + (net-player-method-53 () none) + (net-player-method-54 () none) + (net-player-method-55 () none) + (net-player-method-56 () none) + (net-player-method-57 () none) + (net-player-method-58 () none) + (net-player-method-59 () none) + (net-player-method-60 () none) + (net-player-method-61 () none) + (net-player-method-62 () none) + (net-player-method-63 () none) + (net-player-method-64 () none) + (net-player-method-65 () none) + (net-player-method-66 () none) + (net-player-method-67 () none) + (net-player-method-68 () none) + (net-player-method-69 () none) + (net-player-method-70 () none) + (net-player-method-71 () none) + (net-player-method-72 () none) + (net-player-method-73 () none) + (net-player-method-74 () none) + (net-player-method-75 () none) + (net-player-method-76 () none) + (net-player-method-77 () none) + (net-player-method-78 () none) + (net-player-method-79 () none) + (net-player-method-80 () none) + (net-player-method-81 () none) + (net-player-method-82 () none) + (net-player-method-83 () none) + (net-player-method-84 () none) + (net-player-method-85 () none) + (net-player-method-86 () none) + (net-player-method-87 () none) + (net-player-method-88 () none) + (net-player-method-89 () none) + (net-player-method-90 () none) + (net-player-method-91 () none) + (net-player-method-92 () none) + (net-player-method-93 () none) + (net-player-method-94 () none) + (net-player-method-95 () none) + (net-player-method-96 () none) + (net-player-method-97 () none) + ) + ) + +;; definition for method 3 of type net-player +(defmethod inspect ((this net-player)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process-nettable inspect))) + (t9-0 this) + ) + (format #t "~2Tlast-known-pos: #~%" (-> this last-known-pos)) + (format #t "~2Tlast-known-pos-valid: ~A~%" (-> this last-known-pos-valid)) + (format #t "~2Tmgr: ~A~%" (-> this mgr)) + (format #t "~2Tvehicle: ~D~%" (-> this vehicle)) + (format #t "~2Trev-mgr: ~D~%" (-> this rev-mgr)) + (format #t "~2Tscore: ~D~%" (-> this score)) + (format #t "~2Tplayer-num: ~D~%" (-> this player-num)) + (format #t "~2Tteam: ~D~%" (-> this team)) + (format #t "~2Tcolor: ~D~%" (-> this color)) + (format #t "~2Tfont-color: ~D~%" (-> this font-color)) + (format #t "~2Tmultiplier: ~D~%" (-> this multiplier)) + (format #t "~2Tdeath-indicator-1: ~D~%" (-> this death-indicator-1)) + (format #t "~2Tdeath-indicator-2: ~D~%" (-> this death-indicator-2)) + (format #t "~2Twpn-left-type: ~D~%" (-> this wpn-left-type)) + (format #t "~2Twpn-right-type: ~D~%" (-> this wpn-right-type)) + (format #t "~2Twpn-left-ammo: ~D~%" (-> this wpn-left-ammo)) + (format #t "~2Twpn-right-ammo: ~D~%" (-> this wpn-right-ammo)) + (format #t "~2Tturbo-qty: ~D~%" (-> this turbo-qty)) + (format #t "~2Tdark-eco: ~D~%" (-> this dark-eco)) + (format #t "~2Thealth: ~D~%" (-> this health)) + (format #t "~2Tlast-weapon-provision: ~f~%" (-> this last-weapon-provision)) + (format #t "~2Ttop-speed: ~f~%" (-> this top-speed)) + (format #t "~2Tplayer-id: ~D~%" (-> this player-id)) + (format #t "~2Tflags: ~D~%" (-> this flags)) + (format #t "~2Trank: ~D~%" (-> this rank)) + (format #t "~2Thuman-rank: ~D~%" (-> this human-rank)) + (format #t "~2Tnext-spawn-time: ~D~%" (-> this next-spawn-time)) + (format #t "~2Tstate-time: ~D~%" (-> this state-time)) + (format #t "~2Tvehicle-impact-callback: ~A~%" (-> this vehicle-impact-callback)) + (format #t "~2Tspawn-count: ~D~%" (-> this spawn-count)) + (format #t "~2Tspeech-id: ~D~%" (-> this speech-id)) + (format #t "~2Tlast-speech-time: ~D~%" (-> this last-speech-time)) + (format #t "~2Tbest-power-slide: ~f~%" (-> this best-power-slide)) + (format #t "~2Tbest-hang-time: ~D~%" (-> this best-hang-time)) + (format #t "~2Tdisplay-score: ~D~%" (-> this display-score)) + (format #t "~2Tkills: ~D~%" (-> this kills)) + (format #t "~2Tdeaths: ~D~%" (-> this deaths)) + (format #t "~2Tlast-spawn-time: ~D~%" (-> this last-spawn-time)) + (format #t "~2Tdead-camera-pos-valid: ~A~%" (-> this dead-camera-pos-valid)) + (format #t "~2Tdead-camera-pos: #~%" (-> this dead-camera-pos)) + (label cfg-4) + this + ) + +;; definition for function net-player-init-remote +;; WARN: Return type mismatch int vs none. +(defbehavior net-player-init-remote net-player ((arg0 process)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self (the-as int arg0)) + (process-nettable-method-36 self) + 0 + (none) + ) + +;; definition for method 41 of type net-player +(defmethod process-nettable-method-41 ((this net-player) (arg0 int)) + (ppointer->process (process-spawn net-player :init net-player-init-remote arg0 :name "net-player")) + ) + +;; definition for method 37 of type net-player +;; WARN: Return type mismatch int vs none. +(defmethod process-nettable-method-37 ((this net-player) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'score-changed) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'stats-changed) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +;; definition for symbol *msg-map-net-player*, type (array symbol) +(define *msg-map-net-player* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +;; definition for symbol *net-process-class-info-net-player*, type net-process-class-info +(define *net-process-class-info-net-player* (new 'static 'net-process-class-info)) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-net-player* msg-map) *msg-map-net-player*) + +;; failed to figure out what this is: +(write-msg-map-rec net-player *net-process-class-info-net-player*) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-net-player* owner-type) net-player) + +;; failed to figure out what this is: +(net-process-class-register *net-process-class-info-net-player*) + +;; definition for method 40 of type net-player +(defmethod process-nettable-method-40 ((this net-player)) + *net-process-class-info-net-player* + ) + +;; definition for symbol *net-players*, type (array symbol) +(define *net-players* + (the-as (array symbol) (new 'static 'boxed-array :type net-player :length 0 :allocated-length 24)) + ) + +;; definition for symbol *active-net-player-count*, type int +(define *active-net-player-count* 0) + +;; definition for symbol *active-net-players*, type (array net-player) +(define *active-net-players* (new 'static 'boxed-array :type net-player :length 0 :allocated-length 24)) + +;; definition for symbol *active-net-non-spectator-count*, type int +(define *active-net-non-spectator-count* 0) + +;; definition for symbol *active-net-non-spectators*, type (array net-player) +(define *active-net-non-spectators* + (new 'static 'boxed-array :type net-player :length 0 :allocated-length 24) + ) + +;; definition for symbol *team-colors*, type (pointer uint8) +(define *team-colors* (the-as (pointer uint8) (new 'static 'array rgba 8 + (new 'static 'rgba :r #xff :a #x80) + (new 'static 'rgba :b #xff :a #x80) + (new 'static 'rgba :g #xff :a #x80) + (new 'static 'rgba :g #xde :b #xde :a #x80) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + (new 'static 'rgba :r #x80 :g #x80 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +;; definition for symbol *team-font-colors*, type (pointer font-color) +(define *team-font-colors* + (the-as (pointer font-color) + (new 'static 'array uint8 16 #x3 #x7 #x6 #x49 #x1 #x4 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/net-projectile-h_REF.gc b/test/decompiler/reference/jakx/engine/net/net-projectile-h_REF.gc new file mode 100644 index 0000000000..2fcb1a4955 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/net-projectile-h_REF.gc @@ -0,0 +1,112 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type net-projectile +(deftype net-projectile (projectile) + () + (:methods + (net-projectile-method-72 () none) + (net-projectile-method-73 () none) + (net-projectile-method-74 () none) + ) + ) + +;; definition for method 3 of type net-projectile +(defmethod inspect ((this net-projectile)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type projectile inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition for function net-projectile-init-remote +;; WARN: Return type mismatch int vs none. +(defbehavior net-projectile-init-remote net-projectile ((arg0 process)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self (the-as int arg0)) + (process-nettable-method-36 self) + 0 + (none) + ) + +;; definition for method 41 of type net-projectile +(defmethod process-nettable-method-41 ((this net-projectile) (arg0 int)) + (ppointer->process + (process-spawn net-projectile :init net-projectile-init-remote arg0 :name "net-projectile") + ) + ) + +;; definition for method 37 of type net-projectile +;; WARN: Return type mismatch int vs none. +(defmethod process-nettable-method-37 ((this net-projectile) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'force-position) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'force-retarget) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +;; definition for symbol *msg-map-net-projectile*, type (array symbol) +(define *msg-map-net-projectile* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +;; definition for symbol *net-process-class-info-net-projectile*, type net-process-class-info +(define *net-process-class-info-net-projectile* (new 'static 'net-process-class-info)) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-net-projectile* msg-map) *msg-map-net-projectile*) + +;; failed to figure out what this is: +(write-msg-map-rec net-projectile *net-process-class-info-net-projectile*) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-net-projectile* owner-type) net-projectile) + +;; failed to figure out what this is: +(net-process-class-register *net-process-class-info-net-projectile*) + +;; definition for method 40 of type net-projectile +(defmethod process-nettable-method-40 ((this net-projectile)) + *net-process-class-info-net-projectile* + ) + +;; definition for function spawn-net-projectile +(defun spawn-net-projectile ((arg0 type) (arg1 projectile-init-by-other-params) (arg2 process-tree) (arg3 dead-pool)) + (let ((s5-0 (get-process arg3 arg0 #x4000 1))) + (when s5-0 + (let ((t9-1 (method-of-type process activate))) + (t9-1 s5-0 arg2 "net-projectile" (the-as pointer #x70004000)) + ) + (let ((t9-2 run-function-in-process) + (a0-3 s5-0) + (a1-4 net-projectile-init-by-other) + ) + (- (- (if *net-mgr* + (-> *net-mgr* game-state time) + 0 + ) + (if *net-world* + (-> *net-world* net-state game-start-time) + 0 + ) + ) + (if *net-world* + (-> *net-world* net-state total-pause-time) + 0 + ) + ) + ((the-as (function object object object none) t9-2) a0-3 a1-4 arg1) + ) + (-> s5-0 ppointer) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/net/net-proxy-h_REF.gc b/test/decompiler/reference/jakx/engine/net/net-proxy-h_REF.gc new file mode 100644 index 0000000000..8e4b1f21d4 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/net-proxy-h_REF.gc @@ -0,0 +1,9 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/net-util-h_REF.gc b/test/decompiler/reference/jakx/engine/net/net-util-h_REF.gc new file mode 100644 index 0000000000..8e4b1f21d4 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/net-util-h_REF.gc @@ -0,0 +1,9 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-10-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-10-h_REF.gc new file mode 100644 index 0000000000..361f50e26a --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-10-h_REF.gc @@ -0,0 +1,3575 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type medius-file-download-request +(deftype medius-file-download-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-download-request +(defmethod inspect ((this medius-file-download-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-download-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-download-response +(deftype medius-file-download-response (structure) + ((data uint8 464) + (i-start-byte-index int32) + (i-data-size int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-download-response +(defmethod inspect ((this medius-file-download-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-download-response) + (format #t "~1Tdata[464] @ #x~X~%" (-> this data)) + (format #t "~1Ti-start-byte-index: ~D~%" (-> this i-start-byte-index)) + (format #t "~1Ti-data-size: ~D~%" (-> this i-data-size)) + (format #t "~1Ti-packet-number: ~D~%" (-> this i-packet-number)) + (format #t "~1Ti-xfer-status: ~D~%" (-> this i-xfer-status)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tstatus-code: #x~X : ~S~%") + (a2-6 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-download-stream-request +(deftype medius-file-download-stream-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-download-stream-request +(defmethod inspect ((this medius-file-download-stream-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-download-stream-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-download-stream-response +(deftype medius-file-download-stream-response (structure) + ((data uint8 464) + (i-start-byte-index int32) + (i-data-size int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-download-stream-response +(defmethod inspect ((this medius-file-download-stream-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-download-stream-response) + (format #t "~1Tdata[464] @ #x~X~%" (-> this data)) + (format #t "~1Ti-start-byte-index: ~D~%" (-> this i-start-byte-index)) + (format #t "~1Ti-data-size: ~D~%" (-> this i-data-size)) + (format #t "~1Ti-packet-number: ~D~%" (-> this i-packet-number)) + (format #t "~1Ti-xfer-status: ~D~%" (-> this i-xfer-status)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tstatus-code: #x~X : ~S~%") + (a2-6 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-delete-request +(deftype medius-file-delete-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-delete-request +(defmethod inspect ((this medius-file-delete-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-delete-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-delete-response +(deftype medius-file-delete-response (structure) + ((status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-delete-response +(defmethod inspect ((this medius-file-delete-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-delete-response) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tstatus-code: #x~X : ~S~%") + (a2-1 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-list-request +(deftype medius-file-list-request (structure) + ((filename-begins-with uint8 128) + (filesize-greater-than uint32) + (filesize-less-than uint32) + (owned-by-id uint32) + (newer-than-timestamp uint32) + (starting-entry-number uint32) + (page-size uint32) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-list-request +(defmethod inspect ((this medius-file-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-list-request) + (format #t "~1Tfilename-begins-with[128] @ #x~X~%" (-> this filename-begins-with)) + (format #t "~1Tfilesize-greater-than: ~D~%" (-> this filesize-greater-than)) + (format #t "~1Tfilesize-less-than: ~D~%" (-> this filesize-less-than)) + (format #t "~1Towned-by-id: ~D~%" (-> this owned-by-id)) + (format #t "~1Tnewer-than-timestamp: ~D~%" (-> this newer-than-timestamp)) + (format #t "~1Tstarting-entry-number: ~D~%" (-> this starting-entry-number)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-list-response +(deftype medius-file-list-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-file-list-response +(defmethod inspect ((this medius-file-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-list-response) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-file-update-attributes-request +(deftype medius-file-update-attributes-request (structure) + ((medius-file-info medius-file :inline) + (medius-file-updated-attributes medius-file-attributes :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-update-attributes-request +(defmethod inspect ((this medius-file-update-attributes-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-update-attributes-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format + #t + "~1Tmedius-file-updated-attributes: #~%" + (-> this medius-file-updated-attributes) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-update-attributes-response +(deftype medius-file-update-attributes-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-update-attributes-response +(defmethod inspect ((this medius-file-update-attributes-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-update-attributes-response) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-get-attributes-request +(deftype medius-file-get-attributes-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-get-attributes-request +(defmethod inspect ((this medius-file-get-attributes-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-get-attributes-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-get-attributes-response +(deftype medius-file-get-attributes-response (structure) + ((medius-file-info medius-file :inline) + (medius-file-attributes-response medius-file-attributes :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-get-attributes-response +(defmethod inspect ((this medius-file-get-attributes-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-get-attributes-response) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format + #t + "~1Tmedius-file-attributes-response: #~%" + (-> this medius-file-attributes-response) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-update-meta-data-request +(deftype medius-file-update-meta-data-request (structure) + ((medius-file-info medius-file :inline) + (medius-update-meta-data medius-file-meta-data :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-update-meta-data-request +(defmethod inspect ((this medius-file-update-meta-data-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-update-meta-data-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tmedius-update-meta-data: #~%" (-> this medius-update-meta-data)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-update-meta-data-responset +(deftype medius-file-update-meta-data-responset (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-update-meta-data-responset +(defmethod inspect ((this medius-file-update-meta-data-responset)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-update-meta-data-responset) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-get-meta-data-request +(deftype medius-file-get-meta-data-request (structure) + ((medius-file-info medius-file :inline) + (medius-meta-data-requested-key medius-file-meta-data :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-get-meta-data-request +(defmethod inspect ((this medius-file-get-meta-data-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-get-meta-data-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format + #t + "~1Tmedius-meta-data-requested-key: #~%" + (-> this medius-meta-data-requested-key) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-get-meta-data-response +(deftype medius-file-get-meta-data-response (structure) + ((medius-file-info medius-file :inline) + (medius-meta-data-response medius-file-meta-data :inline) + (status-code medius-status-code) + (message-id uint8 21) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-file-get-meta-data-response +(defmethod inspect ((this medius-file-get-meta-data-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-get-meta-data-response) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format + #t + "~1Tmedius-meta-data-response: #~%" + (-> this medius-meta-data-response) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-file-search-by-meta-data-request +(deftype medius-file-search-by-meta-data-request (structure) + ((medius-meta-data-requested-key medius-file-meta-data :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-search-by-meta-data-request +(defmethod inspect ((this medius-file-search-by-meta-data-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-search-by-meta-data-request) + (format + #t + "~1Tmedius-meta-data-requested-key: #~%" + (-> this medius-meta-data-requested-key) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-search-by-meta-data-response +(deftype medius-file-search-by-meta-data-response (structure) + ((medius-file-info medius-file :inline) + (medius-meta-data-response medius-file-meta-data :inline) + (status-code medius-status-code) + (message-id uint8 21) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-file-search-by-meta-data-response +(defmethod inspect ((this medius-file-search-by-meta-data-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-search-by-meta-data-response) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format + #t + "~1Tmedius-meta-data-response: #~%" + (-> this medius-meta-data-response) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-file-cancel-operation-request +(deftype medius-file-cancel-operation-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-cancel-operation-request +(defmethod inspect ((this medius-file-cancel-operation-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-cancel-operation-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-cancel-operation-response +(deftype medius-file-cancel-operation-response (structure) + ((status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-cancel-operation-response +(defmethod inspect ((this medius-file-cancel-operation-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-cancel-operation-response) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tstatus-code: #x~X : ~S~%") + (a2-1 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-server-authentication-request +(deftype medius-server-authentication-request (structure) + ((message-id uint8 21) + (trust-level int32) + (address-list net-address-list :inline) + ) + ) + +;; definition for method 3 of type medius-server-authentication-request +(defmethod inspect ((this medius-server-authentication-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-server-authentication-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Ttrust-level: #x~X : ~S~%") + (a2-2 (-> this trust-level)) + (v1-2 (-> this trust-level)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 1) + "mgcl-not-trusted" + ) + ((zero? v1-2) + "mgcl-trusted" + ) + ((= v1-2 #xffffff) + "extra-mgcltrust-level-code" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (label cfg-11) + this + ) + +;; definition of type medius-server-authentication-response +(deftype medius-server-authentication-response (structure) + ((message-id uint8 21) + (confirmation int8) + (connect-info net-connection-info :inline) + ) + ) + +;; definition for method 3 of type medius-server-authentication-response +(defmethod inspect ((this medius-server-authentication-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-authentication-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (format #t "~1Tconnect-info: #~%" (-> this connect-info)) + (label cfg-4) + this + ) + +;; definition of type medius-server-set-attributes-request +(deftype medius-server-set-attributes-request (structure) + ((message-id uint8 21) + (attributes int32) + (listen-server-address net-address :inline) + ) + ) + +;; definition for method 3 of type medius-server-set-attributes-request +(defmethod inspect ((this medius-server-set-attributes-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-set-attributes-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tattributes: ~D~%" (-> this attributes)) + (format #t "~1Tlisten-server-address: #~%" (-> this listen-server-address)) + (label cfg-4) + this + ) + +;; definition of type medius-server-set-attributes-response +(deftype medius-server-set-attributes-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + +;; definition for method 3 of type medius-server-set-attributes-response +(defmethod inspect ((this medius-server-set-attributes-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-set-attributes-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (label cfg-4) + this + ) + +;; definition of type medius-server-create-game-on-me-request +(deftype medius-server-create-game-on-me-request (structure) + ((message-id uint8 21) + (game-name uint8 64) + (game-stats uint8 256) + (game-password uint8 32) + (application-id int32) + (max-clients int32) + (min-clients int32) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (game-host-type int32) + (address-list net-address-list :inline) + (world-id int32) + (account-id int32) + ) + ) + +;; definition for method 3 of type medius-server-create-game-on-me-request +(defmethod inspect ((this medius-server-create-game-on-me-request)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-server-create-game-on-me-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tgame-stats[256] @ #x~X~%" (-> this game-stats)) + (format #t "~1Tgame-password[32] @ #x~X~%" (-> this game-password)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-clients: ~D~%" (-> this max-clients)) + (format #t "~1Tmin-clients: ~D~%" (-> this min-clients)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (let ((t9-14 format) + (a0-15 #t) + (a1-14 "~1Tgame-host-type: #x~X : ~S~%") + (a2-14 (-> this game-host-type)) + (v1-2 (-> this game-host-type)) + ) + (t9-14 a0-15 a1-14 a2-14 (cond + ((= v1-2 4) + "mgclgame-host-client-server-aux-udp" + ) + ((= v1-2 #xffffff) + "extra-mgclgame-host" + ) + ((= v1-2 1) + "mgclgame-host-integrated-server" + ) + ((= v1-2 2) + "mgclgame-host-peer-to-peer" + ) + ((= v1-2 3) + "mgclgame-host-lanplay" + ) + ((zero? v1-2) + "mgclgame-host-client-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (format #t "~1Tworld-id: ~D~%" (-> this world-id)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (label cfg-17) + this + ) + +;; definition of type medius-server-create-game-on-me-response +(deftype medius-server-create-game-on-me-response (structure) + ((message-id uint8 21) + (confirmation int8) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-server-create-game-on-me-response +(defmethod inspect ((this medius-server-create-game-on-me-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-create-game-on-me-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-create-game-request +(deftype medius-server-create-game-request (structure) + ((message-id uint8 21) + (application-id int32) + (max-clients int32) + ) + ) + +;; definition for method 3 of type medius-server-create-game-request +(defmethod inspect ((this medius-server-create-game-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-create-game-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-clients: ~D~%" (-> this max-clients)) + (label cfg-4) + this + ) + +;; definition of type medius-server-create-game-response +(deftype medius-server-create-game-response (structure) + ((message-id uint8 21) + (confirmation int8) + (world-id int32) + ) + ) + +;; definition for method 3 of type medius-server-create-game-response +(defmethod inspect ((this medius-server-create-game-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-create-game-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (format #t "~1Tworld-id: ~D~%" (-> this world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-create-game-with-attributes-request +(deftype medius-server-create-game-with-attributes-request (structure) + ((message-id uint8 21) + (application-id int32) + (max-clients int32) + (attributes int32) + (medius-world-uid uint32) + ) + ) + +;; definition for method 3 of type medius-server-create-game-with-attributes-request +(defmethod inspect ((this medius-server-create-game-with-attributes-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-create-game-with-attributes-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-clients: ~D~%" (-> this max-clients)) + (format #t "~1Tattributes: ~D~%" (-> this attributes)) + (format #t "~1Tmedius-world-uid: ~D~%" (-> this medius-world-uid)) + (label cfg-4) + this + ) + +;; definition of type medius-server-create-game-with-attributes-response +(deftype medius-server-create-game-with-attributes-response (structure) + ((message-id uint8 21) + (confirmation int8) + (world-id int32) + ) + ) + +;; definition for method 3 of type medius-server-create-game-with-attributes-response +(defmethod inspect ((this medius-server-create-game-with-attributes-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-create-game-with-attributes-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (format #t "~1Tworld-id: ~D~%" (-> this world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-end-game-on-me-request +(deftype medius-server-end-game-on-me-request (structure) + ((message-id uint8 21) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-server-end-game-on-me-request +(defmethod inspect ((this medius-server-end-game-on-me-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-end-game-on-me-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-end-game-on-me-response +(deftype medius-server-end-game-on-me-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + +;; definition for method 3 of type medius-server-end-game-on-me-response +(defmethod inspect ((this medius-server-end-game-on-me-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-end-game-on-me-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (label cfg-4) + this + ) + +;; definition of type medius-server-end-game-request +(deftype medius-server-end-game-request (structure) + ((message-id uint8 21) + (world-id int32) + (brutal-flag int8) + ) + ) + +;; definition for method 3 of type medius-server-end-game-request +(defmethod inspect ((this medius-server-end-game-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-end-game-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tworld-id: ~D~%" (-> this world-id)) + (format #t "~1Tbrutal-flag: ~D~%" (-> this brutal-flag)) + (label cfg-4) + this + ) + +;; definition of type medius-server-end-game-response +(deftype medius-server-end-game-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + +;; definition for method 3 of type medius-server-end-game-response +(defmethod inspect ((this medius-server-end-game-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-end-game-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (label cfg-4) + this + ) + +;; definition of type medius-server-join-game-request +(deftype medius-server-join-game-request (structure) + ((message-id uint8 21) + (connect-info net-connection-info :inline) + ) + ) + +;; definition for method 3 of type medius-server-join-game-request +(defmethod inspect ((this medius-server-join-game-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-join-game-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconnect-info: #~%" (-> this connect-info)) + (label cfg-4) + this + ) + +;; definition of type medius-server-join-game-response +(deftype medius-server-join-game-response (structure) + ((message-id uint8 21) + (confirmation int8) + (access-key uint8 17) + (pub-key rsa-key :inline) + ) + ) + +;; definition for method 3 of type medius-server-join-game-response +(defmethod inspect ((this medius-server-join-game-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-join-game-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (format #t "~1Taccess-key[17] @ #x~X~%" (-> this access-key)) + (format #t "~1Tpub-key: #~%" (-> this pub-key)) + (label cfg-4) + this + ) + +;; definition of type medius-server-move-game-world-on-me-request +(deftype medius-server-move-game-world-on-me-request (structure) + ((message-id uint8 21) + (current-medius-world-id int32) + (new-game-world-id int32) + (address-list net-address-list :inline) + ) + ) + +;; definition for method 3 of type medius-server-move-game-world-on-me-request +(defmethod inspect ((this medius-server-move-game-world-on-me-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-move-game-world-on-me-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tcurrent-medius-world-id: ~D~%" (-> this current-medius-world-id)) + (format #t "~1Tnew-game-world-id: ~D~%" (-> this new-game-world-id)) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (label cfg-4) + this + ) + +;; definition of type medius-server-move-game-world-on-me-response +(deftype medius-server-move-game-world-on-me-response (structure) + ((message-id uint8 21) + (confirmation int8) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-server-move-game-world-on-me-response +(defmethod inspect ((this medius-server-move-game-world-on-me-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-move-game-world-on-me-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-report-type +(deftype medius-server-report-type (structure) + ((session-key uint8 17) + (max-worlds int16) + (max-players-per-world int16) + (active-world-count int16) + (total-active-players int16) + (alert-level int32) + ) + ) + +;; definition for method 3 of type medius-server-report-type +(defmethod inspect ((this medius-server-report-type)) + (when (not this) + (set! this this) + (goto cfg-15) + ) + (format #t "[~8x] ~A~%" this 'medius-server-report-type) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmax-worlds: ~D~%" (-> this max-worlds)) + (format #t "~1Tmax-players-per-world: ~D~%" (-> this max-players-per-world)) + (format #t "~1Tactive-world-count: ~D~%" (-> this active-world-count)) + (format #t "~1Ttotal-active-players: ~D~%" (-> this total-active-players)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Talert-level: #x~X : ~S~%") + (a2-6 (-> this alert-level)) + (v1-2 (-> this alert-level)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((zero? v1-2) + "mgcl-alert-none" + ) + ((= v1-2 2) + "mgcl-alert-mid" + ) + ((= v1-2 3) + "mgcl-alert-high" + ) + ((= v1-2 #xffffff) + "extra-mgclalert-code" + ) + ((= v1-2 1) + "mgcl-alert-low" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-15) + this + ) + +;; definition of type medius-server-session-begin-request +(deftype medius-server-session-begin-request (structure) + ((message-id uint8 21) + (location-id int32) + (application-id int32) + (server-type int32) + (server-version uint8 16) + (port int32) + ) + ) + +;; definition for method 3 of type medius-server-session-begin-request +(defmethod inspect ((this medius-server-session-begin-request)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-server-session-begin-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tlocation-id: ~D~%" (-> this location-id)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tserver-type: #x~X : ~S~%") + (a2-4 (-> this server-type)) + (v1-2 (-> this server-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 4) + "mgclgame-host-client-server-aux-udp" + ) + ((= v1-2 #xffffff) + "extra-mgclgame-host" + ) + ((= v1-2 1) + "mgclgame-host-integrated-server" + ) + ((= v1-2 2) + "mgclgame-host-peer-to-peer" + ) + ((= v1-2 3) + "mgclgame-host-lanplay" + ) + ((zero? v1-2) + "mgclgame-host-client-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tserver-version[16] @ #x~X~%" (-> this server-version)) + (format #t "~1Tport: ~D~%" (-> this port)) + (label cfg-17) + this + ) + +;; definition of type medius-server-session-begin-response +(deftype medius-server-session-begin-response (structure) + ((message-id uint8 21) + (confirmation int8) + (connect-info net-connection-info :inline) + ) + ) + +;; definition for method 3 of type medius-server-session-begin-response +(defmethod inspect ((this medius-server-session-begin-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-session-begin-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (format #t "~1Tconnect-info: #~%" (-> this connect-info)) + (label cfg-4) + this + ) + +;; definition of type medius-server-session-end-request +(deftype medius-server-session-end-request (structure) + ((message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-server-session-end-request +(defmethod inspect ((this medius-server-session-end-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-session-end-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-session-end-response +(deftype medius-server-session-end-response (structure) + ((message-id uint8 21) + (confirmation int8) + ) + ) + +;; definition for method 3 of type medius-server-session-end-response +(defmethod inspect ((this medius-server-session-end-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-session-end-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (label cfg-4) + this + ) + +;; definition of type medius-server-world-report-on-me +(deftype medius-server-world-report-on-me (structure) + ((message-id uint8 21) + (game-name uint8 64) + (game-stats uint8 256) + (game-password uint8 32) + (application-id int32) + (max-clients int32) + (min-clients int32) + (player-count int32) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (medius-world-id int32) + (world-status int32) + ) + ) + +;; definition for method 3 of type medius-server-world-report-on-me +(defmethod inspect ((this medius-server-world-report-on-me)) + (when (not this) + (set! this this) + (goto cfg-15) + ) + (format #t "[~8x] ~A~%" this 'medius-server-world-report-on-me) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tgame-stats[256] @ #x~X~%" (-> this game-stats)) + (format #t "~1Tgame-password[32] @ #x~X~%" (-> this game-password)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-clients: ~D~%" (-> this max-clients)) + (format #t "~1Tmin-clients: ~D~%" (-> this min-clients)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (let ((t9-16 format) + (a0-17 #t) + (a1-16 "~1Tworld-status: #x~X : ~S~%") + (a2-16 (-> this world-status)) + (v1-2 (-> this world-status)) + ) + (t9-16 a0-17 a1-16 a2-16 (cond + ((zero? v1-2) + "mgcl-world-inactive" + ) + ((= v1-2 #xffffff) + "extra-mgclworld-status-code" + ) + ((= v1-2 3) + "mgcl-world-closed" + ) + ((= v1-2 2) + "mgcl-world-active" + ) + ((= v1-2 1) + "mgcl-world-staging" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-15) + this + ) + +;; definition of type medius-server-world-status-request +(deftype medius-server-world-status-request (structure) + ((message-id uint8 21) + (world-id int32) + ) + ) + +;; definition for method 3 of type medius-server-world-status-request +(defmethod inspect ((this medius-server-world-status-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-world-status-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tworld-id: ~D~%" (-> this world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-world-status-response +(deftype medius-server-world-status-response (structure) + ((message-id uint8 21) + (application-id int32) + (max-clients int32) + (active-clients int32) + (confirmation int8) + ) + ) + +;; definition for method 3 of type medius-server-world-status-response +(defmethod inspect ((this medius-server-world-status-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-world-status-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-clients: ~D~%" (-> this max-clients)) + (format #t "~1Tactive-clients: ~D~%" (-> this active-clients)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (label cfg-4) + this + ) + +;; definition of type medius-server-connect-games-request +(deftype medius-server-connect-games-request (structure) + ((message-id uint8 21) + (server-ip uint8 20) + (server-port int32) + (game-world-id int32) + (spectator-world-id int32) + ) + ) + +;; definition for method 3 of type medius-server-connect-games-request +(defmethod inspect ((this medius-server-connect-games-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-connect-games-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tserver-ip[20] @ #x~X~%" (-> this server-ip)) + (format #t "~1Tserver-port: ~D~%" (-> this server-port)) + (format #t "~1Tgame-world-id: ~D~%" (-> this game-world-id)) + (format #t "~1Tspectator-world-id: ~D~%" (-> this spectator-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-server-connect-games-response +(deftype medius-server-connect-games-response (structure) + ((message-id uint8 21) + (game-world-id int32) + (spectator-world-id int32) + (confirmation int8) + ) + ) + +;; definition for method 3 of type medius-server-connect-games-response +(defmethod inspect ((this medius-server-connect-games-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-server-connect-games-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tgame-world-id: ~D~%" (-> this game-world-id)) + (format #t "~1Tspectator-world-id: ~D~%" (-> this spectator-world-id)) + (format #t "~1Tconfirmation: ~D~%" (-> this confirmation)) + (label cfg-4) + this + ) + +;; definition of type medius-server-connect-notification-type +(deftype medius-server-connect-notification-type (structure) + ((connect-event-type int32) + (medius-world-uid uint32) + (player-session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-server-connect-notification-type +(defmethod inspect ((this medius-server-connect-notification-type)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-server-connect-notification-type) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tconnect-event-type: #x~X : ~S~%") + (a2-1 (-> this connect-event-type)) + (v1-2 (-> this connect-event-type)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "mgcl-event-client-connect" + ) + ((zero? v1-2) + "mgcl-event-client-disconnect" + ) + ((= v1-2 #xffffff) + "mgcl-event-extra" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-uid: ~D~%" (-> this medius-world-uid)) + (format #t "~1Tplayer-session-key[17] @ #x~X~%" (-> this player-session-key)) + (label cfg-11) + this + ) + +;; definition of type mgclconnect-in-params +(deftype mgclconnect-in-params (structure) + ((connection-info net-connection-info :inline) + (pf-connect-callback basic) + ) + ) + +;; definition for method 3 of type mgclconnect-in-params +(defmethod inspect ((this mgclconnect-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'mgclconnect-in-params) + (format #t "~1Tconnection-info: #~%" (-> this connection-info)) + (format #t "~1Tpf-connect-callback: ~A~%" (-> this pf-connect-callback)) + (label cfg-4) + this + ) + +;; definition of type mgclconnect-out-params +(deftype mgclconnect-out-params (structure) + ((error-code int32) + ) + ) + +;; definition for method 3 of type mgclconnect-out-params +(defmethod inspect ((this mgclconnect-out-params)) + (when (not this) + (set! this this) + (goto cfg-47) + ) + (format #t "[~8x] ~A~%" this 'mgclconnect-out-params) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Terror-code: #x~X : ~S~%") + (a2-1 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 -19) + "mgcl-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 -2) + "mgcl-connection-failed" + ) + ((= v1-2 -13) + "mgcl-invalid-arg" + ) + ((= v1-2 -8) + "mgcl-network-error" + ) + ((= v1-2 -17) + "mgcl-dme-error" + ) + ((= v1-2 -5) + "mgcl-send-failed" + ) + ((= v1-2 -18) + "mgcl-call-mgcl-close-before-reinitializing" + ) + ((= v1-2 -9) + "mgcl-authentication-failed" + ) + ((= v1-2 -4) + "mgcl-not-connected" + ) + ((zero? v1-2) + "mgcl-success" + ) + ((= v1-2 -12) + "mgcl-unsuccessful" + ) + ((= v1-2 -14) + "mgcl-natresolve-failed" + ) + ((= v1-2 -10) + "mgcl-sessionbegin-failed" + ) + ((= v1-2 -16) + "mgcl-worldid-inuse" + ) + ((= v1-2 -6) + "mgcl-initialization-failed" + ) + ((= v1-2 -7) + "mgcl-shutdown-error" + ) + ((= v1-2 -11) + "mgcl-sessionend-failed" + ) + ((= v1-2 #xffffff) + "extra-mgclstatus-code" + ) + ((= v1-2 -3) + "mgcl-disconnect-failed" + ) + ((= v1-2 -15) + "mgcl-game-name-exists" + ) + ((= v1-2 -1) + "mgcl-connection-error" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-47) + this + ) + +;; definition of type mgcldisconnect-params +(deftype mgcldisconnect-params (structure) + ((connection-handle basic) + (disconnect-reason int32) + (my-disconnect-callback basic) + ) + ) + +;; definition for method 3 of type mgcldisconnect-params +(defmethod inspect ((this mgcldisconnect-params)) + (when (not this) + (set! this this) + (goto cfg-27) + ) + (format #t "[~8x] ~A~%" this 'mgcldisconnect-params) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tdisconnect-reason: #x~X : ~S~%") + (a2-2 (-> this disconnect-reason)) + (v1-2 (-> this disconnect-reason)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 255) + "max-disconnect-reason" + ) + ((zero? v1-2) + "net-disconnect-none" + ) + ((= v1-2 4) + "net-disconnect-update-fail" + ) + ((= v1-2 6) + "net-disconnect-shutdown" + ) + ((= v1-2 -1) + "extra-net-disconnect-reason" + ) + ((= v1-2 128) + "net-disconnect-app-defined-start" + ) + ((= v1-2 1) + "net-disconnect-normal" + ) + ((= v1-2 5) + "net-disconnect-inactivity" + ) + ((= v1-2 7) + "net-disconnect-message-length-mismatch" + ) + ((= v1-2 3) + "net-disconnect-stream-media-fail" + ) + ((= v1-2 2) + "net-disconnect-connect-fail" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmy-disconnect-callback: ~A~%" (-> this my-disconnect-callback)) + (label cfg-27) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-11-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-11-h_REF.gc new file mode 100644 index 0000000000..8ad07a6321 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-11-h_REF.gc @@ -0,0 +1,814 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type mgclinitialize-in-params +(deftype mgclinitialize-in-params (structure) + ((p-local-key-pair rsa-keypair) + (status int32) + (my-server-create-game-callback basic) + (my-server-create-game-callback-user-data basic) + (my-server-create-game-with-attributes-callback basic) + (my-server-create-game-with-attributes-user-data basic) + (my-server-join-game-callback basic) + (my-server-join-game-callback-user-data basic) + (my-server-end-game-callback basic) + (my-server-end-game-callback-user-data basic) + (my-server-world-status-callback basic) + (my-server-world-status-callback-user-data basic) + (my-server-connect-games-callback basic) + (my-server-connect-games-user-data basic) + (max-clients-per-connection int32) + (application-id int32) + (p-application-key-pair rsa-keypair) + ) + ) + +;; definition for method 3 of type mgclinitialize-in-params +(defmethod inspect ((this mgclinitialize-in-params)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'mgclinitialize-in-params) + (format #t "~1Tp-local-key-pair: #~%" (-> this p-local-key-pair)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus: #x~X : ~S~%") + (a2-2 (-> this status)) + (v1-2 (-> this status)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 #xffffff) + "extra-dmeinit-status" + ) + ((= v1-2 1) + "dmenot-initialized" + ) + ((zero? v1-2) + "dmeinitialized" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmy-server-create-game-callback: ~A~%" (-> this my-server-create-game-callback)) + (format + #t + "~1Tmy-server-create-game-callback-user-data: ~A~%" + (-> this my-server-create-game-callback-user-data) + ) + (format + #t + "~1Tmy-server-create-game-with-attributes-callback: ~A~%" + (-> this my-server-create-game-with-attributes-callback) + ) + (format + #t + "~1Tmy-server-create-game-with-attributes-user-data: ~A~%" + (-> this my-server-create-game-with-attributes-user-data) + ) + (format #t "~1Tmy-server-join-game-callback: ~A~%" (-> this my-server-join-game-callback)) + (format #t "~1Tmy-server-join-game-callback-user-data: ~A~%" (-> this my-server-join-game-callback-user-data)) + (format #t "~1Tmy-server-end-game-callback: ~A~%" (-> this my-server-end-game-callback)) + (format #t "~1Tmy-server-end-game-callback-user-data: ~A~%" (-> this my-server-end-game-callback-user-data)) + (format #t "~1Tmy-server-world-status-callback: ~A~%" (-> this my-server-world-status-callback)) + (format + #t + "~1Tmy-server-world-status-callback-user-data: ~A~%" + (-> this my-server-world-status-callback-user-data) + ) + (format #t "~1Tmy-server-connect-games-callback: ~A~%" (-> this my-server-connect-games-callback)) + (format #t "~1Tmy-server-connect-games-user-data: ~A~%" (-> this my-server-connect-games-user-data)) + (format #t "~1Tmax-clients-per-connection: ~D~%" (-> this max-clients-per-connection)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tp-application-key-pair: #~%" (-> this p-application-key-pair)) + (label cfg-11) + this + ) + +;; definition of type mgclinitialize-out-params +(deftype mgclinitialize-out-params (structure) + ((error-code int32) + ) + ) + +;; definition for method 3 of type mgclinitialize-out-params +(defmethod inspect ((this mgclinitialize-out-params)) + (when (not this) + (set! this this) + (goto cfg-47) + ) + (format #t "[~8x] ~A~%" this 'mgclinitialize-out-params) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Terror-code: #x~X : ~S~%") + (a2-1 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 -19) + "mgcl-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 -2) + "mgcl-connection-failed" + ) + ((= v1-2 -13) + "mgcl-invalid-arg" + ) + ((= v1-2 -8) + "mgcl-network-error" + ) + ((= v1-2 -17) + "mgcl-dme-error" + ) + ((= v1-2 -5) + "mgcl-send-failed" + ) + ((= v1-2 -18) + "mgcl-call-mgcl-close-before-reinitializing" + ) + ((= v1-2 -9) + "mgcl-authentication-failed" + ) + ((= v1-2 -4) + "mgcl-not-connected" + ) + ((zero? v1-2) + "mgcl-success" + ) + ((= v1-2 -12) + "mgcl-unsuccessful" + ) + ((= v1-2 -14) + "mgcl-natresolve-failed" + ) + ((= v1-2 -10) + "mgcl-sessionbegin-failed" + ) + ((= v1-2 -16) + "mgcl-worldid-inuse" + ) + ((= v1-2 -6) + "mgcl-initialization-failed" + ) + ((= v1-2 -7) + "mgcl-shutdown-error" + ) + ((= v1-2 -11) + "mgcl-sessionend-failed" + ) + ((= v1-2 #xffffff) + "extra-mgclstatus-code" + ) + ((= v1-2 -3) + "mgcl-disconnect-failed" + ) + ((= v1-2 -15) + "mgcl-game-name-exists" + ) + ((= v1-2 -1) + "mgcl-connection-error" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-47) + this + ) + +;; definition of type net-lanpeer-desc +(deftype net-lanpeer-desc (structure) + ((dme-version net-dme-version :inline) + (net-platform-id int32) + (application-id int32) + (peer-address net-address :inline) + (localization net-localization-params :inline) + (application-name uint8 72) + (user-name uint8 32) + ) + :pack-me + ) + +;; definition for method 3 of type net-lanpeer-desc +(defmethod inspect ((this net-lanpeer-desc)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'net-lanpeer-desc) + (format #t "~1Tdme-version: #~%" (-> this dme-version)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tnet-platform-id: #x~X : ~S~%") + (a2-2 (-> this net-platform-id)) + (v1-2 (-> this net-platform-id)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 2) + "enum-net-platform-id-psp" + ) + ((= v1-2 #xffffff) + "extra-enum-net-platform-id" + ) + ((zero? v1-2) + "enum-net-platform-id-unknown" + ) + ((= v1-2 1) + "enum-net-platform-id-ps2" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tpeer-address: #~%" (-> this peer-address)) + (format #t "~1Tlocalization: #~%" (-> this localization)) + (format #t "~1Tapplication-name[72] @ #x~X~%" (-> this application-name)) + (format #t "~1Tuser-name[32] @ #x~X~%" (-> this user-name)) + (label cfg-13) + this + ) + +;; definition of type net-initialize-in-params +(deftype net-initialize-in-params (structure) + ((b-default-set int32) + (localization net-localization-params :inline) + (application-id int32) + (application-name uint8 72) + (p-local-key-pair rsa-keypair) + (p-application-key-pair rsa-keypair) + (connectivity-type int32) + (udp-bind-port int32) + (upn-pmemory-ceiling int32) + (b-enable-lanbroadcast-comms int32) + (pf-system-message-callback basic) + (p-system-message-callback-data basic) + ) + ) + +;; definition for method 3 of type net-initialize-in-params +(defmethod inspect ((this net-initialize-in-params)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'net-initialize-in-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (format #t "~1Tlocalization: #~%" (-> this localization)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tapplication-name[72] @ #x~X~%" (-> this application-name)) + (format #t "~1Tp-local-key-pair: #~%" (-> this p-local-key-pair)) + (format #t "~1Tp-application-key-pair: #~%" (-> this p-application-key-pair)) + (let ((t9-7 format) + (a0-8 #t) + (a1-7 "~1Tconnectivity-type: #x~X : ~S~%") + (a2-7 (-> this connectivity-type)) + (v1-2 (-> this connectivity-type)) + ) + (t9-7 a0-8 a1-7 a2-7 (cond + ((= v1-2 -1) + "extra-net-connectivity-type" + ) + ((= v1-2 1) + "net-connectivity-internet" + ) + ((zero? v1-2) + "net-connectivity-none" + ) + ((= v1-2 2) + "net-connectivity-lan" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tudp-bind-port: ~D~%" (-> this udp-bind-port)) + (format #t "~1Tupn-pmemory-ceiling: ~D~%" (-> this upn-pmemory-ceiling)) + (format #t "~1Tb-enable-lanbroadcast-comms: ~D~%" (-> this b-enable-lanbroadcast-comms)) + (format #t "~1Tpf-system-message-callback: ~A~%" (-> this pf-system-message-callback)) + (format #t "~1Tp-system-message-callback-data: ~A~%" (-> this p-system-message-callback-data)) + (label cfg-13) + this + ) + +;; definition of type net-host-peer-to-peer-in-params +(deftype net-host-peer-to-peer-in-params (structure) + ((b-default-set int32) + (pf-local-connect-callback basic) + (p-local-connect-callback-data basic) + (pf-local-disconnect-callback basic) + (p-local-disconnect-callback-data basic) + (pf-remote-client-connect-callback basic) + (p-remote-client-connect-callback-data basic) + (pf-remote-client-disconnect-callback basic) + (p-remote-client-disconnect-callback-data basic) + (pf-system-status-callback basic) + (p-system-status-callback-data basic) + (max-clients uint32) + (stream-media-params net-stream-media-params :inline) + (user-specified int32) + (b-enab-disconnect-fwd int32) + (token-params net-token-params :inline) + (b-use-time-base int32) + (send-buffer-size uint32) + (recv-buffer-size uint32) + ) + ) + +;; definition for method 3 of type net-host-peer-to-peer-in-params +(defmethod inspect ((this net-host-peer-to-peer-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-host-peer-to-peer-in-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (format #t "~1Tpf-local-connect-callback: ~A~%" (-> this pf-local-connect-callback)) + (format #t "~1Tp-local-connect-callback-data: ~A~%" (-> this p-local-connect-callback-data)) + (format #t "~1Tpf-local-disconnect-callback: ~A~%" (-> this pf-local-disconnect-callback)) + (format #t "~1Tp-local-disconnect-callback-data: ~A~%" (-> this p-local-disconnect-callback-data)) + (format #t "~1Tpf-remote-client-connect-callback: ~A~%" (-> this pf-remote-client-connect-callback)) + (format #t "~1Tp-remote-client-connect-callback-data: ~A~%" (-> this p-remote-client-connect-callback-data)) + (format #t "~1Tpf-remote-client-disconnect-callback: ~A~%" (-> this pf-remote-client-disconnect-callback)) + (format + #t + "~1Tp-remote-client-disconnect-callback-data: ~A~%" + (-> this p-remote-client-disconnect-callback-data) + ) + (format #t "~1Tpf-system-status-callback: ~A~%" (-> this pf-system-status-callback)) + (format #t "~1Tp-system-status-callback-data: ~A~%" (-> this p-system-status-callback-data)) + (format #t "~1Tmax-clients: ~D~%" (-> this max-clients)) + (format #t "~1Tstream-media-params: #~%" (-> this stream-media-params)) + (format #t "~1Tuser-specified: ~D~%" (-> this user-specified)) + (format #t "~1Tb-enab-disconnect-fwd: ~D~%" (-> this b-enab-disconnect-fwd)) + (format #t "~1Ttoken-params: #~%" (-> this token-params)) + (format #t "~1Tb-use-time-base: ~D~%" (-> this b-use-time-base)) + (format #t "~1Tsend-buffer-size: ~D~%" (-> this send-buffer-size)) + (format #t "~1Trecv-buffer-size: ~D~%" (-> this recv-buffer-size)) + (label cfg-4) + this + ) + +;; definition of type net-resolve-addr-data +(deftype net-resolve-addr-data (structure) + ((b-is-set int32) + (error-code int32) + (address-list net-address-list :inline) + ) + ) + +;; definition for method 3 of type net-resolve-addr-data +(defmethod inspect ((this net-resolve-addr-data)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-resolve-addr-data) + (format #t "~1Tb-is-set: ~D~%" (-> this b-is-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (label cfg-111) + this + ) + +;; definition of type net-resolve-addr-in-params +(deftype net-resolve-addr-in-params (structure) + ((b-default-set int32) + (pf-resolve-addr-callback basic) + (nat-service-address net-address :inline) + ) + ) + +;; definition for method 3 of type net-resolve-addr-in-params +(defmethod inspect ((this net-resolve-addr-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-resolve-addr-in-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (format #t "~1Tpf-resolve-addr-callback: ~A~%" (-> this pf-resolve-addr-callback)) + (format #t "~1Tnat-service-address: #~%" (-> this nat-service-address)) + (label cfg-4) + this + ) + +;; definition of type net-incoming-client-in-params +(deftype net-incoming-client-in-params (structure) + ((b-default-set int32) + (incoming-address-list net-address-list :inline) + (pub-key rsa-key :inline) + ) + ) + +;; definition for method 3 of type net-incoming-client-in-params +(defmethod inspect ((this net-incoming-client-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-incoming-client-in-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (format #t "~1Tincoming-address-list: #~%" (-> this incoming-address-list)) + (format #t "~1Tpub-key: #~%" (-> this pub-key)) + (label cfg-4) + this + ) + +;; definition of type net-type-broadcast-schedule +(deftype net-type-broadcast-schedule (structure) + ((min-update-interval uint32) + (error-threshold-type int32) + (threshold-data anonymous-0 :inline) + (transport-flags int8) + ) + ) + +;; definition for method 3 of type net-type-broadcast-schedule +(defmethod inspect ((this net-type-broadcast-schedule)) + (when (not this) + (set! this this) + (goto cfg-19) + ) + (format #t "[~8x] ~A~%" this 'net-type-broadcast-schedule) + (format #t "~1Tmin-update-interval: ~D~%" (-> this min-update-interval)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-threshold-type: #x~X : ~S~%") + (a2-2 (-> this error-threshold-type)) + (v1-2 (-> this error-threshold-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 3) + "threshold-ratio-magnitude" + ) + ((= v1-2 #xffffff) + "extra-net-threshold-method" + ) + ((= v1-2 5) + "threshold-callback" + ) + ((= v1-2 1) + "threshold-equality" + ) + ((zero? v1-2) + "no-threshold" + ) + ((= v1-2 4) + "threshold-anchor-delta" + ) + ((= v1-2 2) + "threshold-absolute-magnitude" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tthreshold-data: #~%" (-> this threshold-data)) + (format #t "~1Ttransport-flags: ~D~%" (-> this transport-flags)) + (label cfg-19) + this + ) + +;; definition of type net-type-field +(deftype net-type-field (structure) + ((offset int32) + (element-size int32) + (element-count int32) + (e-type int32) + (update-schedule net-type-broadcast-schedule :inline) + ) + ) + +;; definition for method 3 of type net-type-field +(defmethod inspect ((this net-type-field)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-field) + (format #t "~1Toffset: ~D~%" (-> this offset)) + (format #t "~1Telement-size: ~D~%" (-> this element-size)) + (format #t "~1Telement-count: ~D~%" (-> this element-count)) + (format #t "~1Te-type: ~D~%" (-> this e-type)) + (format #t "~1Tupdate-schedule: #~%" (-> this update-schedule)) + (label cfg-4) + this + ) + +;; definition of type net-type-structure +(deftype net-type-structure (structure) + ((total-size int32) + (field-count int32) + (name uint8 32) + (child-field-type uint32 64) + (child-field-offset uint32 64) + ) + ) + +;; definition for method 3 of type net-type-structure +(defmethod inspect ((this net-type-structure)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-structure) + (format #t "~1Ttotal-size: ~D~%" (-> this total-size)) + (format #t "~1Tfield-count: ~D~%" (-> this field-count)) + (format #t "~1Tname[32] @ #x~X~%" (-> this name)) + (format #t "~1Tchild-field-type[64] @ #x~X~%" (-> this child-field-type)) + (format #t "~1Tchild-field-offset[64] @ #x~X~%" (-> this child-field-offset)) + (label cfg-4) + this + ) + +;; definition of type net-lanfind-exchange-callback-in-args +(deftype net-lanfind-exchange-callback-in-args (structure) + ((connection-handle basic) + (session-type int32) + (peer-desc net-lanpeer-desc :inline) + (details net-data :inline) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-lanfind-exchange-callback-in-args +(defmethod inspect ((this net-lanfind-exchange-callback-in-args)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'net-lanfind-exchange-callback-in-args) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tsession-type: #x~X : ~S~%") + (a2-2 (-> this session-type)) + (v1-2 (-> this session-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 2) + "net-session-type-integrated-server" + ) + ((= v1-2 #xffffff) + "extra-net-session-type" + ) + ((= v1-2 1) + "net-session-type-peer" + ) + ((zero? v1-2) + "net-session-type-game" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tpeer-desc: #~%" (-> this peer-desc)) + (format #t "~1Tdetails: #~%" (-> this details)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-13) + this + ) + +;; definition of type net-lanfind-callback-data-args +(deftype net-lanfind-callback-data-args (structure) + ((n-num-clients int16) + (n-max-num-clients int16) + (session-type int32) + (peer-desc net-lanpeer-desc :inline) + (details net-data :inline) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-lanfind-callback-data-args +(defmethod inspect ((this net-lanfind-callback-data-args)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'net-lanfind-callback-data-args) + (format #t "~1Tn-num-clients: ~D~%" (-> this n-num-clients)) + (format #t "~1Tn-max-num-clients: ~D~%" (-> this n-max-num-clients)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tsession-type: #x~X : ~S~%") + (a2-3 (-> this session-type)) + (v1-2 (-> this session-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 2) + "net-session-type-integrated-server" + ) + ((= v1-2 #xffffff) + "extra-net-session-type" + ) + ((= v1-2 1) + "net-session-type-peer" + ) + ((zero? v1-2) + "net-session-type-game" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tpeer-desc: #~%" (-> this peer-desc)) + (format #t "~1Tdetails: #~%" (-> this details)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-13) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-3-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-3-h_REF.gc new file mode 100644 index 0000000000..657172336e --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-3-h_REF.gc @@ -0,0 +1,3978 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type net-localization-params +(deftype net-localization-params (structure) + ((character-encoding-type int32) + (language-type int32) + ) + :pack-me + ) + +;; definition for method 3 of type net-localization-params +(defmethod inspect ((this net-localization-params)) + (when (not this) + (set! this this) + (goto cfg-46) + ) + (format #t "[~8x] ~A~%" this 'net-localization-params) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tcharacter-encoding-type: #x~X : ~S~%") + (a2-1 (-> this character-encoding-type)) + (v1-2 (-> this character-encoding-type)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 #xffffff) + "extra-net-character-encoding-type" + ) + ((= v1-2 1) + "net-character-encoding-iso8859-1" + ) + ((= v1-2 2) + "net-character-encoding-utf-8" + ) + ((zero? v1-2) + "net-character-encoding-none" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tlanguage-type: #x~X : ~S~%") + (a2-2 (-> this language-type)) + (v1-3 (-> this language-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-3 #xffffff) + "extra-net-language-type" + ) + ((= v1-3 11) + "net-language-chinese" + ) + ((= v1-3 2) + "net-language-ukenglish" + ) + ((= v1-3 10) + "net-language-portuguese" + ) + ((= v1-3 8) + "net-language-french" + ) + ((zero? v1-3) + "net-language-none" + ) + ((= v1-3 5) + "net-language-italian" + ) + ((= v1-3 9) + "net-language-dutch" + ) + ((= v1-3 12) + "net-language-taiwanese" + ) + ((= v1-3 1) + "net-language-usenglish" + ) + ((= v1-3 13) + "net-language-finnish" + ) + ((= v1-3 6) + "net-language-spanish" + ) + ((= v1-3 14) + "net-language-norwegian" + ) + ((= v1-3 3) + "net-language-japanese" + ) + ((= v1-3 4) + "net-language-korean" + ) + ((= v1-3 7) + "net-language-german" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-46) + this + ) + +;; definition of type net-memory-callback-params +(deftype net-memory-callback-params (structure) + ((pf-malloc-callback basic) + (pf-realloc-callback basic) + (pf-free-callback basic) + ) + ) + +;; definition for method 3 of type net-memory-callback-params +(defmethod inspect ((this net-memory-callback-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-memory-callback-params) + (format #t "~1Tpf-malloc-callback: ~A~%" (-> this pf-malloc-callback)) + (format #t "~1Tpf-realloc-callback: ~A~%" (-> this pf-realloc-callback)) + (format #t "~1Tpf-free-callback: ~A~%" (-> this pf-free-callback)) + (label cfg-4) + this + ) + +;; definition of type net-dme-version +(deftype net-dme-version (structure) + ((n-version uint32) + (sz-version int8 16) + ) + :pack-me + ) + +;; definition for method 3 of type net-dme-version +(defmethod inspect ((this net-dme-version)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-dme-version) + (format #t "~1Tn-version: ~D~%" (-> this n-version)) + (format #t "~1Tsz-version[16] @ #x~X~%" (-> this sz-version)) + (label cfg-4) + this + ) + +;; definition of type net-type-system-message-data +(deftype net-type-system-message-data (structure) + ((connection-handle basic) + (severity uint8) + (e-encoding-type int32) + (e-language-type int32) + (b-end-of-message uint8) + (n-message-length uint16) + (p-message uint32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-type-system-message-data +(defmethod inspect ((this net-type-system-message-data)) + (when (not this) + (set! this this) + (goto cfg-46) + ) + (format #t "[~8x] ~A~%" this 'net-type-system-message-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tseverity: ~D~%" (-> this severity)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Te-encoding-type: #x~X : ~S~%") + (a2-3 (-> this e-encoding-type)) + (v1-2 (-> this e-encoding-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 #xffffff) + "extra-net-character-encoding-type" + ) + ((= v1-2 1) + "net-character-encoding-iso8859-1" + ) + ((= v1-2 2) + "net-character-encoding-utf-8" + ) + ((zero? v1-2) + "net-character-encoding-none" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Te-language-type: #x~X : ~S~%") + (a2-4 (-> this e-language-type)) + (v1-3 (-> this e-language-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-3 #xffffff) + "extra-net-language-type" + ) + ((= v1-3 11) + "net-language-chinese" + ) + ((= v1-3 2) + "net-language-ukenglish" + ) + ((= v1-3 10) + "net-language-portuguese" + ) + ((= v1-3 8) + "net-language-french" + ) + ((zero? v1-3) + "net-language-none" + ) + ((= v1-3 5) + "net-language-italian" + ) + ((= v1-3 9) + "net-language-dutch" + ) + ((= v1-3 12) + "net-language-taiwanese" + ) + ((= v1-3 1) + "net-language-usenglish" + ) + ((= v1-3 13) + "net-language-finnish" + ) + ((= v1-3 6) + "net-language-spanish" + ) + ((= v1-3 14) + "net-language-norwegian" + ) + ((= v1-3 3) + "net-language-japanese" + ) + ((= v1-3 4) + "net-language-korean" + ) + ((= v1-3 7) + "net-language-german" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tb-end-of-message: ~D~%" (-> this b-end-of-message)) + (format #t "~1Tn-message-length: ~D~%" (-> this n-message-length)) + (format #t "~1Tp-message: #x~X~%" (-> this p-message)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-46) + this + ) + +;; definition of type net-update-error +(deftype net-update-error (structure) + ((connection-handle basic) + (net-error int32) + ) + :pack-me + ) + +;; definition for method 3 of type net-update-error +(defmethod inspect ((this net-update-error)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-update-error) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tnet-error: #x~X : ~S~%") + (a2-2 (-> this net-error)) + (v1-2 (-> this net-error)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-111) + this + ) + +;; definition of type net-update-conn-errors +(deftype net-update-conn-errors (structure) + ((sizeof-net-update-errors uint32) + (a-errors net-update-error 4 :inline) + (udperror net-error) + ) + ) + +;; definition for method 3 of type net-update-conn-errors +(defmethod inspect ((this net-update-conn-errors)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-update-conn-errors) + (format #t "~1Tsizeof-net-update-errors: ~D~%" (-> this sizeof-net-update-errors)) + (format #t "~1Ta-errors[4] @ #x~X~%" (-> this a-errors)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tudperror: #x~X : ~S~%") + (a2-3 (-> this udperror)) + (v1-2 (-> this udperror)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (net-error net-error-bad-port)) + "net-error-bad-port" + ) + ((= v1-2 (net-error net-error-comm-error)) + "net-error-comm-error" + ) + ((= v1-2 (net-error net-error-stream-media-comm)) + "net-error-stream-media-comm" + ) + ((= v1-2 (net-error net-error-bad-mode)) + "net-error-bad-mode" + ) + ((= v1-2 (net-error net-error-bad-server-version)) + "net-error-bad-server-version" + ) + ((= v1-2 (net-error net-error-bad-index)) + "net-error-bad-index" + ) + ((= v1-2 (net-error net-error-stream-media)) + "net-error-stream-media" + ) + ((= v1-2 (net-error net-error-object-not-shared)) + "net-error-object-not-shared" + ) + ((= v1-2 (net-error net-error-bad-connectivity-type)) + "net-error-bad-connectivity-type" + ) + ((= v1-2 (net-error net-error-msg-too-large)) + "net-error-msg-too-large" + ) + ((= v1-2 (net-error net-error-mutex)) + "net-error-mutex" + ) + ((= v1-2 (net-error net-error-too-many-pending-events)) + "net-error-too-many-pending-events" + ) + ((= v1-2 (net-error net-error-no-free-object)) + "net-error-no-free-object" + ) + ((= v1-2 (net-error net-error-not-implemented)) + "net-error-not-implemented" + ) + ((= v1-2 (net-error net-error-token-not-enabled)) + "net-error-token-not-enabled" + ) + ((= v1-2 (net-error net-error-bad-session-master)) + "net-error-bad-session-master" + ) + ((= v1-2 (net-error net-error-bad-packet-received)) + "net-error-bad-packet-received" + ) + ((= v1-2 (net-error net-error-lookup-error)) + "net-error-lookup-error" + ) + ((= v1-2 (net-error net-error-bad-data-stream-channel)) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 (net-error net-error-sizeof-param-mismatch)) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 (net-error net-error-udperror)) + "net-error-udperror" + ) + ((= v1-2 (net-error net-error-security)) + "net-error-security" + ) + ((= v1-2 (net-error net-error-udpnot-enabled)) + "net-error-udpnot-enabled" + ) + ((= v1-2 (net-error net-error-none)) + "net-error-none" + ) + ((= v1-2 (net-error net-error-send-failed)) + "net-error-send-failed" + ) + ((= v1-2 (net-error net-error-client-not-valid)) + "net-error-client-not-valid" + ) + ((= v1-2 (net-error net-error-hostname-error)) + "net-error-hostname-error" + ) + ((= v1-2 (net-error net-error-set-defaults-not-called)) + "net-error-set-defaults-not-called" + ) + ((= v1-2 (net-error net-error-connection-failed)) + "net-error-connection-failed" + ) + ((= v1-2 (net-error net-error-bad-pointer)) + "net-error-bad-pointer" + ) + ((= v1-2 (net-error net-error-timed-out)) + "net-error-timed-out" + ) + ((= v1-2 (net-error extra-net-error-code)) + "extra-net-error-code" + ) + ((= v1-2 (net-error net-error-unknown)) + "net-error-unknown" + ) + ((= v1-2 (net-error net-error-connection-lost)) + "net-error-connection-lost" + ) + ((= v1-2 (net-error net-error-msg-error)) + "net-error-msg-error" + ) + ((= v1-2 (net-error net-error-open-data-stream-failed)) + "net-error-open-data-stream-failed" + ) + ((= v1-2 (net-error net-error-bad-connection-index)) + "net-error-bad-connection-index" + ) + ((= v1-2 (net-error net-error-client-rejected)) + "net-error-client-rejected" + ) + ((= v1-2 (net-error net-error-not-connected)) + "net-error-not-connected" + ) + ((= v1-2 (net-error net-error-server-error)) + "net-error-server-error" + ) + ((= v1-2 (net-error net-error-invalid-arg)) + "net-error-invalid-arg" + ) + ((= v1-2 (net-error net-error-game-is-full)) + "net-error-game-is-full" + ) + ((= v1-2 (net-error net-error-dme-not-initialized)) + "net-error-dme-not-initialized" + ) + ((= v1-2 (net-error net-error-new-client)) + "net-error-new-client" + ) + ((= v1-2 (net-error net-error-update)) + "net-error-update" + ) + ((= v1-2 (net-error net-error-buffer-error)) + "net-error-buffer-error" + ) + ((= v1-2 (net-error net-error-timebase-error)) + "net-error-timebase-error" + ) + ((= v1-2 (net-error net-error-host-game-failed)) + "net-error-host-game-failed" + ) + ((= v1-2 (net-error net-error-init-failed)) + "net-error-init-failed" + ) + ((= v1-2 (net-error net-error-token-error)) + "net-error-token-error" + ) + ((= v1-2 (net-error net-error-deprecated)) + "net-error-deprecated" + ) + ((= v1-2 (net-error net-error-disconnect-failed)) + "net-error-disconnect-failed" + ) + ((= v1-2 (net-error net-error-memory)) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-111) + this + ) + +;; definition of type net-data +(deftype net-data (structure) + ((n-size int32) + (p-data basic) + ) + :pack-me + ) + +;; definition for method 3 of type net-data +(defmethod inspect ((this net-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-data) + (format #t "~1Tn-size: ~D~%" (-> this n-size)) + (format #t "~1Tp-data: ~A~%" (-> this p-data)) + (label cfg-4) + this + ) + +;; definition of type net-initialize-out-params +(deftype net-initialize-out-params (structure) + ((b-is-set int32) + (error-code int32) + (sz-version int8 16) + ) + ) + +;; definition for method 3 of type net-initialize-out-params +(defmethod inspect ((this net-initialize-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-initialize-out-params) + (format #t "~1Tb-is-set: ~D~%" (-> this b-is-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tsz-version[16] @ #x~X~%" (-> this sz-version)) + (label cfg-111) + this + ) + +;; definition of type net-connect-out-params +(deftype net-connect-out-params (structure) + ((b-is-set int32) + (error-code int32) + (connection-handle basic) + ) + ) + +;; definition for method 3 of type net-connect-out-params +(defmethod inspect ((this net-connect-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-connect-out-params) + (format #t "~1Tb-is-set: ~D~%" (-> this b-is-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (label cfg-111) + this + ) + +;; definition of type net-host-peer-to-peer-out-params +(deftype net-host-peer-to-peer-out-params (structure) + ((b-is-set int32) + (error-code int32) + (connection-handle basic) + ) + ) + +;; definition for method 3 of type net-host-peer-to-peer-out-params +(defmethod inspect ((this net-host-peer-to-peer-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-host-peer-to-peer-out-params) + (format #t "~1Tb-is-set: ~D~%" (-> this b-is-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (label cfg-111) + this + ) + +;; definition of type net-resolve-addr-out-params +(deftype net-resolve-addr-out-params (structure) + ((b-is-set int32) + (error-code int32) + ) + ) + +;; definition for method 3 of type net-resolve-addr-out-params +(defmethod inspect ((this net-resolve-addr-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-resolve-addr-out-params) + (format #t "~1Tb-is-set: ~D~%" (-> this b-is-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-111) + this + ) + +;; definition of type net-incoming-client-out-params +(deftype net-incoming-client-out-params (structure) + ((b-is-set int32) + (error-code int32) + ) + ) + +;; definition for method 3 of type net-incoming-client-out-params +(defmethod inspect ((this net-incoming-client-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-incoming-client-out-params) + (format #t "~1Tb-is-set: ~D~%" (-> this b-is-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-111) + this + ) + +;; definition of type net-client-metric +(deftype net-client-metric (structure) + ((average-rate float) + (max-average-rate float) + ) + :pack-me + ) + +;; definition for method 3 of type net-client-metric +(defmethod inspect ((this net-client-metric)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-client-metric) + (format #t "~1Taverage-rate: ~f~%" (-> this average-rate)) + (format #t "~1Tmax-average-rate: ~f~%" (-> this max-average-rate)) + (label cfg-4) + this + ) + +;; definition of type net-bandwidth-info +(deftype net-bandwidth-info (structure) + ((sends net-client-metric :inline) + (send-bytes net-client-metric :inline) + (recvs net-client-metric :inline) + (recv-bytes net-client-metric :inline) + ) + ) + +;; definition for method 3 of type net-bandwidth-info +(defmethod inspect ((this net-bandwidth-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-bandwidth-info) + (format #t "~1Tsends: #~%" (-> this sends)) + (format #t "~1Tsend-bytes: #~%" (-> this send-bytes)) + (format #t "~1Trecvs: #~%" (-> this recvs)) + (format #t "~1Trecv-bytes: #~%" (-> this recv-bytes)) + (label cfg-4) + this + ) + +;; definition of type net-connection-status +(deftype net-connection-status (structure) + ((my-connect-status int32) + (n-valid-client-count int32) + (n-connected-client-count int32) + ) + ) + +;; definition for method 3 of type net-connection-status +(defmethod inspect ((this net-connection-status)) + (when (not this) + (set! this this) + (goto cfg-21) + ) + (format #t "[~8x] ~A~%" this 'net-connection-status) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tmy-connect-status: #x~X : ~S~%") + (a2-1 (-> this my-connect-status)) + (v1-2 (-> this my-connect-status)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 5) + "connect-status-disconnecting" + ) + ((= v1-2 #xffffff) + "extra-connect-staus" + ) + ((= v1-2 1) + "connect-status-open" + ) + ((zero? v1-2) + "connect-status-closed" + ) + ((= v1-2 3) + "connect-status-failed" + ) + ((= v1-2 4) + "connect-status-need-disconnect" + ) + ((= v1-2 2) + "connect-status-pending" + ) + ((zero? v1-2) + "connect-status-disconnected" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tn-valid-client-count: ~D~%" (-> this n-valid-client-count)) + (format #t "~1Tn-connected-client-count: ~D~%" (-> this n-connected-client-count)) + (label cfg-21) + this + ) + +;; definition of type sz-ipaddress +(deftype sz-ipaddress (structure) + ((data uint8 16) + ) + ) + +;; definition for method 3 of type sz-ipaddress +(defmethod inspect ((this sz-ipaddress)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sz-ipaddress) + (format #t "~1Tdata[16] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition of type net-type-lookup-response +(deftype net-type-lookup-response (structure) + ((asz-ipaddresses sz-ipaddress 16 :inline) + (n-ipaddresses uint32) + (error-code int32) + ) + ) + +;; definition for method 3 of type net-type-lookup-response +(defmethod inspect ((this net-type-lookup-response)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-type-lookup-response) + (format #t "~1Tasz-ipaddresses[16] @ #x~X~%" (-> this asz-ipaddresses)) + (format #t "~1Tn-ipaddresses: ~D~%" (-> this n-ipaddresses)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Terror-code: #x~X : ~S~%") + (a2-3 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-111) + this + ) + +;; definition of type net-type-lookup-params +(deftype net-type-lookup-params (structure) + ((sz-host-name uint8 256) + (sz-server-ip uint8 16) + (pf-lookup-response basic) + ) + ) + +;; definition for method 3 of type net-type-lookup-params +(defmethod inspect ((this net-type-lookup-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-lookup-params) + (format #t "~1Tsz-host-name[256] @ #x~X~%" (-> this sz-host-name)) + (format #t "~1Tsz-server-ip[16] @ #x~X~%" (-> this sz-server-ip)) + (format #t "~1Tpf-lookup-response: ~A~%" (-> this pf-lookup-response)) + (label cfg-4) + this + ) + +;; definition of type rsa-key +(deftype rsa-key (structure) + ((key uint32 16) + ) + :pack-me + ) + +;; definition for method 3 of type rsa-key +(defmethod inspect ((this rsa-key)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rsa-key) + (format #t "~1Tkey[16] @ #x~X~%" (-> this key)) + (label cfg-4) + this + ) + +;; definition of type rsa-keypair +(deftype rsa-keypair (structure) + ((public-key rsa-key :inline) + (private-key rsa-key :inline) + ) + ) + +;; definition for method 3 of type rsa-keypair +(defmethod inspect ((this rsa-keypair)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rsa-keypair) + (format #t "~1Tpublic-key: #~%" (-> this public-key)) + (format #t "~1Tprivate-key: #~%" (-> this private-key)) + (label cfg-4) + this + ) + +;; definition of type net-type-connect-callback-data +(deftype net-type-connect-callback-data (structure) + ((connection-handle basic) + (connect-status int32) + (failure-reason int32) + (error-code int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-type-connect-callback-data +(defmethod inspect ((this net-type-connect-callback-data)) + (when (not this) + (set! this this) + (goto cfg-151) + ) + (format #t "[~8x] ~A~%" this 'net-type-connect-callback-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tconnect-status: #x~X : ~S~%") + (a2-2 (-> this connect-status)) + (v1-2 (-> this connect-status)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 5) + "connect-status-disconnecting" + ) + ((= v1-2 #xffffff) + "extra-connect-staus" + ) + ((= v1-2 1) + "connect-status-open" + ) + ((zero? v1-2) + "connect-status-closed" + ) + ((= v1-2 3) + "connect-status-failed" + ) + ((= v1-2 4) + "connect-status-need-disconnect" + ) + ((= v1-2 2) + "connect-status-pending" + ) + ((zero? v1-2) + "connect-status-disconnected" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tfailure-reason: #x~X : ~S~%") + (a2-3 (-> this failure-reason)) + (v1-3 (-> this failure-reason)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-3 2) + "connect-failure-reason-client-ver" + ) + ((= v1-3 3) + "connect-failure-reason-server-ver" + ) + ((= v1-3 #xffffff) + "extra-connect-failure-reason" + ) + ((= v1-3 6) + "connect-failure-reason-auth" + ) + ((= v1-3 1) + "connect-failure-reason-error" + ) + ((= v1-3 4) + "connect-failure-reason-full" + ) + ((= v1-3 8) + "connect-failure-reason-access-key" + ) + ((= v1-3 5) + "connect-failure-reason-world-id" + ) + ((= v1-3 7) + "connect-failure-reason-encryption" + ) + ((= v1-3 9) + "connect-failure-reason-aux-udpfailure" + ) + ((zero? v1-3) + "connect-failure-reason-none" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Terror-code: #x~X : ~S~%") + (a2-4 (-> this error-code)) + (v1-4 (-> this error-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-4 50) + "net-error-bad-port" + ) + ((= v1-4 35) + "net-error-comm-error" + ) + ((= v1-4 42) + "net-error-stream-media-comm" + ) + ((= v1-4 16) + "net-error-bad-mode" + ) + ((= v1-4 34) + "net-error-bad-server-version" + ) + ((= v1-4 8) + "net-error-bad-index" + ) + ((= v1-4 41) + "net-error-stream-media" + ) + ((= v1-4 11) + "net-error-object-not-shared" + ) + ((= v1-4 51) + "net-error-bad-connectivity-type" + ) + ((= v1-4 31) + "net-error-msg-too-large" + ) + ((= v1-4 43) + "net-error-mutex" + ) + ((= v1-4 25) + "net-error-too-many-pending-events" + ) + ((= v1-4 19) + "net-error-no-free-object" + ) + ((= v1-4 33) + "net-error-not-implemented" + ) + ((= v1-4 48) + "net-error-token-not-enabled" + ) + ((= v1-4 7) + "net-error-bad-session-master" + ) + ((= v1-4 12) + "net-error-bad-packet-received" + ) + ((= v1-4 46) + "net-error-lookup-error" + ) + ((= v1-4 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-4 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-4 37) + "net-error-udperror" + ) + ((= v1-4 32) + "net-error-security" + ) + ((= v1-4 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-4) + "net-error-none" + ) + ((= v1-4 13) + "net-error-send-failed" + ) + ((= v1-4 21) + "net-error-client-not-valid" + ) + ((= v1-4 45) + "net-error-hostname-error" + ) + ((= v1-4 38) + "net-error-set-defaults-not-called" + ) + ((= v1-4 3) + "net-error-connection-failed" + ) + ((= v1-4 10) + "net-error-bad-pointer" + ) + ((= v1-4 14) + "net-error-timed-out" + ) + ((= v1-4 #xffffff) + "extra-net-error-code" + ) + ((= v1-4 30) + "net-error-unknown" + ) + ((= v1-4 2) + "net-error-connection-lost" + ) + ((= v1-4 24) + "net-error-msg-error" + ) + ((= v1-4 20) + "net-error-open-data-stream-failed" + ) + ((= v1-4 15) + "net-error-bad-connection-index" + ) + ((= v1-4 4) + "net-error-client-rejected" + ) + ((= v1-4 1) + "net-error-not-connected" + ) + ((= v1-4 44) + "net-error-server-error" + ) + ((= v1-4 23) + "net-error-invalid-arg" + ) + ((= v1-4 28) + "net-error-game-is-full" + ) + ((= v1-4 17) + "net-error-dme-not-initialized" + ) + ((= v1-4 6) + "net-error-new-client" + ) + ((= v1-4 27) + "net-error-update" + ) + ((= v1-4 36) + "net-error-buffer-error" + ) + ((= v1-4 47) + "net-error-timebase-error" + ) + ((= v1-4 29) + "net-error-host-game-failed" + ) + ((= v1-4 18) + "net-error-init-failed" + ) + ((= v1-4 49) + "net-error-token-error" + ) + ((= v1-4 40) + "net-error-deprecated" + ) + ((= v1-4 5) + "net-error-disconnect-failed" + ) + ((= v1-4 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-151) + this + ) + +;; definition of type net-type-client-connect-callback-data +(deftype net-type-client-connect-callback-data (structure) + ((connection-handle basic) + (client-index int32) + (client-ip-string uint32) + (client-status int32) + (user-specified int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-type-client-connect-callback-data +(defmethod inspect ((this net-type-client-connect-callback-data)) + (when (not this) + (set! this this) + (goto cfg-19) + ) + (format #t "[~8x] ~A~%" this 'net-type-client-connect-callback-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tclient-ip-string: #x~X~%" (-> this client-ip-string)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tclient-status: #x~X : ~S~%") + (a2-4 (-> this client-status)) + (v1-2 (-> this client-status)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 4) + "client-status-joined" + ) + ((= v1-2 3) + "client-status-joining" + ) + ((= v1-2 5) + "client-status-joined-session-master" + ) + ((zero? v1-2) + "client-status-none" + ) + ((= v1-2 1) + "client-status-not-connected" + ) + ((= v1-2 #xffffff) + "extra-net-client-status" + ) + ((= v1-2 2) + "client-status-connected" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tuser-specified: ~D~%" (-> this user-specified)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-19) + this + ) + +;; definition of type net-peer-to-peer-host-change-data +(deftype net-peer-to-peer-host-change-data (structure) + ((connection-handle basic) + (host-client-index int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-peer-to-peer-host-change-data +(defmethod inspect ((this net-peer-to-peer-host-change-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-peer-to-peer-host-change-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Thost-client-index: ~D~%" (-> this host-client-index)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-token-ownership-notify-data +(deftype net-token-ownership-notify-data (structure) + ((connection-handle basic) + (token-id int32) + (owner-client-index int32) + (error-code int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-token-ownership-notify-data +(defmethod inspect ((this net-token-ownership-notify-data)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-token-ownership-notify-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Ttoken-id: ~D~%" (-> this token-id)) + (format #t "~1Towner-client-index: ~D~%" (-> this owner-client-index)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Terror-code: #x~X : ~S~%") + (a2-4 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-111) + this + ) + +;; definition of type net-token-params +(deftype net-token-params (structure) + ((pf-token-ownership-notify-callback basic) + (p-token-ownership-notify-callback-data basic) + (b-use-token int32) + ) + :pack-me + ) + +;; definition for method 3 of type net-token-params +(defmethod inspect ((this net-token-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-token-params) + (format #t "~1Tpf-token-ownership-notify-callback: ~A~%" (-> this pf-token-ownership-notify-callback)) + (format #t "~1Tp-token-ownership-notify-callback-data: ~A~%" (-> this p-token-ownership-notify-callback-data)) + (format #t "~1Tb-use-token: ~D~%" (-> this b-use-token)) + (label cfg-4) + this + ) + +;; definition of type net-system-status-data +(deftype net-system-status-data (structure) + ((connection-handle basic) + (status int32) + (error-code int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-system-status-data +(defmethod inspect ((this net-system-status-data)) + (when (not this) + (set! this this) + (goto cfg-116) + ) + (format #t "[~8x] ~A~%" this 'net-system-status-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus: #x~X : ~S~%") + (a2-2 (-> this status)) + (v1-2 (-> this status)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 -1) + "extra-net-system-status" + ) + ((= v1-2 1) + "net-system-token-ready" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Terror-code: #x~X : ~S~%") + (a2-3 (-> this error-code)) + (v1-3 (-> this error-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-3 50) + "net-error-bad-port" + ) + ((= v1-3 35) + "net-error-comm-error" + ) + ((= v1-3 42) + "net-error-stream-media-comm" + ) + ((= v1-3 16) + "net-error-bad-mode" + ) + ((= v1-3 34) + "net-error-bad-server-version" + ) + ((= v1-3 8) + "net-error-bad-index" + ) + ((= v1-3 41) + "net-error-stream-media" + ) + ((= v1-3 11) + "net-error-object-not-shared" + ) + ((= v1-3 51) + "net-error-bad-connectivity-type" + ) + ((= v1-3 31) + "net-error-msg-too-large" + ) + ((= v1-3 43) + "net-error-mutex" + ) + ((= v1-3 25) + "net-error-too-many-pending-events" + ) + ((= v1-3 19) + "net-error-no-free-object" + ) + ((= v1-3 33) + "net-error-not-implemented" + ) + ((= v1-3 48) + "net-error-token-not-enabled" + ) + ((= v1-3 7) + "net-error-bad-session-master" + ) + ((= v1-3 12) + "net-error-bad-packet-received" + ) + ((= v1-3 46) + "net-error-lookup-error" + ) + ((= v1-3 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-3 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-3 37) + "net-error-udperror" + ) + ((= v1-3 32) + "net-error-security" + ) + ((= v1-3 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-3) + "net-error-none" + ) + ((= v1-3 13) + "net-error-send-failed" + ) + ((= v1-3 21) + "net-error-client-not-valid" + ) + ((= v1-3 45) + "net-error-hostname-error" + ) + ((= v1-3 38) + "net-error-set-defaults-not-called" + ) + ((= v1-3 3) + "net-error-connection-failed" + ) + ((= v1-3 10) + "net-error-bad-pointer" + ) + ((= v1-3 14) + "net-error-timed-out" + ) + ((= v1-3 #xffffff) + "extra-net-error-code" + ) + ((= v1-3 30) + "net-error-unknown" + ) + ((= v1-3 2) + "net-error-connection-lost" + ) + ((= v1-3 24) + "net-error-msg-error" + ) + ((= v1-3 20) + "net-error-open-data-stream-failed" + ) + ((= v1-3 15) + "net-error-bad-connection-index" + ) + ((= v1-3 4) + "net-error-client-rejected" + ) + ((= v1-3 1) + "net-error-not-connected" + ) + ((= v1-3 44) + "net-error-server-error" + ) + ((= v1-3 23) + "net-error-invalid-arg" + ) + ((= v1-3 28) + "net-error-game-is-full" + ) + ((= v1-3 17) + "net-error-dme-not-initialized" + ) + ((= v1-3 6) + "net-error-new-client" + ) + ((= v1-3 27) + "net-error-update" + ) + ((= v1-3 36) + "net-error-buffer-error" + ) + ((= v1-3 47) + "net-error-timebase-error" + ) + ((= v1-3 29) + "net-error-host-game-failed" + ) + ((= v1-3 18) + "net-error-init-failed" + ) + ((= v1-3 49) + "net-error-token-error" + ) + ((= v1-3 40) + "net-error-deprecated" + ) + ((= v1-3 5) + "net-error-disconnect-failed" + ) + ((= v1-3 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-116) + this + ) + +;; definition of type net-stream-media-audio-record-data +(deftype net-stream-media-audio-record-data (structure) + ((audio-type int32) + (p-buffer uint32) + (buf-size uint32) + (bytes-stored uint32) + (transport-flags int8) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-stream-media-audio-record-data +(defmethod inspect ((this net-stream-media-audio-record-data)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-audio-record-data) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Taudio-type: #x~X : ~S~%") + (a2-1 (-> this audio-type)) + (v1-2 (-> this audio-type)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "net-stream-media-audio-type-custom" + ) + ((= v1-2 2) + "net-stream-media-audio-type-gsm" + ) + ((zero? v1-2) + "net-stream-media-audio-type-raw" + ) + ((= v1-2 4) + "net-stream-media-audio-type-lpc10" + ) + ((= v1-2 #xffffff) + "extra-net-stream-media-audio-type" + ) + ((= v1-2 3) + "net-stream-media-audio-type-lpc" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-buffer: #x~X~%" (-> this p-buffer)) + (format #t "~1Tbuf-size: ~D~%" (-> this buf-size)) + (format #t "~1Tbytes-stored: ~D~%" (-> this bytes-stored)) + (format #t "~1Ttransport-flags: ~D~%" (-> this transport-flags)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-17) + this + ) + +;; definition of type net-stream-media-audio-play-data +(deftype net-stream-media-audio-play-data (structure) + ((audio-type int32) + (client-index int32) + (p-buffer uint32) + (buf-size uint32) + (bytes-read uint32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-stream-media-audio-play-data +(defmethod inspect ((this net-stream-media-audio-play-data)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-audio-play-data) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Taudio-type: #x~X : ~S~%") + (a2-1 (-> this audio-type)) + (v1-2 (-> this audio-type)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "net-stream-media-audio-type-custom" + ) + ((= v1-2 2) + "net-stream-media-audio-type-gsm" + ) + ((zero? v1-2) + "net-stream-media-audio-type-raw" + ) + ((= v1-2 4) + "net-stream-media-audio-type-lpc10" + ) + ((= v1-2 #xffffff) + "extra-net-stream-media-audio-type" + ) + ((= v1-2 3) + "net-stream-media-audio-type-lpc" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tp-buffer: #x~X~%" (-> this p-buffer)) + (format #t "~1Tbuf-size: ~D~%" (-> this buf-size)) + (format #t "~1Tbytes-read: ~D~%" (-> this bytes-read)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-17) + this + ) + +;; definition of type net-audio-data-characteristics +(deftype net-audio-data-characteristics (structure) + ((n-channels-in int32) + (n-bits-per-sample-in int32) + (n-sample-rate-in int32) + (n-channels-out int32) + (n-bits-per-sample-out int32) + (n-sample-rate-out int32) + ) + :pack-me + ) + +;; definition for method 3 of type net-audio-data-characteristics +(defmethod inspect ((this net-audio-data-characteristics)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-audio-data-characteristics) + (format #t "~1Tn-channels-in: ~D~%" (-> this n-channels-in)) + (format #t "~1Tn-bits-per-sample-in: ~D~%" (-> this n-bits-per-sample-in)) + (format #t "~1Tn-sample-rate-in: ~D~%" (-> this n-sample-rate-in)) + (format #t "~1Tn-channels-out: ~D~%" (-> this n-channels-out)) + (format #t "~1Tn-bits-per-sample-out: ~D~%" (-> this n-bits-per-sample-out)) + (format #t "~1Tn-sample-rate-out: ~D~%" (-> this n-sample-rate-out)) + (label cfg-4) + this + ) + +;; definition of type net-color-array +(deftype net-color-array (structure) + ((cb-size int32) + (line-size int32) + (xsize int32) + (ysize int32) + (data uint8 16) + ) + ) + +;; definition for method 3 of type net-color-array +(defmethod inspect ((this net-color-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-color-array) + (format #t "~1Tcb-size: ~D~%" (-> this cb-size)) + (format #t "~1Tline-size: ~D~%" (-> this line-size)) + (format #t "~1Txsize: ~D~%" (-> this xsize)) + (format #t "~1Tysize: ~D~%" (-> this ysize)) + (format #t "~1Tdata[16] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-video-record-data +(deftype net-stream-media-video-record-data (structure) + ((p-y net-color-array) + (p-cr net-color-array) + (p-cb net-color-array) + (b-data-stored int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-stream-media-video-record-data +(defmethod inspect ((this net-stream-media-video-record-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-video-record-data) + (format #t "~1Tp-y: #~%" (-> this p-y)) + (format #t "~1Tp-cr: #~%" (-> this p-cr)) + (format #t "~1Tp-cb: #~%" (-> this p-cb)) + (format #t "~1Tb-data-stored: ~D~%" (-> this b-data-stored)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-rgbarray +(deftype net-rgbarray (structure) + ((cb-size int32) + (line-size int32) + (xsize int32) + (ysize int32) + (data uint32 16) + ) + ) + +;; definition for method 3 of type net-rgbarray +(defmethod inspect ((this net-rgbarray)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-rgbarray) + (format #t "~1Tcb-size: ~D~%" (-> this cb-size)) + (format #t "~1Tline-size: ~D~%" (-> this line-size)) + (format #t "~1Txsize: ~D~%" (-> this xsize)) + (format #t "~1Tysize: ~D~%" (-> this ysize)) + (format #t "~1Tdata[16] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-video-play-data +(deftype net-stream-media-video-play-data (structure) + ((client-index int32) + (p-rgbarray net-rgbarray) + (b-data-processed int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-stream-media-video-play-data +(defmethod inspect ((this net-stream-media-video-play-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-video-play-data) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tp-rgbarray: #~%" (-> this p-rgbarray)) + (format #t "~1Tb-data-processed: ~D~%" (-> this b-data-processed)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-video-data-characteristics +(deftype net-video-data-characteristics (structure) + ((xsize int32) + (ysize int32) + ) + :pack-me + ) + +;; definition for method 3 of type net-video-data-characteristics +(defmethod inspect ((this net-video-data-characteristics)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-video-data-characteristics) + (format #t "~1Txsize: ~D~%" (-> this xsize)) + (format #t "~1Tysize: ~D~%" (-> this ysize)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-custom-video-record-data +(deftype net-stream-media-custom-video-record-data (structure) + ((p-buffer uint32) + (n-buffer-size uint32) + (n-bytes-stored uint32) + (transport-flags int8) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-stream-media-custom-video-record-data +(defmethod inspect ((this net-stream-media-custom-video-record-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-custom-video-record-data) + (format #t "~1Tp-buffer: #x~X~%" (-> this p-buffer)) + (format #t "~1Tn-buffer-size: ~D~%" (-> this n-buffer-size)) + (format #t "~1Tn-bytes-stored: ~D~%" (-> this n-bytes-stored)) + (format #t "~1Ttransport-flags: ~D~%" (-> this transport-flags)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-custom-video-play-data +(deftype net-stream-media-custom-video-play-data (structure) + ((client-index int32) + (p-buffer uint32) + (n-bytes-available uint32) + (n-bytes-processed uint32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-stream-media-custom-video-play-data +(defmethod inspect ((this net-stream-media-custom-video-play-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-custom-video-play-data) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tp-buffer: #x~X~%" (-> this p-buffer)) + (format #t "~1Tn-bytes-available: ~D~%" (-> this n-bytes-available)) + (format #t "~1Tn-bytes-processed: ~D~%" (-> this n-bytes-processed)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-params +(deftype net-stream-media-params (structure) + ((b-default-set int32) + (b-use-stream-media int32) + (num-channels uint32) + (max-incoming-audio-streams uint32) + (record-no-data-timeout uint32) + (send-buffer-size uint32) + (recv-buffer-size uint32) + (grid-type int32) + (audio-data-characteristics net-audio-data-characteristics :inline) + (pf-audio-record-callback basic) + (p-audio-record-callback-data basic) + (pf-audio-play-callback basic) + (p-audio-play-callback-data basic) + (video-data-characteristics net-video-data-characteristics :inline) + (pf-video-record-callback basic) + (p-video-record-callback-data basic) + (pf-video-play-callback basic) + (p-video-play-callback-data basic) + (pf-custom-video-record-callback basic) + (p-custom-video-record-callback-data basic) + (pf-custom-video-play-callback basic) + (p-custom-video-play-callback-data basic) + ) + :pack-me + ) + +;; definition for method 3 of type net-stream-media-params +(defmethod inspect ((this net-stream-media-params)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (format #t "~1Tb-use-stream-media: ~D~%" (-> this b-use-stream-media)) + (format #t "~1Tnum-channels: ~D~%" (-> this num-channels)) + (format #t "~1Tmax-incoming-audio-streams: ~D~%" (-> this max-incoming-audio-streams)) + (format #t "~1Trecord-no-data-timeout: ~D~%" (-> this record-no-data-timeout)) + (format #t "~1Tsend-buffer-size: ~D~%" (-> this send-buffer-size)) + (format #t "~1Trecv-buffer-size: ~D~%" (-> this recv-buffer-size)) + (let ((t9-8 format) + (a0-9 #t) + (a1-8 "~1Tgrid-type: #x~X : ~S~%") + (a2-8 (-> this grid-type)) + (v1-2 (-> this grid-type)) + ) + (t9-8 a0-9 a1-8 a2-8 (cond + ((= v1-2 #xffffff) + "extra-net-stream-media-grid-type" + ) + ((zero? v1-2) + "net-stream-media-grid-type-relay" + ) + ((= v1-2 1) + "net-stream-media-grid-type-direct" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format + #t + "~1Taudio-data-characteristics: #~%" + (-> this audio-data-characteristics) + ) + (format #t "~1Tpf-audio-record-callback: ~A~%" (-> this pf-audio-record-callback)) + (format #t "~1Tp-audio-record-callback-data: ~A~%" (-> this p-audio-record-callback-data)) + (format #t "~1Tpf-audio-play-callback: ~A~%" (-> this pf-audio-play-callback)) + (format #t "~1Tp-audio-play-callback-data: ~A~%" (-> this p-audio-play-callback-data)) + (format + #t + "~1Tvideo-data-characteristics: #~%" + (-> this video-data-characteristics) + ) + (format #t "~1Tpf-video-record-callback: ~A~%" (-> this pf-video-record-callback)) + (format #t "~1Tp-video-record-callback-data: ~A~%" (-> this p-video-record-callback-data)) + (format #t "~1Tpf-video-play-callback: ~A~%" (-> this pf-video-play-callback)) + (format #t "~1Tp-video-play-callback-data: ~A~%" (-> this p-video-play-callback-data)) + (format #t "~1Tpf-custom-video-record-callback: ~A~%" (-> this pf-custom-video-record-callback)) + (format #t "~1Tp-custom-video-record-callback-data: ~A~%" (-> this p-custom-video-record-callback-data)) + (format #t "~1Tpf-custom-video-play-callback: ~A~%" (-> this pf-custom-video-play-callback)) + (format #t "~1Tp-custom-video-play-callback-data: ~A~%" (-> this p-custom-video-play-callback-data)) + (label cfg-11) + this + ) + +;; definition of type net-address +(deftype net-address (structure) + ((address-type int32) + (address int8 16) + (port uint32) + ) + :pack-me + ) + +;; definition for method 3 of type net-address +(defmethod inspect ((this net-address)) + (when (not this) + (set! this this) + (goto cfg-25) + ) + (format #t "[~8x] ~A~%" this 'net-address) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Taddress-type: #x~X : ~S~%") + (a2-1 (-> this address-type)) + (v1-2 (-> this address-type)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "net-address-type-external" + ) + ((= v1-2 4) + "net-address-type-binary-external" + ) + ((= v1-2 7) + "net-address-type-binary-internal-vport" + ) + ((= v1-2 2) + "net-address-type-internal" + ) + ((= v1-2 6) + "net-address-type-binary-external-vport" + ) + ((= v1-2 8) + "net-address-type-binary-natservices" + ) + ((= v1-2 3) + "net-address-type-natservice" + ) + ((= v1-2 -1) + "extra-net-address-type" + ) + ((zero? v1-2) + "net-address-none" + ) + ((= v1-2 5) + "net-address-type-binary-internal" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taddress[16] @ #x~X~%" (-> this address)) + (format #t "~1Tport: ~D~%" (-> this port)) + (label cfg-25) + this + ) + +;; definition of type net-address-list +(deftype net-address-list (structure) + ((a-address-list net-address 2 :inline) + ) + :pack-me + ) + +;; definition for method 3 of type net-address-list +(defmethod inspect ((this net-address-list)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-address-list) + (format #t "~1Ta-address-list[2] @ #x~X~%" (-> this a-address-list)) + (label cfg-4) + this + ) + +;; definition of type net-connection-info +(deftype net-connection-info (structure) + ((e-type int32) + (address-list net-address-list :inline) + (world-id int32) + (server-key rsa-key :inline) + (a-session-key uint8 17) + (a-access-key uint8 17) + ) + :pack-me + ) + +;; definition for method 3 of type net-connection-info +(defmethod inspect ((this net-connection-info)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'net-connection-info) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Te-type: #x~X : ~S~%") + (a2-1 (-> this e-type)) + (v1-2 (-> this e-type)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 #xffffff) + "extra-net-connection-type" + ) + ((zero? v1-2) + "net-connection-none" + ) + ((= v1-2 2) + "net-connection-type-peer-to-peer-udp" + ) + ((= v1-2 3) + "net-connection-type-client-server-tcpaux-udp" + ) + ((= v1-2 1) + "net-connection-type-client-server-tcp" + ) + ((= v1-2 4) + "net-connection-type-client-listener-tcp" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (format #t "~1Tworld-id: ~D~%" (-> this world-id)) + (format #t "~1Tserver-key: #~%" (-> this server-key)) + (format #t "~1Ta-session-key[17] @ #x~X~%" (-> this a-session-key)) + (format #t "~1Ta-access-key[17] @ #x~X~%" (-> this a-access-key)) + (label cfg-17) + this + ) + +;; definition of type net-connect-in-params +(deftype net-connect-in-params (structure) + ((b-default-set int32) + (max-clients int32) + (connection-info net-connection-info :inline) + (pf-local-connect-callback basic) + (p-local-connect-callback-data basic) + (pf-local-disconnect-callback basic) + (p-local-disconnect-callback-data basic) + (pf-remote-client-connect-callback basic) + (p-remote-client-connect-callback-data basic) + (pf-remote-client-disconnect-callback basic) + (p-remote-client-disconnect-callback-data basic) + (pf-peer-to-peer-host-change-callback basic) + (p-host-change-callback-data basic) + (pf-system-status-callback basic) + (p-system-status-callback-data basic) + (stream-media-params net-stream-media-params :inline) + (user-specified int32) + (aux-udpbind-port int32) + (token-params net-token-params :inline) + (b-use-time-base int32) + (send-buffer-size uint32) + (recv-buffer-size uint32) + ) + ) + +;; definition for method 3 of type net-connect-in-params +(defmethod inspect ((this net-connect-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-connect-in-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (format #t "~1Tmax-clients: ~D~%" (-> this max-clients)) + (format #t "~1Tconnection-info: #~%" (-> this connection-info)) + (format #t "~1Tpf-local-connect-callback: ~A~%" (-> this pf-local-connect-callback)) + (format #t "~1Tp-local-connect-callback-data: ~A~%" (-> this p-local-connect-callback-data)) + (format #t "~1Tpf-local-disconnect-callback: ~A~%" (-> this pf-local-disconnect-callback)) + (format #t "~1Tp-local-disconnect-callback-data: ~A~%" (-> this p-local-disconnect-callback-data)) + (format #t "~1Tpf-remote-client-connect-callback: ~A~%" (-> this pf-remote-client-connect-callback)) + (format #t "~1Tp-remote-client-connect-callback-data: ~A~%" (-> this p-remote-client-connect-callback-data)) + (format #t "~1Tpf-remote-client-disconnect-callback: ~A~%" (-> this pf-remote-client-disconnect-callback)) + (format + #t + "~1Tp-remote-client-disconnect-callback-data: ~A~%" + (-> this p-remote-client-disconnect-callback-data) + ) + (format #t "~1Tpf-peer-to-peer-host-change-callback: ~A~%" (-> this pf-peer-to-peer-host-change-callback)) + (format #t "~1Tp-host-change-callback-data: ~A~%" (-> this p-host-change-callback-data)) + (format #t "~1Tpf-system-status-callback: ~A~%" (-> this pf-system-status-callback)) + (format #t "~1Tp-system-status-callback-data: ~A~%" (-> this p-system-status-callback-data)) + (format #t "~1Tstream-media-params: #~%" (-> this stream-media-params)) + (format #t "~1Tuser-specified: ~D~%" (-> this user-specified)) + (format #t "~1Taux-udpbind-port: ~D~%" (-> this aux-udpbind-port)) + (format #t "~1Ttoken-params: #~%" (-> this token-params)) + (format #t "~1Tb-use-time-base: ~D~%" (-> this b-use-time-base)) + (format #t "~1Tsend-buffer-size: ~D~%" (-> this send-buffer-size)) + (format #t "~1Trecv-buffer-size: ~D~%" (-> this recv-buffer-size)) + (label cfg-4) + this + ) + +;; definition of type net-bit-mask +(deftype net-bit-mask (structure) + ((bitmask uint32 8) + (base-id int32) + (max-id int32) + ) + :pack-me + ) + +;; definition for method 3 of type net-bit-mask +(defmethod inspect ((this net-bit-mask)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-bit-mask) + (format #t "~1Tbitmask[8] @ #x~X~%" (-> this bitmask)) + (format #t "~1Tbase-id: ~D~%" (-> this base-id)) + (format #t "~1Tmax-id: ~D~%" (-> this max-id)) + (label cfg-4) + this + ) + +;; definition of type net-client-list +(deftype net-client-list (structure) + ((target-client int32) + (client-mask net-bit-mask :inline) + ) + :pack-me + ) + +;; definition for method 3 of type net-client-list +(defmethod inspect ((this net-client-list)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-client-list) + (format #t "~1Ttarget-client: ~D~%" (-> this target-client)) + (format #t "~1Tclient-mask: #~%" (-> this client-mask)) + (label cfg-4) + this + ) + +;; definition of type net-send-message-in-params +(deftype net-send-message-in-params (structure) + ((connection-handle basic) + (transport-flags int8) + (message-type int32) + (dest-client net-client-list :inline) + (message-length int32) + (message-data uint32) + ) + ) + +;; definition for method 3 of type net-send-message-in-params +(defmethod inspect ((this net-send-message-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-send-message-in-params) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Ttransport-flags: ~D~%" (-> this transport-flags)) + (format #t "~1Tmessage-type: ~D~%" (-> this message-type)) + (format #t "~1Tdest-client: #~%" (-> this dest-client)) + (format #t "~1Tmessage-length: ~D~%" (-> this message-length)) + (format #t "~1Tmessage-data: #x~X~%" (-> this message-data)) + (label cfg-4) + this + ) + +;; definition of type net-send-message-out-params +(deftype net-send-message-out-params (structure) + ((error-code int32) + (queued-client net-client-list :inline) + ) + ) + +;; definition for method 3 of type net-send-message-out-params +(defmethod inspect ((this net-send-message-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-send-message-out-params) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Terror-code: #x~X : ~S~%") + (a2-1 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tqueued-client: #~%" (-> this queued-client)) + (label cfg-111) + this + ) + +;; definition of type net-disconnect-params +(deftype net-disconnect-params (structure) + ((connection-handle basic) + (reason int32) + (pf-local-disconnect-callback basic) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-disconnect-params +(defmethod inspect ((this net-disconnect-params)) + (when (not this) + (set! this this) + (goto cfg-27) + ) + (format #t "[~8x] ~A~%" this 'net-disconnect-params) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Treason: #x~X : ~S~%") + (a2-2 (-> this reason)) + (v1-2 (-> this reason)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 255) + "max-disconnect-reason" + ) + ((zero? v1-2) + "net-disconnect-none" + ) + ((= v1-2 4) + "net-disconnect-update-fail" + ) + ((= v1-2 6) + "net-disconnect-shutdown" + ) + ((= v1-2 -1) + "extra-net-disconnect-reason" + ) + ((= v1-2 128) + "net-disconnect-app-defined-start" + ) + ((= v1-2 1) + "net-disconnect-normal" + ) + ((= v1-2 5) + "net-disconnect-inactivity" + ) + ((= v1-2 7) + "net-disconnect-message-length-mismatch" + ) + ((= v1-2 3) + "net-disconnect-stream-media-fail" + ) + ((= v1-2 2) + "net-disconnect-connect-fail" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tpf-local-disconnect-callback: ~A~%" (-> this pf-local-disconnect-callback)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-27) + this + ) + +;; definition of type net-latency-metrics-info +(deftype net-latency-metrics-info (structure) + ((latency-min uint32) + (latency-max uint32) + (latency-avg uint32) + ) + :pack-me + ) + +;; definition for method 3 of type net-latency-metrics-info +(defmethod inspect ((this net-latency-metrics-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-latency-metrics-info) + (format #t "~1Tlatency-min: ~D~%" (-> this latency-min)) + (format #t "~1Tlatency-max: ~D~%" (-> this latency-max)) + (format #t "~1Tlatency-avg: ~D~%" (-> this latency-avg)) + (label cfg-4) + this + ) + +;; definition of type net-latency-metrics-data-args +(deftype net-latency-metrics-data-args (structure) + ((connection-handle basic) + (target-client-index int32) + (latency-metrics-info net-latency-metrics-info :inline) + (error-code int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-latency-metrics-data-args +(defmethod inspect ((this net-latency-metrics-data-args)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-latency-metrics-data-args) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Ttarget-client-index: ~D~%" (-> this target-client-index)) + (format #t "~1Tlatency-metrics-info: #~%" (-> this latency-metrics-info)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Terror-code: #x~X : ~S~%") + (a2-4 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-111) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-4-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-4-h_REF.gc new file mode 100644 index 0000000000..6ffd93956b --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-4-h_REF.gc @@ -0,0 +1,2967 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type net-latency-metrics-params +(deftype net-latency-metrics-params (structure) + ((connection-handle basic) + (target-client-list net-client-list :inline) + (pf-latency-metrics-callback basic) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-latency-metrics-params +(defmethod inspect ((this net-latency-metrics-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-latency-metrics-params) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Ttarget-client-list: #~%" (-> this target-client-list)) + (format #t "~1Tpf-latency-metrics-callback: ~A~%" (-> this pf-latency-metrics-callback)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-error-threshold-callback-data +(deftype net-error-threshold-callback-data (structure) + ((object-index int32) + (field-index int32) + (field-size int32) + (field-count int32) + (p-current-data basic) + (p-last-update-data basic) + ) + ) + +;; definition for method 3 of type net-error-threshold-callback-data +(defmethod inspect ((this net-error-threshold-callback-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-error-threshold-callback-data) + (format #t "~1Tobject-index: ~D~%" (-> this object-index)) + (format #t "~1Tfield-index: ~D~%" (-> this field-index)) + (format #t "~1Tfield-size: ~D~%" (-> this field-size)) + (format #t "~1Tfield-count: ~D~%" (-> this field-count)) + (format #t "~1Tp-current-data: ~A~%" (-> this p-current-data)) + (format #t "~1Tp-last-update-data: ~A~%" (-> this p-last-update-data)) + (label cfg-4) + this + ) + +;; definition of type net-remote-client-event-data +(deftype net-remote-client-event-data (structure) + ((event-type int32) + (connection-handle basic) + (client-index int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-remote-client-event-data +(defmethod inspect ((this net-remote-client-event-data)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'net-remote-client-event-data) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tevent-type: #x~X : ~S~%") + (a2-1 (-> this event-type)) + (v1-2 (-> this event-type)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 #xffffff) + "extra-net-client-event-type" + ) + ((zero? v1-2) + "net-client-event-join" + ) + ((= v1-2 1) + "net-client-event-leave" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-11) + this + ) + +;; definition of type net-object-filter-data +(deftype net-object-filter-data (structure) + ((client-list net-client-list :inline) + (object-index int32) + (fields-updated net-bit-mask :inline) + (update-type int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-object-filter-data +(defmethod inspect ((this net-object-filter-data)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'net-object-filter-data) + (format #t "~1Tclient-list: #~%" (-> this client-list)) + (format #t "~1Tobject-index: ~D~%" (-> this object-index)) + (format #t "~1Tfields-updated: #~%" (-> this fields-updated)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tupdate-type: #x~X : ~S~%") + (a2-4 (-> this update-type)) + (v1-2 (-> this update-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 -1) + "extra-net-update-type" + ) + ((zero? v1-2) + "net-full-object-update" + ) + ((= v1-2 1) + "net-field-update" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-11) + this + ) + +;; definition of type net-type-ownership-update-data +(deftype net-type-ownership-update-data (structure) + ((connection-handle basic) + (client-index int32) + (object-index int32) + (state int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-type-ownership-update-data +(defmethod inspect ((this net-type-ownership-update-data)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'net-type-ownership-update-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tobject-index: ~D~%" (-> this object-index)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstate: #x~X : ~S~%") + (a2-4 (-> this state)) + (v1-2 (-> this state)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 -1) + "extra-net-object-ownership-type" + ) + ((= v1-2 1) + "net-object-ownership-granted" + ) + ((= v1-2 4) + "net-object-ownership-shared" + ) + ((zero? v1-2) + "net-object-ownership-none" + ) + ((= v1-2 2) + "net-object-ownership-denied" + ) + ((= v1-2 3) + "net-object-ownership-not-shared" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-17) + this + ) + +;; definition of type net-type-ownership-request-data +(deftype net-type-ownership-request-data (structure) + ((connection-handle basic) + (client-index int32) + (object-index int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-type-ownership-request-data +(defmethod inspect ((this net-type-ownership-request-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-ownership-request-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tobject-index: ~D~%" (-> this object-index)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-completion-data +(deftype net-completion-data (structure) + ((result int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-completion-data +(defmethod inspect ((this net-completion-data)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-completion-data) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tresult: #x~X : ~S~%") + (a2-1 (-> this result)) + (v1-2 (-> this result)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-111) + this + ) + +;; definition of type net-smchange-data +(deftype net-smchange-data (structure) + ((connection-handle basic) + (smclient-index int32) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-smchange-data +(defmethod inspect ((this net-smchange-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-smchange-data) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tsmclient-index: ~D~%" (-> this smclient-index)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-join-in-params +(deftype net-join-in-params (structure) + ((b-default-set int32) + (connection-handle basic) + (sz-client-name uint8 12) + (net-object-count int32) + (data-stream-count int32) + (session-master-status int32) + (pf-local-join-callback basic) + (p-join-callback-data basic) + (pf-remote-client-event-callback basic) + (p-remote-client-event-callback-data basic) + (pf-smchange-callback basic) + (p-smchange-callback-data basic) + (pf-ownership-update-callback basic) + (p-ownership-update-callback-data basic) + (pf-ownership-request-callback basic) + (p-ownership-request-callback-data basic) + ) + ) + +;; definition for method 3 of type net-join-in-params +(defmethod inspect ((this net-join-in-params)) + (when (not this) + (set! this this) + (goto cfg-15) + ) + (format #t "[~8x] ~A~%" this 'net-join-in-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tsz-client-name[12] @ #x~X~%" (-> this sz-client-name)) + (format #t "~1Tnet-object-count: ~D~%" (-> this net-object-count)) + (format #t "~1Tdata-stream-count: ~D~%" (-> this data-stream-count)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tsession-master-status: #x~X : ~S~%") + (a2-6 (-> this session-master-status)) + (v1-2 (-> this session-master-status)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((zero? v1-2) + "ownership-none" + ) + ((= v1-2 2) + "ownership-shared" + ) + ((= v1-2 #xffffff) + "extra-net-ownership-status" + ) + ((= v1-2 1) + "ownership-private" + ) + ((= v1-2 3) + "ownership-not-available" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tpf-local-join-callback: ~A~%" (-> this pf-local-join-callback)) + (format #t "~1Tp-join-callback-data: ~A~%" (-> this p-join-callback-data)) + (format #t "~1Tpf-remote-client-event-callback: ~A~%" (-> this pf-remote-client-event-callback)) + (format #t "~1Tp-remote-client-event-callback-data: ~A~%" (-> this p-remote-client-event-callback-data)) + (format #t "~1Tpf-smchange-callback: ~A~%" (-> this pf-smchange-callback)) + (format #t "~1Tp-smchange-callback-data: ~A~%" (-> this p-smchange-callback-data)) + (format #t "~1Tpf-ownership-update-callback: ~A~%" (-> this pf-ownership-update-callback)) + (format #t "~1Tp-ownership-update-callback-data: ~A~%" (-> this p-ownership-update-callback-data)) + (format #t "~1Tpf-ownership-request-callback: ~A~%" (-> this pf-ownership-request-callback)) + (format #t "~1Tp-ownership-request-callback-data: ~A~%" (-> this p-ownership-request-callback-data)) + (label cfg-15) + this + ) + +;; definition of type net-join-out-params +(deftype net-join-out-params (structure) + ((b-is-set int32) + (error-code int32) + ) + ) + +;; definition for method 3 of type net-join-out-params +(defmethod inspect ((this net-join-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-join-out-params) + (format #t "~1Tb-is-set: ~D~%" (-> this b-is-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-111) + this + ) + +;; definition of type anonymous-0 +(deftype anonymous-0 (structure) + ((error-threshold-magnitude float) + (pf-threshold-callback basic :overlay-at error-threshold-magnitude) + ) + :pack-me + ) + +;; definition for method 3 of type anonymous-0 +(defmethod inspect ((this anonymous-0)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'anonymous-0) + (format #t "~1Terror-threshold-magnitude: ~f~%" (-> this error-threshold-magnitude)) + (format #t "~1Tpf-threshold-callback: ~A~%" (-> this error-threshold-magnitude)) + (label cfg-4) + this + ) + +;; definition of type net-type-client +(deftype net-type-client (structure) + ((connect-time uint32) + (client-object-index uint32) + (net-object-buffer-start int32) + (net-object-buffer-count int32) + (net-data-stream-start uint32) + (net-data-stream-count uint32) + (name uint8 12) + ) + ) + +;; definition for method 3 of type net-type-client +(defmethod inspect ((this net-type-client)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-client) + (format #t "~1Tconnect-time: ~D~%" (-> this connect-time)) + (format #t "~1Tclient-object-index: ~D~%" (-> this client-object-index)) + (format #t "~1Tnet-object-buffer-start: ~D~%" (-> this net-object-buffer-start)) + (format #t "~1Tnet-object-buffer-count: ~D~%" (-> this net-object-buffer-count)) + (format #t "~1Tnet-data-stream-start: ~D~%" (-> this net-data-stream-start)) + (format #t "~1Tnet-data-stream-count: ~D~%" (-> this net-data-stream-count)) + (format #t "~1Tname[12] @ #x~X~%" (-> this name)) + (label cfg-4) + this + ) + +;; definition of type net-type-data-stream +(deftype net-type-data-stream (structure) + ((status uint8) + (circular-buffer uint8) + (remote-buffer uint8) + (stream-type uint8) + (buffer-complete uint8) + (send-to-all uint8) + (target-client-index int32) + (owner-client-index int32) + (buffer-start uint32) + (buffer-end uint32) + (read-ptr uint32) + (write-ptr uint32) + (data-rate int32) + (min-packet-size uint16) + (max-packet-size uint16) + (time-of-last-update uint32) + ) + ) + +;; definition for method 3 of type net-type-data-stream +(defmethod inspect ((this net-type-data-stream)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-data-stream) + (format #t "~1Tstatus: ~D~%" (-> this status)) + (format #t "~1Tcircular-buffer: ~D~%" (-> this circular-buffer)) + (format #t "~1Tremote-buffer: ~D~%" (-> this remote-buffer)) + (format #t "~1Tstream-type: ~D~%" (-> this stream-type)) + (format #t "~1Tbuffer-complete: ~D~%" (-> this buffer-complete)) + (format #t "~1Tsend-to-all: ~D~%" (-> this send-to-all)) + (format #t "~1Ttarget-client-index: ~D~%" (-> this target-client-index)) + (format #t "~1Towner-client-index: ~D~%" (-> this owner-client-index)) + (format #t "~1Tbuffer-start: #x~X~%" (-> this buffer-start)) + (format #t "~1Tbuffer-end: #x~X~%" (-> this buffer-end)) + (format #t "~1Tread-ptr: #x~X~%" (-> this read-ptr)) + (format #t "~1Twrite-ptr: #x~X~%" (-> this write-ptr)) + (format #t "~1Tdata-rate: ~D~%" (-> this data-rate)) + (format #t "~1Tmin-packet-size: ~D~%" (-> this min-packet-size)) + (format #t "~1Tmax-packet-size: ~D~%" (-> this max-packet-size)) + (format #t "~1Ttime-of-last-update: ~D~%" (-> this time-of-last-update)) + (label cfg-4) + this + ) + +;; definition of type net-type-short-vector2 +(deftype net-type-short-vector2 (structure) + ((x int16) + (y int16) + ) + ) + +;; definition for method 3 of type net-type-short-vector2 +(defmethod inspect ((this net-type-short-vector2)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-short-vector2) + (format #t "~1Tx: ~D~%" (-> this x)) + (format #t "~1Ty: ~D~%" (-> this y)) + (label cfg-4) + this + ) + +;; definition of type net-type-short-vector3 +(deftype net-type-short-vector3 (structure) + ((x int16) + (y int16) + (z int16) + ) + ) + +;; definition for method 3 of type net-type-short-vector3 +(defmethod inspect ((this net-type-short-vector3)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-short-vector3) + (format #t "~1Tx: ~D~%" (-> this x)) + (format #t "~1Ty: ~D~%" (-> this y)) + (format #t "~1Tz: ~D~%" (-> this z)) + (label cfg-4) + this + ) + +;; definition of type net-type-int-vector2 +(deftype net-type-int-vector2 (structure) + ((x int32) + (y int32) + ) + ) + +;; definition for method 3 of type net-type-int-vector2 +(defmethod inspect ((this net-type-int-vector2)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-int-vector2) + (format #t "~1Tx: ~D~%" (-> this x)) + (format #t "~1Ty: ~D~%" (-> this y)) + (label cfg-4) + this + ) + +;; definition of type net-type-int-vector3 +(deftype net-type-int-vector3 (structure) + ((x int32) + (y int32) + (z int32) + ) + ) + +;; definition for method 3 of type net-type-int-vector3 +(defmethod inspect ((this net-type-int-vector3)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-int-vector3) + (format #t "~1Tx: ~D~%" (-> this x)) + (format #t "~1Ty: ~D~%" (-> this y)) + (format #t "~1Tz: ~D~%" (-> this z)) + (label cfg-4) + this + ) + +;; definition of type net-type-float-vector2 +(deftype net-type-float-vector2 (structure) + ((x float) + (y float) + ) + ) + +;; definition for method 3 of type net-type-float-vector2 +(defmethod inspect ((this net-type-float-vector2)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-float-vector2) + (format #t "~1Tx: ~f~%" (-> this x)) + (format #t "~1Ty: ~f~%" (-> this y)) + (label cfg-4) + this + ) + +;; definition of type net-type-float-vector3 +(deftype net-type-float-vector3 (structure) + ((x float) + (y float) + (z float) + ) + ) + +;; definition for method 3 of type net-type-float-vector3 +(defmethod inspect ((this net-type-float-vector3)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-float-vector3) + (format #t "~1Tx: ~f~%" (-> this x)) + (format #t "~1Ty: ~f~%" (-> this y)) + (format #t "~1Tz: ~f~%" (-> this z)) + (label cfg-4) + this + ) + +;; definition of type net-type-object +(deftype net-type-object (structure) + ((structure-index uint8) + (filter-type uint8) + (lifespan-type uint8) + (latency-critical uint8) + (owner-client-index int32) + (creator-client-index int32) + (name uint8 16) + (current-object-data uint32) + (last-global-object-data-update uint32) + (hi-field-change-set uint32) + (lo-field-change-set uint32) + (time-of-expiration uint32) + (max-update-interval uint32) + (time-of-last-global-update uint32) + (time-of-last-client-update uint32) + (time-of-last-client-field-update uint32) + (local-user-data basic) + ) + ) + +;; definition for method 3 of type net-type-object +(defmethod inspect ((this net-type-object)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-type-object) + (format #t "~1Tstructure-index: ~D~%" (-> this structure-index)) + (format #t "~1Tfilter-type: ~D~%" (-> this filter-type)) + (format #t "~1Tlifespan-type: ~D~%" (-> this lifespan-type)) + (format #t "~1Tlatency-critical: ~D~%" (-> this latency-critical)) + (format #t "~1Towner-client-index: ~D~%" (-> this owner-client-index)) + (format #t "~1Tcreator-client-index: ~D~%" (-> this creator-client-index)) + (format #t "~1Tname[16] @ #x~X~%" (-> this name)) + (format #t "~1Tcurrent-object-data: #x~X~%" (-> this current-object-data)) + (format #t "~1Tlast-global-object-data-update: #x~X~%" (-> this last-global-object-data-update)) + (format #t "~1Thi-field-change-set: ~D~%" (-> this hi-field-change-set)) + (format #t "~1Tlo-field-change-set: ~D~%" (-> this lo-field-change-set)) + (format #t "~1Ttime-of-expiration: ~D~%" (-> this time-of-expiration)) + (format #t "~1Tmax-update-interval: ~D~%" (-> this max-update-interval)) + (format #t "~1Ttime-of-last-global-update: ~D~%" (-> this time-of-last-global-update)) + (format #t "~1Ttime-of-last-client-update: #x~X~%" (-> this time-of-last-client-update)) + (format #t "~1Ttime-of-last-client-field-update: #x~X~%" (-> this time-of-last-client-field-update)) + (format #t "~1Tlocal-user-data: ~A~%" (-> this local-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-register-object-filter-in-params +(deftype net-register-object-filter-in-params (structure) + ((object-filter-call-back basic) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-register-object-filter-in-params +(defmethod inspect ((this net-register-object-filter-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-register-object-filter-in-params) + (format #t "~1Tobject-filter-call-back: ~A~%" (-> this object-filter-call-back)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-4) + this + ) + +;; definition of type net-register-object-filter-out-params +(deftype net-register-object-filter-out-params (structure) + ((object-filter-type int32) + (error-code int32) + ) + ) + +;; definition for method 3 of type net-register-object-filter-out-params +(defmethod inspect ((this net-register-object-filter-out-params)) + (when (not this) + (set! this this) + (goto cfg-111) + ) + (format #t "[~8x] ~A~%" this 'net-register-object-filter-out-params) + (format #t "~1Tobject-filter-type: ~D~%" (-> this object-filter-type)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 50) + "net-error-bad-port" + ) + ((= v1-2 35) + "net-error-comm-error" + ) + ((= v1-2 42) + "net-error-stream-media-comm" + ) + ((= v1-2 16) + "net-error-bad-mode" + ) + ((= v1-2 34) + "net-error-bad-server-version" + ) + ((= v1-2 8) + "net-error-bad-index" + ) + ((= v1-2 41) + "net-error-stream-media" + ) + ((= v1-2 11) + "net-error-object-not-shared" + ) + ((= v1-2 51) + "net-error-bad-connectivity-type" + ) + ((= v1-2 31) + "net-error-msg-too-large" + ) + ((= v1-2 43) + "net-error-mutex" + ) + ((= v1-2 25) + "net-error-too-many-pending-events" + ) + ((= v1-2 19) + "net-error-no-free-object" + ) + ((= v1-2 33) + "net-error-not-implemented" + ) + ((= v1-2 48) + "net-error-token-not-enabled" + ) + ((= v1-2 7) + "net-error-bad-session-master" + ) + ((= v1-2 12) + "net-error-bad-packet-received" + ) + ((= v1-2 46) + "net-error-lookup-error" + ) + ((= v1-2 9) + "net-error-bad-data-stream-channel" + ) + ((= v1-2 39) + "net-error-sizeof-param-mismatch" + ) + ((= v1-2 37) + "net-error-udperror" + ) + ((= v1-2 32) + "net-error-security" + ) + ((= v1-2 26) + "net-error-udpnot-enabled" + ) + ((zero? v1-2) + "net-error-none" + ) + ((= v1-2 13) + "net-error-send-failed" + ) + ((= v1-2 21) + "net-error-client-not-valid" + ) + ((= v1-2 45) + "net-error-hostname-error" + ) + ((= v1-2 38) + "net-error-set-defaults-not-called" + ) + ((= v1-2 3) + "net-error-connection-failed" + ) + ((= v1-2 10) + "net-error-bad-pointer" + ) + ((= v1-2 14) + "net-error-timed-out" + ) + ((= v1-2 #xffffff) + "extra-net-error-code" + ) + ((= v1-2 30) + "net-error-unknown" + ) + ((= v1-2 2) + "net-error-connection-lost" + ) + ((= v1-2 24) + "net-error-msg-error" + ) + ((= v1-2 20) + "net-error-open-data-stream-failed" + ) + ((= v1-2 15) + "net-error-bad-connection-index" + ) + ((= v1-2 4) + "net-error-client-rejected" + ) + ((= v1-2 1) + "net-error-not-connected" + ) + ((= v1-2 44) + "net-error-server-error" + ) + ((= v1-2 23) + "net-error-invalid-arg" + ) + ((= v1-2 28) + "net-error-game-is-full" + ) + ((= v1-2 17) + "net-error-dme-not-initialized" + ) + ((= v1-2 6) + "net-error-new-client" + ) + ((= v1-2 27) + "net-error-update" + ) + ((= v1-2 36) + "net-error-buffer-error" + ) + ((= v1-2 47) + "net-error-timebase-error" + ) + ((= v1-2 29) + "net-error-host-game-failed" + ) + ((= v1-2 18) + "net-error-init-failed" + ) + ((= v1-2 49) + "net-error-token-error" + ) + ((= v1-2 40) + "net-error-deprecated" + ) + ((= v1-2 5) + "net-error-disconnect-failed" + ) + ((= v1-2 22) + "net-error-memory" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-111) + this + ) + +;; definition of type net-lanfind-exchange-callback-out-args +(deftype net-lanfind-exchange-callback-out-args (structure) + ((b-respond-to-sender int32) + (details net-data :inline) + ) + ) + +;; definition for method 3 of type net-lanfind-exchange-callback-out-args +(defmethod inspect ((this net-lanfind-exchange-callback-out-args)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-lanfind-exchange-callback-out-args) + (format #t "~1Tb-respond-to-sender: ~D~%" (-> this b-respond-to-sender)) + (format #t "~1Tdetails: #~%" (-> this details)) + (label cfg-4) + this + ) + +;; definition of type net-lanfind-in-params +(deftype net-lanfind-in-params (structure) + ((b-default-set int32) + (session-type int32) + (filter uint32) + (details net-data :inline) + (udpport uint32) + (pfn-lanfind-callback basic) + (p-user-data basic) + ) + ) + +;; definition for method 3 of type net-lanfind-in-params +(defmethod inspect ((this net-lanfind-in-params)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'net-lanfind-in-params) + (format #t "~1Tb-default-set: ~D~%" (-> this b-default-set)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tsession-type: #x~X : ~S~%") + (a2-2 (-> this session-type)) + (v1-2 (-> this session-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 2) + "net-session-type-integrated-server" + ) + ((= v1-2 #xffffff) + "extra-net-session-type" + ) + ((= v1-2 1) + "net-session-type-peer" + ) + ((zero? v1-2) + "net-session-type-game" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tfilter: ~D~%" (-> this filter)) + (format #t "~1Tdetails: #~%" (-> this details)) + (format #t "~1Tudpport: ~D~%" (-> this udpport)) + (format #t "~1Tpfn-lanfind-callback: ~A~%" (-> this pfn-lanfind-callback)) + (format #t "~1Tp-user-data: ~A~%" (-> this p-user-data)) + (label cfg-13) + this + ) + +;; definition of type net-stream-media-channel-info +(deftype net-stream-media-channel-info (structure) + ((connection-handle basic) + (channel-num uint32) + (client-count uint32) + ) + ) + +;; definition for method 3 of type net-stream-media-channel-info +(defmethod inspect ((this net-stream-media-channel-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-channel-info) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tchannel-num: ~D~%" (-> this channel-num)) + (format #t "~1Tclient-count: ~D~%" (-> this client-count)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-client-info +(deftype net-stream-media-client-info (structure) + ((connection-handle basic) + (client-index int32) + (b-joined-to-channel int32) + (channel-num uint32) + ) + ) + +;; definition for method 3 of type net-stream-media-client-info +(defmethod inspect ((this net-stream-media-client-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-client-info) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tb-joined-to-channel: ~D~%" (-> this b-joined-to-channel)) + (format #t "~1Tchannel-num: ~D~%" (-> this channel-num)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-channel-state-data +(deftype net-stream-media-channel-state-data (structure) + ((b-can-record int32) + ) + ) + +;; definition for method 3 of type net-stream-media-channel-state-data +(defmethod inspect ((this net-stream-media-channel-state-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-channel-state-data) + (format #t "~1Tb-can-record: ~D~%" (-> this b-can-record)) + (label cfg-4) + this + ) + +;; definition of type net-stream-media-ignore-data +(deftype net-stream-media-ignore-data (structure) + ((b-defaults-set int32) + (connection-handle basic) + (client-index int32) + (b-ignore int32) + ) + ) + +;; definition for method 3 of type net-stream-media-ignore-data +(defmethod inspect ((this net-stream-media-ignore-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'net-stream-media-ignore-data) + (format #t "~1Tb-defaults-set: ~D~%" (-> this b-defaults-set)) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (format #t "~1Tclient-index: ~D~%" (-> this client-index)) + (format #t "~1Tb-ignore: ~D~%" (-> this b-ignore)) + (label cfg-4) + this + ) + +;; definition of type medius-player-online-state +(deftype medius-player-online-state (structure) + ((connect-status int32) + (medius-lobby-world-id int32) + (medius-game-world-id int32) + (lobby-name uint8 64) + (game-name uint8 64) + ) + :pack-me + ) + +;; definition for method 3 of type medius-player-online-state +(defmethod inspect ((this medius-player-online-state)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-player-online-state) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tconnect-status: #x~X : ~S~%") + (a2-1 (-> this connect-status)) + (v1-2 (-> this connect-status)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 4) + "medius-player-in-other-universe" + ) + ((= v1-2 2) + "medius-player-in-chat-world" + ) + ((= v1-2 1) + "medius-player-in-auth-world" + ) + ((= v1-2 #xffffff) + "extra-medius-player-status" + ) + ((zero? v1-2) + "medius-player-disconnected" + ) + ((= v1-2 3) + "medius-player-in-game-world" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-lobby-world-id: ~D~%" (-> this medius-lobby-world-id)) + (format #t "~1Tmedius-game-world-id: ~D~%" (-> this medius-game-world-id)) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (label cfg-17) + this + ) + +;; definition of type medius-account-delete-request +(deftype medius-account-delete-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (master-password uint8 32) + ) + ) + +;; definition for method 3 of type medius-account-delete-request +(defmethod inspect ((this medius-account-delete-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-delete-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmaster-password[32] @ #x~X~%" (-> this master-password)) + (label cfg-4) + this + ) + +;; definition of type medius-account-get-idrequest +(deftype medius-account-get-idrequest (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-name uint8 32) + ) + ) + +;; definition for method 3 of type medius-account-get-idrequest +(defmethod inspect ((this medius-account-get-idrequest)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-get-idrequest) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (label cfg-4) + this + ) + +;; definition of type medius-account-get-idresponse +(deftype medius-account-get-idresponse (structure) + ((message-id uint8 21) + (account-id int32) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-account-get-idresponse +(defmethod inspect ((this medius-account-get-idresponse)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-account-get-idresponse) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-account-get-profile-request +(deftype medius-account-get-profile-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-account-get-profile-request +(defmethod inspect ((this medius-account-get-profile-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-get-profile-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-account-get-profile-response +(deftype medius-account-get-profile-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-status int32) + (account-name uint8 32) + (birthday-month int16) + (birthday-day int16) + (birthday-year int16) + (first-name uint8 32) + (last-name uint8 32) + (middle-name uint8 32) + (address1 uint8 32) + (address2 uint8 32) + (address3 uint8 32) + (city uint8 32) + (state uint8 3) + (province uint8 32) + (country uint8 32) + (postal-code uint8 16) + (email-address uint8 80) + ) + ) + +;; definition for method 3 of type medius-account-get-profile-response +(defmethod inspect ((this medius-account-get-profile-response)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-account-get-profile-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Taccount-status: #x~X : ~S~%") + (a2-3 (-> this account-status)) + (v1-3 (-> this account-status)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-3) + "account-active" + ) + ((= v1-3 1) + "account-deactivated" + ) + ((= v1-3 #xffffff) + "extra-medius-account-status" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tbirthday-month: ~D~%" (-> this birthday-month)) + (format #t "~1Tbirthday-day: ~D~%" (-> this birthday-day)) + (format #t "~1Tbirthday-year: ~D~%" (-> this birthday-year)) + (format #t "~1Tfirst-name[32] @ #x~X~%" (-> this first-name)) + (format #t "~1Tlast-name[32] @ #x~X~%" (-> this last-name)) + (format #t "~1Tmiddle-name[32] @ #x~X~%" (-> this middle-name)) + (format #t "~1Taddress1[32] @ #x~X~%" (-> this address1)) + (format #t "~1Taddress2[32] @ #x~X~%" (-> this address2)) + (format #t "~1Taddress3[32] @ #x~X~%" (-> this address3)) + (format #t "~1Tcity[32] @ #x~X~%" (-> this city)) + (format #t "~1Tstate[3] @ #x~X~%" (-> this state)) + (format #t "~1Tprovince[32] @ #x~X~%" (-> this province)) + (format #t "~1Tcountry[32] @ #x~X~%" (-> this country)) + (format #t "~1Tpostal-code[16] @ #x~X~%" (-> this postal-code)) + (format #t "~1Temail-address[80] @ #x~X~%" (-> this email-address)) + (label cfg-140) + this + ) + +;; definition of type medius-account-login-request +(deftype medius-account-login-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-name uint8 32) + (password uint8 32) + ) + ) + +;; definition for method 3 of type medius-account-login-request +(defmethod inspect ((this medius-account-login-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-login-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tpassword[32] @ #x~X~%" (-> this password)) + (label cfg-4) + this + ) + +;; definition of type medius-account-login-response +(deftype medius-account-login-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-type int32) + (medius-world-id int32) + (connect-info net-connection-info :inline) + ) + ) + +;; definition for method 3 of type medius-account-login-response +(defmethod inspect ((this medius-account-login-response)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-account-login-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Taccount-type: #x~X : ~S~%") + (a2-4 (-> this account-type)) + (v1-3 (-> this account-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((zero? v1-3) + "medius-child-account" + ) + ((= v1-3 1) + "medius-master-account" + ) + ((= v1-3 #xffffff) + "extra-medius-account-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tconnect-info: #~%" (-> this connect-info)) + (label cfg-140) + this + ) + +;; definition of type medius-account-logout-request +(deftype medius-account-logout-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-account-logout-request +(defmethod inspect ((this medius-account-logout-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-logout-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-account-registration-request +(deftype medius-account-registration-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-type int32) + (account-name uint8 32) + (password uint8 32) + ) + ) + +;; definition for method 3 of type medius-account-registration-request +(defmethod inspect ((this medius-account-registration-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-account-registration-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Taccount-type: #x~X : ~S~%") + (a2-3 (-> this account-type)) + (v1-2 (-> this account-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-2) + "medius-child-account" + ) + ((= v1-2 1) + "medius-master-account" + ) + ((= v1-2 #xffffff) + "extra-medius-account-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tpassword[32] @ #x~X~%" (-> this password)) + (label cfg-11) + this + ) + +;; definition of type medius-account-registration-response +(deftype medius-account-registration-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + ) + ) + +;; definition for method 3 of type medius-account-registration-response +(defmethod inspect ((this medius-account-registration-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-account-registration-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (label cfg-133) + this + ) + +;; definition of type medius-account-update-password-request +(deftype medius-account-update-password-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (old-password uint8 32) + (new-password uint8 32) + ) + ) + +;; definition for method 3 of type medius-account-update-password-request +(defmethod inspect ((this medius-account-update-password-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-update-password-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Told-password[32] @ #x~X~%" (-> this old-password)) + (format #t "~1Tnew-password[32] @ #x~X~%" (-> this new-password)) + (label cfg-4) + this + ) + +;; definition of type medius-account-update-profile-request +(deftype medius-account-update-profile-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (birthday-month int16) + (birthday-day int16) + (birthday-year int16) + (first-name uint8 32) + (last-name uint8 32) + (middle-name uint8 32) + (address1 uint8 32) + (address2 uint8 32) + (address3 uint8 32) + (city uint8 32) + (state uint8 3) + (province uint8 32) + (country uint8 32) + (postal-code uint8 16) + (email-address uint8 80) + ) + ) + +;; definition for method 3 of type medius-account-update-profile-request +(defmethod inspect ((this medius-account-update-profile-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-update-profile-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tbirthday-month: ~D~%" (-> this birthday-month)) + (format #t "~1Tbirthday-day: ~D~%" (-> this birthday-day)) + (format #t "~1Tbirthday-year: ~D~%" (-> this birthday-year)) + (format #t "~1Tfirst-name[32] @ #x~X~%" (-> this first-name)) + (format #t "~1Tlast-name[32] @ #x~X~%" (-> this last-name)) + (format #t "~1Tmiddle-name[32] @ #x~X~%" (-> this middle-name)) + (format #t "~1Taddress1[32] @ #x~X~%" (-> this address1)) + (format #t "~1Taddress2[32] @ #x~X~%" (-> this address2)) + (format #t "~1Taddress3[32] @ #x~X~%" (-> this address3)) + (format #t "~1Tcity[32] @ #x~X~%" (-> this city)) + (format #t "~1Tstate[3] @ #x~X~%" (-> this state)) + (format #t "~1Tprovince[32] @ #x~X~%" (-> this province)) + (format #t "~1Tcountry[32] @ #x~X~%" (-> this country)) + (format #t "~1Tpostal-code[16] @ #x~X~%" (-> this postal-code)) + (format #t "~1Temail-address[80] @ #x~X~%" (-> this email-address)) + (label cfg-4) + this + ) + +;; definition of type medius-account-update-stats-request +(deftype medius-account-update-stats-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (stats uint8 256) + ) + ) + +;; definition for method 3 of type medius-account-update-stats-request +(defmethod inspect ((this medius-account-update-stats-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-account-update-stats-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (label cfg-4) + this + ) + +;; definition of type medius-add-player-to-clan-request +(deftype medius-add-player-to-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + (welcome-message uint8 200) + ) + ) + +;; definition for method 3 of type medius-add-player-to-clan-request +(defmethod inspect ((this medius-add-player-to-clan-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-add-player-to-clan-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tplayer-account-id: ~D~%" (-> this player-account-id)) + (format #t "~1Twelcome-message[200] @ #x~X~%" (-> this welcome-message)) + (label cfg-4) + this + ) + +;; definition of type medius-add-player-to-clan-response +(deftype medius-add-player-to-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-add-player-to-clan-response +(defmethod inspect ((this medius-add-player-to-clan-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-add-player-to-clan-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-add-to-buddy-list-confirmation-request0 +(deftype medius-add-to-buddy-list-confirmation-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (target-account-id int32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-confirmation-request0 +(defmethod inspect ((this medius-add-to-buddy-list-confirmation-request0)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-confirmation-request0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Ttarget-account-id: ~D~%" (-> this target-account-id)) + (label cfg-4) + this + ) + +;; definition of type medius-add-to-buddy-list-confirmation-request +(deftype medius-add-to-buddy-list-confirmation-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (target-account-id int32) + (add-type int32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-confirmation-request +(defmethod inspect ((this medius-add-to-buddy-list-confirmation-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-confirmation-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Ttarget-account-id: ~D~%" (-> this target-account-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tadd-type: #x~X : ~S~%") + (a2-4 (-> this add-type)) + (v1-2 (-> this add-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((zero? v1-2) + "add-single" + ) + ((= v1-2 1) + "add-symmetric" + ) + ((= v1-2 #xffffff) + "extra-medius-add-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-5-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-5-h_REF.gc new file mode 100644 index 0000000000..89981a7d86 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-5-h_REF.gc @@ -0,0 +1,5878 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type medius-add-to-buddy-list-confirmation-response +(deftype medius-add-to-buddy-list-confirmation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (target-account-id int32) + (target-account-name uint8 32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-confirmation-response +(defmethod inspect ((this medius-add-to-buddy-list-confirmation-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-confirmation-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Ttarget-account-id: ~D~%" (-> this target-account-id)) + (format #t "~1Ttarget-account-name[32] @ #x~X~%" (-> this target-account-name)) + (label cfg-133) + this + ) + +;; definition of type medius-add-to-buddy-list-fwd-confirmation-request0 +(deftype medius-add-to-buddy-list-fwd-confirmation-request0 (structure) + ((message-id uint8 21) + (originator-account-id int32) + (originator-account-name uint8 32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-fwd-confirmation-request0 +(defmethod inspect ((this medius-add-to-buddy-list-fwd-confirmation-request0)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-fwd-confirmation-request0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Toriginator-account-id: ~D~%" (-> this originator-account-id)) + (format #t "~1Toriginator-account-name[32] @ #x~X~%" (-> this originator-account-name)) + (label cfg-4) + this + ) + +;; definition of type medius-add-to-buddy-list-fwd-confirmation-request +(deftype medius-add-to-buddy-list-fwd-confirmation-request (structure) + ((message-id uint8 21) + (originator-account-id int32) + (originator-account-name uint8 32) + (add-type int32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-fwd-confirmation-request +(defmethod inspect ((this medius-add-to-buddy-list-fwd-confirmation-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-fwd-confirmation-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Toriginator-account-id: ~D~%" (-> this originator-account-id)) + (format #t "~1Toriginator-account-name[32] @ #x~X~%" (-> this originator-account-name)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tadd-type: #x~X : ~S~%") + (a2-4 (-> this add-type)) + (v1-2 (-> this add-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((zero? v1-2) + "add-single" + ) + ((= v1-2 1) + "add-symmetric" + ) + ((= v1-2 #xffffff) + "extra-medius-add-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-add-to-buddy-list-fwd-confirmation-response0 +(deftype medius-add-to-buddy-list-fwd-confirmation-response0 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (session-key uint8 17) + (originator-account-id int32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-fwd-confirmation-response0 +(defmethod inspect ((this medius-add-to-buddy-list-fwd-confirmation-response0)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-fwd-confirmation-response0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Toriginator-account-id: ~D~%" (-> this originator-account-id)) + (label cfg-133) + this + ) + +;; definition of type medius-add-to-buddy-list-fwd-confirmation-response +(deftype medius-add-to-buddy-list-fwd-confirmation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (session-key uint8 17) + (originator-account-id int32) + (add-type int32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-fwd-confirmation-response +(defmethod inspect ((this medius-add-to-buddy-list-fwd-confirmation-response)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-fwd-confirmation-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Toriginator-account-id: ~D~%" (-> this originator-account-id)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tadd-type: #x~X : ~S~%") + (a2-5 (-> this add-type)) + (v1-3 (-> this add-type)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((zero? v1-3) + "add-single" + ) + ((= v1-3 1) + "add-symmetric" + ) + ((= v1-3 #xffffff) + "extra-medius-add-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-140) + this + ) + +;; definition of type medius-add-to-buddy-list-request +(deftype medius-add-to-buddy-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-request +(defmethod inspect ((this medius-add-to-buddy-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (label cfg-4) + this + ) + +;; definition of type medius-add-to-buddy-list-response +(deftype medius-add-to-buddy-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-add-to-buddy-list-response +(defmethod inspect ((this medius-add-to-buddy-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-buddy-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-add-to-ignore-list-request +(deftype medius-add-to-ignore-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (ignore-account-id int32) + ) + ) + +;; definition for method 3 of type medius-add-to-ignore-list-request +(defmethod inspect ((this medius-add-to-ignore-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-ignore-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tignore-account-id: ~D~%" (-> this ignore-account-id)) + (label cfg-4) + this + ) + +;; definition of type medius-add-to-ignore-list-response +(deftype medius-add-to-ignore-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-add-to-ignore-list-response +(defmethod inspect ((this medius-add-to-ignore-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-add-to-ignore-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-anonymous-login-request +(deftype medius-anonymous-login-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (session-display-name uint8 32) + (session-display-stats uint8 256) + ) + ) + +;; definition for method 3 of type medius-anonymous-login-request +(defmethod inspect ((this medius-anonymous-login-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-anonymous-login-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tsession-display-name[32] @ #x~X~%" (-> this session-display-name)) + (format #t "~1Tsession-display-stats[256] @ #x~X~%" (-> this session-display-stats)) + (label cfg-4) + this + ) + +;; definition of type medius-ban-player-request +(deftype medius-ban-player-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (ban-account-id int32) + (ban-minutes int32) + (medius-world-id int32) + (app-type int32) + ) + ) + +;; definition for method 3 of type medius-ban-player-request +(defmethod inspect ((this medius-ban-player-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-ban-player-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tban-account-id: ~D~%" (-> this ban-account-id)) + (format #t "~1Tban-minutes: ~D~%" (-> this ban-minutes)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tapp-type: #x~X : ~S~%") + (a2-6 (-> this app-type)) + (v1-2 (-> this app-type)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((zero? v1-2) + "game" + ) + ((= v1-2 #xffffff) + "extra-medius-application-type" + ) + ((= v1-2 1) + "lobby-chat-channel" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-ban-player-response +(deftype medius-ban-player-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-ban-player-response +(defmethod inspect ((this medius-ban-player-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-ban-player-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-channel-info-request +(deftype medius-channel-info-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-channel-info-request +(defmethod inspect ((this medius-channel-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-channel-info-response +(deftype medius-channel-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (lobby-name uint8 64) + (active-player-count int32) + (max-players int32) + ) + ) + +;; definition for method 3 of type medius-channel-info-response +(defmethod inspect ((this medius-channel-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tactive-player-count: ~D~%" (-> this active-player-count)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (label cfg-133) + this + ) + +;; definition of type medius-channel-list-extra-info-request +(deftype medius-channel-list-extra-info-request (structure) + ((message-id uint8 21) + (page-id uint16) + (page-size uint16) + ) + ) + +;; definition for method 3 of type medius-channel-list-extra-info-request +(defmethod inspect ((this medius-channel-list-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-list-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tpage-id: ~D~%" (-> this page-id)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-channel-list-extra-info-response0 +(deftype medius-channel-list-extra-info-response0 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (max-players uint16) + (security-level int32) + (generic-field1 uint32) + (lobby-name uint8 64) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-channel-list-extra-info-response0 +(defmethod inspect ((this medius-channel-list-extra-info-response0)) + (when (not this) + (set! this this) + (goto cfg-144) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-list-extra-info-response0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tsecurity-level: #x~X : ~S~%") + (a2-6 (-> this security-level)) + (v1-3 (-> this security-level)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((zero? v1-3) + "world-security-none" + ) + ((= v1-3 2) + "world-security-closed" + ) + ((= v1-3 #xffffff) + "world-security-extra" + ) + ((= v1-3 1) + "world-security-player-password" + ) + ((= v1-3 4) + "world-security-spectator-password" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-144) + this + ) + +;; definition of type medius-channel-list-extra-info-response1 +(deftype medius-channel-list-extra-info-response1 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (max-players uint16) + (security-level int32) + (generic-field1 uint32) + (generic-field2 uint32) + (generic-field3 uint32) + (generic-field4 uint32) + (generic-field-level int32) + (lobby-name uint8 64) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-channel-list-extra-info-response1 +(defmethod inspect ((this medius-channel-list-extra-info-response1)) + (when (not this) + (set! this this) + (goto cfg-169) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-list-extra-info-response1) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tsecurity-level: #x~X : ~S~%") + (a2-6 (-> this security-level)) + (v1-3 (-> this security-level)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((zero? v1-3) + "world-security-none" + ) + ((= v1-3 2) + "world-security-closed" + ) + ((= v1-3 #xffffff) + "world-security-extra" + ) + ((= v1-3 1) + "world-security-player-password" + ) + ((= v1-3 4) + "world-security-spectator-password" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (format #t "~1Tgeneric-field4: ~D~%" (-> this generic-field4)) + (let ((t9-11 format) + (a0-12 #t) + (a1-11 "~1Tgeneric-field-level: #x~X : ~S~%") + (a2-11 (-> this generic-field-level)) + (v1-4 (-> this generic-field-level)) + ) + (t9-11 a0-12 a1-11 a2-11 (cond + ((= v1-4 512) + "medius-world-generic-field-level34" + ) + ((= v1-4 128) + "medius-world-generic-field-level23" + ) + ((= v1-4 2) + "medius-world-generic-field-level2" + ) + ((= v1-4 16) + "medius-world-generic-field-level12" + ) + ((= v1-4 256) + "medius-world-generic-field-level234" + ) + ((= v1-4 64) + "medius-world-generic-field-level1234" + ) + ((= v1-4 1) + "medius-world-generic-field-level1" + ) + ((= v1-4 4) + "medius-world-generic-field-level3" + ) + ((zero? v1-4) + "medius-world-generic-field-level0" + ) + ((= v1-4 32) + "medius-world-generic-field-level123" + ) + ((= v1-4 8) + "medius-world-generic-field-level4" + ) + ((= v1-4 #xffffff) + "extra-medius-world-generic-field-level-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-169) + this + ) + +;; definition of type medius-channel-list-extra-info-response +(deftype medius-channel-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (max-players uint16) + (game-world-count uint16) + (security-level int32) + (generic-field1 uint32) + (generic-field2 uint32) + (generic-field3 uint32) + (generic-field4 uint32) + (generic-field-level int32) + (lobby-name uint8 64) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-channel-list-extra-info-response +(defmethod inspect ((this medius-channel-list-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-169) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-list-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-world-count: ~D~%" (-> this game-world-count)) + (let ((t9-7 format) + (a0-8 #t) + (a1-7 "~1Tsecurity-level: #x~X : ~S~%") + (a2-7 (-> this security-level)) + (v1-3 (-> this security-level)) + ) + (t9-7 a0-8 a1-7 a2-7 (cond + ((zero? v1-3) + "world-security-none" + ) + ((= v1-3 2) + "world-security-closed" + ) + ((= v1-3 #xffffff) + "world-security-extra" + ) + ((= v1-3 1) + "world-security-player-password" + ) + ((= v1-3 4) + "world-security-spectator-password" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (format #t "~1Tgeneric-field4: ~D~%" (-> this generic-field4)) + (let ((t9-12 format) + (a0-13 #t) + (a1-12 "~1Tgeneric-field-level: #x~X : ~S~%") + (a2-12 (-> this generic-field-level)) + (v1-4 (-> this generic-field-level)) + ) + (t9-12 a0-13 a1-12 a2-12 (cond + ((= v1-4 512) + "medius-world-generic-field-level34" + ) + ((= v1-4 128) + "medius-world-generic-field-level23" + ) + ((= v1-4 2) + "medius-world-generic-field-level2" + ) + ((= v1-4 16) + "medius-world-generic-field-level12" + ) + ((= v1-4 256) + "medius-world-generic-field-level234" + ) + ((= v1-4 64) + "medius-world-generic-field-level1234" + ) + ((= v1-4 1) + "medius-world-generic-field-level1" + ) + ((= v1-4 4) + "medius-world-generic-field-level3" + ) + ((zero? v1-4) + "medius-world-generic-field-level0" + ) + ((= v1-4 32) + "medius-world-generic-field-level123" + ) + ((= v1-4 8) + "medius-world-generic-field-level4" + ) + ((= v1-4 #xffffff) + "extra-medius-world-generic-field-level-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-169) + this + ) + +;; definition of type medius-channel-list-request +(deftype medius-channel-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (page-id int16) + (page-size int16) + ) + ) + +;; definition for method 3 of type medius-channel-list-request +(defmethod inspect ((this medius-channel-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tpage-id: ~D~%" (-> this page-id)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-channel-list-response +(deftype medius-channel-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (lobby-name uint8 64) + (player-count int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-channel-list-response +(defmethod inspect ((this medius-channel-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-channel-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-chat-fwd-message +(deftype medius-chat-fwd-message (structure) + ((message-id uint8 21) + (originator-account-id int32) + (originator-account-name uint8 32) + (message-type int32) + (message uint8 64) + ) + ) + +;; definition for method 3 of type medius-chat-fwd-message +(defmethod inspect ((this medius-chat-fwd-message)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-chat-fwd-message) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Toriginator-account-id: ~D~%" (-> this originator-account-id)) + (format #t "~1Toriginator-account-name[32] @ #x~X~%" (-> this originator-account-name)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tmessage-type: #x~X : ~S~%") + (a2-4 (-> this message-type)) + (v1-2 (-> this message-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 1) + "whisper" + ) + ((= v1-2 2) + "broadcast-across-entire-universe" + ) + ((= v1-2 #xffffff) + "extra-medius-chat-message-type" + ) + ((zero? v1-2) + "broadcast" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage[64] @ #x~X~%" (-> this message)) + (label cfg-13) + this + ) + +;; definition of type medius-chat-message +(deftype medius-chat-message (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message-type int32) + (target-account-id int32) + (message uint8 64) + ) + ) + +;; definition for method 3 of type medius-chat-message +(defmethod inspect ((this medius-chat-message)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-chat-message) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tmessage-type: #x~X : ~S~%") + (a2-3 (-> this message-type)) + (v1-2 (-> this message-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 1) + "whisper" + ) + ((= v1-2 2) + "broadcast-across-entire-universe" + ) + ((= v1-2 #xffffff) + "extra-medius-chat-message-type" + ) + ((zero? v1-2) + "broadcast" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Ttarget-account-id: ~D~%" (-> this target-account-id)) + (format #t "~1Tmessage[64] @ #x~X~%" (-> this message)) + (label cfg-13) + this + ) + +;; definition of type medius-binary-fwd-message +(deftype medius-binary-fwd-message (structure) + ((message-id uint8 21) + (originator-account-id int32) + (message-type int32) + (message uint8 400) + ) + ) + +;; definition for method 3 of type medius-binary-fwd-message +(defmethod inspect ((this medius-binary-fwd-message)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-binary-fwd-message) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Toriginator-account-id: ~D~%" (-> this originator-account-id)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tmessage-type: #x~X : ~S~%") + (a2-3 (-> this message-type)) + (v1-2 (-> this message-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 1) + "target-binary-msg" + ) + ((zero? v1-2) + "broadcast-binary-msg" + ) + ((= v1-2 #xffffff) + "extra-medius-binary-message-type" + ) + ((= v1-2 2) + "broadcast-binary-msg-across-entire-universe" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage[400] @ #x~X~%" (-> this message)) + (label cfg-13) + this + ) + +;; definition of type medius-binary-message +(deftype medius-binary-message (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message-type int32) + (target-account-id int32) + (message uint8 400) + ) + ) + +;; definition for method 3 of type medius-binary-message +(defmethod inspect ((this medius-binary-message)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-binary-message) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tmessage-type: #x~X : ~S~%") + (a2-3 (-> this message-type)) + (v1-2 (-> this message-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 1) + "target-binary-msg" + ) + ((zero? v1-2) + "broadcast-binary-msg" + ) + ((= v1-2 #xffffff) + "extra-medius-binary-message-type" + ) + ((= v1-2 2) + "broadcast-binary-msg-across-entire-universe" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Ttarget-account-id: ~D~%" (-> this target-account-id)) + (format #t "~1Tmessage[400] @ #x~X~%" (-> this message)) + (label cfg-13) + this + ) + +;; definition of type medius-chat-toggle-request +(deftype medius-chat-toggle-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (chat-toggle int32) + ) + ) + +;; definition for method 3 of type medius-chat-toggle-request +(defmethod inspect ((this medius-chat-toggle-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-chat-toggle-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tchat-toggle: #x~X : ~S~%") + (a2-3 (-> this chat-toggle)) + (v1-2 (-> this chat-toggle)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-2) + "medius-chat-enable" + ) + ((= v1-2 1) + "medius-chat-disable" + ) + ((= v1-2 #xffffff) + "extra-medius-chat-toggle" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-chat-toggle-response +(deftype medius-chat-toggle-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-chat-toggle-response +(defmethod inspect ((this medius-chat-toggle-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-chat-toggle-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-check-my-clan-invitations-request +(deftype medius-check-my-clan-invitations-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + +;; definition for method 3 of type medius-check-my-clan-invitations-request +(defmethod inspect ((this medius-check-my-clan-invitations-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-check-my-clan-invitations-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tstart: ~D~%" (-> this start)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-check-my-clan-invitations-response +(deftype medius-check-my-clan-invitations-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-invitation-id int32) + (clan-id int32) + (response-status int32) + (message uint8 200) + (leader-account-id int32) + (leader-account-name uint8 32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-check-my-clan-invitations-response +(defmethod inspect ((this medius-check-my-clan-invitations-response)) + (when (not this) + (set! this this) + (goto cfg-144) + ) + (format #t "[~8x] ~A~%" this 'medius-check-my-clan-invitations-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tclan-invitation-id: ~D~%" (-> this clan-invitation-id)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tresponse-status: #x~X : ~S~%") + (a2-5 (-> this response-status)) + (v1-3 (-> this response-status)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 #xffffff) + "extra-medius-clan-invitations-response-status" + ) + ((= v1-3 3) + "clan-invitation-revoked" + ) + ((= v1-3 2) + "clan-invitation-decline" + ) + ((zero? v1-3) + "clan-invitation-undecided" + ) + ((= v1-3 1) + "clan-invitation-accept" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (format #t "~1Tleader-account-id: ~D~%" (-> this leader-account-id)) + (format #t "~1Tleader-account-name[32] @ #x~X~%" (-> this leader-account-name)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-144) + this + ) + +;; definition of type medius-clan-ladder-list-request +(deftype medius-clan-ladder-list-request (structure) + ((message-id uint8 21) + (clan-ladder-stat-index int32) + (sort-order int32) + (start-position uint32) + (page-size uint32) + ) + ) + +;; definition for method 3 of type medius-clan-ladder-list-request +(defmethod inspect ((this medius-clan-ladder-list-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-clan-ladder-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tclan-ladder-stat-index: ~D~%" (-> this clan-ladder-stat-index)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tsort-order: #x~X : ~S~%") + (a2-3 (-> this sort-order)) + (v1-2 (-> this sort-order)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 #xffffff) + "extra-medius-sort-order" + ) + ((= v1-2 1) + "medius-descending" + ) + ((zero? v1-2) + "medius-ascending" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tstart-position: ~D~%" (-> this start-position)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-11) + this + ) + +;; definition of type medius-clan-ladder-list-response +(deftype medius-clan-ladder-list-response (structure) + ((message-id uint8 21) + (clan-id int32) + (clan-name uint8 32) + (ladder-position uint32) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-clan-ladder-list-response +(defmethod inspect ((this medius-clan-ladder-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-clan-ladder-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tclan-name[32] @ #x~X~%" (-> this clan-name)) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tstatus-code: #x~X : ~S~%") + (a2-5 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-clan-ladder-position-request +(deftype medius-clan-ladder-position-request (structure) + ((message-id uint8 21) + (clan-id int32) + (clan-ladder-stat-index int32) + (sort-order int32) + ) + ) + +;; definition for method 3 of type medius-clan-ladder-position-request +(defmethod inspect ((this medius-clan-ladder-position-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-clan-ladder-position-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tclan-ladder-stat-index: ~D~%" (-> this clan-ladder-stat-index)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tsort-order: #x~X : ~S~%") + (a2-4 (-> this sort-order)) + (v1-2 (-> this sort-order)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 #xffffff) + "extra-medius-sort-order" + ) + ((= v1-2 1) + "medius-descending" + ) + ((zero? v1-2) + "medius-ascending" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-clan-ladder-position-response +(deftype medius-clan-ladder-position-response (structure) + ((message-id uint8 21) + (ladder-position uint32) + (total-rankings uint32) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-clan-ladder-position-response +(defmethod inspect ((this medius-clan-ladder-position-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-clan-ladder-position-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (format #t "~1Ttotal-rankings: ~D~%" (-> this total-rankings)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstatus-code: #x~X : ~S~%") + (a2-4 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-clear-game-list-filter-request +(deftype medius-clear-game-list-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (filter-field int32) + ) + ) + +;; definition for method 3 of type medius-clear-game-list-filter-request +(defmethod inspect ((this medius-clear-game-list-filter-request)) + (when (not this) + (set! this this) + (goto cfg-27) + ) + (format #t "[~8x] ~A~%" this 'medius-clear-game-list-filter-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tfilter-field: #x~X : ~S~%") + (a2-3 (-> this filter-field)) + (v1-2 (-> this filter-field)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 7) + "medius-filter-generic-field-1" + ) + ((= v1-2 4) + "medius-filter-game-level" + ) + ((= v1-2 3) + "medius-filter-max-players" + ) + ((= v1-2 1) + "medius-filter-player-count" + ) + ((= v1-2 9) + "medius-filter-generic-field-3" + ) + ((= v1-2 10) + "medius-filter-lobby-worldid" + ) + ((= v1-2 2) + "medius-filter-min-players" + ) + ((= v1-2 #xffffff) + "extra-medius-game-list-filter-field" + ) + ((= v1-2 6) + "medius-filter-rules-set" + ) + ((= v1-2 5) + "medius-filter-player-skill-level" + ) + ((= v1-2 8) + "medius-filter-generic-field-2" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-27) + this + ) + +;; definition of type medius-clear-game-list-filter-response +(deftype medius-clear-game-list-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-clear-game-list-filter-response +(defmethod inspect ((this medius-clear-game-list-filter-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-clear-game-list-filter-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-clear-stored-account-info-request +(deftype medius-clear-stored-account-info-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (account-id int32) + ) + ) + +;; definition for method 3 of type medius-clear-stored-account-info-request +(defmethod inspect ((this medius-clear-stored-account-info-request)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-clear-stored-account-info-request) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tdevice: #x~X : ~S~%") + (a2-1 (-> this device)) + (v1-2 (-> this device)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "medius-hdd" + ) + ((= v1-2 #xffffff) + "extra-medius-device-type" + ) + ((= v1-2 2) + "medius-host0" + ) + ((zero? v1-2) + "medius-memcard" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tcard-port: ~D~%" (-> this card-port)) + (format #t "~1Tcard-slot: ~D~%" (-> this card-slot)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (label cfg-13) + this + ) + +;; definition of type medius-clear-stored-account-info-response +(deftype medius-clear-stored-account-info-response (structure) + ((confirmation int32) + ) + ) + +;; definition for method 3 of type medius-clear-stored-account-info-response +(defmethod inspect ((this medius-clear-stored-account-info-response)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-clear-stored-account-info-response) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tconfirmation: #x~X : ~S~%") + (a2-1 (-> this confirmation)) + (v1-2 (-> this confirmation)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 -1) + "medius-stored-file-not-found" + ) + ((zero? v1-2) + "medius-stored-success" + ) + ((= v1-2 -3) + "medius-stored-directory-not-found" + ) + ((= v1-2 #xffffff) + "extra-medius-stored-confirmation-type" + ) + ((= v1-2 -2) + "medius-stored-device-not-found" + ) + ((= v1-2 -4) + "medius-stored-item-already-exists" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-17) + this + ) + +;; definition of type medius-confirm-clan-team-challenge-request +(deftype medius-confirm-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-challenge-id int32) + ) + ) + +;; definition for method 3 of type medius-confirm-clan-team-challenge-request +(defmethod inspect ((this medius-confirm-clan-team-challenge-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-confirm-clan-team-challenge-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-challenge-id: ~D~%" (-> this clan-challenge-id)) + (label cfg-4) + this + ) + +;; definition of type medius-confirm-clan-team-challenge-response +(deftype medius-confirm-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-confirm-clan-team-challenge-response +(defmethod inspect ((this medius-confirm-clan-team-challenge-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-confirm-clan-team-challenge-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-create-channel-request0 +(deftype medius-create-channel-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (max-players int32) + (lobby-name uint8 64) + (lobby-password uint8 32) + ) + ) + +;; definition for method 3 of type medius-create-channel-request0 +(defmethod inspect ((this medius-create-channel-request0)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-create-channel-request0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tlobby-password[32] @ #x~X~%" (-> this lobby-password)) + (label cfg-4) + this + ) + +;; definition of type medius-create-channel-request1 +(deftype medius-create-channel-request1 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (max-players int32) + (lobby-name uint8 64) + (lobby-password uint8 32) + (generic-field1 uint32) + ) + ) + +;; definition for method 3 of type medius-create-channel-request1 +(defmethod inspect ((this medius-create-channel-request1)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-create-channel-request1) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tlobby-password[32] @ #x~X~%" (-> this lobby-password)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (label cfg-4) + this + ) + +;; definition of type medius-create-channel-request +(deftype medius-create-channel-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (max-players int32) + (lobby-name uint8 64) + (lobby-password uint8 32) + (generic-field1 uint32) + (generic-field2 uint32) + (generic-field3 uint32) + (generic-field4 uint32) + (generic-field-level int32) + ) + ) + +;; definition for method 3 of type medius-create-channel-request +(defmethod inspect ((this medius-create-channel-request)) + (when (not this) + (set! this this) + (goto cfg-29) + ) + (format #t "[~8x] ~A~%" this 'medius-create-channel-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tlobby-name[64] @ #x~X~%" (-> this lobby-name)) + (format #t "~1Tlobby-password[32] @ #x~X~%" (-> this lobby-password)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (format #t "~1Tgeneric-field4: ~D~%" (-> this generic-field4)) + (let ((t9-11 format) + (a0-12 #t) + (a1-11 "~1Tgeneric-field-level: #x~X : ~S~%") + (a2-11 (-> this generic-field-level)) + (v1-2 (-> this generic-field-level)) + ) + (t9-11 a0-12 a1-11 a2-11 (cond + ((= v1-2 512) + "medius-world-generic-field-level34" + ) + ((= v1-2 128) + "medius-world-generic-field-level23" + ) + ((= v1-2 2) + "medius-world-generic-field-level2" + ) + ((= v1-2 16) + "medius-world-generic-field-level12" + ) + ((= v1-2 256) + "medius-world-generic-field-level234" + ) + ((= v1-2 64) + "medius-world-generic-field-level1234" + ) + ((= v1-2 1) + "medius-world-generic-field-level1" + ) + ((= v1-2 4) + "medius-world-generic-field-level3" + ) + ((zero? v1-2) + "medius-world-generic-field-level0" + ) + ((= v1-2 32) + "medius-world-generic-field-level123" + ) + ((= v1-2 8) + "medius-world-generic-field-level4" + ) + ((= v1-2 #xffffff) + "extra-medius-world-generic-field-level-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-29) + this + ) + +;; definition of type medius-create-channel-response +(deftype medius-create-channel-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-create-channel-response +(defmethod inspect ((this medius-create-channel-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-create-channel-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-133) + this + ) + +;; definition of type medius-create-game-on-self-request +(deftype medius-create-game-on-self-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (server-version int32) + (max-players-per-world int32) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (game-name uint8 64) + (game-password uint8 32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (port int32) + (game-host-type int32) + (address-list net-address-list :inline) + ) + ) + +;; definition for method 3 of type medius-create-game-on-self-request +(defmethod inspect ((this medius-create-game-on-self-request)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-create-game-on-self-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tserver-version: ~D~%" (-> this server-version)) + (format #t "~1Tmax-players-per-world: ~D~%" (-> this max-players-per-world)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmin-players: ~D~%" (-> this min-players)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tgame-password[32] @ #x~X~%" (-> this game-password)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (format #t "~1Tport: ~D~%" (-> this port)) + (let ((t9-17 format) + (a0-18 #t) + (a1-17 "~1Tgame-host-type: #x~X : ~S~%") + (a2-17 (-> this game-host-type)) + (v1-2 (-> this game-host-type)) + ) + (t9-17 a0-18 a1-17 a2-17 (cond + ((= v1-2 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-2 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-2) + "medius-game-host-client-server" + ) + ((= v1-2 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-2 3) + "medius-game-host-lanplay" + ) + ((= v1-2 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (label cfg-17) + this + ) + +;; definition of type medius-create-game-on-self-response +(deftype medius-create-game-on-self-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-create-game-on-self-response +(defmethod inspect ((this medius-create-game-on-self-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-create-game-on-self-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-133) + this + ) + +;; definition of type medius-create-clan-request +(deftype medius-create-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (clan-name uint8 32) + ) + ) + +;; definition for method 3 of type medius-create-clan-request +(defmethod inspect ((this medius-create-clan-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-create-clan-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tclan-name[32] @ #x~X~%" (-> this clan-name)) + (label cfg-4) + this + ) + +;; definition of type medius-create-clan-response +(deftype medius-create-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + ) + ) + +;; definition for method 3 of type medius-create-clan-response +(defmethod inspect ((this medius-create-clan-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-create-clan-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (label cfg-133) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-6-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-6-h_REF.gc new file mode 100644 index 0000000000..d4200a0415 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-6-h_REF.gc @@ -0,0 +1,5732 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type medius-create-game-request0 +(deftype medius-create-game-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (game-name uint8 64) + (game-password uint8 32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (game-host-type int32) + ) + ) + +;; definition for method 3 of type medius-create-game-request0 +(defmethod inspect ((this medius-create-game-request0)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-create-game-request0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmin-players: ~D~%" (-> this min-players)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tgame-password[32] @ #x~X~%" (-> this game-password)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (let ((t9-14 format) + (a0-15 #t) + (a1-14 "~1Tgame-host-type: #x~X : ~S~%") + (a2-14 (-> this game-host-type)) + (v1-2 (-> this game-host-type)) + ) + (t9-14 a0-15 a1-14 a2-14 (cond + ((= v1-2 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-2 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-2) + "medius-game-host-client-server" + ) + ((= v1-2 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-2 3) + "medius-game-host-lanplay" + ) + ((= v1-2 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-17) + this + ) + +;; definition of type medius-create-game-request +(deftype medius-create-game-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (game-name uint8 64) + (game-password uint8 32) + (spectator-password uint8 32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (game-host-type int32) + (attributes int32) + ) + ) + +;; definition for method 3 of type medius-create-game-request +(defmethod inspect ((this medius-create-game-request)) + (when (not this) + (set! this this) + (goto cfg-28) + ) + (format #t "[~8x] ~A~%" this 'medius-create-game-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmin-players: ~D~%" (-> this min-players)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tgame-password[32] @ #x~X~%" (-> this game-password)) + (format #t "~1Tspectator-password[32] @ #x~X~%" (-> this spectator-password)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (let ((t9-15 format) + (a0-16 #t) + (a1-15 "~1Tgame-host-type: #x~X : ~S~%") + (a2-15 (-> this game-host-type)) + (v1-2 (-> this game-host-type)) + ) + (t9-15 a0-16 a1-15 a2-15 (cond + ((= v1-2 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-2 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-2) + "medius-game-host-client-server" + ) + ((= v1-2 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-2 3) + "medius-game-host-lanplay" + ) + ((= v1-2 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-16 format) + (a0-17 #t) + (a1-16 "~1Tattributes: #x~X : ~S~%") + (a2-16 (-> this attributes)) + (v1-3 (-> this attributes)) + ) + (t9-16 a0-17 a1-16 a2-16 (cond + ((= v1-3 2) + "game-world-allow-spectator" + ) + ((= v1-3 #xffffff) + "game-world-extra" + ) + ((zero? v1-3) + "game-world-none" + ) + ((= v1-3 1) + "game-world-allow-rebroadcast" + ) + ((= v1-3 4) + "game-world-internal" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-28) + this + ) + +;; definition of type medius-create-game-response +(deftype medius-create-game-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-create-game-response +(defmethod inspect ((this medius-create-game-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-create-game-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-133) + this + ) + +;; definition of type medius-delete-clan-message-request +(deftype medius-delete-clan-message-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-message-id int32) + ) + ) + +;; definition for method 3 of type medius-delete-clan-message-request +(defmethod inspect ((this medius-delete-clan-message-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-delete-clan-message-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-message-id: ~D~%" (-> this clan-message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-delete-clan-message-response +(deftype medius-delete-clan-message-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-delete-clan-message-response +(defmethod inspect ((this medius-delete-clan-message-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-delete-clan-message-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-disband-clan-request +(deftype medius-disband-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + ) + ) + +;; definition for method 3 of type medius-disband-clan-request +(defmethod inspect ((this medius-disband-clan-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-disband-clan-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (label cfg-4) + this + ) + +;; definition of type medius-disband-clan-response +(deftype medius-disband-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-disband-clan-response +(defmethod inspect ((this medius-disband-clan-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-disband-clan-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-dnas-signature-post +(deftype medius-dnas-signature-post (structure) + ((message-id uint8 21) + (session-key uint8 17) + (dnas-signature-type int32) + (dnas-signature-length int8) + (dnas-signature uint8 32) + ) + ) + +;; definition for method 3 of type medius-dnas-signature-post +(defmethod inspect ((this medius-dnas-signature-post)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-dnas-signature-post) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tdnas-signature-type: #x~X : ~S~%") + (a2-3 (-> this dnas-signature-type)) + (v1-2 (-> this dnas-signature-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 #xffffff) + "extra-medius-dnas-type" + ) + ((= v1-2 2) + "dnas-disk-id" + ) + ((= v1-2 1) + "dnas-title-id" + ) + ((zero? v1-2) + "dnas-console-id" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tdnas-signature-length: ~D~%" (-> this dnas-signature-length)) + (format #t "~1Tdnas-signature[32] @ #x~X~%" (-> this dnas-signature)) + (label cfg-13) + this + ) + +;; definition of type medius-end-game-report +(deftype medius-end-game-report (structure) + ((session-key uint8 17) + (medius-world-id int32) + (winning-team uint8 64) + (winning-player uint8 32) + (final-score int32) + ) + ) + +;; definition for method 3 of type medius-end-game-report +(defmethod inspect ((this medius-end-game-report)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-end-game-report) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Twinning-team[64] @ #x~X~%" (-> this winning-team)) + (format #t "~1Twinning-player[32] @ #x~X~%" (-> this winning-player)) + (format #t "~1Tfinal-score: ~D~%" (-> this final-score)) + (label cfg-4) + this + ) + +;; definition of type medius-error-message +(deftype medius-error-message (structure) + ((error-code int32) + (error-message uint8 256) + ) + ) + +;; definition for method 3 of type medius-error-message +(defmethod inspect ((this medius-error-message)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-error-message) + (format #t "~1Terror-code: ~D~%" (-> this error-code)) + (format #t "~1Terror-message[256] @ #x~X~%" (-> this error-message)) + (label cfg-4) + this + ) + +;; definition of type medius-find-player-request +(deftype medius-find-player-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (search-type int32) + (id int32) + (name uint8 32) + ) + ) + +;; definition for method 3 of type medius-find-player-request +(defmethod inspect ((this medius-find-player-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-find-player-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tsearch-type: #x~X : ~S~%") + (a2-3 (-> this search-type)) + (v1-2 (-> this search-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 1) + "player-account-name" + ) + ((= v1-2 #xffffff) + "extra-medius-player-search-type" + ) + ((zero? v1-2) + "player-account-id" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tname[32] @ #x~X~%" (-> this name)) + (label cfg-11) + this + ) + +;; definition of type medius-find-player-response +(deftype medius-find-player-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (application-id int32) + (application-name uint8 32) + (application-type int32) + (medius-world-id int32) + (account-id int32) + (account-name uint8 32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-find-player-response +(defmethod inspect ((this medius-find-player-response)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-find-player-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tapplication-name[32] @ #x~X~%" (-> this application-name)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tapplication-type: #x~X : ~S~%") + (a2-5 (-> this application-type)) + (v1-3 (-> this application-type)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((zero? v1-3) + "game" + ) + ((= v1-3 #xffffff) + "extra-medius-application-type" + ) + ((= v1-3 1) + "lobby-chat-channel" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-140) + this + ) + +;; definition of type medius-find-world-by-name-request +(deftype medius-find-world-by-name-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (name uint8 64) + (world-type int32) + ) + ) + +;; definition for method 3 of type medius-find-world-by-name-request +(defmethod inspect ((this medius-find-world-by-name-request)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-find-world-by-name-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tname[64] @ #x~X~%" (-> this name)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tworld-type: #x~X : ~S~%") + (a2-4 (-> this world-type)) + (v1-2 (-> this world-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 2) + "find-all-worlds" + ) + ((zero? v1-2) + "find-game-world" + ) + ((= v1-2 #xffffff) + "extra-medius-find-world-type" + ) + ((= v1-2 1) + "find-lobby-world" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-13) + this + ) + +;; definition of type medius-find-world-by-name-response +(deftype medius-find-world-by-name-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (application-id int32) + (application-name uint8 32) + (application-type int32) + (medius-world-id int32) + (world-name uint8 64) + (world-status int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-find-world-by-name-response +(defmethod inspect ((this medius-find-world-by-name-response)) + (when (not this) + (set! this this) + (goto cfg-155) + ) + (format #t "[~8x] ~A~%" this 'medius-find-world-by-name-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tapplication-name[32] @ #x~X~%" (-> this application-name)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tapplication-type: #x~X : ~S~%") + (a2-5 (-> this application-type)) + (v1-3 (-> this application-type)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((zero? v1-3) + "game" + ) + ((= v1-3 #xffffff) + "extra-medius-application-type" + ) + ((= v1-3 1) + "lobby-chat-channel" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tworld-name[64] @ #x~X~%" (-> this world-name)) + (let ((t9-8 format) + (a0-9 #t) + (a1-8 "~1Tworld-status: #x~X : ~S~%") + (a2-8 (-> this world-status)) + (v1-4 (-> this world-status)) + ) + (t9-8 a0-9 a1-8 a2-8 (cond + ((= v1-4 2) + "world-active" + ) + ((= v1-4 1) + "world-staging" + ) + ((= v1-4 5) + "world-pending-connect-to-game" + ) + ((= v1-4 4) + "world-pending-creation" + ) + ((= v1-4 #xffffff) + "extra-medius-world-status" + ) + ((= v1-4 3) + "world-closed" + ) + ((zero? v1-4) + "world-inactive" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-155) + this + ) + +;; definition of type medius-game-info-request +(deftype medius-game-info-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-game-info-request +(defmethod inspect ((this medius-game-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-game-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-game-info-response +(deftype medius-game-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (application-id int32) + (min-players int32) + (max-players int32) + (game-level int32) + (player-skill-level int32) + (player-count int32) + (game-stats uint8 256) + (game-name uint8 64) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (world-status int32) + (game-host-type int32) + ) + ) + +;; definition for method 3 of type medius-game-info-response +(defmethod inspect ((this medius-game-info-response)) + (when (not this) + (set! this this) + (goto cfg-161) + ) + (format #t "[~8x] ~A~%" this 'medius-game-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tmin-players: ~D~%" (-> this min-players)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tgame-stats[256] @ #x~X~%" (-> this game-stats)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (let ((t9-15 format) + (a0-16 #t) + (a1-15 "~1Tworld-status: #x~X : ~S~%") + (a2-15 (-> this world-status)) + (v1-3 (-> this world-status)) + ) + (t9-15 a0-16 a1-15 a2-15 (cond + ((= v1-3 2) + "world-active" + ) + ((= v1-3 1) + "world-staging" + ) + ((= v1-3 5) + "world-pending-connect-to-game" + ) + ((= v1-3 4) + "world-pending-creation" + ) + ((= v1-3 #xffffff) + "extra-medius-world-status" + ) + ((= v1-3 3) + "world-closed" + ) + ((zero? v1-3) + "world-inactive" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-16 format) + (a0-17 #t) + (a1-16 "~1Tgame-host-type: #x~X : ~S~%") + (a2-16 (-> this game-host-type)) + (v1-4 (-> this game-host-type)) + ) + (t9-16 a0-17 a1-16 a2-16 (cond + ((= v1-4 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-4 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-4) + "medius-game-host-client-server" + ) + ((= v1-4 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-4 3) + "medius-game-host-lanplay" + ) + ((= v1-4 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-161) + this + ) + +;; definition of type medius-game-list-extra-info-request +(deftype medius-game-list-extra-info-request (structure) + ((message-id uint8 21) + (page-id uint16) + (page-size uint16) + ) + ) + +;; definition for method 3 of type medius-game-list-extra-info-request +(defmethod inspect ((this medius-game-list-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-game-list-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tpage-id: ~D~%" (-> this page-id)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-game-list-extra-info-response +(deftype medius-game-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (player-count uint16) + (min-players uint16) + (max-players uint16) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (security-level int32) + (world-status int32) + (game-host-type int32) + (game-name uint8 64) + (game-stats uint8 256) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-game-list-extra-info-response +(defmethod inspect ((this medius-game-list-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-172) + ) + (format #t "[~8x] ~A~%" this 'medius-game-list-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tmin-players: ~D~%" (-> this min-players)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (let ((t9-13 format) + (a0-14 #t) + (a1-13 "~1Tsecurity-level: #x~X : ~S~%") + (a2-13 (-> this security-level)) + (v1-3 (-> this security-level)) + ) + (t9-13 a0-14 a1-13 a2-13 (cond + ((zero? v1-3) + "world-security-none" + ) + ((= v1-3 2) + "world-security-closed" + ) + ((= v1-3 #xffffff) + "world-security-extra" + ) + ((= v1-3 1) + "world-security-player-password" + ) + ((= v1-3 4) + "world-security-spectator-password" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-14 format) + (a0-15 #t) + (a1-14 "~1Tworld-status: #x~X : ~S~%") + (a2-14 (-> this world-status)) + (v1-4 (-> this world-status)) + ) + (t9-14 a0-15 a1-14 a2-14 (cond + ((= v1-4 2) + "world-active" + ) + ((= v1-4 1) + "world-staging" + ) + ((= v1-4 5) + "world-pending-connect-to-game" + ) + ((= v1-4 4) + "world-pending-creation" + ) + ((= v1-4 #xffffff) + "extra-medius-world-status" + ) + ((= v1-4 3) + "world-closed" + ) + ((zero? v1-4) + "world-inactive" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-15 format) + (a0-16 #t) + (a1-15 "~1Tgame-host-type: #x~X : ~S~%") + (a2-15 (-> this game-host-type)) + (v1-5 (-> this game-host-type)) + ) + (t9-15 a0-16 a1-15 a2-15 (cond + ((= v1-5 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-5 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-5) + "medius-game-host-client-server" + ) + ((= v1-5 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-5 3) + "medius-game-host-lanplay" + ) + ((= v1-5 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tgame-stats[256] @ #x~X~%" (-> this game-stats)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-172) + this + ) + +;; definition of type medius-game-list-request +(deftype medius-game-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (page-id int16) + (page-size int16) + ) + ) + +;; definition for method 3 of type medius-game-list-request +(defmethod inspect ((this medius-game-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-game-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tpage-id: ~D~%" (-> this page-id)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-game-list-response +(deftype medius-game-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (game-name uint8 64) + (world-status int32) + (game-host-type int32) + (player-count int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-game-list-response +(defmethod inspect ((this medius-game-list-response)) + (when (not this) + (set! this this) + (goto cfg-161) + ) + (format #t "[~8x] ~A~%" this 'medius-game-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tworld-status: #x~X : ~S~%") + (a2-5 (-> this world-status)) + (v1-3 (-> this world-status)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 2) + "world-active" + ) + ((= v1-3 1) + "world-staging" + ) + ((= v1-3 5) + "world-pending-connect-to-game" + ) + ((= v1-3 4) + "world-pending-creation" + ) + ((= v1-3 #xffffff) + "extra-medius-world-status" + ) + ((= v1-3 3) + "world-closed" + ) + ((zero? v1-3) + "world-inactive" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tgame-host-type: #x~X : ~S~%") + (a2-6 (-> this game-host-type)) + (v1-4 (-> this game-host-type)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-4 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-4 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-4) + "medius-game-host-client-server" + ) + ((= v1-4 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-4 3) + "medius-game-host-lanplay" + ) + ((= v1-4 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-161) + this + ) + +;; definition of type medius-game-world-player-list-request +(deftype medius-game-world-player-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-game-world-player-list-request +(defmethod inspect ((this medius-game-world-player-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-game-world-player-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-game-world-player-list-response +(deftype medius-game-world-player-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (stats uint8 256) + (connection-class int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-game-world-player-list-response +(defmethod inspect ((this medius-game-world-player-list-response)) + (when (not this) + (set! this this) + (goto cfg-142) + ) + (format #t "[~8x] ~A~%" this 'medius-game-world-player-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tconnection-class: #x~X : ~S~%") + (a2-6 (-> this connection-class)) + (v1-3 (-> this connection-class)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-3 1) + "ethernet" + ) + ((= v1-3 #xffffff) + "extra-medius-connection-type" + ) + ((zero? v1-3) + "modem" + ) + ((= v1-3 2) + "wireless" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-142) + this + ) + +;; definition of type medius-get-all-announcements-request +(deftype medius-get-all-announcements-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + +;; definition for method 3 of type medius-get-all-announcements-request +(defmethod inspect ((this medius-get-all-announcements-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-all-announcements-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-all-clan-messages-request +(deftype medius-get-all-clan-messages-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + +;; definition for method 3 of type medius-get-all-clan-messages-request +(defmethod inspect ((this medius-get-all-clan-messages-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-all-clan-messages-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tstart: ~D~%" (-> this start)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-get-all-clan-messages-response +(deftype medius-get-all-clan-messages-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-message-id int32) + (message uint8 200) + (status int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-all-clan-messages-response +(defmethod inspect ((this medius-get-all-clan-messages-response)) + (when (not this) + (set! this this) + (goto cfg-144) + ) + (format #t "[~8x] ~A~%" this 'medius-get-all-clan-messages-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tclan-message-id: ~D~%" (-> this clan-message-id)) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tstatus: #x~X : ~S~%") + (a2-5 (-> this status)) + (v1-3 (-> this status)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 2) + "clan-message-deleted" + ) + ((= v1-3 #xffffff) + "extra-medius-clan-message-status" + ) + ((= v1-3 1) + "clan-message-modified" + ) + ((= v1-3 3) + "clan-message-read" + ) + ((zero? v1-3) + "clan-message-unread" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-144) + this + ) + +;; definition of type medius-get-announcements-request +(deftype medius-get-announcements-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + +;; definition for method 3 of type medius-get-announcements-request +(defmethod inspect ((this medius-get-announcements-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-announcements-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-announcements-response +(deftype medius-get-announcements-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (announcement-id int32) + (announcement uint8 1000) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-announcements-response +(defmethod inspect ((this medius-get-announcements-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-announcements-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tannouncement-id: ~D~%" (-> this announcement-id)) + (format #t "~1Tannouncement[1000] @ #x~X~%" (-> this announcement)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-buddy-invitations-request +(deftype medius-get-buddy-invitations-request (structure) + ((message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-get-buddy-invitations-request +(defmethod inspect ((this medius-get-buddy-invitations-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-buddy-invitations-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-buddy-invitations-response +(deftype medius-get-buddy-invitations-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (add-type int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-buddy-invitations-response +(defmethod inspect ((this medius-get-buddy-invitations-response)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-get-buddy-invitations-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tadd-type: #x~X : ~S~%") + (a2-5 (-> this add-type)) + (v1-3 (-> this add-type)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((zero? v1-3) + "add-single" + ) + ((= v1-3 1) + "add-symmetric" + ) + ((= v1-3 #xffffff) + "extra-medius-add-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-140) + this + ) + +;; definition of type medius-get-buddy-list-extra-info-request +(deftype medius-get-buddy-list-extra-info-request (structure) + ((message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-get-buddy-list-extra-info-request +(defmethod inspect ((this medius-get-buddy-list-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-buddy-list-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-buddy-list-extra-info-response +(deftype medius-get-buddy-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-buddy-list-extra-info-response +(defmethod inspect ((this medius-get-buddy-list-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-buddy-list-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tonline-state: #~%" (-> this online-state)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-buddy-list-request +(deftype medius-get-buddy-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-get-buddy-list-request +(defmethod inspect ((this medius-get-buddy-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-buddy-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-get-buddy-list-response +(deftype medius-get-buddy-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (player-status int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-buddy-list-response +(defmethod inspect ((this medius-get-buddy-list-response)) + (when (not this) + (set! this this) + (goto cfg-146) + ) + (format #t "[~8x] ~A~%" this 'medius-get-buddy-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tplayer-status: #x~X : ~S~%") + (a2-5 (-> this player-status)) + (v1-3 (-> this player-status)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 4) + "medius-player-in-other-universe" + ) + ((= v1-3 2) + "medius-player-in-chat-world" + ) + ((= v1-3 1) + "medius-player-in-auth-world" + ) + ((= v1-3 #xffffff) + "extra-medius-player-status" + ) + ((zero? v1-3) + "medius-player-disconnected" + ) + ((= v1-3 3) + "medius-player-in-game-world" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-146) + this + ) + +;; definition of type medius-get-ignore-list-request +(deftype medius-get-ignore-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-get-ignore-list-request +(defmethod inspect ((this medius-get-ignore-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ignore-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-get-ignore-list-response +(deftype medius-get-ignore-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ignore-account-id int32) + (ignore-account-name uint8 32) + (player-status int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-ignore-list-response +(defmethod inspect ((this medius-get-ignore-list-response)) + (when (not this) + (set! this this) + (goto cfg-146) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ignore-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tignore-account-id: ~D~%" (-> this ignore-account-id)) + (format #t "~1Tignore-account-name[32] @ #x~X~%" (-> this ignore-account-name)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tplayer-status: #x~X : ~S~%") + (a2-5 (-> this player-status)) + (v1-3 (-> this player-status)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 4) + "medius-player-in-other-universe" + ) + ((= v1-3 2) + "medius-player-in-chat-world" + ) + ((= v1-3 1) + "medius-player-in-auth-world" + ) + ((= v1-3 #xffffff) + "extra-medius-player-status" + ) + ((zero? v1-3) + "medius-player-disconnected" + ) + ((= v1-3 3) + "medius-player-in-game-world" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-146) + this + ) + +;; definition of type medius-get-clan-by-idrequest +(deftype medius-get-clan-by-idrequest (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + (clan-id int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-by-idrequest +(defmethod inspect ((this medius-get-clan-by-idrequest)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-by-idrequest) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-clan-by-idresponse +(deftype medius-get-clan-by-idresponse (structure) + ((message-id uint8 21) + (status-code int32) + (application-id int32) + (clan-name uint8 32) + (leader-account-id int32) + (leader-account-name uint8 32) + (stats uint8 256) + (status int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-by-idresponse +(defmethod inspect ((this medius-get-clan-by-idresponse)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-by-idresponse) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 -980) + "medius-filter-not-found" + ) + ((= v1-2 -983) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 -963) + "medius-file-does-not-exist" + ) + ((= v1-2 -990) + "medius-not-clan-leader" + ) + ((= v1-2 -986) + "medius-exceeds-max-worlds" + ) + ((= v1-2 -959) + "medius-cache-failure" + ) + ((= v1-2 -971) + "medius-clan-not-found" + ) + ((= v1-2 -991) + "medius-wmerror" + ) + ((zero? v1-2) + "medius-success" + ) + ((= v1-2 -955) + "medius-key-error" + ) + ((= v1-2 -993) + "medius-incorrect-login-step" + ) + ((= v1-2 -982) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 -946) + "medius-server-busy" + ) + ((= v1-2 -951) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 -969) + "medius-session-key-invalid" + ) + ((= v1-2 -972) + "medius-player-banned" + ) + ((= v1-2 -978) + "medius-invalid-password" + ) + ((= v1-2 -996) + "medius-end-session-failed" + ) + ((= v1-2 -950) + "medius-feature-not-enabled" + ) + ((= v1-2 -992) + "medius-already-leader-of-clan" + ) + ((= v1-2 -999) + "medius-account-already-exists" + ) + ((= v1-2 -970) + "medius-clan-name-in-use" + ) + ((= v1-2 -948) + "medius-world-is-full" + ) + ((= v1-2 -954) + "medius-incompatible-app-id" + ) + ((= v1-2 -988) + "medius-dberror" + ) + ((= v1-2 -976) + "medius-channel-not-found" + ) + ((= v1-2 -952) + "medius-machine-banned" + ) + ((= v1-2 -975) + "medius-game-name-exists" + ) + ((= v1-2 #xffffff) + "extra-medius-callback-status" + ) + ((= v1-2 -943) + "medius-password-not-uccompliant" + ) + ((= v1-2 -944) + "medius-account-not-uccompliant" + ) + ((= v1-2 -967) + "medius-filter-failed" + ) + ((= v1-2 -974) + "medius-channel-name-exists" + ) + ((= v1-2 -945) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 -994) + "medius-registration-failed" + ) + ((= v1-2 -968) + "medius-text-string-invalid" + ) + ((= v1-2 -949) + "medius-dnassignature-logged-in" + ) + ((= v1-2 -981) + "medius-num-filters-at-max" + ) + ((= v1-2 -973) + "medius-game-name-not-found" + ) + ((= v1-2 -995) + "medius-login-failed" + ) + ((= v1-2 -977) + "medius-game-not-found" + ) + ((= v1-2 -953) + "medius-account-banned" + ) + ((= v1-2 -979) + "medius-invalid-request-msg" + ) + ((= v1-2 -956) + "medius-max-exceeded" + ) + ((= v1-2 -958) + "medius-data-already-exists" + ) + ((= v1-2 3) + "medius-world-created-size-reduced" + ) + ((= v1-2 -966) + "medius-fail" + ) + ((= v1-2 -962) + "medius-file-already-exists" + ) + ((= v1-2 -960) + "medius-file-quota-exceeded" + ) + ((= v1-2 4) + "medius-pass" + ) + ((= v1-2 1) + "medius-no-result" + ) + ((= v1-2 -985) + "medius-request-denied" + ) + ((= v1-2 -1000) + "medius-begin-session-failed" + ) + ((= v1-2 -987) + "medius-dmeerror" + ) + ((= v1-2 -997) + "medius-account-logged-in" + ) + ((= v1-2 -964) + "medius-file-no-permissions" + ) + ((= v1-2 -989) + "medius-player-not-privileged" + ) + ((= v1-2 -947) + "medius-not-clan-member" + ) + ((= v1-2 2) + "medius-request-accepted" + ) + ((= v1-2 -961) + "medius-file-invalid-filename" + ) + ((= v1-2 -957) + "medius-data-does-not-exist" + ) + ((= v1-2 -965) + "medius-file-internal-access-error" + ) + ((= v1-2 -984) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 -998) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tclan-name[32] @ #x~X~%" (-> this clan-name)) + (format #t "~1Tleader-account-id: ~D~%" (-> this leader-account-id)) + (format #t "~1Tleader-account-name[32] @ #x~X~%" (-> this leader-account-name)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (let ((t9-8 format) + (a0-9 #t) + (a1-8 "~1Tstatus: #x~X : ~S~%") + (a2-8 (-> this status)) + (v1-3 (-> this status)) + ) + (t9-8 a0-9 a1-8 a2-8 (cond + ((= v1-3 -1) + "clan-disbanded" + ) + ((= v1-3 #xffffff) + "extra-medius-clan-status" + ) + ((zero? v1-3) + "clan-active" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-140) + this + ) + +;; definition of type medius-get-clan-by-name-request +(deftype medius-get-clan-by-name-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + (clan-name uint8 32) + ) + ) + +;; definition for method 3 of type medius-get-clan-by-name-request +(defmethod inspect ((this medius-get-clan-by-name-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-by-name-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tclan-name[32] @ #x~X~%" (-> this clan-name)) + (label cfg-4) + this + ) + +;; definition of type medius-get-clan-by-name-response +(deftype medius-get-clan-by-name-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + (leader-account-id int32) + (leader-account-name uint8 32) + (stats uint8 256) + (status int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-by-name-response +(defmethod inspect ((this medius-get-clan-by-name-response)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-by-name-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tleader-account-id: ~D~%" (-> this leader-account-id)) + (format #t "~1Tleader-account-name[32] @ #x~X~%" (-> this leader-account-name)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (let ((t9-7 format) + (a0-8 #t) + (a1-7 "~1Tstatus: #x~X : ~S~%") + (a2-7 (-> this status)) + (v1-3 (-> this status)) + ) + (t9-7 a0-8 a1-7 a2-7 (cond + ((= v1-3 -1) + "clan-disbanded" + ) + ((= v1-3 #xffffff) + "extra-medius-clan-status" + ) + ((zero? v1-3) + "clan-active" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-140) + this + ) + +;; definition of type medius-get-clan-invitations-sent-request +(deftype medius-get-clan-invitations-sent-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-invitations-sent-request +(defmethod inspect ((this medius-get-clan-invitations-sent-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-invitations-sent-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tstart: ~D~%" (-> this start)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-get-clan-invitations-sent-response +(deftype medius-get-clan-invitations-sent-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (response-msg uint8 200) + (response-status int32) + (response-time int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-clan-invitations-sent-response +(defmethod inspect ((this medius-get-clan-invitations-sent-response)) + (when (not this) + (set! this this) + (goto cfg-144) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-invitations-sent-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tresponse-msg[200] @ #x~X~%" (-> this response-msg)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tresponse-status: #x~X : ~S~%") + (a2-6 (-> this response-status)) + (v1-3 (-> this response-status)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-3 #xffffff) + "extra-medius-clan-invitations-response-status" + ) + ((= v1-3 3) + "clan-invitation-revoked" + ) + ((= v1-3 2) + "clan-invitation-decline" + ) + ((zero? v1-3) + "clan-invitation-undecided" + ) + ((= v1-3 1) + "clan-invitation-accept" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tresponse-time: ~D~%" (-> this response-time)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-144) + this + ) + +;; definition of type medius-get-clan-member-list-extra-info-request +(deftype medius-get-clan-member-list-extra-info-request (structure) + ((message-id uint8 21) + (clan-id int32) + (ladder-stat-index int32) + (sort-order int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-member-list-extra-info-request +(defmethod inspect ((this medius-get-clan-member-list-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-member-list-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tladder-stat-index: ~D~%" (-> this ladder-stat-index)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tsort-order: #x~X : ~S~%") + (a2-4 (-> this sort-order)) + (v1-2 (-> this sort-order)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 #xffffff) + "extra-medius-sort-order" + ) + ((= v1-2 1) + "medius-descending" + ) + ((zero? v1-2) + "medius-ascending" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-get-clan-member-list-extra-info-response +(deftype medius-get-clan-member-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (stats uint8 256) + (online-state medius-player-online-state :inline) + (ladder-stat int32) + (ladder-position uint32) + (total-rankings uint32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-clan-member-list-extra-info-response +(defmethod inspect ((this medius-get-clan-member-list-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-member-list-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (format #t "~1Tonline-state: #~%" (-> this online-state)) + (format #t "~1Tladder-stat: ~D~%" (-> this ladder-stat)) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (format #t "~1Ttotal-rankings: ~D~%" (-> this total-rankings)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-7-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-7-h_REF.gc new file mode 100644 index 0000000000..aec376cc77 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-7-h_REF.gc @@ -0,0 +1,6201 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type medius-get-clan-member-list-request +(deftype medius-get-clan-member-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-member-list-request +(defmethod inspect ((this medius-get-clan-member-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-member-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-clan-member-list-response +(deftype medius-get-clan-member-list-response (structure) + ((message-id uint8 21) + (account-id int32) + (account-name uint8 32) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-clan-member-list-response +(defmethod inspect ((this medius-get-clan-member-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-member-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstatus-code: #x~X : ~S~%") + (a2-4 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-clan-team-challenge-history-request +(deftype medius-get-clan-team-challenge-history-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (this-clan-is-challenger int32) + (start int32) + (page-size int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-team-challenge-history-request +(defmethod inspect ((this medius-get-clan-team-challenge-history-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-team-challenge-history-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tthis-clan-is-challenger: ~D~%" (-> this this-clan-is-challenger)) + (format #t "~1Tstart: ~D~%" (-> this start)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-get-clan-team-challenge-history-response +(deftype medius-get-clan-team-challenge-history-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (against-clan-id int32) + (status int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-clan-team-challenge-history-response +(defmethod inspect ((this medius-get-clan-team-challenge-history-response)) + (when (not this) + (set! this this) + (goto cfg-146) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-team-challenge-history-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tagainst-clan-id: ~D~%" (-> this against-clan-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstatus: #x~X : ~S~%") + (a2-4 (-> this status)) + (v1-3 (-> this status)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-3 2) + "clan-challenge-revoked" + ) + ((= v1-3 3) + "clan-challenge-refused" + ) + ((= v1-3 4) + "clan-challenge-confirmed" + ) + ((zero? v1-3) + "clan-challenge-request" + ) + ((= v1-3 1) + "clan-challenge-accepted" + ) + ((= v1-3 #xffffff) + "extra-medius-clan-challenge-status" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-146) + this + ) + +;; definition of type medius-get-clan-team-challenges-request +(deftype medius-get-clan-team-challenges-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (start int32) + (page-size int32) + (status int32) + (challenged-only int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-team-challenges-request +(defmethod inspect ((this medius-get-clan-team-challenges-request)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-team-challenges-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tstart: ~D~%" (-> this start)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tstatus: #x~X : ~S~%") + (a2-6 (-> this status)) + (v1-2 (-> this status)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-2 2) + "clan-challenge-revoked" + ) + ((= v1-2 3) + "clan-challenge-refused" + ) + ((= v1-2 4) + "clan-challenge-confirmed" + ) + ((zero? v1-2) + "clan-challenge-request" + ) + ((= v1-2 1) + "clan-challenge-accepted" + ) + ((= v1-2 #xffffff) + "extra-medius-clan-challenge-status" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tchallenged-only: ~D~%" (-> this challenged-only)) + (label cfg-17) + this + ) + +;; definition of type medius-get-clan-team-challenges-response +(deftype medius-get-clan-team-challenges-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (challenger-clan-id int32) + (against-clan-id int32) + (status int32) + (response-time int32) + (challenge-msg uint8 200) + (response-msg uint8 200) + (end-of-list int8) + (clan-challenge-id int32) + ) + ) + +;; definition for method 3 of type medius-get-clan-team-challenges-response +(defmethod inspect ((this medius-get-clan-team-challenges-response)) + (when (not this) + (set! this this) + (goto cfg-146) + ) + (format #t "[~8x] ~A~%" this 'medius-get-clan-team-challenges-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tchallenger-clan-id: ~D~%" (-> this challenger-clan-id)) + (format #t "~1Tagainst-clan-id: ~D~%" (-> this against-clan-id)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tstatus: #x~X : ~S~%") + (a2-5 (-> this status)) + (v1-3 (-> this status)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 2) + "clan-challenge-revoked" + ) + ((= v1-3 3) + "clan-challenge-refused" + ) + ((= v1-3 4) + "clan-challenge-confirmed" + ) + ((zero? v1-3) + "clan-challenge-request" + ) + ((= v1-3 1) + "clan-challenge-accepted" + ) + ((= v1-3 #xffffff) + "extra-medius-clan-challenge-status" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tresponse-time: ~D~%" (-> this response-time)) + (format #t "~1Tchallenge-msg[200] @ #x~X~%" (-> this challenge-msg)) + (format #t "~1Tresponse-msg[200] @ #x~X~%" (-> this response-msg)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (format #t "~1Tclan-challenge-id: ~D~%" (-> this clan-challenge-id)) + (label cfg-146) + this + ) + +;; definition of type medius-get-game-list-filter-request +(deftype medius-get-game-list-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-get-game-list-filter-request +(defmethod inspect ((this medius-get-game-list-filter-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-game-list-filter-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-get-game-list-filter-response +(deftype medius-get-game-list-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (filter-field int32) + (comparison-operator int32) + (baseline-value int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-game-list-filter-response +(defmethod inspect ((this medius-get-game-list-filter-response)) + (when (not this) + (set! this this) + (goto cfg-171) + ) + (format #t "[~8x] ~A~%" this 'medius-get-game-list-filter-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tfilter-field: #x~X : ~S~%") + (a2-3 (-> this filter-field)) + (v1-3 (-> this filter-field)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-3 7) + "medius-filter-generic-field-1" + ) + ((= v1-3 4) + "medius-filter-game-level" + ) + ((= v1-3 3) + "medius-filter-max-players" + ) + ((= v1-3 1) + "medius-filter-player-count" + ) + ((= v1-3 9) + "medius-filter-generic-field-3" + ) + ((= v1-3 10) + "medius-filter-lobby-worldid" + ) + ((= v1-3 2) + "medius-filter-min-players" + ) + ((= v1-3 #xffffff) + "extra-medius-game-list-filter-field" + ) + ((= v1-3 6) + "medius-filter-rules-set" + ) + ((= v1-3 5) + "medius-filter-player-skill-level" + ) + ((= v1-3 8) + "medius-filter-generic-field-2" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tcomparison-operator: #x~X : ~S~%") + (a2-4 (-> this comparison-operator)) + (v1-4 (-> this comparison-operator)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-4 2) + "equal-to" + ) + ((= v1-4 1) + "less-than-or-equal-to" + ) + ((= v1-4 4) + "greater-than" + ) + ((= v1-4 3) + "greater-than-or-equal-to" + ) + ((= v1-4 #xffffff) + "extra-medius-comparison-operator" + ) + ((zero? v1-4) + "less-than" + ) + ((= v1-4 5) + "not-equals" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tbaseline-value: ~D~%" (-> this baseline-value)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-171) + this + ) + +;; definition of type medius-get-ladder-stats-request +(deftype medius-get-ladder-stats-request (structure) + ((message-id uint8 21) + (ladder-type int32) + ) + ) + +;; definition for method 3 of type medius-get-ladder-stats-request +(defmethod inspect ((this medius-get-ladder-stats-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ladder-stats-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tladder-type: #x~X : ~S~%") + (a2-2 (-> this ladder-type)) + (v1-2 (-> this ladder-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((zero? v1-2) + "medius-ladder-type-player" + ) + ((= v1-2 1) + "medius-ladder-type-clan" + ) + ((= v1-2 #xffffff) + "extra-medius-ladder-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-get-ladder-stats-response +(deftype medius-get-ladder-stats-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (stats uint32 15) + ) + ) + +;; definition for method 3 of type medius-get-ladder-stats-response +(defmethod inspect ((this medius-get-ladder-stats-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ladder-stats-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tstats[15] @ #x~X~%" (-> this stats)) + (label cfg-133) + this + ) + +;; definition of type medius-get-ladder-stats-wide-request +(deftype medius-get-ladder-stats-wide-request (structure) + ((message-id uint8 21) + (account-id-or-clan-id int32) + (ladder-type int32) + ) + ) + +;; definition for method 3 of type medius-get-ladder-stats-wide-request +(defmethod inspect ((this medius-get-ladder-stats-wide-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ladder-stats-wide-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Taccount-id-or-clan-id: ~D~%" (-> this account-id-or-clan-id)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tladder-type: #x~X : ~S~%") + (a2-3 (-> this ladder-type)) + (v1-2 (-> this ladder-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-2) + "medius-ladder-type-player" + ) + ((= v1-2 1) + "medius-ladder-type-clan" + ) + ((= v1-2 #xffffff) + "extra-medius-ladder-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-get-ladder-stats-wide-response +(deftype medius-get-ladder-stats-wide-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id-or-clan-id int32) + (stats uint32 100) + ) + ) + +;; definition for method 3 of type medius-get-ladder-stats-wide-response +(defmethod inspect ((this medius-get-ladder-stats-wide-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ladder-stats-wide-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id-or-clan-id: ~D~%" (-> this account-id-or-clan-id)) + (format #t "~1Tstats[100] @ #x~X~%" (-> this stats)) + (label cfg-133) + this + ) + +;; definition of type medius-get-ladder-stats-wide-w-idarray-request +(deftype medius-get-ladder-stats-wide-w-idarray-request (structure) + ((message-id uint8 21) + (ids uint32 50) + (ladder-type int32) + ) + ) + +;; definition for method 3 of type medius-get-ladder-stats-wide-w-idarray-request +(defmethod inspect ((this medius-get-ladder-stats-wide-w-idarray-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ladder-stats-wide-w-idarray-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tids[50] @ #x~X~%" (-> this ids)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tladder-type: #x~X : ~S~%") + (a2-3 (-> this ladder-type)) + (v1-2 (-> this ladder-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-2) + "medius-ladder-type-player" + ) + ((= v1-2 1) + "medius-ladder-type-clan" + ) + ((= v1-2 #xffffff) + "extra-medius-ladder-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-get-ladder-stats-wide-w-idarray-response +(deftype medius-get-ladder-stats-wide-w-idarray-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id-or-clan-id int32) + (stats uint32 100) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-ladder-stats-wide-w-idarray-response +(defmethod inspect ((this medius-get-ladder-stats-wide-w-idarray-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-ladder-stats-wide-w-idarray-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id-or-clan-id: ~D~%" (-> this account-id-or-clan-id)) + (format #t "~1Tstats[100] @ #x~X~%" (-> this stats)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-lobby-player-names-extra-info-request +(deftype medius-get-lobby-player-names-extra-info-request (structure) + ((message-id uint8 21) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-get-lobby-player-names-extra-info-request +(defmethod inspect ((this medius-get-lobby-player-names-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-lobby-player-names-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-lobby-player-names-extra-info-response +(deftype medius-get-lobby-player-names-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-lobby-player-names-extra-info-response +(defmethod inspect ((this medius-get-lobby-player-names-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-lobby-player-names-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tonline-state: #~%" (-> this online-state)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-lobby-player-names-request +(deftype medius-get-lobby-player-names-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-get-lobby-player-names-request +(defmethod inspect ((this medius-get-lobby-player-names-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-lobby-player-names-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-lobby-player-names-response +(deftype medius-get-lobby-player-names-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-id int32) + (account-name uint8 32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-lobby-player-names-response +(defmethod inspect ((this medius-get-lobby-player-names-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-lobby-player-names-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-locations-request +(deftype medius-get-locations-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-get-locations-request +(defmethod inspect ((this medius-get-locations-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-locations-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-get-locations-response +(deftype medius-get-locations-response (structure) + ((message-id uint8 21) + (location-id int32) + (location-name uint8 64) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-locations-response +(defmethod inspect ((this medius-get-locations-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-locations-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tlocation-id: ~D~%" (-> this location-id)) + (format #t "~1Tlocation-name[64] @ #x~X~%" (-> this location-name)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstatus-code: #x~X : ~S~%") + (a2-4 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-my-clan-messages-request +(deftype medius-get-my-clan-messages-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (start int32) + (page-size int32) + ) + ) + +;; definition for method 3 of type medius-get-my-clan-messages-request +(defmethod inspect ((this medius-get-my-clan-messages-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-my-clan-messages-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tstart: ~D~%" (-> this start)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-get-my-clan-messages-response +(deftype medius-get-my-clan-messages-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + (message uint8 200) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-my-clan-messages-response +(defmethod inspect ((this medius-get-my-clan-messages-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-my-clan-messages-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-my-clans-request +(deftype medius-get-my-clans-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start int32) + (page-size int32) + ) + ) + +;; definition for method 3 of type medius-get-my-clans-request +(defmethod inspect ((this medius-get-my-clans-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-my-clans-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tstart: ~D~%" (-> this start)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-4) + this + ) + +;; definition of type medius-get-my-clans-response +(deftype medius-get-my-clans-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (clan-id int32) + (application-id int32) + (clan-name uint8 32) + (leader-account-id int32) + (leader-account-name uint8 32) + (stats uint8 256) + (status int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-get-my-clans-response +(defmethod inspect ((this medius-get-my-clans-response)) + (when (not this) + (set! this this) + (goto cfg-140) + ) + (format #t "[~8x] ~A~%" this 'medius-get-my-clans-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tclan-name[32] @ #x~X~%" (-> this clan-name)) + (format #t "~1Tleader-account-id: ~D~%" (-> this leader-account-id)) + (format #t "~1Tleader-account-name[32] @ #x~X~%" (-> this leader-account-name)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (let ((t9-9 format) + (a0-10 #t) + (a1-9 "~1Tstatus: #x~X : ~S~%") + (a2-9 (-> this status)) + (v1-3 (-> this status)) + ) + (t9-9 a0-10 a1-9 a2-9 (cond + ((= v1-3 -1) + "clan-disbanded" + ) + ((= v1-3 #xffffff) + "extra-medius-clan-status" + ) + ((zero? v1-3) + "clan-active" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-140) + this + ) + +;; definition of type medius-get-my-iprequest +(deftype medius-get-my-iprequest (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-get-my-iprequest +(defmethod inspect ((this medius-get-my-iprequest)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-my-iprequest) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-get-my-ipresponse +(deftype medius-get-my-ipresponse (structure) + ((message-id uint8 21) + (ip uint8 20) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-get-my-ipresponse +(defmethod inspect ((this medius-get-my-ipresponse)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-my-ipresponse) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tip[20] @ #x~X~%" (-> this ip)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-get-policy-request +(deftype medius-get-policy-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (policy int32) + ) + ) + +;; definition for method 3 of type medius-get-policy-request +(defmethod inspect ((this medius-get-policy-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-get-policy-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tpolicy: #x~X : ~S~%") + (a2-3 (-> this policy)) + (v1-2 (-> this policy)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 #xffffff) + "extra-medius-policy-type" + ) + ((zero? v1-2) + "usage" + ) + ((= v1-2 1) + "privacy" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-get-policy-response +(deftype medius-get-policy-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (policy uint8 256) + (end-of-text int8) + ) + ) + +;; definition for method 3 of type medius-get-policy-response +(defmethod inspect ((this medius-get-policy-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-policy-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tpolicy[256] @ #x~X~%" (-> this policy)) + (format #t "~1Tend-of-text: ~D~%" (-> this end-of-text)) + (label cfg-133) + this + ) + +;; definition of type medius-get-stored-account-info-request +(deftype medius-get-stored-account-info-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (account-id int32) + ) + ) + +;; definition for method 3 of type medius-get-stored-account-info-request +(defmethod inspect ((this medius-get-stored-account-info-request)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-get-stored-account-info-request) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tdevice: #x~X : ~S~%") + (a2-1 (-> this device)) + (v1-2 (-> this device)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "medius-hdd" + ) + ((= v1-2 #xffffff) + "extra-medius-device-type" + ) + ((= v1-2 2) + "medius-host0" + ) + ((zero? v1-2) + "medius-memcard" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tcard-port: ~D~%" (-> this card-port)) + (format #t "~1Tcard-slot: ~D~%" (-> this card-slot)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (label cfg-13) + this + ) + +;; definition of type medius-get-stored-account-info-response +(deftype medius-get-stored-account-info-response (structure) + ((account-id int32) + (account-name uint8 32) + (account-password uint8 32) + ) + ) + +;; definition for method 3 of type medius-get-stored-account-info-response +(defmethod inspect ((this medius-get-stored-account-info-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-stored-account-info-response) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Taccount-password[32] @ #x~X~%" (-> this account-password)) + (label cfg-4) + this + ) + +;; definition of type medius-get-stored-account-list-request +(deftype medius-get-stored-account-list-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + ) + ) + +;; definition for method 3 of type medius-get-stored-account-list-request +(defmethod inspect ((this medius-get-stored-account-list-request)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-get-stored-account-list-request) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tdevice: #x~X : ~S~%") + (a2-1 (-> this device)) + (v1-2 (-> this device)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "medius-hdd" + ) + ((= v1-2 #xffffff) + "extra-medius-device-type" + ) + ((= v1-2 2) + "medius-host0" + ) + ((zero? v1-2) + "medius-memcard" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tcard-port: ~D~%" (-> this card-port)) + (format #t "~1Tcard-slot: ~D~%" (-> this card-slot)) + (label cfg-13) + this + ) + +;; definition of type medius-get-stored-account-list-response +(deftype medius-get-stored-account-list-response (structure) + ((account-list uint8 256) + ) + ) + +;; definition for method 3 of type medius-get-stored-account-list-response +(defmethod inspect ((this medius-get-stored-account-list-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-stored-account-list-response) + (format #t "~1Taccount-list[256] @ #x~X~%" (-> this account-list)) + (label cfg-4) + this + ) + +;; definition of type medius-get-total-channels-request +(deftype medius-get-total-channels-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + +;; definition for method 3 of type medius-get-total-channels-request +(defmethod inspect ((this medius-get-total-channels-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-channels-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-total-channels-response +(deftype medius-get-total-channels-response (structure) + ((message-id uint8 21) + (total uint32) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-get-total-channels-response +(defmethod inspect ((this medius-get-total-channels-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-channels-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Ttotal: ~D~%" (-> this total)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-get-total-games-request +(deftype medius-get-total-games-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + +;; definition for method 3 of type medius-get-total-games-request +(defmethod inspect ((this medius-get-total-games-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-games-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-total-games-response +(deftype medius-get-total-games-response (structure) + ((message-id uint8 21) + (total uint32) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-get-total-games-response +(defmethod inspect ((this medius-get-total-games-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-games-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Ttotal: ~D~%" (-> this total)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-get-total-rankings-request +(deftype medius-get-total-rankings-request (structure) + ((message-id uint8 21) + (ladder-type int32) + ) + ) + +;; definition for method 3 of type medius-get-total-rankings-request +(defmethod inspect ((this medius-get-total-rankings-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-rankings-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tladder-type: #x~X : ~S~%") + (a2-2 (-> this ladder-type)) + (v1-2 (-> this ladder-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((zero? v1-2) + "medius-ladder-type-player" + ) + ((= v1-2 1) + "medius-ladder-type-clan" + ) + ((= v1-2 #xffffff) + "extra-medius-ladder-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-get-total-rankings-response +(deftype medius-get-total-rankings-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (total-rankings uint32) + ) + ) + +;; definition for method 3 of type medius-get-total-rankings-response +(defmethod inspect ((this medius-get-total-rankings-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-rankings-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Ttotal-rankings: ~D~%" (-> this total-rankings)) + (label cfg-133) + this + ) + +;; definition of type medius-get-total-users-request +(deftype medius-get-total-users-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (application-id int32) + ) + ) + +;; definition for method 3 of type medius-get-total-users-request +(defmethod inspect ((this medius-get-total-users-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-users-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (label cfg-4) + this + ) + +;; definition of type medius-get-total-users-response +(deftype medius-get-total-users-response (structure) + ((message-id uint8 21) + (total-in-system uint32) + (total-in-game uint32) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-get-total-users-response +(defmethod inspect ((this medius-get-total-users-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-get-total-users-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Ttotal-in-system: ~D~%" (-> this total-in-system)) + (format #t "~1Ttotal-in-game: ~D~%" (-> this total-in-game)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstatus-code: #x~X : ~S~%") + (a2-4 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-get-world-security-level-request +(deftype medius-get-world-security-level-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (app-type int32) + ) + ) + +;; definition for method 3 of type medius-get-world-security-level-request +(defmethod inspect ((this medius-get-world-security-level-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-get-world-security-level-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tapp-type: #x~X : ~S~%") + (a2-4 (-> this app-type)) + (v1-2 (-> this app-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((zero? v1-2) + "game" + ) + ((= v1-2 #xffffff) + "extra-medius-application-type" + ) + ((= v1-2 1) + "lobby-chat-channel" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-get-world-security-level-response +(deftype medius-get-world-security-level-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (medius-world-id int32) + (app-type int32) + (security-level int32) + ) + ) + +;; definition for method 3 of type medius-get-world-security-level-response +(defmethod inspect ((this medius-get-world-security-level-response)) + (when (not this) + (set! this this) + (goto cfg-151) + ) + (format #t "[~8x] ~A~%" this 'medius-get-world-security-level-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tapp-type: #x~X : ~S~%") + (a2-4 (-> this app-type)) + (v1-3 (-> this app-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((zero? v1-3) + "game" + ) + ((= v1-3 #xffffff) + "extra-medius-application-type" + ) + ((= v1-3 1) + "lobby-chat-channel" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tsecurity-level: #x~X : ~S~%") + (a2-5 (-> this security-level)) + (v1-4 (-> this security-level)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((zero? v1-4) + "world-security-none" + ) + ((= v1-4 2) + "world-security-closed" + ) + ((= v1-4 #xffffff) + "world-security-extra" + ) + ((= v1-4 1) + "world-security-player-password" + ) + ((= v1-4 4) + "world-security-spectator-password" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-151) + this + ) + +;; definition of type medius-initialize-storage-request +(deftype medius-initialize-storage-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (icon-location uint8 64) + (sceterritory int32) + ) + ) + +;; definition for method 3 of type medius-initialize-storage-request +(defmethod inspect ((this medius-initialize-storage-request)) + (when (not this) + (set! this this) + (goto cfg-28) + ) + (format #t "[~8x] ~A~%" this 'medius-initialize-storage-request) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tdevice: #x~X : ~S~%") + (a2-1 (-> this device)) + (v1-2 (-> this device)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "medius-hdd" + ) + ((= v1-2 #xffffff) + "extra-medius-device-type" + ) + ((= v1-2 2) + "medius-host0" + ) + ((zero? v1-2) + "medius-memcard" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tcard-port: ~D~%" (-> this card-port)) + (format #t "~1Tcard-slot: ~D~%" (-> this card-slot)) + (format #t "~1Ticon-location[64] @ #x~X~%" (-> this icon-location)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tsceterritory: #x~X : ~S~%") + (a2-5 (-> this sceterritory)) + (v1-3 (-> this sceterritory)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 5) + "scei-thirdparty" + ) + ((= v1-3 3) + "scea-thirdparty" + ) + ((= v1-3 1) + "scee" + ) + ((= v1-3 #xffffff) + "extra-sceterritory-type" + ) + ((= v1-3 4) + "scee-thirdparty" + ) + ((= v1-3 2) + "scei" + ) + ((zero? v1-3) + "scea" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-28) + this + ) + +;; definition of type medius-initialize-storage-response +(deftype medius-initialize-storage-response (structure) + ((confirmation int32) + ) + ) + +;; definition for method 3 of type medius-initialize-storage-response +(defmethod inspect ((this medius-initialize-storage-response)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-initialize-storage-response) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tconfirmation: #x~X : ~S~%") + (a2-1 (-> this confirmation)) + (v1-2 (-> this confirmation)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 -1) + "medius-stored-file-not-found" + ) + ((zero? v1-2) + "medius-stored-success" + ) + ((= v1-2 -3) + "medius-stored-directory-not-found" + ) + ((= v1-2 #xffffff) + "extra-medius-stored-confirmation-type" + ) + ((= v1-2 -2) + "medius-stored-device-not-found" + ) + ((= v1-2 -4) + "medius-stored-item-already-exists" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-17) + this + ) + +;; definition of type medius-invite-player-to-clan-by-name-request +(deftype medius-invite-player-to-clan-by-name-request (structure) + ((message-id uint8 21) + (account-name uint8 32) + (invite-message uint8 200) + ) + ) + +;; definition for method 3 of type medius-invite-player-to-clan-by-name-request +(defmethod inspect ((this medius-invite-player-to-clan-by-name-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-invite-player-to-clan-by-name-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tinvite-message[200] @ #x~X~%" (-> this invite-message)) + (label cfg-4) + this + ) + +;; definition of type medius-invite-player-to-clan-request +(deftype medius-invite-player-to-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + (invite-message uint8 200) + ) + ) + +;; definition for method 3 of type medius-invite-player-to-clan-request +(defmethod inspect ((this medius-invite-player-to-clan-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-invite-player-to-clan-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tplayer-account-id: ~D~%" (-> this player-account-id)) + (format #t "~1Tinvite-message[200] @ #x~X~%" (-> this invite-message)) + (label cfg-4) + this + ) + +;; definition of type medius-invite-player-to-clan-response +(deftype medius-invite-player-to-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-invite-player-to-clan-response +(defmethod inspect ((this medius-invite-player-to-clan-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-invite-player-to-clan-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-join-channel-fwd-request +(deftype medius-join-channel-fwd-request (structure) + ((message-id uint8 21) + (player-session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-join-channel-fwd-request +(defmethod inspect ((this medius-join-channel-fwd-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-join-channel-fwd-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tplayer-session-key[17] @ #x~X~%" (-> this player-session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-join-channel-fwd-response +(deftype medius-join-channel-fwd-response (structure) + ((message-id uint8 21) + (player-session-key uint8 17) + (access-key uint8 17) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-join-channel-fwd-response +(defmethod inspect ((this medius-join-channel-fwd-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-join-channel-fwd-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tplayer-session-key[17] @ #x~X~%" (-> this player-session-key)) + (format #t "~1Taccess-key[17] @ #x~X~%" (-> this access-key)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstatus-code: #x~X : ~S~%") + (a2-4 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-join-channel-request +(deftype medius-join-channel-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (lobby-channel-password uint8 32) + ) + ) + +;; definition for method 3 of type medius-join-channel-request +(defmethod inspect ((this medius-join-channel-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-join-channel-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tlobby-channel-password[32] @ #x~X~%" (-> this lobby-channel-password)) + (label cfg-4) + this + ) + +;; definition of type medius-join-channel-response +(deftype medius-join-channel-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (connect-info net-connection-info :inline) + ) + ) + +;; definition for method 3 of type medius-join-channel-response +(defmethod inspect ((this medius-join-channel-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-join-channel-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tconnect-info: #~%" (-> this connect-info)) + (label cfg-133) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-8-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-8-h_REF.gc new file mode 100644 index 0000000000..e464afa18f --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-8-h_REF.gc @@ -0,0 +1,6722 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type medius-join-game-request0 +(deftype medius-join-game-request0 (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (game-password uint8 32) + (game-host-type int32) + (address-list net-address-list :inline) + ) + ) + +;; definition for method 3 of type medius-join-game-request0 +(defmethod inspect ((this medius-join-game-request0)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-join-game-request0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tgame-password[32] @ #x~X~%" (-> this game-password)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tgame-host-type: #x~X : ~S~%") + (a2-5 (-> this game-host-type)) + (v1-2 (-> this game-host-type)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-2 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-2 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-2) + "medius-game-host-client-server" + ) + ((= v1-2 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-2 3) + "medius-game-host-lanplay" + ) + ((= v1-2 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (label cfg-17) + this + ) + +;; definition of type medius-join-game-request +(deftype medius-join-game-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (join-type int32) + (game-password uint8 32) + (game-host-type int32) + (pub-key rsa-key :inline) + (address-list net-address-list :inline) + ) + ) + +;; definition for method 3 of type medius-join-game-request +(defmethod inspect ((this medius-join-game-request)) + (when (not this) + (set! this this) + (goto cfg-26) + ) + (format #t "[~8x] ~A~%" this 'medius-join-game-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tjoin-type: #x~X : ~S~%") + (a2-4 (-> this join-type)) + (v1-2 (-> this join-type)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((zero? v1-2) + "medius-join-as-player" + ) + ((= v1-2 2) + "medius-join-as-mass-spectator" + ) + ((= v1-2 1) + "medius-join-as-spectator" + ) + ((= v1-2 #xffffff) + "extra-medius-join-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tgame-password[32] @ #x~X~%" (-> this game-password)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tgame-host-type: #x~X : ~S~%") + (a2-6 (-> this game-host-type)) + (v1-3 (-> this game-host-type)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-3 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-3 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-3) + "medius-game-host-client-server" + ) + ((= v1-3 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-3 3) + "medius-game-host-lanplay" + ) + ((= v1-3 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tpub-key: #~%" (-> this pub-key)) + (format #t "~1Taddress-list: #~%" (-> this address-list)) + (label cfg-26) + this + ) + +;; definition of type medius-join-game-response +(deftype medius-join-game-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (game-host-type int32) + (connect-info net-connection-info :inline) + ) + ) + +;; definition for method 3 of type medius-join-game-response +(defmethod inspect ((this medius-join-game-response)) + (when (not this) + (set! this this) + (goto cfg-146) + ) + (format #t "[~8x] ~A~%" this 'medius-join-game-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tgame-host-type: #x~X : ~S~%") + (a2-3 (-> this game-host-type)) + (v1-3 (-> this game-host-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-3 4) + "medius-game-host-client-server-aux-udp" + ) + ((= v1-3 #xffffff) + "extra-medius-game-host" + ) + ((zero? v1-3) + "medius-game-host-client-server" + ) + ((= v1-3 2) + "medius-game-host-peer-to-peer" + ) + ((= v1-3 3) + "medius-game-host-lanplay" + ) + ((= v1-3 1) + "medius-game-host-integrated-server" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tconnect-info: #~%" (-> this connect-info)) + (label cfg-146) + this + ) + +;; definition of type medius-ladder-list-extra-info-request +(deftype medius-ladder-list-extra-info-request (structure) + ((message-id uint8 21) + (ladder-stat-index int32) + (sort-order int32) + (start-position uint32) + (page-size uint32) + ) + ) + +;; definition for method 3 of type medius-ladder-list-extra-info-request +(defmethod inspect ((this medius-ladder-list-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-list-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tladder-stat-index: ~D~%" (-> this ladder-stat-index)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tsort-order: #x~X : ~S~%") + (a2-3 (-> this sort-order)) + (v1-2 (-> this sort-order)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 #xffffff) + "extra-medius-sort-order" + ) + ((= v1-2 1) + "medius-descending" + ) + ((zero? v1-2) + "medius-ascending" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tstart-position: ~D~%" (-> this start-position)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-11) + this + ) + +;; definition of type medius-ladder-list-extra-info-response0 +(deftype medius-ladder-list-extra-info-response0 (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ladder-position uint32) + (account-id int32) + (account-name uint8 32) + (account-stats uint8 256) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-ladder-list-extra-info-response0 +(defmethod inspect ((this medius-ladder-list-extra-info-response0)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-list-extra-info-response0) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Taccount-stats[256] @ #x~X~%" (-> this account-stats)) + (format #t "~1Tonline-state: #~%" (-> this online-state)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-ladder-list-extra-info-response +(deftype medius-ladder-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ladder-position uint32) + (ladder-stat int32) + (account-id int32) + (account-name uint8 32) + (account-stats uint8 256) + (online-state medius-player-online-state :inline) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-ladder-list-extra-info-response +(defmethod inspect ((this medius-ladder-list-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-list-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (format #t "~1Tladder-stat: ~D~%" (-> this ladder-stat)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Taccount-stats[256] @ #x~X~%" (-> this account-stats)) + (format #t "~1Tonline-state: #~%" (-> this online-state)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-ladder-list-request +(deftype medius-ladder-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (start-byte uint32) + (end-byte uint32) + (sort-order int32) + (start-position uint32) + (page-size uint32) + ) + ) + +;; definition for method 3 of type medius-ladder-list-request +(defmethod inspect ((this medius-ladder-list-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tstart-byte: ~D~%" (-> this start-byte)) + (format #t "~1Tend-byte: ~D~%" (-> this end-byte)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tsort-order: #x~X : ~S~%") + (a2-5 (-> this sort-order)) + (v1-2 (-> this sort-order)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-2 #xffffff) + "extra-medius-sort-order" + ) + ((= v1-2 1) + "medius-descending" + ) + ((zero? v1-2) + "medius-ascending" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tstart-position: ~D~%" (-> this start-position)) + (format #t "~1Tpage-size: ~D~%" (-> this page-size)) + (label cfg-11) + this + ) + +;; definition of type medius-ladder-list-response +(deftype medius-ladder-list-response (structure) + ((message-id uint8 21) + (account-id int32) + (account-name uint8 32) + (ladder-position uint32) + (status-code medius-status-code) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-ladder-list-response +(defmethod inspect ((this medius-ladder-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tstatus-code: #x~X : ~S~%") + (a2-5 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-ladder-position-extra-info-request +(deftype medius-ladder-position-extra-info-request (structure) + ((message-id uint8 21) + (account-id int32) + (ladder-stat-index int32) + (sort-order int32) + ) + ) + +;; definition for method 3 of type medius-ladder-position-extra-info-request +(defmethod inspect ((this medius-ladder-position-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-position-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Tladder-stat-index: ~D~%" (-> this ladder-stat-index)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tsort-order: #x~X : ~S~%") + (a2-4 (-> this sort-order)) + (v1-2 (-> this sort-order)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 #xffffff) + "extra-medius-sort-order" + ) + ((= v1-2 1) + "medius-descending" + ) + ((zero? v1-2) + "medius-ascending" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-ladder-position-extra-info-response +(deftype medius-ladder-position-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (ladder-position uint32) + (total-rankings uint32) + ) + ) + +;; definition for method 3 of type medius-ladder-position-extra-info-response +(defmethod inspect ((this medius-ladder-position-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-position-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (format #t "~1Ttotal-rankings: ~D~%" (-> this total-rankings)) + (label cfg-133) + this + ) + +;; definition of type medius-ladder-position-request +(deftype medius-ladder-position-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + (start-byte uint32) + (end-byte uint32) + (sort-order int32) + ) + ) + +;; definition for method 3 of type medius-ladder-position-request +(defmethod inspect ((this medius-ladder-position-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-position-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Tstart-byte: ~D~%" (-> this start-byte)) + (format #t "~1Tend-byte: ~D~%" (-> this end-byte)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tsort-order: #x~X : ~S~%") + (a2-6 (-> this sort-order)) + (v1-2 (-> this sort-order)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-2 #xffffff) + "extra-medius-sort-order" + ) + ((= v1-2 1) + "medius-descending" + ) + ((zero? v1-2) + "medius-ascending" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-11) + this + ) + +;; definition of type medius-ladder-position-response +(deftype medius-ladder-position-response (structure) + ((message-id uint8 21) + (ladder-position uint32) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-ladder-position-response +(defmethod inspect ((this medius-ladder-position-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-position-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-ladder-position-fast-request +(deftype medius-ladder-position-fast-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + (new-stats-score int32) + ) + ) + +;; definition for method 3 of type medius-ladder-position-fast-request +(defmethod inspect ((this medius-ladder-position-fast-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-position-fast-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Tnew-stats-score: ~D~%" (-> this new-stats-score)) + (label cfg-4) + this + ) + +;; definition of type medius-ladder-position-fast-response +(deftype medius-ladder-position-fast-response (structure) + ((message-id uint8 21) + (ladder-position uint32) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-ladder-position-fast-response +(defmethod inspect ((this medius-ladder-position-fast-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-ladder-position-fast-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tladder-position: ~D~%" (-> this ladder-position)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-lobby-world-player-list-request +(deftype medius-lobby-world-player-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-lobby-world-player-list-request +(defmethod inspect ((this medius-lobby-world-player-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-lobby-world-player-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-lobby-world-player-list-response +(deftype medius-lobby-world-player-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (player-status int32) + (account-id int32) + (account-name uint8 32) + (stats uint8 256) + (connection-class int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-lobby-world-player-list-response +(defmethod inspect ((this medius-lobby-world-player-list-response)) + (when (not this) + (set! this this) + (goto cfg-155) + ) + (format #t "[~8x] ~A~%" this 'medius-lobby-world-player-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tplayer-status: #x~X : ~S~%") + (a2-3 (-> this player-status)) + (v1-3 (-> this player-status)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-3 4) + "medius-player-in-other-universe" + ) + ((= v1-3 2) + "medius-player-in-chat-world" + ) + ((= v1-3 1) + "medius-player-in-auth-world" + ) + ((= v1-3 #xffffff) + "extra-medius-player-status" + ) + ((zero? v1-3) + "medius-player-disconnected" + ) + ((= v1-3 3) + "medius-player-in-game-world" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (let ((t9-7 format) + (a0-8 #t) + (a1-7 "~1Tconnection-class: #x~X : ~S~%") + (a2-7 (-> this connection-class)) + (v1-4 (-> this connection-class)) + ) + (t9-7 a0-8 a1-7 a2-7 (cond + ((= v1-4 1) + "ethernet" + ) + ((= v1-4 #xffffff) + "extra-medius-connection-type" + ) + ((zero? v1-4) + "modem" + ) + ((= v1-4 2) + "wireless" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-155) + this + ) + +;; definition of type medius-machine-signature-post +(deftype medius-machine-signature-post (structure) + ((message-id uint8 21) + (session-key uint8 17) + (machine-signature uint8 128) + ) + ) + +;; definition for method 3 of type medius-machine-signature-post +(defmethod inspect ((this medius-machine-signature-post)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-machine-signature-post) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmachine-signature[128] @ #x~X~%" (-> this machine-signature)) + (label cfg-4) + this + ) + +;; definition of type medius-modify-clan-message-request +(deftype medius-modify-clan-message-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-message-id int32) + (new-message uint8 200) + ) + ) + +;; definition for method 3 of type medius-modify-clan-message-request +(defmethod inspect ((this medius-modify-clan-message-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-modify-clan-message-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-message-id: ~D~%" (-> this clan-message-id)) + (format #t "~1Tnew-message[200] @ #x~X~%" (-> this new-message)) + (label cfg-4) + this + ) + +;; definition of type medius-modify-clan-message-response +(deftype medius-modify-clan-message-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-modify-clan-message-response +(defmethod inspect ((this medius-modify-clan-message-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-modify-clan-message-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-pick-location-request +(deftype medius-pick-location-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (location-id int32) + ) + ) + +;; definition for method 3 of type medius-pick-location-request +(defmethod inspect ((this medius-pick-location-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-pick-location-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tlocation-id: ~D~%" (-> this location-id)) + (label cfg-4) + this + ) + +;; definition of type medius-pick-location-response +(deftype medius-pick-location-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-pick-location-response +(defmethod inspect ((this medius-pick-location-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-pick-location-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-player-info-request +(deftype medius-player-info-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + ) + ) + +;; definition for method 3 of type medius-player-info-request +(defmethod inspect ((this medius-player-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-player-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (label cfg-4) + this + ) + +;; definition of type medius-player-info-response +(deftype medius-player-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (account-name uint8 32) + (application-id int32) + (player-status int32) + (connection-class int32) + (stats uint8 256) + ) + ) + +;; definition for method 3 of type medius-player-info-response +(defmethod inspect ((this medius-player-info-response)) + (when (not this) + (set! this this) + (goto cfg-155) + ) + (format #t "[~8x] ~A~%" this 'medius-player-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (let ((t9-5 format) + (a0-6 #t) + (a1-5 "~1Tplayer-status: #x~X : ~S~%") + (a2-5 (-> this player-status)) + (v1-3 (-> this player-status)) + ) + (t9-5 a0-6 a1-5 a2-5 (cond + ((= v1-3 4) + "medius-player-in-other-universe" + ) + ((= v1-3 2) + "medius-player-in-chat-world" + ) + ((= v1-3 1) + "medius-player-in-auth-world" + ) + ((= v1-3 #xffffff) + "extra-medius-player-status" + ) + ((zero? v1-3) + "medius-player-disconnected" + ) + ((= v1-3 3) + "medius-player-in-game-world" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tconnection-class: #x~X : ~S~%") + (a2-6 (-> this connection-class)) + (v1-4 (-> this connection-class)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-4 1) + "ethernet" + ) + ((= v1-4 #xffffff) + "extra-medius-connection-type" + ) + ((zero? v1-4) + "modem" + ) + ((= v1-4 2) + "wireless" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (label cfg-155) + this + ) + +;; definition of type medius-player-report +(deftype medius-player-report (structure) + ((session-key uint8 17) + (medius-world-id int32) + (stats uint8 256) + ) + ) + +;; definition for method 3 of type medius-player-report +(defmethod inspect ((this medius-player-report)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-player-report) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (label cfg-4) + this + ) + +;; definition of type medius-reassign-game-medius-world-id +(deftype medius-reassign-game-medius-world-id (structure) + ((old-medius-world-id int32) + (new-medius-world-id int32) + ) + ) + +;; definition for method 3 of type medius-reassign-game-medius-world-id +(defmethod inspect ((this medius-reassign-game-medius-world-id)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-reassign-game-medius-world-id) + (format #t "~1Told-medius-world-id: ~D~%" (-> this old-medius-world-id)) + (format #t "~1Tnew-medius-world-id: ~D~%" (-> this new-medius-world-id)) + (label cfg-4) + this + ) + +;; definition of type medius-remove-from-buddy-list-request +(deftype medius-remove-from-buddy-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (account-id int32) + ) + ) + +;; definition for method 3 of type medius-remove-from-buddy-list-request +(defmethod inspect ((this medius-remove-from-buddy-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-remove-from-buddy-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (label cfg-4) + this + ) + +;; definition of type medius-remove-from-buddy-list-response +(deftype medius-remove-from-buddy-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-remove-from-buddy-list-response +(defmethod inspect ((this medius-remove-from-buddy-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-remove-from-buddy-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-remove-from-ignore-list-request +(deftype medius-remove-from-ignore-list-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (ignore-account-id int32) + ) + ) + +;; definition for method 3 of type medius-remove-from-ignore-list-request +(defmethod inspect ((this medius-remove-from-ignore-list-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-remove-from-ignore-list-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tignore-account-id: ~D~%" (-> this ignore-account-id)) + (label cfg-4) + this + ) + +;; definition of type medius-remove-from-ignore-list-response +(deftype medius-remove-from-ignore-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-remove-from-ignore-list-response +(defmethod inspect ((this medius-remove-from-ignore-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-remove-from-ignore-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-remove-player-from-clan-request +(deftype medius-remove-player-from-clan-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + (clan-id int32) + ) + ) + +;; definition for method 3 of type medius-remove-player-from-clan-request +(defmethod inspect ((this medius-remove-player-from-clan-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-remove-player-from-clan-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tplayer-account-id: ~D~%" (-> this player-account-id)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (label cfg-4) + this + ) + +;; definition of type medius-remove-player-from-clan-response +(deftype medius-remove-player-from-clan-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-remove-player-from-clan-response +(defmethod inspect ((this medius-remove-player-from-clan-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-remove-player-from-clan-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-request-clan-team-challenge-request +(deftype medius-request-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (message uint8 200) + ) + ) + +;; definition for method 3 of type medius-request-clan-team-challenge-request +(defmethod inspect ((this medius-request-clan-team-challenge-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-request-clan-team-challenge-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (label cfg-4) + this + ) + +;; definition of type medius-request-clan-team-challenge-response +(deftype medius-request-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-request-clan-team-challenge-response +(defmethod inspect ((this medius-request-clan-team-challenge-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-request-clan-team-challenge-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-respond-to-clan-invitation-request +(deftype medius-respond-to-clan-invitation-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-invitation-id int32) + (response int32) + (message uint8 200) + ) + ) + +;; definition for method 3 of type medius-respond-to-clan-invitation-request +(defmethod inspect ((this medius-respond-to-clan-invitation-request)) + (when (not this) + (set! this this) + (goto cfg-15) + ) + (format #t "[~8x] ~A~%" this 'medius-respond-to-clan-invitation-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-invitation-id: ~D~%" (-> this clan-invitation-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tresponse: #x~X : ~S~%") + (a2-4 (-> this response)) + (v1-2 (-> this response)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 #xffffff) + "extra-medius-clan-invitations-response-status" + ) + ((= v1-2 3) + "clan-invitation-revoked" + ) + ((= v1-2 2) + "clan-invitation-decline" + ) + ((zero? v1-2) + "clan-invitation-undecided" + ) + ((= v1-2 1) + "clan-invitation-accept" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (label cfg-15) + this + ) + +;; definition of type medius-respond-to-clan-invitation-response +(deftype medius-respond-to-clan-invitation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-respond-to-clan-invitation-response +(defmethod inspect ((this medius-respond-to-clan-invitation-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-respond-to-clan-invitation-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-respond-to-clan-team-challenge-request +(deftype medius-respond-to-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-challenge-id int32) + (challenge-status int32) + (message uint8 200) + ) + ) + +;; definition for method 3 of type medius-respond-to-clan-team-challenge-request +(defmethod inspect ((this medius-respond-to-clan-team-challenge-request)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-respond-to-clan-team-challenge-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-challenge-id: ~D~%" (-> this clan-challenge-id)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tchallenge-status: #x~X : ~S~%") + (a2-4 (-> this challenge-status)) + (v1-2 (-> this challenge-status)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 2) + "clan-challenge-revoked" + ) + ((= v1-2 3) + "clan-challenge-refused" + ) + ((= v1-2 4) + "clan-challenge-confirmed" + ) + ((zero? v1-2) + "clan-challenge-request" + ) + ((= v1-2 1) + "clan-challenge-accepted" + ) + ((= v1-2 #xffffff) + "extra-medius-clan-challenge-status" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (label cfg-17) + this + ) + +;; definition of type medius-respond-to-clan-team-challenge-response +(deftype medius-respond-to-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-respond-to-clan-team-challenge-response +(defmethod inspect ((this medius-respond-to-clan-team-challenge-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-respond-to-clan-team-challenge-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-revoke-clan-invitation-request +(deftype medius-revoke-clan-invitation-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (player-account-id int32) + ) + ) + +;; definition for method 3 of type medius-revoke-clan-invitation-request +(defmethod inspect ((this medius-revoke-clan-invitation-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-revoke-clan-invitation-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tplayer-account-id: ~D~%" (-> this player-account-id)) + (label cfg-4) + this + ) + +;; definition of type medius-revoke-clan-invitation-response +(deftype medius-revoke-clan-invitation-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-revoke-clan-invitation-response +(defmethod inspect ((this medius-revoke-clan-invitation-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-revoke-clan-invitation-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-revoke-clan-team-challenge-request +(deftype medius-revoke-clan-team-challenge-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-challenge-id int32) + ) + ) + +;; definition for method 3 of type medius-revoke-clan-team-challenge-request +(defmethod inspect ((this medius-revoke-clan-team-challenge-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-revoke-clan-team-challenge-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-challenge-id: ~D~%" (-> this clan-challenge-id)) + (label cfg-4) + this + ) + +;; definition of type medius-revoke-clan-team-challenge-response +(deftype medius-revoke-clan-team-challenge-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-revoke-clan-team-challenge-response +(defmethod inspect ((this medius-revoke-clan-team-challenge-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-revoke-clan-team-challenge-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-send-clan-message-request +(deftype medius-send-clan-message-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message uint8 200) + ) + ) + +;; definition for method 3 of type medius-send-clan-message-request +(defmethod inspect ((this medius-send-clan-message-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-send-clan-message-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (label cfg-4) + this + ) + +;; definition of type medius-send-clan-message-response +(deftype medius-send-clan-message-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-send-clan-message-response +(defmethod inspect ((this medius-send-clan-message-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-send-clan-message-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-session-begin-request +(deftype medius-session-begin-request (structure) + ((message-id uint8 21) + (connection-class int32) + ) + ) + +;; definition for method 3 of type medius-session-begin-request +(defmethod inspect ((this medius-session-begin-request)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-session-begin-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tconnection-class: #x~X : ~S~%") + (a2-2 (-> this connection-class)) + (v1-2 (-> this connection-class)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 1) + "ethernet" + ) + ((= v1-2 #xffffff) + "extra-medius-connection-type" + ) + ((zero? v1-2) + "modem" + ) + ((= v1-2 2) + "wireless" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-13) + this + ) + +;; definition of type medius-session-begin-response +(deftype medius-session-begin-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-session-begin-response +(defmethod inspect ((this medius-session-begin-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-session-begin-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-133) + this + ) + +;; definition of type medius-session-end-request +(deftype medius-session-end-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-session-end-request +(defmethod inspect ((this medius-session-end-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-session-end-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-session-end-response +(deftype medius-session-end-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-session-end-response +(defmethod inspect ((this medius-session-end-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-session-end-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-set-game-list-filter-request +(deftype medius-set-game-list-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (filter-field int32) + (comparison-operator int32) + (baseline-value int32) + ) + ) + +;; definition for method 3 of type medius-set-game-list-filter-request +(defmethod inspect ((this medius-set-game-list-filter-request)) + (when (not this) + (set! this this) + (goto cfg-42) + ) + (format #t "[~8x] ~A~%" this 'medius-set-game-list-filter-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tfilter-field: #x~X : ~S~%") + (a2-3 (-> this filter-field)) + (v1-2 (-> this filter-field)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 7) + "medius-filter-generic-field-1" + ) + ((= v1-2 4) + "medius-filter-game-level" + ) + ((= v1-2 3) + "medius-filter-max-players" + ) + ((= v1-2 1) + "medius-filter-player-count" + ) + ((= v1-2 9) + "medius-filter-generic-field-3" + ) + ((= v1-2 10) + "medius-filter-lobby-worldid" + ) + ((= v1-2 2) + "medius-filter-min-players" + ) + ((= v1-2 #xffffff) + "extra-medius-game-list-filter-field" + ) + ((= v1-2 6) + "medius-filter-rules-set" + ) + ((= v1-2 5) + "medius-filter-player-skill-level" + ) + ((= v1-2 8) + "medius-filter-generic-field-2" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tcomparison-operator: #x~X : ~S~%") + (a2-4 (-> this comparison-operator)) + (v1-3 (-> this comparison-operator)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-3 2) + "equal-to" + ) + ((= v1-3 1) + "less-than-or-equal-to" + ) + ((= v1-3 4) + "greater-than" + ) + ((= v1-3 3) + "greater-than-or-equal-to" + ) + ((= v1-3 #xffffff) + "extra-medius-comparison-operator" + ) + ((zero? v1-3) + "less-than" + ) + ((= v1-3 5) + "not-equals" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tbaseline-value: ~D~%" (-> this baseline-value)) + (label cfg-42) + this + ) + +;; definition of type medius-set-game-list-filter-response +(deftype medius-set-game-list-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-set-game-list-filter-response +(defmethod inspect ((this medius-set-game-list-filter-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-set-game-list-filter-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-set-lobby-world-filter-request +(deftype medius-set-lobby-world-filter-request (structure) + ((message-id uint8 21) + (filter-mask1 uint32) + (filter-mask2 uint32) + (filter-mask3 uint32) + (filter-mask4 uint32) + (lobby-filter-type int32) + (filter-mask-level int32) + ) + ) + +;; definition for method 3 of type medius-set-lobby-world-filter-request +(defmethod inspect ((this medius-set-lobby-world-filter-request)) + (when (not this) + (set! this this) + (goto cfg-36) + ) + (format #t "[~8x] ~A~%" this 'medius-set-lobby-world-filter-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tfilter-mask1: ~D~%" (-> this filter-mask1)) + (format #t "~1Tfilter-mask2: ~D~%" (-> this filter-mask2)) + (format #t "~1Tfilter-mask3: ~D~%" (-> this filter-mask3)) + (format #t "~1Tfilter-mask4: ~D~%" (-> this filter-mask4)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tlobby-filter-type: #x~X : ~S~%") + (a2-6 (-> this lobby-filter-type)) + (v1-2 (-> this lobby-filter-type)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-2 1) + "medius-lobby-filter-equals-filter" + ) + ((= v1-2 #xffffff) + "extra-medius-lobby-filter" + ) + ((zero? v1-2) + "medius-lobby-filter-equals-lobby" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-7 format) + (a0-8 #t) + (a1-7 "~1Tfilter-mask-level: #x~X : ~S~%") + (a2-7 (-> this filter-mask-level)) + (v1-3 (-> this filter-mask-level)) + ) + (t9-7 a0-8 a1-7 a2-7 (cond + ((= v1-3 256) + "medius-lobby-filter-mask-level234" + ) + ((= v1-3 8) + "medius-lobby-filter-mask-level4" + ) + ((= v1-3 16) + "medius-lobby-filter-mask-level12" + ) + ((= v1-3 32) + "medius-lobby-filter-mask-level123" + ) + ((= v1-3 2) + "medius-lobby-filter-mask-level2" + ) + ((= v1-3 64) + "medius-lobby-filter-mask-level1234" + ) + ((= v1-3 4) + "medius-lobby-filter-mask-level3" + ) + ((= v1-3 #xffffff) + "extra-medius-lobby-filter-mask-level-type" + ) + ((= v1-3 1) + "medius-lobby-filter-mask-level1" + ) + ((zero? v1-3) + "medius-lobby-filter-mask-level0" + ) + ((= v1-3 512) + "medius-lobby-filter-mask-level34" + ) + ((= v1-3 128) + "medius-lobby-filter-mask-level23" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-36) + this + ) + +;; definition of type medius-set-lobby-world-filter-response +(deftype medius-set-lobby-world-filter-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (filter-mask1 uint32) + (filter-mask2 uint32) + (filter-mask3 uint32) + (filter-mask4 uint32) + (lobby-filter-type int32) + (filter-mask-level int32) + ) + ) + +;; definition for method 3 of type medius-set-lobby-world-filter-response +(defmethod inspect ((this medius-set-lobby-world-filter-response)) + (when (not this) + (set! this this) + (goto cfg-165) + ) + (format #t "[~8x] ~A~%" this 'medius-set-lobby-world-filter-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tfilter-mask1: ~D~%" (-> this filter-mask1)) + (format #t "~1Tfilter-mask2: ~D~%" (-> this filter-mask2)) + (format #t "~1Tfilter-mask3: ~D~%" (-> this filter-mask3)) + (format #t "~1Tfilter-mask4: ~D~%" (-> this filter-mask4)) + (let ((t9-7 format) + (a0-8 #t) + (a1-7 "~1Tlobby-filter-type: #x~X : ~S~%") + (a2-7 (-> this lobby-filter-type)) + (v1-3 (-> this lobby-filter-type)) + ) + (t9-7 a0-8 a1-7 a2-7 (cond + ((= v1-3 1) + "medius-lobby-filter-equals-filter" + ) + ((= v1-3 #xffffff) + "extra-medius-lobby-filter" + ) + ((zero? v1-3) + "medius-lobby-filter-equals-lobby" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-8 format) + (a0-9 #t) + (a1-8 "~1Tfilter-mask-level: #x~X : ~S~%") + (a2-8 (-> this filter-mask-level)) + (v1-4 (-> this filter-mask-level)) + ) + (t9-8 a0-9 a1-8 a2-8 (cond + ((= v1-4 256) + "medius-lobby-filter-mask-level234" + ) + ((= v1-4 8) + "medius-lobby-filter-mask-level4" + ) + ((= v1-4 16) + "medius-lobby-filter-mask-level12" + ) + ((= v1-4 32) + "medius-lobby-filter-mask-level123" + ) + ((= v1-4 2) + "medius-lobby-filter-mask-level2" + ) + ((= v1-4 64) + "medius-lobby-filter-mask-level1234" + ) + ((= v1-4 4) + "medius-lobby-filter-mask-level3" + ) + ((= v1-4 #xffffff) + "extra-medius-lobby-filter-mask-level-type" + ) + ((= v1-4 1) + "medius-lobby-filter-mask-level1" + ) + ((zero? v1-4) + "medius-lobby-filter-mask-level0" + ) + ((= v1-4 512) + "medius-lobby-filter-mask-level34" + ) + ((= v1-4 128) + "medius-lobby-filter-mask-level23" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-165) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-9-h_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-9-h_REF.gc new file mode 100644 index 0000000000..78de89bd46 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-9-h_REF.gc @@ -0,0 +1,4828 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type medius-set-localization-params-request +(deftype medius-set-localization-params-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (character-encoding int32) + (language int32) + ) + ) + +;; definition for method 3 of type medius-set-localization-params-request +(defmethod inspect ((this medius-set-localization-params-request)) + (when (not this) + (set! this this) + (goto cfg-46) + ) + (format #t "[~8x] ~A~%" this 'medius-set-localization-params-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tcharacter-encoding: #x~X : ~S~%") + (a2-3 (-> this character-encoding)) + (v1-2 (-> this character-encoding)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-2) + "medius-character-encoding-no-update" + ) + ((= v1-2 2) + "medius-character-encoding-utf8" + ) + ((= v1-2 #xffffff) + "extra-medius-character-encoding-type" + ) + ((= v1-2 1) + "medius-character-encoding-iso8859-1" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tlanguage: #x~X : ~S~%") + (a2-4 (-> this language)) + (v1-3 (-> this language)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-3 7) + "medius-language-german" + ) + ((= v1-3 1) + "medius-language-usenglish" + ) + ((= v1-3 6) + "medius-language-spanish" + ) + ((= v1-3 #xffffff) + "extra-medius-language-type" + ) + ((= v1-3 3) + "medius-language-japanese" + ) + ((= v1-3 4) + "medius-language-korean" + ) + ((= v1-3 5) + "medius-language-italian" + ) + ((= v1-3 14) + "medius-language-norwegian" + ) + ((= v1-3 10) + "medius-language-portuguese" + ) + ((= v1-3 9) + "medius-language-dutch" + ) + ((zero? v1-3) + "medius-language-no-update" + ) + ((= v1-3 11) + "medius-language-chinese" + ) + ((= v1-3 12) + "medius-language-taiwanese" + ) + ((= v1-3 2) + "medius-language-ukenglish" + ) + ((= v1-3 8) + "medius-language-french" + ) + ((= v1-3 13) + "medius-language-finnish" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-46) + this + ) + +;; definition of type medius-set-message-as-read-request +(deftype medius-set-message-as-read-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (message-type int32) + (message-idto-tag int32) + ) + ) + +;; definition for method 3 of type medius-set-message-as-read-request +(defmethod inspect ((this medius-set-message-as-read-request)) + (when (not this) + (set! this this) + (goto cfg-9) + ) + (format #t "[~8x] ~A~%" this 'medius-set-message-as-read-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tmessage-type: #x~X : ~S~%") + (a2-3 (-> this message-type)) + (v1-2 (-> this message-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 #xffffff) + "extra-medius-message-type" + ) + ((zero? v1-2) + "announcement-message" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-idto-tag: ~D~%" (-> this message-idto-tag)) + (label cfg-9) + this + ) + +;; definition of type medius-set-stored-account-info-request +(deftype medius-set-stored-account-info-request (structure) + ((device int32) + (card-port int32) + (card-slot int32) + (account-id int32) + (account-name uint8 32) + (account-password uint8 32) + ) + ) + +;; definition for method 3 of type medius-set-stored-account-info-request +(defmethod inspect ((this medius-set-stored-account-info-request)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-set-stored-account-info-request) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tdevice: #x~X : ~S~%") + (a2-1 (-> this device)) + (v1-2 (-> this device)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 1) + "medius-hdd" + ) + ((= v1-2 #xffffff) + "extra-medius-device-type" + ) + ((= v1-2 2) + "medius-host0" + ) + ((zero? v1-2) + "medius-memcard" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tcard-port: ~D~%" (-> this card-port)) + (format #t "~1Tcard-slot: ~D~%" (-> this card-slot)) + (format #t "~1Taccount-id: ~D~%" (-> this account-id)) + (format #t "~1Taccount-name[32] @ #x~X~%" (-> this account-name)) + (format #t "~1Taccount-password[32] @ #x~X~%" (-> this account-password)) + (label cfg-13) + this + ) + +;; definition of type medius-set-stored-account-info-response +(deftype medius-set-stored-account-info-response (structure) + ((confirmation int32) + ) + ) + +;; definition for method 3 of type medius-set-stored-account-info-response +(defmethod inspect ((this medius-set-stored-account-info-response)) + (when (not this) + (set! this this) + (goto cfg-17) + ) + (format #t "[~8x] ~A~%" this 'medius-set-stored-account-info-response) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tconfirmation: #x~X : ~S~%") + (a2-1 (-> this confirmation)) + (v1-2 (-> this confirmation)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 -1) + "medius-stored-file-not-found" + ) + ((zero? v1-2) + "medius-stored-success" + ) + ((= v1-2 -3) + "medius-stored-directory-not-found" + ) + ((= v1-2 #xffffff) + "extra-medius-stored-confirmation-type" + ) + ((= v1-2 -2) + "medius-stored-device-not-found" + ) + ((= v1-2 -4) + "medius-stored-item-already-exists" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-17) + this + ) + +;; definition of type medius-status-response +(deftype medius-status-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-status-response +(defmethod inspect ((this medius-status-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-status-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-text-filter-request +(deftype medius-text-filter-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (text-filter-type int32) + (text uint8 64) + ) + ) + +;; definition for method 3 of type medius-text-filter-request +(defmethod inspect ((this medius-text-filter-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-text-filter-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Ttext-filter-type: #x~X : ~S~%") + (a2-3 (-> this text-filter-type)) + (v1-2 (-> this text-filter-type)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 #xffffff) + "extra-medius-text-filter" + ) + ((zero? v1-2) + "medius-text-filter-pass-fail" + ) + ((= v1-2 1) + "medius-text-filter-replace" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Ttext[64] @ #x~X~%" (-> this text)) + (label cfg-11) + this + ) + +;; definition of type medius-text-filter-response +(deftype medius-text-filter-response (structure) + ((message-id uint8 21) + (text uint8 64) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-text-filter-response +(defmethod inspect ((this medius-text-filter-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-text-filter-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Ttext[64] @ #x~X~%" (-> this text)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tstatus-code: #x~X : ~S~%") + (a2-3 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-transfer-clan-leadership-request +(deftype medius-transfer-clan-leadership-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (new-leader-account-id int32) + (new-leader-account-name uint8 32) + ) + ) + +;; definition for method 3 of type medius-transfer-clan-leadership-request +(defmethod inspect ((this medius-transfer-clan-leadership-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-transfer-clan-leadership-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tnew-leader-account-id: ~D~%" (-> this new-leader-account-id)) + (format #t "~1Tnew-leader-account-name[32] @ #x~X~%" (-> this new-leader-account-name)) + (label cfg-4) + this + ) + +;; definition of type medius-transfer-clan-leadership-response +(deftype medius-transfer-clan-leadership-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-transfer-clan-leadership-response +(defmethod inspect ((this medius-transfer-clan-leadership-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-transfer-clan-leadership-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-update-clan-stats-request +(deftype medius-update-clan-stats-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (clan-id int32) + (stats uint8 256) + ) + ) + +;; definition for method 3 of type medius-update-clan-stats-request +(defmethod inspect ((this medius-update-clan-stats-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-update-clan-stats-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tstats[256] @ #x~X~%" (-> this stats)) + (label cfg-4) + this + ) + +;; definition of type medius-update-clan-stats-response +(deftype medius-update-clan-stats-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-update-clan-stats-response +(defmethod inspect ((this medius-update-clan-stats-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-update-clan-stats-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-update-game-request +(deftype medius-update-game-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + (medius-world-id int32) + (game-name uint8 64) + (min-players int16) + (max-players int16) + (game-level int16) + (player-skill-level int16) + ) + ) + +;; definition for method 3 of type medius-update-game-request +(defmethod inspect ((this medius-update-game-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-update-game-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tmin-players: ~D~%" (-> this min-players)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (label cfg-4) + this + ) + +;; definition of type medius-update-game-response +(deftype medius-update-game-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-update-game-response +(defmethod inspect ((this medius-update-game-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-update-game-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-update-ladder-stats-request +(deftype medius-update-ladder-stats-request (structure) + ((message-id uint8 21) + (ladder-type int32) + (stats uint32 15) + ) + ) + +;; definition for method 3 of type medius-update-ladder-stats-request +(defmethod inspect ((this medius-update-ladder-stats-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-update-ladder-stats-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tladder-type: #x~X : ~S~%") + (a2-2 (-> this ladder-type)) + (v1-2 (-> this ladder-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((zero? v1-2) + "medius-ladder-type-player" + ) + ((= v1-2 1) + "medius-ladder-type-clan" + ) + ((= v1-2 #xffffff) + "extra-medius-ladder-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tstats[15] @ #x~X~%" (-> this stats)) + (label cfg-11) + this + ) + +;; definition of type medius-update-ladder-stats-wide-request +(deftype medius-update-ladder-stats-wide-request (structure) + ((message-id uint8 21) + (ladder-type int32) + (stats uint32 100) + ) + ) + +;; definition for method 3 of type medius-update-ladder-stats-wide-request +(defmethod inspect ((this medius-update-ladder-stats-wide-request)) + (when (not this) + (set! this this) + (goto cfg-11) + ) + (format #t "[~8x] ~A~%" this 'medius-update-ladder-stats-wide-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tladder-type: #x~X : ~S~%") + (a2-2 (-> this ladder-type)) + (v1-2 (-> this ladder-type)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((zero? v1-2) + "medius-ladder-type-player" + ) + ((= v1-2 1) + "medius-ladder-type-clan" + ) + ((= v1-2 #xffffff) + "extra-medius-ladder-type" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tstats[100] @ #x~X~%" (-> this stats)) + (label cfg-11) + this + ) + +;; definition of type medius-update-clan-ladder-stats-wide-delta-request +(deftype medius-update-clan-ladder-stats-wide-delta-request (structure) + ((message-id uint8 21) + (clan-id int32) + (stats uint32 100) + ) + ) + +;; definition for method 3 of type medius-update-clan-ladder-stats-wide-delta-request +(defmethod inspect ((this medius-update-clan-ladder-stats-wide-delta-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-update-clan-ladder-stats-wide-delta-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tclan-id: ~D~%" (-> this clan-id)) + (format #t "~1Tstats[100] @ #x~X~%" (-> this stats)) + (label cfg-4) + this + ) + +;; definition of type medius-update-user-state +(deftype medius-update-user-state (structure) + ((session-key uint8 17) + (user-action int32) + ) + ) + +;; definition for method 3 of type medius-update-user-state +(defmethod inspect ((this medius-update-user-state)) + (when (not this) + (set! this this) + (goto cfg-13) + ) + (format #t "[~8x] ~A~%" this 'medius-update-user-state) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tuser-action: #x~X : ~S~%") + (a2-2 (-> this user-action)) + (v1-2 (-> this user-action)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((zero? v1-2) + "keep-alive" + ) + ((= v1-2 2) + "left-game-world" + ) + ((= v1-2 1) + "joined-chat-world" + ) + ((= v1-2 #xffffff) + "extra-medius-user-action" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-13) + this + ) + +;; definition of type medius-version-server-request +(deftype medius-version-server-request (structure) + ((message-id uint8 21) + (session-key uint8 17) + ) + ) + +;; definition for method 3 of type medius-version-server-request +(defmethod inspect ((this medius-version-server-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-version-server-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (label cfg-4) + this + ) + +;; definition of type medius-version-server-response +(deftype medius-version-server-response (structure) + ((message-id uint8 21) + (version-server uint8 56) + ) + ) + +;; definition for method 3 of type medius-version-server-response +(defmethod inspect ((this medius-version-server-response)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-version-server-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tversion-server[56] @ #x~X~%" (-> this version-server)) + (label cfg-4) + this + ) + +;; definition of type medius-world-report +(deftype medius-world-report (structure) + ((session-key uint8 17) + (medius-world-id int32) + (player-count int32) + (game-name uint8 64) + (game-stats uint8 256) + (min-players int32) + (max-players int32) + (game-level int32) + (player-skill-level int32) + (rules-set int32) + (generic-field1 int32) + (generic-field2 int32) + (generic-field3 int32) + (world-status int32) + ) + ) + +;; definition for method 3 of type medius-world-report +(defmethod inspect ((this medius-world-report)) + (when (not this) + (set! this this) + (goto cfg-19) + ) + (format #t "[~8x] ~A~%" this 'medius-world-report) + (format #t "~1Tsession-key[17] @ #x~X~%" (-> this session-key)) + (format #t "~1Tmedius-world-id: ~D~%" (-> this medius-world-id)) + (format #t "~1Tplayer-count: ~D~%" (-> this player-count)) + (format #t "~1Tgame-name[64] @ #x~X~%" (-> this game-name)) + (format #t "~1Tgame-stats[256] @ #x~X~%" (-> this game-stats)) + (format #t "~1Tmin-players: ~D~%" (-> this min-players)) + (format #t "~1Tmax-players: ~D~%" (-> this max-players)) + (format #t "~1Tgame-level: ~D~%" (-> this game-level)) + (format #t "~1Tplayer-skill-level: ~D~%" (-> this player-skill-level)) + (format #t "~1Trules-set: ~D~%" (-> this rules-set)) + (format #t "~1Tgeneric-field1: ~D~%" (-> this generic-field1)) + (format #t "~1Tgeneric-field2: ~D~%" (-> this generic-field2)) + (format #t "~1Tgeneric-field3: ~D~%" (-> this generic-field3)) + (let ((t9-14 format) + (a0-15 #t) + (a1-14 "~1Tworld-status: #x~X : ~S~%") + (a2-14 (-> this world-status)) + (v1-2 (-> this world-status)) + ) + (t9-14 a0-15 a1-14 a2-14 (cond + ((= v1-2 2) + "world-active" + ) + ((= v1-2 1) + "world-staging" + ) + ((= v1-2 5) + "world-pending-connect-to-game" + ) + ((= v1-2 4) + "world-pending-creation" + ) + ((= v1-2 #xffffff) + "extra-medius-world-status" + ) + ((= v1-2 3) + "world-closed" + ) + ((zero? v1-2) + "world-inactive" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-19) + this + ) + +;; definition of type medius-get-universe-information-request +(deftype medius-get-universe-information-request (structure) + ((message-id uint8 21) + (info-type uint32) + (character-encoding int32) + (language int32) + ) + ) + +;; definition for method 3 of type medius-get-universe-information-request +(defmethod inspect ((this medius-get-universe-information-request)) + (when (not this) + (set! this this) + (goto cfg-46) + ) + (format #t "[~8x] ~A~%" this 'medius-get-universe-information-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tinfo-type: ~D~%" (-> this info-type)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tcharacter-encoding: #x~X : ~S~%") + (a2-3 (-> this character-encoding)) + (v1-2 (-> this character-encoding)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-2) + "medius-character-encoding-no-update" + ) + ((= v1-2 2) + "medius-character-encoding-utf8" + ) + ((= v1-2 #xffffff) + "extra-medius-character-encoding-type" + ) + ((= v1-2 1) + "medius-character-encoding-iso8859-1" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tlanguage: #x~X : ~S~%") + (a2-4 (-> this language)) + (v1-3 (-> this language)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-3 7) + "medius-language-german" + ) + ((= v1-3 1) + "medius-language-usenglish" + ) + ((= v1-3 6) + "medius-language-spanish" + ) + ((= v1-3 #xffffff) + "extra-medius-language-type" + ) + ((= v1-3 3) + "medius-language-japanese" + ) + ((= v1-3 4) + "medius-language-korean" + ) + ((= v1-3 5) + "medius-language-italian" + ) + ((= v1-3 14) + "medius-language-norwegian" + ) + ((= v1-3 10) + "medius-language-portuguese" + ) + ((= v1-3 9) + "medius-language-dutch" + ) + ((zero? v1-3) + "medius-language-no-update" + ) + ((= v1-3 11) + "medius-language-chinese" + ) + ((= v1-3 12) + "medius-language-taiwanese" + ) + ((= v1-3 2) + "medius-language-ukenglish" + ) + ((= v1-3 8) + "medius-language-french" + ) + ((= v1-3 13) + "medius-language-finnish" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-46) + this + ) + +;; definition of type medius-universe-news-response +(deftype medius-universe-news-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (news uint8 256) + (end-of-text int8) + ) + ) + +;; definition for method 3 of type medius-universe-news-response +(defmethod inspect ((this medius-universe-news-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-universe-news-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tnews[256] @ #x~X~%" (-> this news)) + (format #t "~1Tend-of-text: ~D~%" (-> this end-of-text)) + (label cfg-133) + this + ) + +;; definition of type medius-universe-variable-information-response +(deftype medius-universe-variable-information-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (info-filter uint32) + (universe-id uint32) + (universe-name uint8 128) + (dns uint8 128) + (port int32) + (universe-description uint8 256) + (status int32) + (user-count int32) + (max-users int32) + (universe-billing uint8 8) + (billing-system-name uint8 128) + (extended-info uint8 128) + (svo-url uint8 128) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-universe-variable-information-response +(defmethod inspect ((this medius-universe-variable-information-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-universe-variable-information-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tinfo-filter: ~D~%" (-> this info-filter)) + (format #t "~1Tuniverse-id: ~D~%" (-> this universe-id)) + (format #t "~1Tuniverse-name[128] @ #x~X~%" (-> this universe-name)) + (format #t "~1Tdns[128] @ #x~X~%" (-> this dns)) + (format #t "~1Tport: ~D~%" (-> this port)) + (format #t "~1Tuniverse-description[256] @ #x~X~%" (-> this universe-description)) + (format #t "~1Tstatus: ~D~%" (-> this status)) + (format #t "~1Tuser-count: ~D~%" (-> this user-count)) + (format #t "~1Tmax-users: ~D~%" (-> this max-users)) + (format #t "~1Tuniverse-billing[8] @ #x~X~%" (-> this universe-billing)) + (format #t "~1Tbilling-system-name[128] @ #x~X~%" (-> this billing-system-name)) + (format #t "~1Textended-info[128] @ #x~X~%" (-> this extended-info)) + (format #t "~1Tsvo-url[128] @ #x~X~%" (-> this svo-url)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-universe-svo-urlresponse +(deftype medius-universe-svo-urlresponse (structure) + ((message-id uint8 21) + (url uint8 128) + ) + ) + +;; definition for method 3 of type medius-universe-svo-urlresponse +(defmethod inspect ((this medius-universe-svo-urlresponse)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-universe-svo-urlresponse) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Turl[128] @ #x~X~%" (-> this url)) + (label cfg-4) + this + ) + +;; definition of type medius-universe-status-list-response +(deftype medius-universe-status-list-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (universe-name uint8 128) + (dns uint8 128) + (port int32) + (universe-description uint8 256) + (status int32) + (user-count int32) + (max-users int32) + (end-of-list int8) + ) + ) + +;; definition for method 3 of type medius-universe-status-list-response +(defmethod inspect ((this medius-universe-status-list-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-universe-status-list-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tuniverse-name[128] @ #x~X~%" (-> this universe-name)) + (format #t "~1Tdns[128] @ #x~X~%" (-> this dns)) + (format #t "~1Tport: ~D~%" (-> this port)) + (format #t "~1Tuniverse-description[256] @ #x~X~%" (-> this universe-description)) + (format #t "~1Tstatus: ~D~%" (-> this status)) + (format #t "~1Tuser-count: ~D~%" (-> this user-count)) + (format #t "~1Tmax-users: ~D~%" (-> this max-users)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (label cfg-133) + this + ) + +;; definition of type medius-get-universe-extra-info-request +(deftype medius-get-universe-extra-info-request (structure) + ((message-id uint8 21) + (info-type uint32) + (character-encoding int32) + (language int32) + ) + ) + +;; definition for method 3 of type medius-get-universe-extra-info-request +(defmethod inspect ((this medius-get-universe-extra-info-request)) + (when (not this) + (set! this this) + (goto cfg-46) + ) + (format #t "[~8x] ~A~%" this 'medius-get-universe-extra-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tinfo-type: ~D~%" (-> this info-type)) + (let ((t9-3 format) + (a0-4 #t) + (a1-3 "~1Tcharacter-encoding: #x~X : ~S~%") + (a2-3 (-> this character-encoding)) + (v1-2 (-> this character-encoding)) + ) + (t9-3 a0-4 a1-3 a2-3 (cond + ((zero? v1-2) + "medius-character-encoding-no-update" + ) + ((= v1-2 2) + "medius-character-encoding-utf8" + ) + ((= v1-2 #xffffff) + "extra-medius-character-encoding-type" + ) + ((= v1-2 1) + "medius-character-encoding-iso8859-1" + ) + (else + "*unknown*" + ) + ) + ) + ) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tlanguage: #x~X : ~S~%") + (a2-4 (-> this language)) + (v1-3 (-> this language)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-3 7) + "medius-language-german" + ) + ((= v1-3 1) + "medius-language-usenglish" + ) + ((= v1-3 6) + "medius-language-spanish" + ) + ((= v1-3 #xffffff) + "extra-medius-language-type" + ) + ((= v1-3 3) + "medius-language-japanese" + ) + ((= v1-3 4) + "medius-language-korean" + ) + ((= v1-3 5) + "medius-language-italian" + ) + ((= v1-3 14) + "medius-language-norwegian" + ) + ((= v1-3 10) + "medius-language-portuguese" + ) + ((= v1-3 9) + "medius-language-dutch" + ) + ((zero? v1-3) + "medius-language-no-update" + ) + ((= v1-3 11) + "medius-language-chinese" + ) + ((= v1-3 12) + "medius-language-taiwanese" + ) + ((= v1-3 2) + "medius-language-ukenglish" + ) + ((= v1-3 8) + "medius-language-french" + ) + ((= v1-3 13) + "medius-language-finnish" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-46) + this + ) + +;; definition of type medius-universe-status-list-extra-info-response +(deftype medius-universe-status-list-extra-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + (universe-name uint8 128) + (dns uint8 128) + (port int32) + (universe-description uint8 256) + (status int32) + (user-count int32) + (max-users int32) + (universe-billing uint8 8) + (billing-system-name uint8 128) + (end-of-list int8) + (extended-info uint8 128) + ) + ) + +;; definition for method 3 of type medius-universe-status-list-extra-info-response +(defmethod inspect ((this medius-universe-status-list-extra-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-universe-status-list-extra-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tuniverse-name[128] @ #x~X~%" (-> this universe-name)) + (format #t "~1Tdns[128] @ #x~X~%" (-> this dns)) + (format #t "~1Tport: ~D~%" (-> this port)) + (format #t "~1Tuniverse-description[256] @ #x~X~%" (-> this universe-description)) + (format #t "~1Tstatus: ~D~%" (-> this status)) + (format #t "~1Tuser-count: ~D~%" (-> this user-count)) + (format #t "~1Tmax-users: ~D~%" (-> this max-users)) + (format #t "~1Tuniverse-billing[8] @ #x~X~%" (-> this universe-billing)) + (format #t "~1Tbilling-system-name[128] @ #x~X~%" (-> this billing-system-name)) + (format #t "~1Tend-of-list: ~D~%" (-> this end-of-list)) + (format #t "~1Textended-info[128] @ #x~X~%" (-> this extended-info)) + (label cfg-133) + this + ) + +;; definition of type medius-post-debug-info-request +(deftype medius-post-debug-info-request (structure) + ((message-id uint8 21) + (message uint8 200) + ) + ) + +;; definition for method 3 of type medius-post-debug-info-request +(defmethod inspect ((this medius-post-debug-info-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-post-debug-info-request) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (format #t "~1Tmessage[200] @ #x~X~%" (-> this message)) + (label cfg-4) + this + ) + +;; definition of type medius-post-debug-info-response +(deftype medius-post-debug-info-response (structure) + ((message-id uint8 21) + (status-code medius-status-code) + ) + ) + +;; definition for method 3 of type medius-post-debug-info-response +(defmethod inspect ((this medius-post-debug-info-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-post-debug-info-response) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-133) + this + ) + +;; definition of type medius-connect-in-params +(deftype medius-connect-in-params (structure) + ((connect-info net-connection-info :inline) + (stream-media-params net-stream-media-params :inline) + (max-clients-per-connection uint32) + (my-connect-callback basic) + (pf-remote-client-connect-callback basic) + (pf-remote-client-disconnect-callback basic) + ) + ) + +;; definition for method 3 of type medius-connect-in-params +(defmethod inspect ((this medius-connect-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-connect-in-params) + (format #t "~1Tconnect-info: #~%" (-> this connect-info)) + (format #t "~1Tstream-media-params: #~%" (-> this stream-media-params)) + (format #t "~1Tmax-clients-per-connection: ~D~%" (-> this max-clients-per-connection)) + (format #t "~1Tmy-connect-callback: ~A~%" (-> this my-connect-callback)) + (format #t "~1Tpf-remote-client-connect-callback: ~A~%" (-> this pf-remote-client-connect-callback)) + (format #t "~1Tpf-remote-client-disconnect-callback: ~A~%" (-> this pf-remote-client-disconnect-callback)) + (label cfg-4) + this + ) + +;; definition of type medius-connect-out-params +(deftype medius-connect-out-params (structure) + ((connection-handle basic) + (error-code int32) + ) + ) + +;; definition for method 3 of type medius-connect-out-params +(defmethod inspect ((this medius-connect-out-params)) + (when (not this) + (set! this this) + (goto cfg-49) + ) + (format #t "[~8x] ~A~%" this 'medius-connect-out-params) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Terror-code: #x~X : ~S~%") + (a2-2 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 -6) + "medius-error-file-not-found" + ) + ((= v1-2 -20) + "medius-error-feature-not-enabled" + ) + ((= v1-2 -12) + "medius-error-item-not-found" + ) + ((= v1-2 -13) + "medius-error-item-already-exists" + ) + ((= v1-2 #xffffff) + "medius-apiextra-error-code" + ) + ((= v1-2 -2) + "medius-error-connecting" + ) + ((= v1-2 -15) + "medius-error-not-initialized" + ) + ((= v1-2 -14) + "medius-error-no-result" + ) + ((= v1-2 -11) + "medius-error-session-inactive" + ) + ((= v1-2 -5) + "medius-error-sending-message" + ) + ((= v1-2 -10) + "medius-error-general" + ) + ((zero? v1-2) + "medius-error-none" + ) + ((= v1-2 -18) + "medius-error-call-medius-close-before-reinitializing" + ) + ((= v1-2 -17) + "medius-error-already-connected" + ) + ((= v1-2 -8) + "medius-error-directory-not-found" + ) + ((= v1-2 -1) + "medius-error-initializing" + ) + ((= v1-2 -16) + "medius-error-not-connected" + ) + ((= v1-2 -4) + "medius-error-closing" + ) + ((= v1-2 -3) + "medius-error-disconnecting" + ) + ((= v1-2 -21) + "medius-error-invalid-parameter" + ) + ((= v1-2 -19) + "medius-error-call-medius-close-bare-before-reinitializing" + ) + ((= v1-2 -7) + "medius-error-device-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-49) + this + ) + +;; definition of type medius-disconnect-params +(deftype medius-disconnect-params (structure) + ((connection-handle basic) + (disconnect-reason int32) + (my-disconnect-callback basic) + ) + ) + +;; definition for method 3 of type medius-disconnect-params +(defmethod inspect ((this medius-disconnect-params)) + (when (not this) + (set! this this) + (goto cfg-27) + ) + (format #t "[~8x] ~A~%" this 'medius-disconnect-params) + (format #t "~1Tconnection-handle: ~A~%" (-> this connection-handle)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tdisconnect-reason: #x~X : ~S~%") + (a2-2 (-> this disconnect-reason)) + (v1-2 (-> this disconnect-reason)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 255) + "max-disconnect-reason" + ) + ((zero? v1-2) + "net-disconnect-none" + ) + ((= v1-2 4) + "net-disconnect-update-fail" + ) + ((= v1-2 6) + "net-disconnect-shutdown" + ) + ((= v1-2 -1) + "extra-net-disconnect-reason" + ) + ((= v1-2 128) + "net-disconnect-app-defined-start" + ) + ((= v1-2 1) + "net-disconnect-normal" + ) + ((= v1-2 5) + "net-disconnect-inactivity" + ) + ((= v1-2 7) + "net-disconnect-message-length-mismatch" + ) + ((= v1-2 3) + "net-disconnect-stream-media-fail" + ) + ((= v1-2 2) + "net-disconnect-connect-fail" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmy-disconnect-callback: ~A~%" (-> this my-disconnect-callback)) + (label cfg-27) + this + ) + +;; definition of type medius-initialize-in-params +(deftype medius-initialize-in-params (structure) + ((p-local-key-pair rsa-keypair) + (my-chat-fwd-message-callback basic) + (my-chat-fwd-message-callback-user-data basic) + (my-binary-fwd-message-callback basic) + (my-binary-fwd-message-callback-user-data basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback-user-data basic) + (my-error-message-callback basic) + (my-error-message-callback-user-data basic) + (my-reassign-game-medius-world-idcallback basic) + (my-reassign-game-medius-world-idcallback-user-data basic) + (pf-system-message-callback basic) + (p-system-message-callback-data basic) + (application-id int32) + (p-application-key-pair rsa-keypair) + (idf-compliance int32) + ) + ) + +;; definition for method 3 of type medius-initialize-in-params +(defmethod inspect ((this medius-initialize-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-initialize-in-params) + (format #t "~1Tp-local-key-pair: #~%" (-> this p-local-key-pair)) + (format #t "~1Tmy-chat-fwd-message-callback: ~A~%" (-> this my-chat-fwd-message-callback)) + (format #t "~1Tmy-chat-fwd-message-callback-user-data: ~A~%" (-> this my-chat-fwd-message-callback-user-data)) + (format #t "~1Tmy-binary-fwd-message-callback: ~A~%" (-> this my-binary-fwd-message-callback)) + (format + #t + "~1Tmy-binary-fwd-message-callback-user-data: ~A~%" + (-> this my-binary-fwd-message-callback-user-data) + ) + (format + #t + "~1Tmy-add-to-buddy-list-fwd-confirmation-request-callback: ~A~%" + (-> this my-add-to-buddy-list-fwd-confirmation-request-callback) + ) + (format + #t + "~1Tmy-add-to-buddy-list-fwd-confirmation-request-callback-user-data: ~A~%" + (-> this my-add-to-buddy-list-fwd-confirmation-request-callback-user-data) + ) + (format #t "~1Tmy-error-message-callback: ~A~%" (-> this my-error-message-callback)) + (format #t "~1Tmy-error-message-callback-user-data: ~A~%" (-> this my-error-message-callback-user-data)) + (format + #t + "~1Tmy-reassign-game-medius-world-idcallback: ~A~%" + (-> this my-reassign-game-medius-world-idcallback) + ) + (format + #t + "~1Tmy-reassign-game-medius-world-idcallback-user-data: ~A~%" + (-> this my-reassign-game-medius-world-idcallback-user-data) + ) + (format #t "~1Tpf-system-message-callback: ~A~%" (-> this pf-system-message-callback)) + (format #t "~1Tp-system-message-callback-data: ~A~%" (-> this p-system-message-callback-data)) + (format #t "~1Tapplication-id: ~D~%" (-> this application-id)) + (format #t "~1Tp-application-key-pair: #~%" (-> this p-application-key-pair)) + (format #t "~1Tidf-compliance: ~D~%" (-> this idf-compliance)) + (label cfg-4) + this + ) + +;; definition of type medius-initialize-out-params +(deftype medius-initialize-out-params (structure) + ((error-code int32) + ) + ) + +;; definition for method 3 of type medius-initialize-out-params +(defmethod inspect ((this medius-initialize-out-params)) + (when (not this) + (set! this this) + (goto cfg-49) + ) + (format #t "[~8x] ~A~%" this 'medius-initialize-out-params) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Terror-code: #x~X : ~S~%") + (a2-1 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 -6) + "medius-error-file-not-found" + ) + ((= v1-2 -20) + "medius-error-feature-not-enabled" + ) + ((= v1-2 -12) + "medius-error-item-not-found" + ) + ((= v1-2 -13) + "medius-error-item-already-exists" + ) + ((= v1-2 #xffffff) + "medius-apiextra-error-code" + ) + ((= v1-2 -2) + "medius-error-connecting" + ) + ((= v1-2 -15) + "medius-error-not-initialized" + ) + ((= v1-2 -14) + "medius-error-no-result" + ) + ((= v1-2 -11) + "medius-error-session-inactive" + ) + ((= v1-2 -5) + "medius-error-sending-message" + ) + ((= v1-2 -10) + "medius-error-general" + ) + ((zero? v1-2) + "medius-error-none" + ) + ((= v1-2 -18) + "medius-error-call-medius-close-before-reinitializing" + ) + ((= v1-2 -17) + "medius-error-already-connected" + ) + ((= v1-2 -8) + "medius-error-directory-not-found" + ) + ((= v1-2 -1) + "medius-error-initializing" + ) + ((= v1-2 -16) + "medius-error-not-connected" + ) + ((= v1-2 -4) + "medius-error-closing" + ) + ((= v1-2 -3) + "medius-error-disconnecting" + ) + ((= v1-2 -21) + "medius-error-invalid-parameter" + ) + ((= v1-2 -19) + "medius-error-call-medius-close-bare-before-reinitializing" + ) + ((= v1-2 -7) + "medius-error-device-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-49) + this + ) + +;; definition of type medius-initialize-bare-in-params +(deftype medius-initialize-bare-in-params (structure) + ((my-chat-fwd-message-callback basic) + (my-chat-fwd-message-callback-user-data basic) + (my-binary-fwd-message-callback basic) + (my-binary-fwd-message-callback-user-data basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback basic) + (my-add-to-buddy-list-fwd-confirmation-request-callback-user-data basic) + (my-error-message-callback basic) + (my-error-message-callback-user-data basic) + (my-reassign-game-medius-world-idcallback basic) + (my-reassign-game-medius-world-idcallback-user-data basic) + (idf-compliance int32) + ) + ) + +;; definition for method 3 of type medius-initialize-bare-in-params +(defmethod inspect ((this medius-initialize-bare-in-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-initialize-bare-in-params) + (format #t "~1Tmy-chat-fwd-message-callback: ~A~%" (-> this my-chat-fwd-message-callback)) + (format #t "~1Tmy-chat-fwd-message-callback-user-data: ~A~%" (-> this my-chat-fwd-message-callback-user-data)) + (format #t "~1Tmy-binary-fwd-message-callback: ~A~%" (-> this my-binary-fwd-message-callback)) + (format + #t + "~1Tmy-binary-fwd-message-callback-user-data: ~A~%" + (-> this my-binary-fwd-message-callback-user-data) + ) + (format + #t + "~1Tmy-add-to-buddy-list-fwd-confirmation-request-callback: ~A~%" + (-> this my-add-to-buddy-list-fwd-confirmation-request-callback) + ) + (format + #t + "~1Tmy-add-to-buddy-list-fwd-confirmation-request-callback-user-data: ~A~%" + (-> this my-add-to-buddy-list-fwd-confirmation-request-callback-user-data) + ) + (format #t "~1Tmy-error-message-callback: ~A~%" (-> this my-error-message-callback)) + (format #t "~1Tmy-error-message-callback-user-data: ~A~%" (-> this my-error-message-callback-user-data)) + (format + #t + "~1Tmy-reassign-game-medius-world-idcallback: ~A~%" + (-> this my-reassign-game-medius-world-idcallback) + ) + (format + #t + "~1Tmy-reassign-game-medius-world-idcallback-user-data: ~A~%" + (-> this my-reassign-game-medius-world-idcallback-user-data) + ) + (format #t "~1Tidf-compliance: ~D~%" (-> this idf-compliance)) + (label cfg-4) + this + ) + +;; definition of type medius-initialize-bare-out-params +(deftype medius-initialize-bare-out-params (structure) + ((error-code int32) + ) + ) + +;; definition for method 3 of type medius-initialize-bare-out-params +(defmethod inspect ((this medius-initialize-bare-out-params)) + (when (not this) + (set! this this) + (goto cfg-49) + ) + (format #t "[~8x] ~A~%" this 'medius-initialize-bare-out-params) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Terror-code: #x~X : ~S~%") + (a2-1 (-> this error-code)) + (v1-2 (-> this error-code)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 -6) + "medius-error-file-not-found" + ) + ((= v1-2 -20) + "medius-error-feature-not-enabled" + ) + ((= v1-2 -12) + "medius-error-item-not-found" + ) + ((= v1-2 -13) + "medius-error-item-already-exists" + ) + ((= v1-2 #xffffff) + "medius-apiextra-error-code" + ) + ((= v1-2 -2) + "medius-error-connecting" + ) + ((= v1-2 -15) + "medius-error-not-initialized" + ) + ((= v1-2 -14) + "medius-error-no-result" + ) + ((= v1-2 -11) + "medius-error-session-inactive" + ) + ((= v1-2 -5) + "medius-error-sending-message" + ) + ((= v1-2 -10) + "medius-error-general" + ) + ((zero? v1-2) + "medius-error-none" + ) + ((= v1-2 -18) + "medius-error-call-medius-close-before-reinitializing" + ) + ((= v1-2 -17) + "medius-error-already-connected" + ) + ((= v1-2 -8) + "medius-error-directory-not-found" + ) + ((= v1-2 -1) + "medius-error-initializing" + ) + ((= v1-2 -16) + "medius-error-not-connected" + ) + ((= v1-2 -4) + "medius-error-closing" + ) + ((= v1-2 -3) + "medius-error-disconnecting" + ) + ((= v1-2 -21) + "medius-error-invalid-parameter" + ) + ((= v1-2 -19) + "medius-error-call-medius-close-bare-before-reinitializing" + ) + ((= v1-2 -7) + "medius-error-device-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (label cfg-49) + this + ) + +;; definition of type medius-file +(deftype medius-file (structure) + ((filename uint8 128) + (server-checksum uint8 16) + (file-id uint32) + (file-size uint32) + (creation-time-stamp uint32) + (owner-id uint32) + (group-id uint32) + (owner-permission-rwx uint16) + (group-permission-rwx uint16) + (global-permission-rwx uint16) + (server-operation-id uint16) + ) + ) + +;; definition for method 3 of type medius-file +(defmethod inspect ((this medius-file)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file) + (format #t "~1Tfilename[128] @ #x~X~%" (-> this filename)) + (format #t "~1Tserver-checksum[16] @ #x~X~%" (-> this server-checksum)) + (format #t "~1Tfile-id: ~D~%" (-> this file-id)) + (format #t "~1Tfile-size: ~D~%" (-> this file-size)) + (format #t "~1Tcreation-time-stamp: ~D~%" (-> this creation-time-stamp)) + (format #t "~1Towner-id: ~D~%" (-> this owner-id)) + (format #t "~1Tgroup-id: ~D~%" (-> this group-id)) + (format #t "~1Towner-permission-rwx: ~D~%" (-> this owner-permission-rwx)) + (format #t "~1Tgroup-permission-rwx: ~D~%" (-> this group-permission-rwx)) + (format #t "~1Tglobal-permission-rwx: ~D~%" (-> this global-permission-rwx)) + (format #t "~1Tserver-operation-id: ~D~%" (-> this server-operation-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-attributes +(deftype medius-file-attributes (structure) + ((description uint8 256) + (last-changed-time-stamp uint32) + (last-changed-by-user-id uint32) + (number-accesses uint32) + (streamable-flag uint32) + (streaming-data-rate uint32) + ) + :pack-me + ) + +;; definition for method 3 of type medius-file-attributes +(defmethod inspect ((this medius-file-attributes)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-attributes) + (format #t "~1Tdescription[256] @ #x~X~%" (-> this description)) + (format #t "~1Tlast-changed-time-stamp: ~D~%" (-> this last-changed-time-stamp)) + (format #t "~1Tlast-changed-by-user-id: ~D~%" (-> this last-changed-by-user-id)) + (format #t "~1Tnumber-accesses: ~D~%" (-> this number-accesses)) + (format #t "~1Tstreamable-flag: ~D~%" (-> this streamable-flag)) + (format #t "~1Tstreaming-data-rate: ~D~%" (-> this streaming-data-rate)) + (label cfg-4) + this + ) + +;; definition of type medius-file-meta-data +(deftype medius-file-meta-data (structure) + ((key uint8 56) + (value uint8 256) + ) + :pack-me + ) + +;; definition for method 3 of type medius-file-meta-data +(defmethod inspect ((this medius-file-meta-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-meta-data) + (format #t "~1Tkey[56] @ #x~X~%" (-> this key)) + (format #t "~1Tvalue[256] @ #x~X~%" (-> this value)) + (label cfg-4) + this + ) + +;; definition of type medius-file-checksum +(deftype medius-file-checksum (structure) + ((puc-data uint32) + (ui-size uint32) + (checksum uint8 16) + ) + ) + +;; definition for method 3 of type medius-file-checksum +(defmethod inspect ((this medius-file-checksum)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-checksum) + (format #t "~1Tpuc-data: #x~X~%" (-> this puc-data)) + (format #t "~1Tui-size: ~D~%" (-> this ui-size)) + (format #t "~1Tchecksum[16] @ #x~X~%" (-> this checksum)) + (label cfg-4) + this + ) + +;; definition of type medius-file-create-request +(deftype medius-file-create-request (structure) + ((medius-file-to-create medius-file :inline) + (medius-file-create-attributes medius-file-attributes :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-create-request +(defmethod inspect ((this medius-file-create-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-create-request) + (format #t "~1Tmedius-file-to-create: #~%" (-> this medius-file-to-create)) + (format + #t + "~1Tmedius-file-create-attributes: #~%" + (-> this medius-file-create-attributes) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-create-response +(deftype medius-file-create-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-create-response +(defmethod inspect ((this medius-file-create-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-create-response) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-upload-request +(deftype medius-file-upload-request (structure) + ((medius-file-info medius-file :inline) + (puc-data-start uint32) + (ui-data-size uint32) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-upload-request +(defmethod inspect ((this medius-file-upload-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-upload-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tpuc-data-start: #x~X~%" (-> this puc-data-start)) + (format #t "~1Tui-data-size: ~D~%" (-> this ui-data-size)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-upload-server-req +(deftype medius-file-upload-server-req (structure) + ((i-req-start-byte-index int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-upload-server-req +(defmethod inspect ((this medius-file-upload-server-req)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-upload-server-req) + (format #t "~1Ti-req-start-byte-index: ~D~%" (-> this i-req-start-byte-index)) + (format #t "~1Ti-packet-number: ~D~%" (-> this i-packet-number)) + (format #t "~1Ti-xfer-status: ~D~%" (-> this i-xfer-status)) + (let ((t9-4 format) + (a0-5 #t) + (a1-4 "~1Tstatus-code: #x~X : ~S~%") + (a2-4 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-4 a0-5 a1-4 a2-4 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-upload-response +(deftype medius-file-upload-response (structure) + ((data uint8 464) + (i-start-byte-index int32) + (i-data-size int32) + (i-packet-number int32) + (i-xfer-status int32) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-upload-response +(defmethod inspect ((this medius-file-upload-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-upload-response) + (format #t "~1Tdata[464] @ #x~X~%" (-> this data)) + (format #t "~1Ti-start-byte-index: ~D~%" (-> this i-start-byte-index)) + (format #t "~1Ti-data-size: ~D~%" (-> this i-data-size)) + (format #t "~1Ti-packet-number: ~D~%" (-> this i-packet-number)) + (format #t "~1Ti-xfer-status: ~D~%" (-> this i-xfer-status)) + (let ((t9-6 format) + (a0-7 #t) + (a1-6 "~1Tstatus-code: #x~X : ~S~%") + (a2-6 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-6 a0-7 a1-6 a2-6 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; definition of type medius-file-close-request +(deftype medius-file-close-request (structure) + ((medius-file-info medius-file :inline) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-close-request +(defmethod inspect ((this medius-file-close-request)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'medius-file-close-request) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-4) + this + ) + +;; definition of type medius-file-close-response +(deftype medius-file-close-response (structure) + ((medius-file-info medius-file :inline) + (status-code medius-status-code) + (message-id uint8 21) + ) + ) + +;; definition for method 3 of type medius-file-close-response +(defmethod inspect ((this medius-file-close-response)) + (when (not this) + (set! this this) + (goto cfg-133) + ) + (format #t "[~8x] ~A~%" this 'medius-file-close-response) + (format #t "~1Tmedius-file-info: #~%" (-> this medius-file-info)) + (let ((t9-2 format) + (a0-3 #t) + (a1-2 "~1Tstatus-code: #x~X : ~S~%") + (a2-2 (-> this status-code)) + (v1-2 (-> this status-code)) + ) + (t9-2 a0-3 a1-2 a2-2 (cond + ((= v1-2 (medius-status-code medius-filter-not-found)) + "medius-filter-not-found" + ) + ((= v1-2 (medius-status-code medius-clear-game-list-filter-failed)) + "medius-clear-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-file-does-not-exist)) + "medius-file-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-not-clan-leader)) + "medius-not-clan-leader" + ) + ((= v1-2 (medius-status-code medius-exceeds-max-worlds)) + "medius-exceeds-max-worlds" + ) + ((= v1-2 (medius-status-code medius-cache-failure)) + "medius-cache-failure" + ) + ((= v1-2 (medius-status-code medius-clan-not-found)) + "medius-clan-not-found" + ) + ((= v1-2 (medius-status-code medius-wmerror)) + "medius-wmerror" + ) + ((= v1-2 (medius-status-code medius-success)) + "medius-success" + ) + ((= v1-2 (medius-status-code medius-key-error)) + "medius-key-error" + ) + ((= v1-2 (medius-status-code medius-incorrect-login-step)) + "medius-incorrect-login-step" + ) + ((= v1-2 (medius-status-code medius-get-game-list-filter-failed)) + "medius-get-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-server-busy)) + "medius-server-busy" + ) + ((= v1-2 (medius-status-code medius-leader-cannot-leave-clan)) + "medius-leader-cannot-leave-clan" + ) + ((= v1-2 (medius-status-code medius-session-key-invalid)) + "medius-session-key-invalid" + ) + ((= v1-2 (medius-status-code medius-player-banned)) + "medius-player-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-password)) + "medius-invalid-password" + ) + ((= v1-2 (medius-status-code medius-end-session-failed)) + "medius-end-session-failed" + ) + ((= v1-2 (medius-status-code medius-feature-not-enabled)) + "medius-feature-not-enabled" + ) + ((= v1-2 (medius-status-code medius-already-leader-of-clan)) + "medius-already-leader-of-clan" + ) + ((= v1-2 (medius-status-code medius-account-already-exists)) + "medius-account-already-exists" + ) + ((= v1-2 (medius-status-code medius-clan-name-in-use)) + "medius-clan-name-in-use" + ) + ((= v1-2 (medius-status-code medius-world-is-full)) + "medius-world-is-full" + ) + ((= v1-2 (medius-status-code medius-incompatible-app-id)) + "medius-incompatible-app-id" + ) + ((= v1-2 (medius-status-code medius-dberror)) + "medius-dberror" + ) + ((= v1-2 (medius-status-code medius-channel-not-found)) + "medius-channel-not-found" + ) + ((= v1-2 (medius-status-code medius-machine-banned)) + "medius-machine-banned" + ) + ((= v1-2 (medius-status-code medius-game-name-exists)) + "medius-game-name-exists" + ) + ((= v1-2 (medius-status-code extra-medius-callback-status)) + "extra-medius-callback-status" + ) + ((= v1-2 (medius-status-code medius-password-not-uccompliant)) + "medius-password-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-account-not-uccompliant)) + "medius-account-not-uccompliant" + ) + ((= v1-2 (medius-status-code medius-filter-failed)) + "medius-filter-failed" + ) + ((= v1-2 (medius-status-code medius-channel-name-exists)) + "medius-channel-name-exists" + ) + ((= v1-2 (medius-status-code medius-num-game-worlds-per-lobby-world-exceeded)) + "medius-num-game-worlds-per-lobby-world-exceeded" + ) + ((= v1-2 (medius-status-code medius-registration-failed)) + "medius-registration-failed" + ) + ((= v1-2 (medius-status-code medius-text-string-invalid)) + "medius-text-string-invalid" + ) + ((= v1-2 (medius-status-code medius-dnassignature-logged-in)) + "medius-dnassignature-logged-in" + ) + ((= v1-2 (medius-status-code medius-num-filters-at-max)) + "medius-num-filters-at-max" + ) + ((= v1-2 (medius-status-code medius-game-name-not-found)) + "medius-game-name-not-found" + ) + ((= v1-2 (medius-status-code medius-login-failed)) + "medius-login-failed" + ) + ((= v1-2 (medius-status-code medius-game-not-found)) + "medius-game-not-found" + ) + ((= v1-2 (medius-status-code medius-account-banned)) + "medius-account-banned" + ) + ((= v1-2 (medius-status-code medius-invalid-request-msg)) + "medius-invalid-request-msg" + ) + ((= v1-2 (medius-status-code medius-max-exceeded)) + "medius-max-exceeded" + ) + ((= v1-2 (medius-status-code medius-data-already-exists)) + "medius-data-already-exists" + ) + ((= v1-2 (medius-status-code medius-world-created-size-reduced)) + "medius-world-created-size-reduced" + ) + ((= v1-2 (medius-status-code medius-fail)) + "medius-fail" + ) + ((= v1-2 (medius-status-code medius-file-already-exists)) + "medius-file-already-exists" + ) + ((= v1-2 (medius-status-code medius-file-quota-exceeded)) + "medius-file-quota-exceeded" + ) + ((= v1-2 (medius-status-code medius-pass)) + "medius-pass" + ) + ((= v1-2 (medius-status-code medius-no-result)) + "medius-no-result" + ) + ((= v1-2 (medius-status-code medius-request-denied)) + "medius-request-denied" + ) + ((= v1-2 (medius-status-code medius-begin-session-failed)) + "medius-begin-session-failed" + ) + ((= v1-2 (medius-status-code medius-dmeerror)) + "medius-dmeerror" + ) + ((= v1-2 (medius-status-code medius-account-logged-in)) + "medius-account-logged-in" + ) + ((= v1-2 (medius-status-code medius-file-no-permissions)) + "medius-file-no-permissions" + ) + ((= v1-2 (medius-status-code medius-player-not-privileged)) + "medius-player-not-privileged" + ) + ((= v1-2 (medius-status-code medius-not-clan-member)) + "medius-not-clan-member" + ) + ((= v1-2 (medius-status-code medius-request-accepted)) + "medius-request-accepted" + ) + ((= v1-2 (medius-status-code medius-file-invalid-filename)) + "medius-file-invalid-filename" + ) + ((= v1-2 (medius-status-code medius-data-does-not-exist)) + "medius-data-does-not-exist" + ) + ((= v1-2 (medius-status-code medius-file-internal-access-error)) + "medius-file-internal-access-error" + ) + ((= v1-2 (medius-status-code medius-set-game-list-filter-failed)) + "medius-set-game-list-filter-failed" + ) + ((= v1-2 (medius-status-code medius-account-not-found)) + "medius-account-not-found" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tmessage-id[21] @ #x~X~%" (-> this message-id)) + (label cfg-133) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/net/scert-funcs_REF.gc b/test/decompiler/reference/jakx/engine/net/scert-funcs_REF.gc new file mode 100644 index 0000000000..0c51dd96dc --- /dev/null +++ b/test/decompiler/reference/jakx/engine/net/scert-funcs_REF.gc @@ -0,0 +1,12 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *scert-function-id*, type int +(define *scert-function-id* 0) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/physics/cloth-h_REF.gc b/test/decompiler/reference/jakx/engine/physics/cloth-h_REF.gc new file mode 100644 index 0000000000..b4fff2d755 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/physics/cloth-h_REF.gc @@ -0,0 +1,657 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type stick-constraint +(deftype stick-constraint (structure) + ((constraint-length-half float) + (one-over-two-times-constraint-length float) + (constraint-length-sqd float) + (particle0 uint16) + (particle1 uint16) + ) + ) + +;; definition for method 3 of type stick-constraint +(defmethod inspect ((this stick-constraint)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'stick-constraint) + (format #t "~1Tconstraint-length-half: ~f~%" (-> this constraint-length-half)) + (format #t "~1Tone-over-two-times-constraint-length: ~f~%" (-> this one-over-two-times-constraint-length)) + (format #t "~1Tconstraint-length-sqd: ~f~%" (-> this constraint-length-sqd)) + (format #t "~1Tparticle0: ~D~%" (-> this particle0)) + (format #t "~1Tparticle1: ~D~%" (-> this particle1)) + (label cfg-4) + this + ) + +;; definition of type verlet-particle +(deftype verlet-particle (structure) + ((pos vector :inline) + (prev-pos vector :inline) + (mass-scale float) + ) + ) + +;; definition for method 3 of type verlet-particle +(defmethod inspect ((this verlet-particle)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'verlet-particle) + (format #t "~1Tpos: #~%" (-> this pos)) + (format #t "~1Tprev-pos: #~%" (-> this prev-pos)) + (format #t "~1Tmass-scale: ~f~%" (-> this mass-scale)) + (label cfg-4) + this + ) + +;; definition of type disc-constraint +(deftype disc-constraint (structure) + ((normal vector :inline) + (origin vector :inline) + (radius float) + (start-particle-index int16) + (end-particle-index int16) + ) + ) + +;; definition for method 3 of type disc-constraint +(defmethod inspect ((this disc-constraint)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'disc-constraint) + (format #t "~1Tnormal: #~%" (-> this normal)) + (format #t "~1Torigin: #~%" (-> this origin)) + (format #t "~1Tradius: ~f~%" (-> this radius)) + (format #t "~1Tstart-particle-index: ~D~%" (-> this start-particle-index)) + (format #t "~1Tend-particle-index: ~D~%" (-> this end-particle-index)) + (label cfg-4) + this + ) + +;; definition of type cylinder-constraint +(deftype cylinder-constraint (structure) + ((c0 vector :inline) + (norm vector :inline) + (length float) + (radius float) + ) + ) + +;; definition for method 3 of type cylinder-constraint +(defmethod inspect ((this cylinder-constraint)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'cylinder-constraint) + (format #t "~1Tc0: #~%" (-> this c0)) + (format #t "~1Tnorm: #~%" (-> this norm)) + (format #t "~1Tlength: ~f~%" (-> this length)) + (format #t "~1Tradius: ~f~%" (-> this radius)) + (label cfg-4) + this + ) + +;; definition of type particle-anchor-point +(deftype particle-anchor-point (structure) + ((anchor-pos vector :inline) + (particle-index uint16) + ) + ) + +;; definition for method 3 of type particle-anchor-point +(defmethod inspect ((this particle-anchor-point)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'particle-anchor-point) + (format #t "~1Tanchor-pos: #~%" (-> this anchor-pos)) + (format #t "~1Tparticle-index: ~D~%" (-> this particle-index)) + (label cfg-4) + this + ) + +;; definition of type particle-array +(deftype particle-array (inline-array-class) + ((data verlet-particle :inline :dynamic) + ) + ) + +;; definition for method 3 of type particle-array +(defmethod inspect ((this particle-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> particle-array heap-base) (the-as uint 48)) + +;; definition of type float-array +(deftype float-array (inline-array-class) + ((data float :inline :dynamic) + ) + ) + +;; definition for method 3 of type float-array +(defmethod inspect ((this float-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> float-array heap-base) (the-as uint 4)) + +;; definition of type stick-constraint-array +(deftype stick-constraint-array (inline-array-class) + ((data stick-constraint :inline :dynamic) + ) + ) + +;; definition for method 3 of type stick-constraint-array +(defmethod inspect ((this stick-constraint-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> stick-constraint-array heap-base) (the-as uint 16)) + +;; definition of type collision-sphere-array +(deftype collision-sphere-array (inline-array-class) + ((data sphere :inline :dynamic) + ) + ) + +;; definition for method 3 of type collision-sphere-array +(defmethod inspect ((this collision-sphere-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> collision-sphere-array heap-base) (the-as uint 16)) + +;; definition of type collision-disc-array +(deftype collision-disc-array (inline-array-class) + ((data disc-constraint :inline :dynamic) + ) + ) + +;; definition for method 3 of type collision-disc-array +(defmethod inspect ((this collision-disc-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> collision-disc-array heap-base) (the-as uint 48)) + +;; definition of type collision-cylinder-array +(deftype collision-cylinder-array (inline-array-class) + ((data cylinder-constraint :inline :dynamic) + ) + ) + +;; definition for method 3 of type collision-cylinder-array +(defmethod inspect ((this collision-cylinder-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> collision-cylinder-array heap-base) (the-as uint 48)) + +;; definition of type anchor-point-array +(deftype anchor-point-array (inline-array-class) + ((data particle-anchor-point :inline :dynamic) + ) + ) + +;; definition for method 3 of type anchor-point-array +(defmethod inspect ((this anchor-point-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> anchor-point-array heap-base) (the-as uint 32)) + +;; definition of type verlet-particle-system +(deftype verlet-particle-system (cloth-base) + ((particles particle-array) + (drag float) + (accum-force vector :inline) + (timestep-frequency int8) + (last-simulate-remaining int8) + (momentum vector :inline) + ) + (:methods + (verlet-particle-system-method-11 () none) + (verlet-particle-system-method-12 () none) + (verlet-particle-system-method-13 () none) + (verlet-particle-system-method-14 () none) + (verlet-particle-system-method-15 () none) + ) + ) + +;; definition for method 3 of type verlet-particle-system +(defmethod inspect ((this verlet-particle-system)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tparticles: ~A~%" (-> this particles)) + (format #t "~1Tdrag: ~f~%" (-> this drag)) + (format #t "~1Taccum-force: #~%" (-> this accum-force)) + (format #t "~1Ttimestep-frequency: ~D~%" (-> this timestep-frequency)) + (format #t "~1Tlast-simulate-remaining: ~D~%" (-> this last-simulate-remaining)) + (format #t "~1Tmomentum: #~%" (-> this momentum)) + (label cfg-4) + this + ) + +;; definition of type current-position-info +(deftype current-position-info (structure) + ((current-vert-index uint16) + (last-2-x-index uint16) + (last-2-y-index uint16) + (last-x-index uint16) + (last-y-index uint16) + (lights vu-lights :inline) + (scale vector :inline) + (clamp-col vector :inline) + (last-normal vector :inline) + (face-normal-needs-flip? symbol) + (cross-index0 int8) + (cross-index1 int8) + (backside-normal vector :inline) + ) + ) + +;; definition for method 3 of type current-position-info +(defmethod inspect ((this current-position-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'current-position-info) + (format #t "~1Tcurrent-vert-index: ~D~%" (-> this current-vert-index)) + (format #t "~1Tlast-2-x-index: ~D~%" (-> this last-2-x-index)) + (format #t "~1Tlast-2-y-index: ~D~%" (-> this last-2-y-index)) + (format #t "~1Tlast-x-index: ~D~%" (-> this last-x-index)) + (format #t "~1Tlast-y-index: ~D~%" (-> this last-y-index)) + (format #t "~1Tlights: #~%" (-> this lights)) + (format #t "~1Tscale: #~%" (-> this scale)) + (format #t "~1Tclamp-col: #~%" (-> this clamp-col)) + (format #t "~1Tlast-normal: #~%" (-> this last-normal)) + (format #t "~1Tface-normal-needs-flip?: ~A~%" (-> this face-normal-needs-flip?)) + (format #t "~1Tcross-index0: ~D~%" (-> this cross-index0)) + (format #t "~1Tcross-index1: ~D~%" (-> this cross-index1)) + (format #t "~1Tbackside-normal: #~%" (-> this backside-normal)) + (label cfg-4) + this + ) + +;; definition of type cloth-system +(deftype cloth-system (verlet-particle-system) + ((ground-constraint float) + (disc-collision-constraints collision-disc-array) + (collision-constraints collision-sphere-array) + (stick-constraints stick-constraint-array) + (anchor-points anchor-point-array) + (constraint-strengths int32 3) + (num-xy-constraints int16) + (num-diagonal-constraints int16) + (cloth-width int32) + (cloth-height int32) + (strip prim-strip) + (strip2 prim-strip) + (strip3 prim-strip) + (mesh art-cloth-geo) + (gravity-constant float) + (wind-constant float) + (flags cloth-flag) + (thickness-scalar float) + (ball-collision-radius float) + (face-normal-scalar float) + (reset-count int8) + (num-iterations int8) + (secret-disable game-secrets) + (params cloth-params) + ) + (:methods + (initialize-cloth-system! (_type_ cloth-params) none) + (debug-draw-spheres (_type_) none) + (post-physics-update (_type_) int) + (enforce-constraints-1 (_type_) none) + (enforce-constraints-2 (_type_) none) + (cloth-system-method-21 (_type_) none) + (cloth-system-method-22 (_type_) none) + (cloth-system-method-23 (_type_) none) + (cloth-system-method-24 (_type_) int) + (cloth-system-method-25 (_type_) int) + (cloth-system-method-26 (_type_) none) + (cloth-system-method-27 (_type_ vector int int current-position-info) vector) + (cloth-system-method-28 (_type_ int int current-position-info) none) + (cloth-system-method-29 (_type_ int int current-position-info int) uint) + (cloth-system-method-30 (_type_ int int current-position-info int) none) + (cloth-system-method-31 (_type_ current-position-info) none) + (cloth-system-method-32 (_type_ vector int int current-position-info) none) + (cloth-system-method-33 (_type_ vu-lights) none) + (hide! (_type_) none) + (reset-locations (_type_) none) + (pre-physics-update (_type_) none) + (cloth-system-cmd-handler (_type_ pair) none) + ) + ) + +;; definition for method 3 of type cloth-system +(defmethod inspect ((this cloth-system)) + (when (not this) + (set! this this) + (goto cfg-50) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tparticles: ~A~%" (-> this particles)) + (format #t "~1Tdrag: ~f~%" (-> this drag)) + (format #t "~1Taccum-force: #~%" (-> this accum-force)) + (format #t "~1Ttimestep-frequency: ~D~%" (-> this timestep-frequency)) + (format #t "~1Tlast-simulate-remaining: ~D~%" (-> this last-simulate-remaining)) + (format #t "~1Tmomentum: #~%" (-> this momentum)) + (format #t "~1Tground-constraint: ~f~%" (-> this ground-constraint)) + (format #t "~1Tdisc-collision-constraints: ~A~%" (-> this disc-collision-constraints)) + (format #t "~1Tcollision-constraints: ~A~%" (-> this collision-constraints)) + (format #t "~1Tstick-constraints: ~A~%" (-> this stick-constraints)) + (format #t "~1Tanchor-points: ~A~%" (-> this anchor-points)) + (format #t "~1Tconstraint-strengths[3] @ #x~X~%" (-> this constraint-strengths)) + (format #t "~1Tnum-xy-constraints: ~D~%" (-> this num-xy-constraints)) + (format #t "~1Tnum-diagonal-constraints: ~D~%" (-> this num-diagonal-constraints)) + (format #t "~1Tcloth-width: ~D~%" (-> this cloth-width)) + (format #t "~1Tcloth-height: ~D~%" (-> this cloth-height)) + (format #t "~1Tstrip: ~A~%" (-> this strip)) + (format #t "~1Tstrip2: ~A~%" (-> this strip2)) + (format #t "~1Tstrip3: ~A~%" (-> this strip3)) + (format #t "~1Tmesh: ~A~%" (-> this mesh)) + (format #t "~1Tgravity-constant: ~f~%" (-> this gravity-constant)) + (format #t "~1Twind-constant: ~f~%" (-> this wind-constant)) + (format #t "~1Tflags: #x~X : (cloth-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (cloth-flag active)) (cloth-flag active)) + (format #t "active ") + ) + (if (= (logand s5-0 (cloth-flag suppress-mesh-failure)) (cloth-flag suppress-mesh-failure)) + (format #t "suppress-mesh-failure ") + ) + (if (= (logand s5-0 (cloth-flag need-setup)) (cloth-flag need-setup)) + (format #t "need-setup ") + ) + (if (= (logand s5-0 (cloth-flag double-sided)) (cloth-flag double-sided)) + (format #t "double-sided ") + ) + (if (= (logand s5-0 (cloth-flag flip-normals)) (cloth-flag flip-normals)) + (format #t "flip-normals ") + ) + (if (= (logand s5-0 (cloth-flag use-global-wind)) (cloth-flag use-global-wind)) + (format #t "use-global-wind ") + ) + (if (= (logand s5-0 (cloth-flag inited)) (cloth-flag inited)) + (format #t "inited ") + ) + (if (= (logand s5-0 (cloth-flag use-wind)) (cloth-flag use-wind)) + (format #t "use-wind ") + ) + (if (= (logand (cloth-flag using-alt-tex) s5-0) (cloth-flag using-alt-tex)) + (format #t "using-alt-tex ") + ) + (if (= (logand s5-0 (cloth-flag check-ground)) (cloth-flag check-ground)) + (format #t "check-ground ") + ) + (if (= (logand (cloth-flag use-old-resets) s5-0) (cloth-flag use-old-resets)) + (format #t "use-old-resets ") + ) + (if (= (logand (cloth-flag local-space) s5-0) (cloth-flag local-space)) + (format #t "local-space ") + ) + (if (= (logand s5-0 (cloth-flag use-parent-momentum)) (cloth-flag use-parent-momentum)) + (format #t "use-parent-momentum ") + ) + (if (= (logand s5-0 (cloth-flag wraps)) (cloth-flag wraps)) + (format #t "wraps ") + ) + (if (= (logand (cloth-flag local-space-xyz) s5-0) (cloth-flag local-space-xyz)) + (format #t "local-space-xyz ") + ) + (if (= (logand (cloth-flag riding) s5-0) (cloth-flag riding)) + (format #t "riding ") + ) + (if (= (logand s5-0 (cloth-flag need-reset)) (cloth-flag need-reset)) + (format #t "need-reset ") + ) + (if (= (logand s5-0 (cloth-flag use-momentum)) (cloth-flag use-momentum)) + (format #t "use-momentum ") + ) + (if (= (logand s5-0 (cloth-flag no-draw)) (cloth-flag no-draw)) + (format #t "no-draw ") + ) + (if (= (logand (cloth-flag local-space-y) s5-0) (cloth-flag local-space-y)) + (format #t "local-space-y ") + ) + (if (= (logand s5-0 (cloth-flag no-gravity)) (cloth-flag no-gravity)) + (format #t "no-gravity ") + ) + (if (= (logand s5-0 (cloth-flag autogen-uvs)) (cloth-flag autogen-uvs)) + (format #t "autogen-uvs ") + ) + (if (= (logand (cloth-flag hidden) s5-0) (cloth-flag hidden)) + (format #t "hidden ") + ) + ) + (format #t ")~%") + (format #t "~1Tthickness-scalar: ~f~%" (-> this thickness-scalar)) + (format #t "~1Tball-collision-radius: ~f~%" (-> this ball-collision-radius)) + (format #t "~1Tface-normal-scalar: ~f~%" (-> this face-normal-scalar)) + (format #t "~1Treset-count: ~D~%" (-> this reset-count)) + (format #t "~1Tnum-iterations: ~D~%" (-> this num-iterations)) + (format #t "~1Tsecret-disable: ~D~%" (-> this secret-disable)) + (format #t "~1Tparams: #~%" (-> this params)) + (label cfg-50) + this + ) + +;; definition of type cloth-on-skeleton +(deftype cloth-on-skeleton (cloth-system) + ((base-transform-index int16) + (owner handle) + (last-owner-pos vector :inline) + (last-owner-mat matrix :inline) + ) + ) + +;; definition for method 3 of type cloth-on-skeleton +(defmethod inspect ((this cloth-on-skeleton)) + (when (not this) + (set! this this) + (goto cfg-50) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tparticles: ~A~%" (-> this particles)) + (format #t "~1Tdrag: ~f~%" (-> this drag)) + (format #t "~1Taccum-force: #~%" (-> this accum-force)) + (format #t "~1Ttimestep-frequency: ~D~%" (-> this timestep-frequency)) + (format #t "~1Tlast-simulate-remaining: ~D~%" (-> this last-simulate-remaining)) + (format #t "~1Tmomentum: #~%" (-> this momentum)) + (format #t "~1Tground-constraint: ~f~%" (-> this ground-constraint)) + (format #t "~1Tdisc-collision-constraints: ~A~%" (-> this disc-collision-constraints)) + (format #t "~1Tcollision-constraints: ~A~%" (-> this collision-constraints)) + (format #t "~1Tstick-constraints: ~A~%" (-> this stick-constraints)) + (format #t "~1Tanchor-points: ~A~%" (-> this anchor-points)) + (format #t "~1Tconstraint-strengths[3] @ #x~X~%" (-> this constraint-strengths)) + (format #t "~1Tnum-xy-constraints: ~D~%" (-> this num-xy-constraints)) + (format #t "~1Tnum-diagonal-constraints: ~D~%" (-> this num-diagonal-constraints)) + (format #t "~1Tcloth-width: ~D~%" (-> this cloth-width)) + (format #t "~1Tcloth-height: ~D~%" (-> this cloth-height)) + (format #t "~1Tstrip: ~A~%" (-> this strip)) + (format #t "~1Tstrip2: ~A~%" (-> this strip2)) + (format #t "~1Tstrip3: ~A~%" (-> this strip3)) + (format #t "~1Tmesh: ~A~%" (-> this mesh)) + (format #t "~1Tgravity-constant: ~f~%" (-> this gravity-constant)) + (format #t "~1Twind-constant: ~f~%" (-> this wind-constant)) + (format #t "~1Tflags: #x~X : (cloth-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (cloth-flag active)) (cloth-flag active)) + (format #t "active ") + ) + (if (= (logand s5-0 (cloth-flag suppress-mesh-failure)) (cloth-flag suppress-mesh-failure)) + (format #t "suppress-mesh-failure ") + ) + (if (= (logand s5-0 (cloth-flag need-setup)) (cloth-flag need-setup)) + (format #t "need-setup ") + ) + (if (= (logand s5-0 (cloth-flag double-sided)) (cloth-flag double-sided)) + (format #t "double-sided ") + ) + (if (= (logand s5-0 (cloth-flag flip-normals)) (cloth-flag flip-normals)) + (format #t "flip-normals ") + ) + (if (= (logand s5-0 (cloth-flag use-global-wind)) (cloth-flag use-global-wind)) + (format #t "use-global-wind ") + ) + (if (= (logand s5-0 (cloth-flag inited)) (cloth-flag inited)) + (format #t "inited ") + ) + (if (= (logand s5-0 (cloth-flag use-wind)) (cloth-flag use-wind)) + (format #t "use-wind ") + ) + (if (= (logand (cloth-flag using-alt-tex) s5-0) (cloth-flag using-alt-tex)) + (format #t "using-alt-tex ") + ) + (if (= (logand s5-0 (cloth-flag check-ground)) (cloth-flag check-ground)) + (format #t "check-ground ") + ) + (if (= (logand (cloth-flag use-old-resets) s5-0) (cloth-flag use-old-resets)) + (format #t "use-old-resets ") + ) + (if (= (logand (cloth-flag local-space) s5-0) (cloth-flag local-space)) + (format #t "local-space ") + ) + (if (= (logand s5-0 (cloth-flag use-parent-momentum)) (cloth-flag use-parent-momentum)) + (format #t "use-parent-momentum ") + ) + (if (= (logand s5-0 (cloth-flag wraps)) (cloth-flag wraps)) + (format #t "wraps ") + ) + (if (= (logand (cloth-flag local-space-xyz) s5-0) (cloth-flag local-space-xyz)) + (format #t "local-space-xyz ") + ) + (if (= (logand (cloth-flag riding) s5-0) (cloth-flag riding)) + (format #t "riding ") + ) + (if (= (logand s5-0 (cloth-flag need-reset)) (cloth-flag need-reset)) + (format #t "need-reset ") + ) + (if (= (logand s5-0 (cloth-flag use-momentum)) (cloth-flag use-momentum)) + (format #t "use-momentum ") + ) + (if (= (logand s5-0 (cloth-flag no-draw)) (cloth-flag no-draw)) + (format #t "no-draw ") + ) + (if (= (logand (cloth-flag local-space-y) s5-0) (cloth-flag local-space-y)) + (format #t "local-space-y ") + ) + (if (= (logand s5-0 (cloth-flag no-gravity)) (cloth-flag no-gravity)) + (format #t "no-gravity ") + ) + (if (= (logand s5-0 (cloth-flag autogen-uvs)) (cloth-flag autogen-uvs)) + (format #t "autogen-uvs ") + ) + (if (= (logand (cloth-flag hidden) s5-0) (cloth-flag hidden)) + (format #t "hidden ") + ) + ) + (format #t ")~%") + (format #t "~1Tthickness-scalar: ~f~%" (-> this thickness-scalar)) + (format #t "~1Tball-collision-radius: ~f~%" (-> this ball-collision-radius)) + (format #t "~1Tface-normal-scalar: ~f~%" (-> this face-normal-scalar)) + (format #t "~1Treset-count: ~D~%" (-> this reset-count)) + (format #t "~1Tnum-iterations: ~D~%" (-> this num-iterations)) + (format #t "~1Tsecret-disable: ~D~%" (-> this secret-disable)) + (format #t "~1Tparams: #~%" (-> this params)) + (format #t "~1Tbase-transform-index: ~D~%" (-> this base-transform-index)) + (format #t "~1Towner: ~D~%" (-> this owner)) + (format #t "~1Tlast-owner-pos: #~%" (-> this last-owner-pos)) + (format #t "~1Tlast-owner-mat: #~%" (-> this last-owner-mat)) + (label cfg-50) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/physics/ragdoll-h_REF.gc b/test/decompiler/reference/jakx/engine/physics/ragdoll-h_REF.gc index e7b19d0ba7..92d1bba648 100644 --- a/test/decompiler/reference/jakx/engine/physics/ragdoll-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/physics/ragdoll-h_REF.gc @@ -283,8 +283,10 @@ ((ragdoll ragdoll) (last-attack-id uint32) ) + (:state-methods + idle + ) (:methods - (ragdoll-proc-method-15 () none) (ragdoll-proc-method-16 () none) (ragdoll-proc-method-17 () none) (ragdoll-proc-method-18 () none) diff --git a/test/decompiler/reference/jakx/engine/physics/rigid-body-h_REF.gc b/test/decompiler/reference/jakx/engine/physics/rigid-body-h_REF.gc new file mode 100644 index 0000000000..4a45271b23 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/physics/rigid-body-h_REF.gc @@ -0,0 +1,641 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type rigid-body-info +(deftype rigid-body-info (structure) + ((max-time-step float) + (mass float) + (inv-mass float) + (linear-damping float) + (angular-damping float) + (bounce-factor float) + (friction-factor float) + (bounce-mult-factor float) + (cm-offset-joint vector :inline) + (inv-inertial-tensor matrix :inline) + (inertial-tensor matrix :inline) + (inertial-tensor-box meters 3) + (gravity float) + (max-ang-momentum float) + ) + (:methods + (rigid-body-info-method-9 () none) + ) + ) + +;; definition for method 3 of type rigid-body-info +(defmethod inspect ((this rigid-body-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rigid-body-info) + (format #t "~1Tmax-time-step: ~f~%" (-> this max-time-step)) + (format #t "~1Tmass: ~f~%" (-> this mass)) + (format #t "~1Tinv-mass: ~f~%" (-> this inv-mass)) + (format #t "~1Tlinear-damping: ~f~%" (-> this linear-damping)) + (format #t "~1Tangular-damping: ~f~%" (-> this angular-damping)) + (format #t "~1Tbounce-factor: ~f~%" (-> this bounce-factor)) + (format #t "~1Tfriction-factor: ~f~%" (-> this friction-factor)) + (format #t "~1Tbounce-mult-factor: ~f~%" (-> this bounce-mult-factor)) + (format #t "~1Tcm-offset-joint: ~`vector`P~%" (-> this cm-offset-joint)) + (format #t "~1Tinv-inertial-tensor: #~%" (-> this inv-inertial-tensor)) + (format #t "~1Tinertial-tensor: #~%" (-> this inertial-tensor)) + (format #t "~1Tinertial-tensor-box[3] @ #x~X~%" (-> this inertial-tensor-box)) + (format #t "~1Tgravity: ~f~%" (-> this gravity)) + (format #t "~1Tmax-ang-momentum: ~f~%" (-> this max-ang-momentum)) + (label cfg-4) + this + ) + +;; definition of type rigid-body-object-extra-info +(deftype rigid-body-object-extra-info (structure) + ((gravity meters) + (attack-force-scale float) + ) + :pack-me + ) + +;; definition for method 3 of type rigid-body-object-extra-info +(defmethod inspect ((this rigid-body-object-extra-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rigid-body-object-extra-info) + (label cfg-4) + this + ) + +;; definition of type rigid-body-object-constants +(deftype rigid-body-object-constants (structure) + ((info rigid-body-info :inline) + (max-time-step float :overlay-at (-> info max-time-step)) + (mass float :overlay-at (-> info mass)) + (inv-mass float :overlay-at (-> info inv-mass)) + (cm-joint-x meters :overlay-at (-> info cm-offset-joint data 0)) + (cm-joint-y meters :overlay-at (-> info cm-offset-joint data 1)) + (cm-joint-z meters :overlay-at (-> info cm-offset-joint data 2)) + (linear-damping float :overlay-at (-> info linear-damping)) + (angular-damping float :overlay-at (-> info angular-damping)) + (bounce-factor float :overlay-at (-> info bounce-factor)) + (friction-factor float :overlay-at (-> info friction-factor)) + (inertial-tensor-x meters :overlay-at (-> info inertial-tensor-box 0)) + (inertial-tensor-y meters :overlay-at (-> info inertial-tensor-box 1)) + (inertial-tensor-z meters :overlay-at (-> info inertial-tensor-box 2)) + (gravity meters :overlay-at (-> info gravity)) + (name symbol) + ) + (:methods + (rigid-body-object-constants-method-9 () none) + ) + ) + +;; definition for method 3 of type rigid-body-object-constants +(defmethod inspect ((this rigid-body-object-constants)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rigid-body-object-constants) + (format #t "~1Tinfo: #~%" (-> this info)) + (format #t "~1Tmax-time-step: ~f~%" (-> this info max-time-step)) + (format #t "~1Tmass: ~f~%" (-> this info mass)) + (format #t "~1Tinv-mass: ~f~%" (-> this info inv-mass)) + (format #t "~1Tcm-joint-x: (meters ~m)~%" (-> this info cm-offset-joint x)) + (format #t "~1Tcm-joint-y: (meters ~m)~%" (-> this info cm-offset-joint y)) + (format #t "~1Tcm-joint-z: (meters ~m)~%" (-> this info cm-offset-joint z)) + (format #t "~1Tlinear-damping: ~f~%" (-> this info linear-damping)) + (format #t "~1Tangular-damping: ~f~%" (-> this info angular-damping)) + (format #t "~1Tbounce-factor: ~f~%" (-> this info bounce-factor)) + (format #t "~1Tfriction-factor: ~f~%" (-> this info friction-factor)) + (format #t "~1Tinertial-tensor-x: (meters ~m)~%" (-> this inertial-tensor-x)) + (format #t "~1Tinertial-tensor-y: (meters ~m)~%" (-> this inertial-tensor-y)) + (format #t "~1Tinertial-tensor-z: (meters ~m)~%" (-> this inertial-tensor-z)) + (format #t "~1Tgravity: (meters ~m)~%" (-> this info gravity)) + (format #t "~1Tname: ~A~%" (-> this name)) + (label cfg-4) + this + ) + +;; definition of type rigid-body-impact +(deftype rigid-body-impact (structure) + ((point vector :inline) + (normal vector :inline) + (velocity vector :inline) + (impulse float) + (pat pat-surface) + (process process) + (prim-id uint32) + (surface basic) + ) + :pack-me + ) + +;; definition for method 3 of type rigid-body-impact +(defmethod inspect ((this rigid-body-impact)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rigid-body-impact) + (format #t "~1Tpoint: ~`vector`P~%" (-> this point)) + (format #t "~1Tnormal: ~`vector`P~%" (-> this normal)) + (format #t "~1Tvelocity: ~`vector`P~%" (-> this velocity)) + (format #t "~1Timpulse: ~f~%" (-> this impulse)) + (format #t "~1Tpat: ~D~%" (-> this pat)) + (format #t "~1Tprocess: ~A~%" (-> this process)) + (format #t "~1Tprim-id: ~D~%" (-> this prim-id)) + (format #t "~1Tsurface: ~A~%" (-> this surface)) + (label cfg-4) + this + ) + +;; definition of type rigid-body-control +(deftype rigid-body-control (basic) + ((flags rigid-body-flag) + (debug-id int8) + (debugger-step int8) + (info rigid-body-info) + (force-callback (function rigid-body-object float none)) + (post-move-callback basic) + (process process) + (time-remaining float) + (max-ang-momentum float) + (linear-damping float) + (angular-damping float) + (bounce-factor float) + (friction-factor float) + (position vector :inline) + (rot vector :inline) + (rotation quaternion :inline :overlay-at (-> rot data 0)) + (lin-momentum vector :inline) + (ang-momentum vector :inline) + (force vector :inline) + (torque vector :inline) + (lin-velocity vector :inline) + (ang-velocity vector :inline) + (matrix matrix :inline) + (inv-i-world matrix :inline) + ) + (:methods + (new (symbol type) _type_) + (rigid-body-control-method-9 () none) + (rigid-body-control-method-10 () none) + (rigid-body-control-method-11 () none) + (rigid-body-control-method-12 () none) + (rigid-body-control-method-13 () none) + (rigid-body-control-method-14 () none) + (rigid-body-control-method-15 () none) + (rigid-body-control-method-16 () none) + (rigid-body-control-method-17 () none) + (rigid-body-control-method-18 () none) + (rigid-body-control-method-19 () none) + (rigid-body-control-method-20 () none) + (rigid-body-control-method-21 () none) + (rigid-body-control-method-22 () none) + (rigid-body-control-method-23 () none) + (rigid-body-control-method-24 () none) + (rigid-body-control-method-25 () none) + (rigid-body-control-method-26 () none) + (rigid-body-control-method-27 () none) + (rigid-body-control-method-28 () none) + (rigid-body-control-method-29 () none) + (rigid-body-control-method-30 () none) + (rigid-body-control-method-31 () none) + (rigid-body-control-method-32 () none) + (rigid-body-control-method-33 () none) + (rigid-body-control-method-34 () none) + (rigid-body-control-method-35 () none) + (rigid-body-control-method-36 () none) + (rigid-body-control-method-37 () none) + (rigid-body-control-method-38 () none) + (rigid-body-control-method-39 () none) + (rigid-body-control-method-40 () none) + ) + ) + +;; definition for method 3 of type rigid-body-control +(defmethod inspect ((this rigid-body-control)) + (when (not this) + (set! this this) + (goto cfg-30) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tflags: #x~X : (rigid-body-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (rigid-body-flag debug-active)) (rigid-body-flag debug-active)) + (format #t "active ") + ) + (if (= (logand s5-0 (rigid-body-flag impact)) (rigid-body-flag impact)) + (format #t "impact ") + ) + (if (= (logand s5-0 (rigid-body-flag enable-penetrate-mode)) (rigid-body-flag enable-penetrate-mode)) + (format #t "enable-penetrate-mode ") + ) + (if (= (logand s5-0 (rigid-body-flag enable-physics)) (rigid-body-flag enable-physics)) + (format #t "enable-physics ") + ) + (if (= (logand s5-0 (rigid-body-flag temp-penetrate-mode)) (rigid-body-flag temp-penetrate-mode)) + (format #t "temp-penetrate-mode ") + ) + (if (= (logand s5-0 (rigid-body-flag display-marks)) (rigid-body-flag display-marks)) + (format #t "display-marks ") + ) + (if (= (logand s5-0 (rigid-body-flag vehicle-line-spheres-hack)) (rigid-body-flag vehicle-line-spheres-hack)) + (format #t "vehicle-line-spheres-hack ") + ) + (if (= (logand s5-0 (rigid-body-flag debug-target)) (rigid-body-flag debug-target)) + (format #t "debug-target ") + ) + (if (= (logand s5-0 (rigid-body-flag sphere-normal-hack)) (rigid-body-flag sphere-normal-hack)) + (format #t "sphere-normal-hack ") + ) + (if (= (logand s5-0 (rigid-body-flag disable-queue)) (rigid-body-flag disable-queue)) + (format #t "disable-queue ") + ) + (if (= (logand s5-0 (rigid-body-flag debug)) (rigid-body-flag debug)) + (format #t "debug ") + ) + (if (= (logand s5-0 (rigid-body-flag stuck)) (rigid-body-flag stuck)) + (format #t "stuck ") + ) + (if (= (logand s5-0 (rigid-body-flag wall-normal-hack)) (rigid-body-flag wall-normal-hack)) + (format #t "wall-normal-hack ") + ) + ) + (format #t ")~%") + (format #t "~1Tdebug-id: ~D~%" (-> this debug-id)) + (format #t "~1Tdebugger-step: ~D~%" (-> this debugger-step)) + (format #t "~1Tinfo: #~%" (-> this info)) + (format #t "~1Tforce-callback: ~A~%" (-> this force-callback)) + (format #t "~1Tpost-move-callback: ~A~%" (-> this post-move-callback)) + (format #t "~1Tprocess: ~A~%" (-> this process)) + (format #t "~1Ttime-remaining: ~f~%" (-> this time-remaining)) + (format #t "~1Tmax-ang-momentum: ~f~%" (-> this max-ang-momentum)) + (format #t "~1Tlinear-damping: ~f~%" (-> this linear-damping)) + (format #t "~1Tangular-damping: ~f~%" (-> this angular-damping)) + (format #t "~1Tbounce-factor: ~f~%" (-> this bounce-factor)) + (format #t "~1Tfriction-factor: ~f~%" (-> this friction-factor)) + (format #t "~1Tposition: ~`vector`P~%" (-> this position)) + (format #t "~1Trot: ~`vector`P~%" (-> this rot)) + (format #t "~1Trotation: #~%" (-> this rot)) + (format #t "~1Tlin-momentum: ~`vector`P~%" (-> this lin-momentum)) + (format #t "~1Tang-momentum: ~`vector`P~%" (-> this ang-momentum)) + (format #t "~1Tforce: ~`vector`P~%" (-> this force)) + (format #t "~1Ttorque: ~`vector`P~%" (-> this torque)) + (format #t "~1Tlin-velocity: ~`vector`P~%" (-> this lin-velocity)) + (format #t "~1Tang-velocity: ~`vector`P~%" (-> this ang-velocity)) + (format #t "~1Tmatrix: #~%" (-> this matrix)) + (format #t "~1Tinv-i-world: #~%" (-> this inv-i-world)) + (label cfg-30) + this + ) + +;; definition of type rb-perf-data +(deftype rb-perf-data (structure) + ((process uint64) + (times uint32 32) + (t-rb-all uint32 :overlay-at (-> times 0)) + (t-rb-callback uint32 :overlay-at (-> times 1)) + (t-rb-fc uint32 :overlay-at (-> times 2)) + (t-rb-move uint32 :overlay-at (-> times 3)) + (t-rb-physics uint32 :overlay-at (-> times 4)) + (t-vqp-all uint32 :overlay-at (-> times 6)) + (t-vqp-common uint32 :overlay-at (-> times 7)) + (t-vqp-ja-post uint32 :overlay-at (-> times 8)) + (t-vqp-parts uint32 :overlay-at (-> times 9)) + (t-vqp-post uint32 :overlay-at (-> times 10)) + (t-vqp-sections uint32 :overlay-at (-> times 11)) + (t-vqp-sound uint32 :overlay-at (-> times 12)) + (t-nav-part1 uint32 :overlay-at (-> times 13)) + (t-nav-part2 uint32 :overlay-at (-> times 14)) + (t-nav-part3 uint32 :overlay-at (-> times 15)) + (t-nav-part4 uint32 :overlay-at (-> times 16)) + (t-nav-part5 uint32 :overlay-at (-> times 17)) + (t-nav-part6 uint32 :overlay-at (-> times 18)) + (t-nav-part7 uint32 :overlay-at (-> times 19)) + (t-nav-part8 uint32 :overlay-at (-> times 20)) + (t-nav-part9 uint32 :overlay-at (-> times 21)) + (t-nav-part10 uint32 :overlay-at (-> times 22)) + (t-part-turbo uint32 :overlay-at (-> times 27)) + (t-part-exhaust uint32 :overlay-at (-> times 23)) + (t-part-smoke uint32 :overlay-at (-> times 24)) + (t-part-scrape uint32 :overlay-at (-> times 25)) + (t-part-wheels uint32 :overlay-at (-> times 26)) + (t-part-debris uint32 :overlay-at (-> times 28)) + (t-part-water uint32 :overlay-at (-> times 29)) + (t-part-forcefield uint32 :overlay-at (-> times 30)) + (t-prim-trails uint32 :overlay-at (-> times 31)) + (begin-times uint32 32) + (begin-counts uint32 32) + (end-counts uint32 32) + ) + (:methods + (rb-perf-data-method-9 () none) + (rb-perf-data-method-10 () none) + (rb-perf-data-method-11 () none) + ) + ) + +;; definition for method 3 of type rb-perf-data +(defmethod inspect ((this rb-perf-data)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rb-perf-data) + (format #t "~1Tprocess: ~D~%" (-> this process)) + (format #t "~1Ttimes[32] @ #x~X~%" (-> this times)) + (format #t "~1Tt-rb-all: ~D~%" (-> this t-rb-all)) + (format #t "~1Tt-rb-callback: ~D~%" (-> this t-rb-callback)) + (format #t "~1Tt-rb-fc: ~D~%" (-> this t-rb-fc)) + (format #t "~1Tt-rb-move: ~D~%" (-> this t-rb-move)) + (format #t "~1Tt-rb-physics: ~D~%" (-> this t-rb-physics)) + (format #t "~1Tt-vqp-all: ~D~%" (-> this t-vqp-all)) + (format #t "~1Tt-vqp-common: ~D~%" (-> this t-vqp-common)) + (format #t "~1Tt-vqp-ja-post: ~D~%" (-> this t-vqp-ja-post)) + (format #t "~1Tt-vqp-parts: ~D~%" (-> this t-vqp-parts)) + (format #t "~1Tt-vqp-post: ~D~%" (-> this t-vqp-post)) + (format #t "~1Tt-vqp-sections: ~D~%" (-> this t-vqp-sections)) + (format #t "~1Tt-vqp-sound: ~D~%" (-> this t-vqp-sound)) + (format #t "~1Tt-nav-part1: ~D~%" (-> this t-nav-part1)) + (format #t "~1Tt-nav-part2: ~D~%" (-> this t-nav-part2)) + (format #t "~1Tt-nav-part3: ~D~%" (-> this t-nav-part3)) + (format #t "~1Tt-nav-part4: ~D~%" (-> this t-nav-part4)) + (format #t "~1Tt-nav-part5: ~D~%" (-> this t-nav-part5)) + (format #t "~1Tt-nav-part6: ~D~%" (-> this t-nav-part6)) + (format #t "~1Tt-nav-part7: ~D~%" (-> this t-nav-part7)) + (format #t "~1Tt-nav-part8: ~D~%" (-> this t-nav-part8)) + (format #t "~1Tt-nav-part9: ~D~%" (-> this t-nav-part9)) + (format #t "~1Tt-nav-part10: ~D~%" (-> this t-nav-part10)) + (format #t "~1Tt-part-turbo: ~D~%" (-> this t-part-turbo)) + (format #t "~1Tt-part-exhaust: ~D~%" (-> this t-part-exhaust)) + (format #t "~1Tt-part-smoke: ~D~%" (-> this t-part-smoke)) + (format #t "~1Tt-part-scrape: ~D~%" (-> this t-part-scrape)) + (format #t "~1Tt-part-wheels: ~D~%" (-> this t-part-wheels)) + (format #t "~1Tt-part-debris: ~D~%" (-> this t-part-debris)) + (format #t "~1Tt-part-water: ~D~%" (-> this t-part-water)) + (format #t "~1Tt-part-forcefield: ~D~%" (-> this t-part-forcefield)) + (format #t "~1Tt-prim-trails: ~D~%" (-> this t-prim-trails)) + (format #t "~1Tbegin-times[32] @ #x~X~%" (-> this begin-times)) + (format #t "~1Tbegin-counts[32] @ #x~X~%" (-> this begin-counts)) + (format #t "~1Tend-counts[32] @ #x~X~%" (-> this end-counts)) + (label cfg-4) + this + ) + +;; definition of type rigid-body-object +(deftype rigid-body-object (process-focusable) + ((root collide-shape-moving :override) + (info rigid-body-object-constants) + (flags rigid-body-object-flag) + (max-time-step float) + (incoming-attack-id uint32) + (disturbed-time uint32) + (perf rb-perf-data :offset 284) + ) + (:methods + (rigid-body-object-method-59 () none) + (rigid-body-object-method-60 () none) + (rigid-body-object-method-61 () none) + (rigid-body-object-method-62 () none) + (rigid-body-object-method-63 () none) + (rigid-body-object-method-64 () none) + (rigid-body-object-method-65 (_type_) none) + (rigid-body-object-method-66 (_type_) none) + (rigid-body-object-method-67 () none) + (rigid-body-object-method-68 () none) + (rigid-body-object-method-69 () none) + (rigid-body-object-method-70 () none) + (rigid-body-object-method-71 () none) + (rigid-body-object-method-72 () none) + (rigid-body-object-method-73 () none) + (rigid-body-object-method-74 () none) + (rigid-body-object-method-75 () none) + (rigid-body-object-method-76 () none) + (rigid-body-object-method-77 () none) + (rigid-body-object-method-78 () none) + (rigid-body-object-method-79 () none) + (rigid-body-object-method-80 () none) + (rigid-body-object-method-81 () none) + (rigid-body-object-method-82 () none) + (rigid-body-object-method-83 () none) + (rigid-body-object-method-84 () none) + (rigid-body-object-method-85 () none) + (rigid-body-object-method-86 () none) + (rigid-body-object-method-87 () none) + (rigid-body-object-method-88 () none) + ) + ) + +;; definition for method 3 of type rigid-body-object +(defmethod inspect ((this rigid-body-object)) + (when (not this) + (set! this this) + (goto cfg-12) + ) + (let ((t9-0 (method-of-type process-focusable inspect))) + (t9-0 this) + ) + (format #t "~2Tinfo: #~%" (-> this info)) + (format #t "~2Tflags: #x~X : (rigid-body-object-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (rigid-body-object-flag dead)) (rigid-body-object-flag dead)) + (format #t "dead ") + ) + (if (= (logand s5-0 (rigid-body-object-flag damaged)) (rigid-body-object-flag damaged)) + (format #t "damaged ") + ) + (if (= (logand s5-0 (rigid-body-object-flag disturbed)) (rigid-body-object-flag disturbed)) + (format #t "disturbed ") + ) + (if (= (logand s5-0 (rigid-body-object-flag enable-collision)) (rigid-body-object-flag enable-collision)) + (format #t "enable-collision ") + ) + ) + (format #t ")~%") + (format #t "~2Tmax-time-step: ~f~%" (-> this max-time-step)) + (format #t "~2Tincoming-attack-id: ~D~%" (-> this incoming-attack-id)) + (format #t "~2Tdisturbed-time: ~D~%" (-> this disturbed-time)) + (format #t "~2Tperf: #~%" (-> this perf)) + (label cfg-12) + this + ) + +;; definition of type rigid-body-queue +(deftype rigid-body-queue (structure) + ((count int8) + (manager handle) + (array handle 128) + ) + (:methods + (rigid-body-queue-method-9 () none) + (rigid-body-queue-method-10 () none) + (rigid-body-queue-method-11 () none) + (rigid-body-queue-method-12 () none) + (rigid-body-queue-method-13 () none) + (rigid-body-queue-method-14 () none) + (rigid-body-queue-method-15 () none) + (rigid-body-queue-method-16 () none) + ) + ) + +;; definition for method 3 of type rigid-body-queue +(defmethod inspect ((this rigid-body-queue)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rigid-body-queue) + (format #t "~1Tcount: ~D~%" (-> this count)) + (format #t "~1Tmanager: ~D~%" (-> this manager)) + (format #t "~1Tarray[128] @ #x~X~%" (-> this array)) + (label cfg-4) + this + ) + +;; definition for function get-penetrate-using-from-attack-event +(defun get-penetrate-using-from-attack-event ((arg0 process-drawable) (arg1 event-message-block)) + "Given an attack event to an enemy, return the penetrate that should be applied to the enemy" + (let ((v1-0 (the-as object (-> arg1 param 1)))) + (if (logtest? (attack-mask penetrate-using) (-> (the-as attack-info v1-0) mask)) + (return (-> (the-as attack-info v1-0) penetrate-using)) + ) + ) + (let ((v1-3 (as-type arg0 process-drawable))) + (when v1-3 + (let* ((gp-1 (-> v1-3 root)) + (v1-4 (if (the-as penetrate (type? gp-1 collide-shape)) + gp-1 + ) + ) + ) + (if v1-4 + (return (logior (-> (the-as collide-shape v1-4) penetrate-using) (penetrate generic-attack))) + ) + ) + ) + ) + (penetrate generic-attack) + ) + +;; definition of type rb-debug-state-record +(deftype rb-debug-state-record (structure) + ((flags uint16) + (time-remaining float) + (current-time uint32) + (debug-id int8) + (linear-damping float) + (angular-damping float) + (bounce-factor float) + (friction-factor float) + (position vector :inline) + (rot vector :inline) + (rotation quaternion :inline :overlay-at (-> rot data 0)) + (lin-momentum vector :inline) + (ang-momentum vector :inline) + (force vector :inline) + (rb-debug-state-record-padding1 uint32 28) + (torque vector :inline) + (rb-debug-state-record-padding2 uint32 28) + ) + (:methods + (rb-debug-state-record-method-9 () none) + (rb-debug-state-record-method-10 () none) + ) + ) + +;; definition for method 3 of type rb-debug-state-record +(defmethod inspect ((this rb-debug-state-record)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rb-debug-state-record) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Ttime-remaining: ~f~%" (-> this time-remaining)) + (format #t "~1Tcurrent-time: ~D~%" (-> this current-time)) + (format #t "~1Tdebug-id: ~D~%" (-> this debug-id)) + (format #t "~1Tlinear-damping: ~f~%" (-> this linear-damping)) + (format #t "~1Tangular-damping: ~f~%" (-> this angular-damping)) + (format #t "~1Tbounce-factor: ~f~%" (-> this bounce-factor)) + (format #t "~1Tfriction-factor: ~f~%" (-> this friction-factor)) + (format #t "~1Tposition: ~`vector`P~%" (-> this position)) + (format #t "~1Trot: ~`vector`P~%" (-> this rot)) + (format #t "~1Trotation: #~%" (-> this rot)) + (format #t "~1Tlin-momentum: ~`vector`P~%" (-> this lin-momentum)) + (format #t "~1Tang-momentum: ~`vector`P~%" (-> this ang-momentum)) + (format #t "~1Tforce: ~`vector`P~%" (-> this force)) + (format #t "~1Ttorque: ~`vector`P~%" (-> this torque)) + (label cfg-4) + this + ) + +;; definition of type rb-debugger +(deftype rb-debugger (structure) + ((user-mode uint8) + (hook-control uint8) + (flags uint8) + (target-count int8) + (target-array handle 8) + (pad0 uint8 256) + (playback-index int32) + (recorder-index int32) + (begin-index int32) + (end-index int32) + (record-count int32) + (buffer-len int32) + (buffer-size int32) + (total-size int32) + (rb-debugger-pad1 int32 2) + (buffer-start uint32 :inline :dynamic) + ) + (:methods + (rb-debugger-method-9 () none) + (rb-debugger-method-10 () none) + (rb-debugger-method-11 () none) + (rb-debugger-method-12 () none) + (rb-debugger-method-13 () none) + (rb-debugger-method-14 () none) + (rb-debugger-method-15 () none) + (rb-debugger-method-16 () none) + (rb-debugger-method-17 () none) + (rb-debugger-method-18 () none) + (rb-debugger-method-19 () none) + (rb-debugger-method-20 () none) + ) + ) + +;; definition for method 3 of type rb-debugger +(defmethod inspect ((this rb-debugger)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rb-debugger) + (format #t "~1Tuser-mode: ~D~%" (-> this user-mode)) + (format #t "~1Thook-control: ~D~%" (-> this hook-control)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Ttarget-count: ~D~%" (-> this target-count)) + (format #t "~1Ttarget-array[8] @ #x~X~%" (-> this target-array)) + (format #t "~1Tpad0[256] @ #x~X~%" (-> this pad0)) + (format #t "~1Tplayback-index: ~D~%" (-> this playback-index)) + (format #t "~1Trecorder-index: ~D~%" (-> this recorder-index)) + (format #t "~1Tbegin-index: ~D~%" (-> this begin-index)) + (format #t "~1Tend-index: ~D~%" (-> this end-index)) + (format #t "~1Trecord-count: ~D~%" (-> this record-count)) + (format #t "~1Tbuffer-len: ~D~%" (-> this buffer-len)) + (format #t "~1Tbuffer-size: ~D~%" (-> this buffer-size)) + (format #t "~1Ttotal-size: ~D~%" (-> this total-size)) + (format #t "~1Tbuffer-start[0] @ #x~X~%" (-> this buffer-start)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/physics/rigid-body-surface-h_REF.gc b/test/decompiler/reference/jakx/engine/physics/rigid-body-surface-h_REF.gc new file mode 100644 index 0000000000..52a1d3fda3 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/physics/rigid-body-surface-h_REF.gc @@ -0,0 +1,150 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type rigid-body-surface +(deftype rigid-body-surface (structure) + ((flags rigid-body-surface-flag) + (surface-type surface-type) + (friction float) + (bounce float) + (drag float) + (depth float) + (damage float) + (scrape-sound uint16) + (glance-sound uint16) + (impact-sound uint16) + (tire-roll-mix float 6) + (tire-roll-hum float :overlay-at (-> tire-roll-mix 0)) + (tire-roll-dirt float :overlay-at (-> tire-roll-mix 1)) + (tire-roll-sand float :overlay-at (-> tire-roll-mix 2)) + (tire-roll-snow float :overlay-at (-> tire-roll-mix 3)) + (tire-roll-grass float :overlay-at (-> tire-roll-mix 4)) + (tire-roll-knobby float :overlay-at (-> tire-roll-mix 5)) + (tire-slide-mix float 2) + (tire-slide-road float :overlay-at (-> tire-slide-mix 0)) + (tire-slide-dirt float :overlay-at (-> tire-slide-mix 1)) + ) + ) + +;; definition for method 3 of type rigid-body-surface +(defmethod inspect ((this rigid-body-surface)) + (when (not this) + (set! this this) + (goto cfg-25) + ) + (format #t "[~8x] ~A~%" this 'rigid-body-surface) + (format #t "~1Tflags: #x~X : (rigid-body-surface-flag " (-> this flags)) + (let ((a0-3 (-> this flags))) + (if (= (logand a0-3 (rigid-body-surface-flag moving)) (rigid-body-surface-flag moving)) + (format #t "moving ") + ) + ) + (format #t ")~%") + (let ((t9-4 format) + (a0-7 #t) + (a1-4 "~1Tsurface-type: #x~X : ~S~%") + (a2-2 (-> this surface-type)) + (v1-5 (-> this surface-type)) + ) + (t9-4 a0-7 a1-4 a2-2 (cond + ((= v1-5 (surface-type wall)) + "wall" + ) + ((= v1-5 (surface-type grass)) + "grass" + ) + ((= v1-5 (surface-type snow)) + "snow" + ) + ((= v1-5 (surface-type stone)) + "stone" + ) + ((= v1-5 (surface-type dirt)) + "dirt" + ) + ((= v1-5 (surface-type water)) + "water" + ) + ((= v1-5 (surface-type ice)) + "ice" + ) + ((= v1-5 (surface-type none)) + "none" + ) + ((= v1-5 (surface-type sand)) + "sand" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tfriction: ~f~%" (-> this friction)) + (format #t "~1Tbounce: ~f~%" (-> this bounce)) + (format #t "~1Tdrag: ~f~%" (-> this drag)) + (format #t "~1Tdepth: ~f~%" (-> this depth)) + (format #t "~1Tdamage: ~f~%" (-> this damage)) + (format #t "~1Tscrape-sound: ~D~%" (-> this scrape-sound)) + (format #t "~1Tglance-sound: ~D~%" (-> this glance-sound)) + (format #t "~1Timpact-sound: ~D~%" (-> this impact-sound)) + (format #t "~1Ttire-roll-mix[6] @ #x~X~%" (-> this tire-roll-mix)) + (format #t "~1Ttire-roll-hum: ~f~%" (-> this tire-roll-hum)) + (format #t "~1Ttire-roll-dirt: ~f~%" (-> this tire-roll-dirt)) + (format #t "~1Ttire-roll-sand: ~f~%" (-> this tire-roll-sand)) + (format #t "~1Ttire-roll-snow: ~f~%" (-> this tire-roll-snow)) + (format #t "~1Ttire-roll-grass: ~f~%" (-> this tire-roll-grass)) + (format #t "~1Ttire-roll-knobby: ~f~%" (-> this tire-roll-knobby)) + (format #t "~1Ttire-slide-mix[2] @ #x~X~%" (-> this tire-slide-mix)) + (format #t "~1Ttire-slide-road: ~f~%" (-> this tire-slide-road)) + (format #t "~1Ttire-slide-dirt: ~f~%" (-> this tire-slide-dirt)) + (label cfg-25) + this + ) + +;; definition for symbol *material-to-rb-material-table*, type (pointer int8) +(define *material-to-rb-material-table* + (new 'static 'array int8 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + ) + +;; failed to figure out what this is: +(let ((v1-2 *material-to-rb-material-table*)) + (dotimes (a0-2 34) + (set! (-> v1-2 a0-2) 7) + ) + (set! (-> v1-2 0) 6) + (set! (-> v1-2 30) 6) + (set! (-> v1-2 23) 0) + (set! (-> v1-2 16) 0) + (set! (-> v1-2 6) 0) + (set! (-> v1-2 13) 0) + (set! (-> v1-2 14) 0) + (set! (-> v1-2 7) 1) + (set! (-> v1-2 15) 2) + (set! (-> v1-2 9) 4) + (set! (-> v1-2 5) 3) + (set! (-> v1-2 3) 3) + ) + +;; failed to figure out what this is: +0 + +;; definition for function rigid-body-surface-type-from-material +;; WARN: Return type mismatch int vs surface-type. +(defun rigid-body-surface-type-from-material ((arg0 int)) + (let ((v0-0 7)) + (let ((v1-0 (logand arg0 63))) + (if (< v1-0 34) + (set! v0-0 (the-as int (-> (the-as (pointer uint8) (&+ *material-to-rb-material-table* v1-0))))) + ) + ) + (the-as surface-type v0-0) + ) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/physics/trajectory_REF.gc b/test/decompiler/reference/jakx/engine/physics/trajectory_REF.gc new file mode 100644 index 0000000000..df6e81a04f --- /dev/null +++ b/test/decompiler/reference/jakx/engine/physics/trajectory_REF.gc @@ -0,0 +1,536 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 9 of type trajectory +(defmethod compute-trans-at-time ((this trajectory) (arg0 float) (arg1 vector)) + (vector+float*! arg1 (-> this initial-position) (-> this initial-velocity) arg0) + (+! (-> arg1 y) (* (/ arg0 2) arg0 (-> this gravity))) + arg1 + ) + +;; definition for method 10 of type trajectory +;; INFO: Used lq/sq +(defmethod compute-transv-at-time ((this trajectory) (arg0 float) (arg1 vector)) + (set! (-> arg1 quad) (-> this initial-velocity quad)) + (+! (-> arg1 y) (* arg0 (-> this gravity))) + arg1 + ) + +;; definition for method 11 of type trajectory +(defmethod compute-time-until-apex ((this trajectory)) + (/ (- (-> this initial-velocity y)) (-> this gravity)) + ) + +;; definition for method 12 of type trajectory +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod setup-from-to-duration! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (set! (-> this initial-position quad) (-> arg0 quad)) + (set! (-> this gravity) arg3) + (set! (-> this time) arg2) + (let ((f0-3 (/ (vector-vector-xz-distance arg1 arg0) arg2))) + (vector-! (-> this initial-velocity) arg1 arg0) + (vector-xz-normalize! (-> this initial-velocity) f0-3) + ) + (set! (-> this initial-velocity y) (- (/ (- (-> arg1 y) (-> arg0 y)) arg2) (* (/ arg2 2) (-> this gravity)))) + 0 + (none) + ) + +;; definition for method 13 of type trajectory +;; WARN: Return type mismatch int vs none. +(defmethod setup-from-to-xz-vel! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let ((f0-1 (/ (vector-vector-xz-distance arg1 arg0) arg2))) + (setup-from-to-duration! this arg0 arg1 f0-1 arg3) + ) + 0 + (none) + ) + +;; definition for method 14 of type trajectory +;; WARN: Return type mismatch int vs none. +(defmethod setup-from-to-y-vel! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let ((f1-3 (- (square arg2) (* 2.0 (- (-> arg0 y) (-> arg1 y)) arg3))) + (f0-3 900.0) + ) + (when (>= f1-3 0.0) + (let ((f0-4 (sqrtf f1-3))) + (set! f0-3 (fmax (/ (- (- arg2) f0-4) arg3) (/ (+ (- arg2) f0-4) arg3))) + ) + ) + (setup-from-to-duration! this arg0 arg1 f0-3 arg3) + ) + 0 + (none) + ) + +;; definition for method 15 of type trajectory +;; WARN: Return type mismatch int vs none. +(defmethod setup-from-to-height! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let* ((f0-1 (+ arg2 (fmax (-> arg0 y) (-> arg1 y)))) + (f1-4 (* 2.0 (- (-> arg0 y) f0-1) arg3)) + (f0-4 4096.0) + ) + (if (< 0.0 f1-4) + (set! f0-4 (sqrtf f1-4)) + ) + (setup-from-to-y-vel! this arg0 arg1 f0-4 arg3) + ) + 0 + (none) + ) + +;; definition for method 16 of type trajectory +;; WARN: Return type mismatch int vs none. +;; WARN: Function (method 16 trajectory) has a return type of none, but the expression builder found a return statement. +(defmethod setup-from-to-duration-and-height! ((this trajectory) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + (let ((f0-1 (- (-> arg1 y) (-> arg0 y)))) + (cond + ((= f0-1 0.0) + (setup-from-to-duration! this arg0 arg1 arg2 (/ (* -8.0 arg3) (square arg2))) + (return 0) + ) + ((and (< 0.0 f0-1) (< 0.0 arg3) (< arg3 f0-1)) + (set! arg3 f0-1) + ) + ((and (< f0-1 0.0) (< arg3 0.0) (< f0-1 arg3)) + (set! arg3 f0-1) + ) + ) + (let* ((f1-14 (/ (- arg3 f0-1) arg3)) + (f0-8 (* -2.0 (square (/ (- 1.0 f1-14) (- arg2 (* arg2 (sqrtf f1-14))))) arg3)) + ) + (setup-from-to-duration! this arg0 arg1 arg2 f0-8) + ) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(method-set! + trajectory + 17 + (if *debug-segment* + (lambda ((arg0 trajectory)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 10) + ) + (set! (-> s4-0 quad) (-> arg0 initial-position quad)) + (dotimes (s2-0 s3-0) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (let ((f0-1 (* (-> arg0 time) (/ (+ 1.0 (the float s2-0)) (the float s3-0))))) + (compute-trans-at-time arg0 f0-1 s4-0) + ) + (add-debug-line #t (bucket-id bucket785) s5-0 s4-0 (new 'static 'rgba :r #xff :a #x80) #f (the-as rgba -1)) + ) + ) + 0 + (none) + ) + nothing + ) + ) + +;; definition for method 9 of type impact-control +;; INFO: Used lq/sq +(defmethod initialize ((this impact-control) (arg0 process-drawable) (arg1 int) (arg2 float) (arg3 collide-spec)) + (set! (-> this start-time) (the-as uint (current-time))) + (set! (-> this process) (the-as (pointer process-drawable) (process->ppointer arg0))) + (set! (-> this joint) arg1) + (set! (-> this radius) arg2) + (set! (-> this collide-with) (logclear arg3 (collide-spec water))) + (set! (-> this trans 0 quad) (the-as uint128 0)) + (set! (-> this trans 1 quad) (the-as uint128 0)) + this + ) + +;; definition for method 10 of type impact-control +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod update-from-cspace ((this impact-control)) + (when (>= (-> this joint) 0) + (set! (-> this trans 1 quad) (-> this trans 0 quad)) + (vector<-cspace! (-> this trans 0) (-> this process 0 node-list data (-> this joint))) + (vector-! (-> this dir) (-> this trans 0) (-> this trans 1)) + ) + 0 + (none) + ) + +;; definition for method 11 of type impact-control +;; INFO: Used lq/sq +(defmethod impact-control-method-11 ((this impact-control) (arg0 collide-query) (arg1 process) (arg2 pat-surface)) + (set! (-> arg0 start-pos quad) (-> this trans 1 quad)) + (set! (-> arg0 move-dist quad) (-> this dir quad)) + (let ((v1-2 (ppointer->process (-> this process))) + (a0-6 arg0) + ) + (set! (-> a0-6 radius) (-> this radius)) + (set! (-> a0-6 collide-with) (-> this collide-with)) + (set! (-> a0-6 ignore-process0) v1-2) + (set! (-> a0-6 ignore-process1) #f) + (set! (-> a0-6 ignore-pat) arg2) + (set! (-> a0-6 action-mask) (collide-action solid)) + (set! (-> a0-6 best-other-prim) #f) + ) + (let ((f30-0 (fill-and-probe-using-line-sphere *collide-cache* arg0))) + (when (and arg1 (>= f30-0 0.0) (>= 0.0 (vector-dot (-> arg0 best-other-tri normal) (-> this dir)))) + (let ((s3-0 (new 'stack-no-clear 'touching-shapes-entry)) + (v1-12 (as-type (-> arg0 best-other-tri collide-ptr) collide-shape-prim)) + ) + (set! (-> s3-0 cshape1) #f) + (set! (-> s3-0 cshape2) (if v1-12 + (-> (the-as collide-shape-prim v1-12) cshape) + ) + ) + (set! (-> s3-0 resolve-u) (the int f30-0)) + (set! (-> s3-0 head) #f) + (send-event + arg1 + 'impact-control + :from (if v1-12 + (-> (the-as collide-shape-prim v1-12) cshape process) + arg1 + ) + #f + s3-0 + this + arg0 + ) + ) + ) + f30-0 + ) + ) + +;; definition for method 9 of type point-tracker +;; INFO: Used lq/sq +(defmethod initialize ((this point-tracker) (arg0 vector) (arg1 vector)) + (set! (-> this trans 0 quad) (-> arg0 quad)) + (set! (-> this trans 1 quad) (-> arg1 quad)) + this + ) + +;; definition for method 10 of type point-tracker +;; INFO: Used lq/sq +(defmethod point-tracker-method-10 ((this point-tracker) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let ((a1-2 (vector+float*! arg0 arg2 (vector-! (new 'stack-no-clear 'vector) arg1 arg2) (- 1.0 arg3)))) + (vector-lerp! arg0 a1-2 arg2 arg3) + ) + ) + ) + arg0 + ) + +;; definition for method 11 of type point-tracker +(defmethod point-tracker-method-11 ((this point-tracker) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + (with-pp + (let ((v1-1 (point-tracker-method-10 this (new 'stack-no-clear 'vector) arg1 arg2 arg3))) + (vector-! arg0 v1-1 arg1) + ) + (vector-float*! arg0 arg0 (-> pp clock frames-per-second)) + arg0 + ) + ) + +;; definition for method 13 of type combo-tracker +;; WARN: Return type mismatch process vs process-focusable. +(defmethod combo-tracker-method-13 ((this combo-tracker) (arg0 handle) (arg1 vector) (arg2 float) (arg3 vector) (arg4 float)) + (the-as process-focusable (cond + ((send-event (handle->process arg0) 'combo) + (as-type (handle->process arg0) process-focusable) + ) + (else + (let ((s1-0 (new 'stack-no-clear 'sphere)) + (s2-1 (new 'stack 'boxed-array collide-shape 32)) + ) + (sphere<-vector+r! s1-0 arg1 arg2) + (let ((t9-4 (method-of-object *actor-hash* spatial-hash-method-38))) + (-> s2-1 data) + (-> s2-1 allocated-length) + (set! (-> s2-1 length) (the-as int (t9-4))) + ) + (as-type + (find-nearest-focusable + (the-as (array collide-shape) s2-1) + arg1 + arg2 + (if (= arg4 65536.0) + (search-info-flag crate enemy combo) + (search-info-flag crate enemy prefer-angle cull-angle combo) + ) + (search-info-flag) + arg3 + (the-as vector #f) + arg4 + ) + process-focusable + ) + ) + ) + ) + ) + ) + +;; definition for method 12 of type combo-tracker +(defmethod combo-tracker-method-12 ((this combo-tracker) (arg0 vector) (arg1 vector) (arg2 process) (arg3 time-frame)) + (initialize this arg0 arg1) + (set! (-> this target) (process->handle arg2)) + (set! (-> this move-start-time) arg3) + this + ) + +;; definition for method 11 of type combo-tracker +;; INFO: Used lq/sq +(defmethod point-tracker-method-11 ((this combo-tracker) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + (local-vars (at-0 int)) + (with-pp + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((v1-1 (point-tracker-method-10 this (new 'stack-no-clear 'vector) arg1 arg2 arg3))) + (vector-! arg0 v1-1 arg1) + ) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) (process->ppointer pp)) + (set! (-> a1-4 num-params) 0) + (set! (-> a1-4 message) 'nav-control) + (let ((s4-1 (as-type (send-event-function (handle->process (-> this target)) a1-4) nav-control))) + (when s4-1 + (cond + (((method-of-type nav-control nav-control-method-11)) + (let ((t9-4 (method-of-type nav-control nav-control-method-20))) + #x45000000 + (t9-4) + ) + ) + (else + (set! (-> arg0 quad) (the-as uint128 0)) + ) + ) + ) + ) + ) + (let ((v1-12 arg0)) + (.lvf vf1 (&-> arg0 quad)) + (let ((f0-0 (-> pp clock frames-per-second))) + (.mov at-0 f0-0) + ) + (.mov vf2 at-0) + (.mov.vf.w vf1 vf0) + (.mul.x.vf.xyz vf1 vf1 vf2) + (.svf (&-> v1-12 quad) vf1) + ) + arg0 + ) + ) + ) + +;; definition for function traj2d-calc-initial-speed-using-tilt +(defun traj2d-calc-initial-speed-using-tilt ((arg0 traj2d-params)) + (let ((f0-4 (* (- (* (-> arg0 x) (tan (-> arg0 initial-tilt))) (-> arg0 y)) (/ 2.0 (-> arg0 gravity))))) + (cond + ((< 0.0 f0-4) + (set! (-> arg0 time) (sqrtf f0-4)) + (set! (-> arg0 initial-speed) (/ (-> arg0 x) (* (-> arg0 time) (cos (-> arg0 initial-tilt))))) + #t + ) + (else + (set! (-> arg0 time) 0.0) + (set! (-> arg0 initial-speed) 0.0) + #f + ) + ) + ) + ) + +;; definition for function traj3d-calc-initial-velocity-using-tilt +(defun traj3d-calc-initial-velocity-using-tilt ((arg0 traj3d-params)) + (vector-! (-> arg0 diff) (-> arg0 dest) (-> arg0 src)) + (let ((s5-0 (new 'stack-no-clear 'traj2d-params))) + (let ((v1-1 (-> arg0 diff))) + (set! (-> s5-0 x) (sqrtf (+ (* (-> v1-1 x) (-> v1-1 x)) (* (-> v1-1 z) (-> v1-1 z))))) + ) + (set! (-> s5-0 y) (-> arg0 diff y)) + (set! (-> s5-0 gravity) (-> arg0 gravity)) + (set! (-> s5-0 initial-tilt) (-> arg0 initial-tilt)) + (cond + ((traj2d-calc-initial-speed-using-tilt s5-0) + (set! (-> arg0 time) (-> s5-0 time)) + (let* ((f26-0 (atan (-> arg0 diff x) (-> arg0 diff z))) + (f30-0 (-> arg0 initial-tilt)) + (f24-0 (cos f30-0)) + (f28-0 (-> s5-0 initial-speed)) + ) + (set! (-> arg0 initial-speed) f28-0) + (set! (-> arg0 initial-velocity x) (* f28-0 f24-0 (sin f26-0))) + (set! (-> arg0 initial-velocity z) (* f28-0 f24-0 (cos f26-0))) + (set! (-> arg0 initial-velocity y) (* f28-0 (sin f30-0))) + ) + (set! (-> arg0 initial-velocity w) 1.0) + #t + ) + (else + (set! (-> arg0 time) 0.0) + (set! (-> arg0 initial-speed) 0.0) + (vector-reset! (-> arg0 initial-velocity)) + #f + ) + ) + ) + ) + +;; definition for method 9 of type cubic-curve +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod cubic-curve-method-9 ((this cubic-curve) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (set! (-> this vec 0 quad) (-> arg0 quad)) + (set! (-> this mat uvec quad) (-> arg1 quad)) + (let ((v1-2 (new 'stack-no-clear 'trajectory))) + (vector-! (-> v1-2 initial-velocity) arg2 arg0) + (vector-float*! (-> v1-2 initial-position) (-> v1-2 initial-velocity) 3.0) + (let ((t1-7 (-> v1-2 initial-position))) + (let ((a1-3 (-> v1-2 initial-position))) + (let ((a3-2 arg1)) + (let ((t2-1 -2.0)) + (.mov vf7 t2-1) + ) + (.lvf vf5 (&-> a3-2 quad)) + ) + (.lvf vf4 (&-> a1-3 quad)) + ) + (.add.x.vf.w vf6 vf0 vf0) + (.mul.x.vf.xyz acc vf5 vf7) + (.add.mul.w.vf.xyz vf6 vf4 vf0 acc) + (.svf (&-> t1-7 quad) vf6) + ) + (vector-! (-> v1-2 initial-position) (-> v1-2 initial-position) arg3) + (set! (-> this mat fvec quad) (-> v1-2 initial-position quad)) + (vector-float*! (-> v1-2 initial-position) (-> v1-2 initial-velocity) -2.0) + (let ((a3-7 (-> v1-2 initial-position))) + (.lvf vf4 (&-> (-> v1-2 initial-position) quad)) + (.lvf vf5 (&-> arg1 quad)) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a3-7 quad) vf6) + ) + (let ((a2-1 (-> v1-2 initial-position))) + (let ((a3-8 arg3)) + (.lvf vf4 (&-> (-> v1-2 initial-position) quad)) + (.lvf vf5 (&-> a3-8 quad)) + ) + (.mov.vf.w vf6 vf0) + (.add.vf.xyz vf6 vf4 vf5) + (.svf (&-> a2-1 quad) vf6) + ) + (set! (-> this mat trans quad) (-> v1-2 initial-position quad)) + ) + (dotimes (v1-5 4) + (set! (-> this vec v1-5 w) 0.0) + ) + 0 + (none) + ) + ) + +;; definition for method 10 of type cubic-curve +(defmethod cubic-curve-method-10 ((this cubic-curve) (arg0 vector) (arg1 float)) + (let ((v1-0 (new 'stack-no-clear 'trajectory))) + (let ((f0-1 (* arg1 arg1))) + (set-vector! (-> v1-0 initial-position) 1.0 arg1 f0-1 (* f0-1 arg1)) + ) + (vector-matrix*! arg0 (-> v1-0 initial-position) (the-as matrix (-> this vec))) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for method 11 of type cubic-curve +(defmethod cubic-curve-method-11 ((this cubic-curve) (arg0 vector) (arg1 float)) + (let ((v1-0 (new 'stack-no-clear 'trajectory))) + (set-vector! (-> v1-0 initial-position) 0.0 1.0 (* 2.0 arg1) (* 3.0 arg1 arg1)) + (vector-matrix*! arg0 (-> v1-0 initial-position) (the-as matrix (-> this vec))) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for method 12 of type cubic-curve +(defmethod cubic-curve-method-12 ((this cubic-curve) (arg0 vector) (arg1 float)) + (let ((v1-0 (new 'stack-no-clear 'trajectory))) + (set-vector! (-> v1-0 initial-position) 0.0 0.0 2.0 (* 6.0 arg1)) + (vector-matrix*! arg0 (-> v1-0 initial-position) (the-as matrix (-> this vec))) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for method 13 of type cubic-curve +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod debug-draw-curve ((this cubic-curve)) + (let ((s5-0 (new 'stack-no-clear 'trajectory)) + (s4-0 10) + ) + (cubic-curve-method-10 this (-> s5-0 initial-velocity) 0.0) + (add-debug-x #t (bucket-id bucket785) (-> s5-0 initial-velocity) *color-red*) + (dotimes (s3-0 s4-0) + (set! (-> s5-0 initial-position quad) (-> s5-0 initial-velocity quad)) + (let ((f0-2 (/ (+ 1.0 (the float s3-0)) (the float s4-0)))) + (cubic-curve-method-10 this (-> s5-0 initial-velocity) f0-2) + ) + (add-debug-x #t (bucket-id bucket785) (-> s5-0 initial-velocity) *color-red*) + (add-debug-line + #t + (bucket-id bucket785) + (-> s5-0 initial-position) + (-> s5-0 initial-velocity) + *color-red* + #f + (the-as rgba -1) + ) + ) + ) + (add-debug-vector + #t + (bucket-id bucket785) + (cubic-curve-method-10 this (new 'stack-no-clear 'vector) 0.0) + (cubic-curve-method-11 this (new 'stack-no-clear 'vector) 0.0) + (meters 0.00024414062) + *color-white* + ) + (add-debug-vector + #t + (bucket-id bucket785) + (cubic-curve-method-10 this (new 'stack-no-clear 'vector) 1.0) + (vector-negate! (new 'stack-no-clear 'vector) (cubic-curve-method-11 this (new 'stack-no-clear 'vector) 1.0)) + (meters 0.00024414062) + *color-white* + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/process-drawable/process-nettable-h_REF.gc b/test/decompiler/reference/jakx/engine/process-drawable/process-nettable-h_REF.gc index 5c640c4a93..581f329a51 100644 --- a/test/decompiler/reference/jakx/engine/process-drawable/process-nettable-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/process-drawable/process-nettable-h_REF.gc @@ -300,3 +300,7 @@ ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/gsound-h_REF.gc b/test/decompiler/reference/jakx/engine/sound/gsound-h_REF.gc new file mode 100644 index 0000000000..b3e2b9bf1e --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/gsound-h_REF.gc @@ -0,0 +1,1537 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *debug-sound-sliders*, type symbol +(define *debug-sound-sliders* #f) + +;; definition for symbol *music-volume-ducked-by-sound*, type float +(define *music-volume-ducked-by-sound* 1.0) + +;; definition of type sound-stream-name +(deftype sound-stream-name (structure) + ((name uint8 48) + ) + ) + +;; definition for method 3 of type sound-stream-name +(defmethod inspect ((this sound-stream-name)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-stream-name) + (format #t "~1Tname[48] @ #x~X~%" (-> this name)) + (label cfg-4) + this + ) + +;; definition of type sound-id +(deftype sound-id (uint32) + () + ) + +;; definition of type sound-bank-id +(deftype sound-bank-id (uint32) + () + ) + +;; definition of type sound-name +(deftype sound-name (uint128) + ((lo uint64 :offset 0 :size 64) + (hi uint64 :offset 64 :size 64) + ) + ) + +;; definition for symbol *music-lock*, type symbol +(define *music-lock* #f) + +;; definition of type sound-rpc-cmd +(deftype sound-rpc-cmd (structure) + ((rsvd1 uint16) + (command uint16) + ) + ) + +;; definition for method 3 of type sound-rpc-cmd +(defmethod inspect ((this sound-rpc-cmd)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-cmd) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (label cfg-4) + this + ) + +;; definition of type sound-play-params +(deftype sound-play-params (structure) + ((mask uint8) + (group uint8) + (volume int16) + (pitch-mod int16) + (bend int16) + (pan int16) + ) + ) + +;; definition for method 3 of type sound-play-params +(defmethod inspect ((this sound-play-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-play-params) + (format #t "~1Tmask: ~D~%" (-> this mask)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (format #t "~1Tvolume: ~D~%" (-> this volume)) + (format #t "~1Tpitch-mod: ~D~%" (-> this pitch-mod)) + (format #t "~1Tbend: ~D~%" (-> this bend)) + (format #t "~1Tpan: ~D~%" (-> this pan)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-bank-cmd +(deftype sound-rpc-bank-cmd (sound-rpc-cmd) + ((bank-name uint128) + ) + ) + +;; definition for method 3 of type sound-rpc-bank-cmd +;; INFO: Used lq/sq +(defmethod inspect ((this sound-rpc-bank-cmd)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-bank-cmd) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tbank-name: ~D~%" (-> this bank-name)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-test-cmd +(deftype sound-rpc-test-cmd (sound-rpc-cmd) + ((ee-addr pointer) + (param0 uint16) + ) + ) + +;; definition for method 3 of type sound-rpc-test-cmd +(defmethod inspect ((this sound-rpc-test-cmd)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-test-cmd) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tee-addr: ~D~%" (-> this ee-addr)) + (format #t "~1Tparam0: ~D~%" (-> this param0)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-sound-cmd +(deftype sound-rpc-sound-cmd (sound-rpc-cmd) + ((id sound-id) + ) + ) + +;; definition for method 3 of type sound-rpc-sound-cmd +(defmethod inspect ((this sound-rpc-sound-cmd)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-sound-cmd) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tid: ~D~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-group-cmd +(deftype sound-rpc-group-cmd (sound-rpc-cmd) + ((group uint32) + ) + ) + +;; definition for method 3 of type sound-rpc-group-cmd +(defmethod inspect ((this sound-rpc-group-cmd)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-group-cmd) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-load-bank +(deftype sound-rpc-load-bank (sound-rpc-bank-cmd) + ((ee-addr pointer) + (mode uint32) + (priority uint32) + ) + ) + +;; definition for method 3 of type sound-rpc-load-bank +;; INFO: Used lq/sq +(defmethod inspect ((this sound-rpc-load-bank)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-load-bank) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tbank-name: ~D~%" (-> this bank-name)) + (format #t "~1Tee-addr: ~D~%" (-> this ee-addr)) + (format #t "~1Tmode: ~D~%" (-> this mode)) + (format #t "~1Tpriority: ~D~%" (-> this priority)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-load-music +(deftype sound-rpc-load-music (sound-rpc-bank-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-load-music +;; INFO: Used lq/sq +(defmethod inspect ((this sound-rpc-load-music)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-load-music) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tbank-name: ~D~%" (-> this bank-name)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-unload-bank +(deftype sound-rpc-unload-bank (sound-rpc-cmd) + ((mode uint32) + ) + ) + +;; definition for method 3 of type sound-rpc-unload-bank +(defmethod inspect ((this sound-rpc-unload-bank)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-unload-bank) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tmode: ~D~%" (-> this mode)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-play +(deftype sound-rpc-play (sound-rpc-sound-cmd) + ((name uint128) + (params sound-play-params :inline) + ) + ) + +;; definition for method 3 of type sound-rpc-play +;; INFO: Used lq/sq +(defmethod inspect ((this sound-rpc-play)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-play) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tname: ~D~%" (-> this name)) + (format #t "~1Tparams: #~%" (-> this params)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-pause-sound +(deftype sound-rpc-pause-sound (sound-rpc-sound-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-pause-sound +(defmethod inspect ((this sound-rpc-pause-sound)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-pause-sound) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tid: ~D~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-stop-sound +(deftype sound-rpc-stop-sound (sound-rpc-sound-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-stop-sound +(defmethod inspect ((this sound-rpc-stop-sound)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-stop-sound) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tid: ~D~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-continue-sound +(deftype sound-rpc-continue-sound (sound-rpc-sound-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-continue-sound +(defmethod inspect ((this sound-rpc-continue-sound)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-continue-sound) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tid: ~D~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-param +(deftype sound-rpc-set-param (sound-rpc-sound-cmd) + ((params sound-play-params :inline) + (auto-time int32) + (auto-from int32) + ) + ) + +;; definition for method 3 of type sound-rpc-set-param +(defmethod inspect ((this sound-rpc-set-param)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-param) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tparams: #~%" (-> this params)) + (format #t "~1Tauto-time: ~D~%" (-> this auto-time)) + (format #t "~1Tauto-from: ~D~%" (-> this auto-from)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-master-volume +(deftype sound-rpc-set-master-volume (sound-rpc-group-cmd) + ((volume int32) + ) + ) + +;; definition for method 3 of type sound-rpc-set-master-volume +(defmethod inspect ((this sound-rpc-set-master-volume)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-master-volume) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (format #t "~1Tvolume: ~D~%" (-> this volume)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-pause-group +(deftype sound-rpc-pause-group (sound-rpc-group-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-pause-group +(defmethod inspect ((this sound-rpc-pause-group)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-pause-group) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-stop-group +(deftype sound-rpc-stop-group (sound-rpc-group-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-stop-group +(defmethod inspect ((this sound-rpc-stop-group)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-stop-group) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-continue-group +(deftype sound-rpc-continue-group (sound-rpc-group-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-continue-group +(defmethod inspect ((this sound-rpc-continue-group)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-continue-group) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-cancel-dgo +(deftype sound-rpc-cancel-dgo (sound-rpc-group-cmd) + ((id uint32) + ) + ) + +;; definition for method 3 of type sound-rpc-cancel-dgo +(defmethod inspect ((this sound-rpc-cancel-dgo)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-cancel-dgo) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (format #t "~1Tid: ~D~%" (-> this id)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-get-irx-version +(deftype sound-rpc-get-irx-version (sound-rpc-cmd) + ((major uint32) + (minor uint32) + (ee-addr pointer) + ) + ) + +;; definition for method 3 of type sound-rpc-get-irx-version +(defmethod inspect ((this sound-rpc-get-irx-version)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-get-irx-version) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tmajor: ~D~%" (-> this major)) + (format #t "~1Tminor: ~D~%" (-> this minor)) + (format #t "~1Tee-addr: ~D~%" (-> this ee-addr)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-language +(deftype sound-rpc-set-language (sound-rpc-cmd) + ((lang uint32) + ) + ) + +;; definition for method 3 of type sound-rpc-set-language +(defmethod inspect ((this sound-rpc-set-language)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-language) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tlang: ~D~%" (-> this lang)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-stereo-mode +(deftype sound-rpc-set-stereo-mode (sound-rpc-cmd) + ((mode int32) + ) + ) + +;; definition for method 3 of type sound-rpc-set-stereo-mode +(defmethod inspect ((this sound-rpc-set-stereo-mode)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-stereo-mode) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tmode: ~D~%" (-> this mode)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-reverb +(deftype sound-rpc-set-reverb (sound-rpc-cmd) + ((core uint8) + (reverb int32) + (left uint32) + (right uint32) + ) + ) + +;; definition for method 3 of type sound-rpc-set-reverb +(defmethod inspect ((this sound-rpc-set-reverb)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-reverb) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tcore: ~D~%" (-> this core)) + (format #t "~1Treverb: ~D~%" (-> this reverb)) + (format #t "~1Tleft: ~D~%" (-> this left)) + (format #t "~1Tright: ~D~%" (-> this right)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-ear-trans +(deftype sound-rpc-set-ear-trans (sound-rpc-cmd) + ((ear-trans1 int32 3) + (ear-trans0 int32 3) + (cam-trans int32 3) + (cam-forward int32 3) + (cam-left int32 3) + (cam-scale int32) + (cam-inverted int32) + ) + ) + +;; definition for method 3 of type sound-rpc-set-ear-trans +(defmethod inspect ((this sound-rpc-set-ear-trans)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-ear-trans) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tear-trans1[3] @ #x~X~%" (-> this ear-trans1)) + (format #t "~1Tear-trans0[3] @ #x~X~%" (-> this ear-trans0)) + (format #t "~1Tcam-trans[3] @ #x~X~%" (-> this cam-trans)) + (format #t "~1Tcam-forward[3] @ #x~X~%" (-> this cam-forward)) + (format #t "~1Tcam-left[3] @ #x~X~%" (-> this cam-left)) + (format #t "~1Tcam-scale: ~D~%" (-> this cam-scale)) + (format #t "~1Tcam-inverted: ~D~%" (-> this cam-inverted)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-shutdown +(deftype sound-rpc-shutdown (sound-rpc-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-shutdown +(defmethod inspect ((this sound-rpc-shutdown)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-shutdown) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-fps +(deftype sound-rpc-set-fps (sound-rpc-cmd) + ((fps uint8) + ) + ) + +;; definition for method 3 of type sound-rpc-set-fps +(defmethod inspect ((this sound-rpc-set-fps)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-fps) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tfps: ~D~%" (-> this fps)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-set-globals +(deftype sound-rpc-set-globals (sound-rpc-cmd) + ((cam-inverted uint8) + (music-pitch-mod int16) + ) + ) + +;; definition for method 3 of type sound-rpc-set-globals +(defmethod inspect ((this sound-rpc-set-globals)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-set-globals) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (format #t "~1Tcam-inverted: ~D~%" (-> this cam-inverted)) + (format #t "~1Tmusic-pitch-mod: ~D~%" (-> this music-pitch-mod)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-list-sounds +(deftype sound-rpc-list-sounds (sound-rpc-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-list-sounds +(defmethod inspect ((this sound-rpc-list-sounds)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-list-sounds) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-unload-music +(deftype sound-rpc-unload-music (sound-rpc-cmd) + () + ) + +;; definition for method 3 of type sound-rpc-unload-music +(defmethod inspect ((this sound-rpc-unload-music)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-unload-music) + (format #t "~1Trsvd1: ~D~%" (-> this rsvd1)) + (format #t "~1Tcommand: ~D~%" (-> this command)) + (label cfg-4) + this + ) + +;; definition of type sound-rpc-union +(deftype sound-rpc-union (structure) + ((data uint32 12) + (load-bank sound-rpc-load-bank :overlay-at (-> data 0)) + (unload-bank sound-rpc-unload-bank :overlay-at (-> data 0)) + (play sound-rpc-play :overlay-at (-> data 0)) + (pause-sound sound-rpc-pause-sound :overlay-at (-> data 0)) + (stop-sound sound-rpc-stop-sound :overlay-at (-> data 0)) + (continue-sound sound-rpc-continue-sound :overlay-at (-> data 0)) + (set-param sound-rpc-set-param :overlay-at (-> data 0)) + (set-master-volume sound-rpc-set-master-volume :overlay-at (-> data 0)) + (pause-group sound-rpc-pause-group :overlay-at (-> data 0)) + (stop-group sound-rpc-stop-group :overlay-at (-> data 0)) + (continue-group sound-rpc-continue-group :overlay-at (-> data 0)) + (get-irx-version sound-rpc-get-irx-version :overlay-at (-> data 0)) + (set-language sound-rpc-set-language :overlay-at (-> data 0)) + (set-reverb sound-rpc-set-reverb :overlay-at (-> data 0)) + (set-fps sound-rpc-set-fps :overlay-at (-> data 0)) + (set-globals sound-rpc-set-globals :overlay-at (-> data 0)) + (shutdown sound-rpc-shutdown :overlay-at (-> data 0)) + (list-sounds sound-rpc-list-sounds :overlay-at (-> data 0)) + (unload-music sound-rpc-unload-music :overlay-at (-> data 0)) + ) + ) + +;; definition for method 3 of type sound-rpc-union +(defmethod inspect ((this sound-rpc-union)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-rpc-union) + (format #t "~1Tdata[12] @ #x~X~%" (-> this data)) + (format #t "~1Tload-bank: #~%" (-> this load-bank)) + (format #t "~1Tunload-bank: #~%" (-> this load-bank)) + (format #t "~1Tplay: #~%" (-> this load-bank)) + (format #t "~1Tpause-sound: #~%" (-> this load-bank)) + (format #t "~1Tstop-sound: #~%" (-> this load-bank)) + (format #t "~1Tcontinue-sound: #~%" (-> this load-bank)) + (format #t "~1Tset-param: #~%" (-> this load-bank)) + (format #t "~1Tset-master-volume: #~%" (-> this load-bank)) + (format #t "~1Tpause-group: #~%" (-> this load-bank)) + (format #t "~1Tstop-group: #~%" (-> this load-bank)) + (format #t "~1Tcontinue-group: #~%" (-> this load-bank)) + (format #t "~1Tget-irx-version: #~%" (-> this load-bank)) + (format #t "~1Tset-language: #~%" (-> this load-bank)) + (format #t "~1Tset-reverb: #~%" (-> this load-bank)) + (format #t "~1Tset-fps: #~%" (-> this load-bank)) + (format #t "~1Tset-globals: #~%" (-> this load-bank)) + (format #t "~1Tshutdown: #~%" (-> this load-bank)) + (format #t "~1Tlist-sounds: #~%" (-> this load-bank)) + (format #t "~1Tunload-music: #~%" (-> this load-bank)) + (label cfg-4) + this + ) + +;; definition of type sound-info +(deftype sound-info (structure) + ((flags uint32) + (num-instances uint32) + (index uint32) + (name uint128) + (group uint8) + (fo-power float) + (fo-min float) + (fo-max float) + (volume float) + (pan float) + (priority int8) + (duck-amount float) + ) + ) + +;; definition for method 3 of type sound-info +;; INFO: Used lq/sq +(defmethod inspect ((this sound-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-info) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tnum-instances: ~D~%" (-> this num-instances)) + (format #t "~1Tindex: ~D~%" (-> this index)) + (format #t "~1Tname: ~D~%" (-> this name)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (format #t "~1Tfo-power: ~f~%" (-> this fo-power)) + (format #t "~1Tfo-min: ~f~%" (-> this fo-min)) + (format #t "~1Tfo-max: ~f~%" (-> this fo-max)) + (format #t "~1Tvolume: ~f~%" (-> this volume)) + (format #t "~1Tpan: ~f~%" (-> this pan)) + (format #t "~1Tpriority: ~D~%" (-> this priority)) + (format #t "~1Tduck-amount: ~f~%" (-> this duck-amount)) + (label cfg-4) + this + ) + +;; definition of type sound-spec +(deftype sound-spec (sound-play-params) + ((auto-time int32) + (auto-from int32) + (info sound-info) + (info-index uint32) + (trans vector :inline) + (flags uint16) + (fo-min float) + (fo-max float) + (fo-power float) + ) + ) + +;; definition for method 3 of type sound-spec +(defmethod inspect ((this sound-spec)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-spec) + (format #t "~1Tmask: ~D~%" (-> this mask)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (format #t "~1Tvolume: ~D~%" (-> this volume)) + (format #t "~1Tpitch-mod: ~D~%" (-> this pitch-mod)) + (format #t "~1Tbend: ~D~%" (-> this bend)) + (format #t "~1Tpan: ~D~%" (-> this pan)) + (format #t "~1Tauto-time: ~D~%" (-> this auto-time)) + (format #t "~1Tauto-from: ~D~%" (-> this auto-from)) + (format #t "~1Tinfo: #~%" (-> this info)) + (format #t "~1Tinfo-index: ~D~%" (-> this info-index)) + (format #t "~1Ttrans: #~%" (-> this trans)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tfo-min: ~f~%" (-> this fo-min)) + (format #t "~1Tfo-max: ~f~%" (-> this fo-max)) + (format #t "~1Tfo-power: ~f~%" (-> this fo-power)) + (label cfg-4) + this + ) + +;; definition of type sound-handle +(deftype sound-handle (structure) + ((proc uint64) + (flags uint64) + (fader-cur float) + (fader-targ float) + (dist float) + (viewport int8) + (num-instances uint8) + (svc uint8) + (index uint8) + ) + ) + +;; definition for method 3 of type sound-handle +(defmethod inspect ((this sound-handle)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-handle) + (format #t "~1Tproc: ~D~%" (-> this proc)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tfader-cur: ~f~%" (-> this fader-cur)) + (format #t "~1Tfader-targ: ~f~%" (-> this fader-targ)) + (format #t "~1Tdist: ~f~%" (-> this dist)) + (format #t "~1Tviewport: ~D~%" (-> this viewport)) + (format #t "~1Tnum-instances: ~D~%" (-> this num-instances)) + (format #t "~1Tsvc: ~D~%" (-> this svc)) + (format #t "~1Tindex: ~D~%" (-> this index)) + (label cfg-4) + this + ) + +;; definition of type sound-instance +(deftype sound-instance (sound-spec) + ((last-update uint64) + (joint uint8) + (sh sound-handle) + (id uint32) + (pan-angle float) + (volumef float) + ) + ) + +;; definition for method 3 of type sound-instance +(defmethod inspect ((this sound-instance)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-instance) + (format #t "~1Tmask: ~D~%" (-> this mask)) + (format #t "~1Tgroup: ~D~%" (-> this group)) + (format #t "~1Tvolume: ~D~%" (-> this volume)) + (format #t "~1Tpitch-mod: ~D~%" (-> this pitch-mod)) + (format #t "~1Tbend: ~D~%" (-> this bend)) + (format #t "~1Tpan: ~D~%" (-> this pan)) + (format #t "~1Tauto-time: ~D~%" (-> this auto-time)) + (format #t "~1Tauto-from: ~D~%" (-> this auto-from)) + (format #t "~1Tinfo: #~%" (-> this info)) + (format #t "~1Tinfo-index: ~D~%" (-> this info-index)) + (format #t "~1Ttrans: #~%" (-> this trans)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tfo-min: ~f~%" (-> this fo-min)) + (format #t "~1Tfo-max: ~f~%" (-> this fo-max)) + (format #t "~1Tfo-power: ~f~%" (-> this fo-power)) + (format #t "~1Tlast-update: ~D~%" (-> this last-update)) + (format #t "~1Tjoint: ~D~%" (-> this joint)) + (format #t "~1Tsh: #~%" (-> this sh)) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tpan-angle: ~f~%" (-> this pan-angle)) + (format #t "~1Tvolumef: ~f~%" (-> this volumef)) + (label cfg-4) + this + ) + +;; definition of type sound-bank-state +(deftype sound-bank-state (structure) + ((name symbol) + (mode sound-bank-mode) + (high basic) + (str-name basic) + ) + :pack-me + ) + +;; definition for method 3 of type sound-bank-state +(defmethod inspect ((this sound-bank-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sound-bank-state) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tmode: ~D~%" (-> this mode)) + (format #t "~1Thigh: ~A~%" (-> this high)) + (format #t "~1Tstr-name: ~A~%" (-> this str-name)) + (label cfg-4) + this + ) + +;; definition for symbol *current-sound-id*, type sound-id +(define *current-sound-id* (the-as sound-id #x10000)) + +;; definition of type sound-iop-info +(deftype sound-iop-info (structure) + ((freemem uint32) + (freemem2 uint32) + (nocd uint32) + (dirtycd uint32) + (chinfo uint8 48) + (id-info sound-info 48) + (pad int32 2) + (music-position uint32) + (music-status uint32 :offset 268) + (music-name string :offset 272) + (stream-position uint32 4 :offset 320) + (stream-status stream-status 4) + (stream-name sound-stream-name 4 :inline) + (stream-id sound-id 4) + (stream-id-signed int32 4 :overlay-at (-> stream-id 0)) + (sound-banks sound-bank-state 8 :inline :offset 560) + (sound-iop-info-pad int32 4) + ) + ) + +;; definition for method 3 of type sound-iop-info +(defmethod inspect ((this sound-iop-info)) + (when (not this) + (set! this this) + (goto cfg-16) + ) + (format #t "[~8x] ~A~%" this 'sound-iop-info) + (format #t "~1Tfreemem: ~D~%" (-> this freemem)) + (format #t "~1Tfreemem2: ~D~%" (-> this freemem2)) + (format #t "~1Tnocd: ~D~%" (-> this nocd)) + (format #t "~1Tdirtycd: ~D~%" (-> this dirtycd)) + (format #t "~1Tchinfo[48] @ #x~X~%" (-> this chinfo)) + (format #t "~1Tid-info[48] @ #x~X~%" (-> this id-info)) + (format #t "~1Tpad[2] @ #x~X~%" (-> this pad)) + (format #t "~1Tmusic-position: ~`integer`P~%" (-> this music-position)) + (format #t "~1Tmusic-status: #x~X~%" (-> this music-status)) + (format #t "~1Tmusic-name: ~g~%" (&-> this music-name)) + (format #t "~1Tstream-position[4] @ #x~X~%" (-> this stream-position)) + (dotimes (s5-0 4) + (format #t "~T [~D]~1Tstream-position: ~`integer`P~%" s5-0 (-> this stream-position s5-0)) + ) + (format #t "~1Tstream-status[4] @ #x~X~%" (-> this stream-status)) + (dotimes (s5-1 4) + (format #t "~T [~D]~1Tstream-status: #x~X~%" s5-1 (-> this stream-status s5-1)) + ) + (format #t "~1Tstream-name[4] @ #x~X~%" (-> this stream-name)) + (dotimes (s5-2 4) + (format #t "~T [~D]~1Tstream-name: ~g~%" s5-2 (-> this stream-name s5-2)) + ) + (format #t "~1Tstream-id[4] @ #x~X~%" (-> this stream-id)) + (dotimes (s5-3 4) + (format #t "~T [~D]~1Tstream-id: ~`uint32`P~%" s5-3 (-> this stream-id s5-3)) + ) + (format #t "~1Tsound-bank0: ~g~%" (-> this sound-banks)) + (format #t "~1Tsound-bank1: ~g~%" (-> this sound-banks 1)) + (format #t "~1Tsound-bank2: ~g~%" (-> this sound-banks 2)) + (format #t "~1Tsound-bank3: ~g~%" (-> this sound-banks 3)) + (format #t "~1Tsound-bank4: ~g~%" (-> this sound-banks 4)) + (format #t "~1Tsound-bank5: ~g~%" (-> this sound-banks 5)) + (format #t "~1Tsound-bank6: ~g~%" (-> this sound-banks 6)) + (format #t "~1Tsound-bank7: ~g~%" (-> this sound-banks 7)) + (label cfg-16) + this + ) + +;; definition for symbol *sound-iop-info*, type sound-iop-info +(define *sound-iop-info* (new 'global 'sound-iop-info)) + +;; definition of type ambient-sound +(deftype ambient-sound (basic) + ((playing-id sound-id) + (entity entity) + (sound-count int32) + (spec sound-spec :inline) + (play-time uint64) + (time-base uint64) + (time-random uint64) + ) + (:methods + (new (symbol type basic vector float) _type_) + (ambient-sound-method-9 () none) + (ambient-sound-method-10 () none) + (ambient-sound-method-11 () none) + (ambient-sound-method-12 () none) + (ambient-sound-method-13 () none) + (ambient-sound-method-14 () none) + (ambient-sound-method-15 () none) + (ambient-sound-method-16 () none) + ) + ) + +;; definition for method 3 of type ambient-sound +(defmethod inspect ((this ambient-sound)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tplaying-id: ~D~%" (-> this playing-id)) + (format #t "~1Tentity: ~A~%" (-> this entity)) + (format #t "~1Tsound-count: ~D~%" (-> this sound-count)) + (format #t "~1Tspec: #~%" (-> this spec)) + (format #t "~1Tplay-time: ~D~%" (-> this play-time)) + (format #t "~1Ttime-base: ~D~%" (-> this time-base)) + (format #t "~1Ttime-random: ~D~%" (-> this time-random)) + (label cfg-4) + this + ) + +;; definition for method 0 of type ambient-sound +;; INFO: Used lq/sq +;; WARN: Return type mismatch object vs ambient-sound. +;; ERROR: Unsupported inline assembly instruction kind - [srl v1, v1, 24] +;; ERROR: Unsupported inline assembly instruction kind - [srl v1, v1, 24] +;; ERROR: Unsupported inline assembly instruction kind - [srl v1, v1, 24] +;; ERROR: Unsupported inline assembly instruction kind - [srl a0, a0, 24] +;; ERROR: Unsupported inline assembly instruction kind - [srl a0, a0, 24] +;; ERROR: Unsupported inline assembly instruction kind - [srl v1, v1, 24] +;; ERROR: Unsupported inline assembly instruction kind - [srl a0, a0, 24] +;; ERROR: Unsupported inline assembly instruction kind - [srl a1, a1, 24] +(defmethod new ambient-sound ((allocation symbol) (type-to-make type) (arg0 basic) (arg1 vector) (arg2 float)) + "Set up ambient-sound. Can use an entity-actor (grabs from lump), sound-spec, or name as a string." + (local-vars + (r0-0 uint128) + (v1-10 uint128) + (v1-64 int) + (v1-65 int) + (v1-67 int) + (v1-68 int) + (v1-126 uint128) + (v1-131 uint128) + (v1-139 uint128) + (v1-144 uint128) + (v1-152 uint128) + (v1-157 uint128) + (v1-165 uint128) + (v1-166 int) + (v1-169 uint128) + (v1-170 int) + (v1-176 uint128) + (v1-181 uint128) + (v1-189 uint128) + (v1-194 uint128) + (v1-202 uint128) + (v1-207 uint128) + (v1-215 uint128) + (v1-219 uint128) + (a0-58 int) + (a0-59 int) + (a0-61 int) + (a0-62 int) + (a0-110 uint128) + (a0-113 uint128) + (a0-118 uint128) + (a0-121 uint128) + (a0-126 uint128) + (a0-129 uint128) + (a0-134 uint128) + (a0-135 int) + (a0-136 uint128) + (a0-141 uint128) + (a0-144 uint128) + (a0-149 uint128) + (a0-152 uint128) + (a0-157 uint128) + (a0-160 uint128) + (a0-165 uint128) + (a0-167 uint128) + (a1-14 uint128) + (a1-22 uint128) + (a1-30 uint128) + (a1-38 uint128) + (a1-39 int) + (a1-45 uint128) + (a1-53 uint128) + (a1-61 uint128) + (a1-69 uint128) + ) + (with-pp + (let ((sv-16 (the-as sound-spec #f)) + (sv-32 0) + (sv-48 (the-as (pointer float) #f)) + (sv-52 (the-as pointer #f)) + (sv-56 0) + ) + (case (-> arg0 type) + ((entity-actor) + (let* ((a0-3 + ((method-of-type res-lump get-property-struct) + (the-as res-lump arg0) + 'effect-name + 'exact + arg2 + (the-as structure #f) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + (v1-2 (when a0-3 + (case (rtype-of a0-3) + ((symbol) + (symbol->string (the-as symbol a0-3)) + ) + ((string) + a0-3 + ) + (else + "unknown" + ) + ) + ) + ) + ) + (when v1-2 + (set! sv-32 (the-as int (string->sound-name (the-as string v1-2)))) + (set! sv-48 (res-lump-data (the-as res-lump arg0) 'cycle-speed (pointer float))) + (let* ((sv-64 0) + (v1-8 + ((method-of-type res-lump get-property-data) + (the-as res-lump arg0) + 'effect-param + 'exact + arg2 + (the-as pointer #f) + (the-as (pointer res-tag) (& sv-64)) + *res-static-buf* + ) + ) + ) + (when v1-8 + (set! sv-52 v1-8) + (let ((v1-9 (the-as uint128 sv-64))) + (.pcpyud v1-10 v1-9 r0-0) + ) + (set! sv-56 (shr (* (the-as int v1-10) 2) 49)) + ) + ) + ) + ) + ) + ((sound-spec) + (set! sv-16 (the-as sound-spec arg0)) + (set! sv-32 (the-as int (-> sv-16 info name))) + ) + ((string) + (set! sv-32 (the-as int (string->sound-name (the-as string arg0)))) + ) + (else + (format 0 "ERROR: ambient sound was told to play an unknown ~A.~%" arg0) + ) + ) + (the-as + ambient-sound + (cond + ((nonzero? sv-32) + (let ((s5-1 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size)))))) + (cond + (sv-16 + (quad-copy! (the-as pointer (-> (the-as ambient-sound s5-1) spec)) (the-as pointer sv-16) 4) + ) + (else + (set! (-> (the-as ambient-sound s5-1) spec volume) 1024) + (set! (-> (the-as ambient-sound s5-1) spec pitch-mod) 0) + (effect-param->sound-spec + (-> (the-as ambient-sound s5-1) spec) + (the-as (pointer float) sv-52) + sv-56 + (the-as process-focusable pp) + ) + (when (and (>= (the-as uint (shr (shl sv-32 56) 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr (shl sv-32 56) 56))) + ) + (if (and (nonzero? (shr (shl sv-32 56) 56)) + (>= (the-as uint (shr (shl sv-32 56) 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr (shl sv-32 56) 56))) + ) + (set! sv-32 (logior (logand sv-32 -256) (shr (shl (+ (shr (shl sv-32 56) 56) 32) 56) 56))) + ) + (if (and (nonzero? (shr (shl sv-32 48) 56)) + (>= (the-as uint (shr (shl sv-32 48) 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr (shl sv-32 48) 56))) + ) + (set! sv-32 (logior (logand sv-32 -65281) (shr (shl (+ (shr (shl sv-32 48) 56) 32) 56) 48))) + ) + (if (and (nonzero? (shr (shl sv-32 40) 56)) + (>= (the-as uint (shr (shl sv-32 40) 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr (shl sv-32 40) 56))) + ) + (set! sv-32 (logior (logand sv-32 -16711681) (shr (shl (+ (shr (shl sv-32 40) 56) 32) 56) 40))) + ) + (.srl v1-65 v1-64 24) + (when (and (nonzero? v1-65) + (begin (.srl v1-68 v1-67 24) (>= (the-as uint v1-68) (the-as uint 65))) + (let ((v1-69 90)) + (.srl a0-59 a0-58 24) + (>= (the-as uint v1-69) (the-as uint a0-59)) + ) + ) + (let ((v1-72 (logand sv-32 (the-as uint #xffffffff00ffffff)))) + (.srl a0-62 a0-61 24) + (set! sv-32 (logior v1-72 (shr (shl (+ a0-62 32) 56) 32))) + ) + ) + (if (and (nonzero? (shr (shl sv-32 24) 56)) + (>= (the-as uint (shr (shl sv-32 24) 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr (shl sv-32 24) 56))) + ) + (set! sv-32 + (logior (logand sv-32 (the-as uint #xffffff00ffffffff)) (shr (shl (+ (shr (shl sv-32 24) 56) 32) 56) 24)) + ) + ) + (if (and (nonzero? (shr (shl sv-32 16) 56)) + (>= (the-as uint (shr (shl sv-32 16) 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr (shl sv-32 16) 56))) + ) + (set! sv-32 + (logior (logand sv-32 (the-as uint #xffff00ffffffffff)) (shr (shl (+ (shr (shl sv-32 16) 56) 32) 56) 16)) + ) + ) + (if (and (nonzero? (shr (* sv-32 256) 56)) + (>= (the-as uint (shr (* sv-32 256) 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr (* sv-32 256) 56))) + ) + (set! sv-32 + (logior (logand sv-32 (the-as uint #xff00ffffffffffff)) (shr (shl (+ (shr (* sv-32 256) 56) 32) 56) 8)) + ) + ) + (if (and (nonzero? (shr sv-32 56)) + (>= (the-as uint (shr sv-32 56)) (the-as uint 65)) + (>= (the-as uint 90) (the-as uint (shr sv-32 56))) + ) + (set! sv-32 (logior (logand sv-32 (the-as uint #xffffffffffffff)) (shr (shl (+ (shr sv-32 56) 32) 56) 0))) + ) + (let ((v1-125 (the-as uint128 sv-32))) + (.pcpyud v1-126 v1-125 r0-0) + ) + (when (and (nonzero? (shr (shl (the-as int v1-126) 56) 56)) + (begin + (let ((v1-130 (the-as uint128 sv-32))) + (.pcpyud v1-131 v1-130 r0-0) + ) + (>= (the-as uint (shr (shl (the-as int v1-131) 56) 56)) (the-as uint 65)) + ) + (let ((v1-134 90)) + (let ((a0-109 (the-as uint128 sv-32))) + (.pcpyud a0-110 a0-109 r0-0) + ) + (>= (the-as uint v1-134) (the-as uint (shr (shl (the-as int a0-110) 56) 56))) + ) + ) + (let ((v1-136 (the-as uint128 sv-32))) + (.pcpyud a0-113 v1-136 r0-0) + (let ((a0-114 (logand (the-as int a0-113) -256))) + (let ((a1-13 (the-as uint128 sv-32))) + (.pcpyud a1-14 a1-13 r0-0) + ) + (set! sv-32 + (the-as + int + (make-u128 (logior a0-114 (shr (shl (+ (shr (shl (the-as int a1-14) 56) 56) 32) 56) 56)) (the-as int v1-136)) + ) + ) + ) + ) + ) + (let ((v1-138 (the-as uint128 sv-32))) + (.pcpyud v1-139 v1-138 r0-0) + ) + (when (and (nonzero? (shr (shl (the-as int v1-139) 48) 56)) + (begin + (let ((v1-143 (the-as uint128 sv-32))) + (.pcpyud v1-144 v1-143 r0-0) + ) + (>= (the-as uint (shr (shl (the-as int v1-144) 48) 56)) (the-as uint 65)) + ) + (let ((v1-147 90)) + (let ((a0-117 (the-as uint128 sv-32))) + (.pcpyud a0-118 a0-117 r0-0) + ) + (>= (the-as uint v1-147) (the-as uint (shr (shl (the-as int a0-118) 48) 56))) + ) + ) + (let ((v1-149 (the-as uint128 sv-32))) + (.pcpyud a0-121 v1-149 r0-0) + (let ((a0-122 (logand (the-as int a0-121) -65281))) + (let ((a1-21 (the-as uint128 sv-32))) + (.pcpyud a1-22 a1-21 r0-0) + ) + (set! sv-32 + (the-as + int + (make-u128 (logior a0-122 (shr (shl (+ (shr (shl (the-as int a1-22) 48) 56) 32) 56) 48)) (the-as int v1-149)) + ) + ) + ) + ) + ) + (let ((v1-151 (the-as uint128 sv-32))) + (.pcpyud v1-152 v1-151 r0-0) + ) + (when (and (nonzero? (shr (shl (the-as int v1-152) 40) 56)) + (begin + (let ((v1-156 (the-as uint128 sv-32))) + (.pcpyud v1-157 v1-156 r0-0) + ) + (>= (the-as uint (shr (shl (the-as int v1-157) 40) 56)) (the-as uint 65)) + ) + (let ((v1-160 90)) + (let ((a0-125 (the-as uint128 sv-32))) + (.pcpyud a0-126 a0-125 r0-0) + ) + (>= (the-as uint v1-160) (the-as uint (shr (shl (the-as int a0-126) 40) 56))) + ) + ) + (let ((v1-162 (the-as uint128 sv-32))) + (.pcpyud a0-129 v1-162 r0-0) + (let ((a0-130 (logand (the-as int a0-129) -16711681))) + (let ((a1-29 (the-as uint128 sv-32))) + (.pcpyud a1-30 a1-29 r0-0) + ) + (set! sv-32 + (the-as + int + (make-u128 (logior a0-130 (shr (shl (+ (shr (shl (the-as int a1-30) 40) 56) 32) 56) 40)) (the-as int v1-162)) + ) + ) + ) + ) + ) + (let ((v1-164 (the-as uint128 sv-32))) + (.pcpyud v1-165 v1-164 r0-0) + ) + (.srl v1-166 (the-as int v1-165) 24) + (when (and (nonzero? v1-166) + (begin + (let ((v1-168 (the-as uint128 sv-32))) + (.pcpyud v1-169 v1-168 r0-0) + ) + (.srl v1-170 (the-as int v1-169) 24) + (>= (the-as uint v1-170) (the-as uint 65)) + ) + (let ((v1-171 90)) + (let ((a0-133 (the-as uint128 sv-32))) + (.pcpyud a0-134 a0-133 r0-0) + ) + (.srl a0-135 (the-as int a0-134) 24) + (>= (the-as uint v1-171) (the-as uint a0-135)) + ) + ) + (let ((v1-173 (the-as uint128 sv-32))) + (.pcpyud a0-136 v1-173 r0-0) + (let ((a0-137 (logand (the-as int a0-136) (the-as uint #xffffffff00ffffff)))) + (let ((a1-37 (the-as uint128 sv-32))) + (.pcpyud a1-38 a1-37 r0-0) + ) + (.srl a1-39 (the-as int a1-38) 24) + (set! sv-32 (the-as int (make-u128 (logior a0-137 (shr (shl (+ a1-39 32) 56) 32)) (the-as int v1-173)))) + ) + ) + ) + (let ((v1-175 (the-as uint128 sv-32))) + (.pcpyud v1-176 v1-175 r0-0) + ) + (when (and (nonzero? (shr (shl (the-as int v1-176) 24) 56)) + (begin + (let ((v1-180 (the-as uint128 sv-32))) + (.pcpyud v1-181 v1-180 r0-0) + ) + (>= (the-as uint (shr (shl (the-as int v1-181) 24) 56)) (the-as uint 65)) + ) + (let ((v1-184 90)) + (let ((a0-140 (the-as uint128 sv-32))) + (.pcpyud a0-141 a0-140 r0-0) + ) + (>= (the-as uint v1-184) (the-as uint (shr (shl (the-as int a0-141) 24) 56))) + ) + ) + (let ((v1-186 (the-as uint128 sv-32))) + (.pcpyud a0-144 v1-186 r0-0) + (let ((a0-145 (logand (the-as int a0-144) (the-as uint #xffffff00ffffffff)))) + (let ((a1-44 (the-as uint128 sv-32))) + (.pcpyud a1-45 a1-44 r0-0) + ) + (set! sv-32 + (the-as + int + (make-u128 (logior a0-145 (shr (shl (+ (shr (shl (the-as int a1-45) 24) 56) 32) 56) 24)) (the-as int v1-186)) + ) + ) + ) + ) + ) + (let ((v1-188 (the-as uint128 sv-32))) + (.pcpyud v1-189 v1-188 r0-0) + ) + (when (and (nonzero? (shr (shl (the-as int v1-189) 16) 56)) + (begin + (let ((v1-193 (the-as uint128 sv-32))) + (.pcpyud v1-194 v1-193 r0-0) + ) + (>= (the-as uint (shr (shl (the-as int v1-194) 16) 56)) (the-as uint 65)) + ) + (let ((v1-197 90)) + (let ((a0-148 (the-as uint128 sv-32))) + (.pcpyud a0-149 a0-148 r0-0) + ) + (>= (the-as uint v1-197) (the-as uint (shr (shl (the-as int a0-149) 16) 56))) + ) + ) + (let ((v1-199 (the-as uint128 sv-32))) + (.pcpyud a0-152 v1-199 r0-0) + (let ((a0-153 (logand (the-as int a0-152) (the-as uint #xffff00ffffffffff)))) + (let ((a1-52 (the-as uint128 sv-32))) + (.pcpyud a1-53 a1-52 r0-0) + ) + (set! sv-32 + (the-as + int + (make-u128 (logior a0-153 (shr (shl (+ (shr (shl (the-as int a1-53) 16) 56) 32) 56) 16)) (the-as int v1-199)) + ) + ) + ) + ) + ) + (let ((v1-201 (the-as uint128 sv-32))) + (.pcpyud v1-202 v1-201 r0-0) + ) + (when (and (nonzero? (shr (* (the-as int v1-202) 256) 56)) + (begin + (let ((v1-206 (the-as uint128 sv-32))) + (.pcpyud v1-207 v1-206 r0-0) + ) + (>= (the-as uint (shr (* (the-as int v1-207) 256) 56)) (the-as uint 65)) + ) + (let ((v1-210 90)) + (let ((a0-156 (the-as uint128 sv-32))) + (.pcpyud a0-157 a0-156 r0-0) + ) + (>= (the-as uint v1-210) (the-as uint (shr (* (the-as int a0-157) 256) 56))) + ) + ) + (let ((v1-212 (the-as uint128 sv-32))) + (.pcpyud a0-160 v1-212 r0-0) + (let ((a0-161 (logand (the-as int a0-160) (the-as uint #xff00ffffffffffff)))) + (let ((a1-60 (the-as uint128 sv-32))) + (.pcpyud a1-61 a1-60 r0-0) + ) + (set! sv-32 + (the-as + int + (make-u128 (logior a0-161 (shr (shl (+ (shr (* (the-as int a1-61) 256) 56) 32) 56) 8)) (the-as int v1-212)) + ) + ) + ) + ) + ) + (let ((v1-214 (the-as uint128 sv-32))) + (.pcpyud v1-215 v1-214 r0-0) + ) + (when (and (nonzero? (shr (the-as int v1-215) 56)) + (begin + (let ((v1-218 (the-as uint128 sv-32))) + (.pcpyud v1-219 v1-218 r0-0) + ) + (>= (the-as uint (shr (the-as int v1-219) 56)) (the-as uint 65)) + ) + (let ((v1-221 90)) + (let ((a0-164 (the-as uint128 sv-32))) + (.pcpyud a0-165 a0-164 r0-0) + ) + (>= (the-as uint v1-221) (the-as uint (shr (the-as int a0-165) 56))) + ) + ) + (let ((v1-223 (the-as uint128 sv-32))) + (.pcpyud a0-167 v1-223 r0-0) + (let ((a0-168 (logand (the-as int a0-167) (the-as uint #xffffffffffffff)))) + (let ((a1-68 (the-as uint128 sv-32))) + (.pcpyud a1-69 a1-68 r0-0) + ) + (set! sv-32 + (the-as + int + (make-u128 (logior a0-168 (shr (shl (+ (shr (the-as int a1-69) 56) 32) 56) 0)) (the-as int v1-223)) + ) + ) + ) + ) + ) + ) + (set! (-> (the-as ambient-sound s5-1) spec info) (sound-info-by-name (the-as string sv-32))) + ) + ) + (set! (-> (the-as ambient-sound s5-1) playing-id) (new-sound-id)) + (set! (-> (the-as ambient-sound s5-1) entity) #f) + (set! (-> (the-as ambient-sound s5-1) sound-count) 1) + (cond + (sv-48 + (set! (-> (the-as ambient-sound s5-1) time-base) (the-as uint (the int (* 300.0 (-> sv-48 0))))) + (set! (-> (the-as ambient-sound s5-1) time-random) (the-as uint (the int (* 300.0 (-> sv-48 1))))) + ) + (else + (set! (-> (the-as ambient-sound s5-1) time-base) (the-as uint -1)) + ) + ) + (set! (-> (the-as ambient-sound s5-1) spec trans quad) (-> arg1 quad)) + s5-1 + ) + ) + (else + 0 + ) + ) + ) + ) + ) + ) + +;; definition for symbol *jukebox-time*, type int +(define *jukebox-time* 0) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech-h_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech-h_REF.gc index 9de0ac9f9c..62c3ea5ca3 100644 --- a/test/decompiler/reference/jakx/engine/sound/speech-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/sound/speech-h_REF.gc @@ -35,7 +35,7 @@ ;; definition of type speech-info (deftype speech-info (structure) - ((list basic) + ((list (array speech-info-item)) (flags speech-info-flag) ) (:methods @@ -98,7 +98,7 @@ (time uint64) (current-request speech-request) (requests basic) - (speeches speech-info-item 31) + (speeches speech-info 31) ) (:methods (speech-channel-method-9 () none) diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-ashelin_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-ashelin_REF.gc new file mode 100644 index 0000000000..958686dead --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-ashelin_REF.gc @@ -0,0 +1,463 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash110r") + (new 'static 'speech-info-item :name "ash113r") + (new 'static 'speech-info-item :name "ash118r") + (new 'static 'speech-info-item :name "ash121r") + (new 'static 'speech-info-item :name "ash122r") + (new 'static 'speech-info-item :name "ash123r") + (new 'static 'speech-info-item :name "ash124r") + (new 'static 'speech-info-item :name "ash125r") + (new 'static 'speech-info-item :name "ash126r") + (new 'static 'speech-info-item :name "ash127r") + (new 'static 'speech-info-item :name "ash128r") + (new 'static 'speech-info-item :name "ash129r") + (new 'static 'speech-info-item :name "ash130r") + (new 'static 'speech-info-item :name "ash131r") + (new 'static 'speech-info-item :name "ash132r") + (new 'static 'speech-info-item :name "ash133r") + (new 'static 'speech-info-item :name "ash137r") + (new 'static 'speech-info-item :name "ash138r") + (new 'static 'speech-info-item :name "ash140r") + (new 'static 'speech-info-item :name "ash141r") + (new 'static 'speech-info-item :name "ash142r") + (new 'static 'speech-info-item :name "ash143r") + (new 'static 'speech-info-item :name "ash144r") + (new 'static 'speech-info-item :name "ash145r") + (new 'static 'speech-info-item :name "ash146r") + (new 'static 'speech-info-item :name "ash147r") + (new 'static 'speech-info-item :name "ash148r") + (new 'static 'speech-info-item :name "ash149r") + (new 'static 'speech-info-item :name "ash150r") + (new 'static 'speech-info-item :name "ash151r") + (new 'static 'speech-info-item :name "ash152r") + (new 'static 'speech-info-item :name "ash153r") + (new 'static 'speech-info-item :name "ash154r") + (new 'static 'speech-info-item :name "ash156r") + (new 'static 'speech-info-item :name "ash157r") + (new 'static 'speech-info-item :name "ash158r") + (new 'static 'speech-info-item :name "ash161r") + (new 'static 'speech-info-item :name "ash162r") + (new 'static 'speech-info-item :name "ash196r") + (new 'static 'speech-info-item :name "ash208r") + (new 'static 'speech-info-item :name "ash280r") + (new 'static 'speech-info-item :name "ash281r") + (new 'static 'speech-info-item :name "ash283r") + (new 'static 'speech-info-item :name "ash284r") + (new 'static 'speech-info-item :name "ash285r") + (new 'static 'speech-info-item :name "ash288r") + (new 'static 'speech-info-item :name "ash289r") + (new 'static 'speech-info-item :name "ash290r") + (new 'static 'speech-info-item :name "ash292r") + (new 'static 'speech-info-item :name "ash293r") + (new 'static 'speech-info-item :name "ash324r") + (new 'static 'speech-info-item :name "ash325r") + (new 'static 'speech-info-item :name "ash326r") + (new 'static 'speech-info-item :name "ash327r") + (new 'static 'speech-info-item :name "ash328r") + (new 'static 'speech-info-item :name "ash329r") + (new 'static 'speech-info-item :name "ash331r") + (new 'static 'speech-info-item :name "ash332r") + (new 'static 'speech-info-item :name "ash333r") + (new 'static 'speech-info-item :name "ash334r") + (new 'static 'speech-info-item :name "ash335r") + (new 'static 'speech-info-item :name "ash336r") + (new 'static 'speech-info-item :name "ash337r") + (new 'static 'speech-info-item :name "ash338r") + (new 'static 'speech-info-item :name "ash339r") + (new 'static 'speech-info-item :name "ash340r") + (new 'static 'speech-info-item :name "ash341r") + (new 'static 'speech-info-item :name "ash342r") + (new 'static 'speech-info-item :name "ash343r") + (new 'static 'speech-info-item :name "ash344r") + (new 'static 'speech-info-item :name "ash182r") + (new 'static 'speech-info-item :name "ash183r") + (new 'static 'speech-info-item :name "ash184r") + (new 'static 'speech-info-item :name "ash186r") + (new 'static 'speech-info-item :name "ash187r") + (new 'static 'speech-info-item :name "ash168r") + (new 'static 'speech-info-item :name "ash219r") + (new 'static 'speech-info-item :name "ash189r") + (new 'static 'speech-info-item :name "ash225r") + (new 'static 'speech-info-item :name "ash226r") + (new 'static 'speech-info-item :name "ash229r") + (new 'static 'speech-info-item :name "ash230r") + (new 'static 'speech-info-item :name "ash231r") + (new 'static 'speech-info-item :name "ash239r") + (new 'static 'speech-info-item :name "ash243r") + (new 'static 'speech-info-item :name "ash244r") + (new 'static 'speech-info-item :name "ash147r") + (new 'static 'speech-info-item :name "ash148r") + (new 'static 'speech-info-item :name "ash149r") + (new 'static 'speech-info-item :name "ash150r") + (new 'static 'speech-info-item :name "ash151r") + (new 'static 'speech-info-item :name "ash253r") + (new 'static 'speech-info-item :name "ash255r") + (new 'static 'speech-info-item :name "ash256r") + (new 'static 'speech-info-item :name "ash257r") + (new 'static 'speech-info-item :name "ash264r") + (new 'static 'speech-info-item :name "ash273r") + (new 'static 'speech-info-item :name "ash274r") + (new 'static 'speech-info-item :name "ash275r") + (new 'static 'speech-info-item :name "ash276r") + (new 'static 'speech-info-item :name "ash107r") + (new 'static 'speech-info-item :name "ash313r") + (new 'static 'speech-info-item :name "ash108r") + (new 'static 'speech-info-item :name "ash116r") + (new 'static 'speech-info-item :name "ash287r") + (new 'static 'speech-info-item :name "ash317r") + (new 'static 'speech-info-item :name "ash319r") + (new 'static 'speech-info-item :name "ash321r") + (new 'static 'speech-info-item :name "ash168r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash164r") + (new 'static 'speech-info-item :name "ash165r") + (new 'static 'speech-info-item :name "ash166r") + (new 'static 'speech-info-item :name "ash167r") + (new 'static 'speech-info-item :name "ash169r") + (new 'static 'speech-info-item :name "ash170r") + (new 'static 'speech-info-item :name "ash171r") + (new 'static 'speech-info-item :name "ash172r") + (new 'static 'speech-info-item :name "ash173r") + (new 'static 'speech-info-item :name "ash174r") + (new 'static 'speech-info-item :name "ash175r") + (new 'static 'speech-info-item :name "ash176r") + (new 'static 'speech-info-item :name "ash177r") + (new 'static 'speech-info-item :name "ash178r") + (new 'static 'speech-info-item :name "ash179r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash180r") + (new 'static 'speech-info-item :name "ash181r") + (new 'static 'speech-info-item :name "ash117r") + (new 'static 'speech-info-item :name "ash119r") + (new 'static 'speech-info-item :name "ash163r") + (new 'static 'speech-info-item :name "ash282r") + (new 'static 'speech-info-item :name "ash286r") + (new 'static 'speech-info-item :name "ash291r") + (new 'static 'speech-info-item :name "ash330r") + (new 'static 'speech-info-item :name "ash209r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash185r") + (new 'static 'speech-info-item :name "ash188r") + (new 'static 'speech-info-item :name "ash190r") + (new 'static 'speech-info-item :name "ash191r") + (new 'static 'speech-info-item :name "ash192r") + (new 'static 'speech-info-item :name "ash193r") + (new 'static 'speech-info-item :name "ash194r") + (new 'static 'speech-info-item :name "ash195r") + (new 'static 'speech-info-item :name "ash197r") + (new 'static 'speech-info-item :name "ash198r") + (new 'static 'speech-info-item :name "ash134r") + (new 'static 'speech-info-item :name "ash135r") + (new 'static 'speech-info-item :name "ash136r") + (new 'static 'speech-info-item :name "ash139r") + (new 'static 'speech-info-item :name "ash155r") + (new 'static 'speech-info-item :name "ash214r") + (new 'static 'speech-info-item :name "ash215r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 5) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash199r") + (new 'static 'speech-info-item :name "ash200r") + (new 'static 'speech-info-item :name "ash201r") + (new 'static 'speech-info-item :name "ash202r") + (new 'static 'speech-info-item :name "ash203r") + (new 'static 'speech-info-item :name "ash204r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash205r") + (new 'static 'speech-info-item :name "ash206r") + (new 'static 'speech-info-item :name "ash207r") + (new 'static 'speech-info-item :name "ash210r") + (new 'static 'speech-info-item :name "ash211r") + (new 'static 'speech-info-item :name "ash212r") + (new 'static 'speech-info-item :name "ash213r") + (new 'static 'speech-info-item :name "ash216r") + (new 'static 'speech-info-item :name "ash217r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash218r") + (new 'static 'speech-info-item :name "ash220r") + (new 'static 'speech-info-item :name "ash221r") + (new 'static 'speech-info-item :name "ash222r") + (new 'static 'speech-info-item :name "ash223r") + (new 'static 'speech-info-item :name "ash224r") + (new 'static 'speech-info-item :name "ash227r") + (new 'static 'speech-info-item :name "ash228r") + (new 'static 'speech-info-item :name "ash232r") + (new 'static 'speech-info-item :name "ash233r") + (new 'static 'speech-info-item :name "ash234r") + (new 'static 'speech-info-item :name "ash235r") + (new 'static 'speech-info-item :name "ash236r") + (new 'static 'speech-info-item :name "ash237r") + (new 'static 'speech-info-item :name "ash238r") + (new 'static 'speech-info-item :name "ash240r") + (new 'static 'speech-info-item :name "ash241r") + (new 'static 'speech-info-item :name "ash242r") + (new 'static 'speech-info-item :name "ash245r") + (new 'static 'speech-info-item :name "ash246r") + (new 'static 'speech-info-item :name "ash115r") + (new 'static 'speech-info-item :name "ash120r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 10) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash252r") + (new 'static 'speech-info-item :name "ash254r") + (new 'static 'speech-info-item :name "ash258r") + (new 'static 'speech-info-item :name "ash259r") + (new 'static 'speech-info-item :name "ash260r") + (new 'static 'speech-info-item :name "ash261r") + (new 'static 'speech-info-item :name "ash262r") + (new 'static 'speech-info-item :name "ash263r") + (new 'static 'speech-info-item :name "ash265r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash266r") + (new 'static 'speech-info-item :name "ash267r") + (new 'static 'speech-info-item :name "ash268r") + (new 'static 'speech-info-item :name "ash269r") + (new 'static 'speech-info-item :name "ash160r") + (new 'static 'speech-info-item :name "ash159r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash270r") + (new 'static 'speech-info-item :name "ash271r") + (new 'static 'speech-info-item :name "ash272r") + (new 'static 'speech-info-item :name "ash277r") + (new 'static 'speech-info-item :name "ash278r") + (new 'static 'speech-info-item :name "ash279r") + (new 'static 'speech-info-item :name "ash101r") + (new 'static 'speech-info-item :name "ash102r") + (new 'static 'speech-info-item :name "ash103r") + (new 'static 'speech-info-item :name "ash104r") + (new 'static 'speech-info-item :name "ash105r") + (new 'static 'speech-info-item :name "ash106r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "ash294r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash295r") + (new 'static 'speech-info-item :name "ash296r") + (new 'static 'speech-info-item :name "ash297r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash298r") + (new 'static 'speech-info-item :name "ash299r") + (new 'static 'speech-info-item :name "ash300r") + (new 'static 'speech-info-item :name "ash301r") + (new 'static 'speech-info-item :name "ash302r") + (new 'static 'speech-info-item :name "ash303r") + (new 'static 'speech-info-item :name "ash304r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash305r") + (new 'static 'speech-info-item :name "ash306r") + (new 'static 'speech-info-item :name "ash307r") + (new 'static 'speech-info-item :name "ash308r") + (new 'static 'speech-info-item :name "ash309r") + (new 'static 'speech-info-item :name "ash310r") + (new 'static 'speech-info-item :name "ash311r") + (new 'static 'speech-info-item :name "ash312r") + (new 'static 'speech-info-item :name "ash314r") + (new 'static 'speech-info-item :name "ash315r") + (new 'static 'speech-info-item :name "ash109r") + (new 'static 'speech-info-item :name "ash111r") + (new 'static 'speech-info-item :name "ash112r") + (new 'static 'speech-info-item :name "ash114r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash316r") + (new 'static 'speech-info-item :name "ash318r") + (new 'static 'speech-info-item :name "ash320r") + (new 'static 'speech-info-item :name "ash322r") + (new 'static 'speech-info-item :name "ash323r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash305r") + (new 'static 'speech-info-item :name "ash306r") + (new 'static 'speech-info-item :name "ash307r") + (new 'static 'speech-info-item :name "ash308r") + (new 'static 'speech-info-item :name "ash309r") + (new 'static 'speech-info-item :name "ash310r") + (new 'static 'speech-info-item :name "ash311r") + (new 'static 'speech-info-item :name "ash312r") + (new 'static 'speech-info-item :name "ash314r") + (new 'static 'speech-info-item :name "ash315r") + (new 'static 'speech-info-item :name "ash109r") + (new 'static 'speech-info-item :name "ash111r") + (new 'static 'speech-info-item :name "ash112r") + (new 'static 'speech-info-item :name "ash114r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash316r") + (new 'static 'speech-info-item :name "ash318r") + (new 'static 'speech-info-item :name "ash320r") + (new 'static 'speech-info-item :name "ash322r") + (new 'static 'speech-info-item :name "ash323r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash345r") + (new 'static 'speech-info-item :name "ash346r") + (new 'static 'speech-info-item :name "ash347r") + (new 'static 'speech-info-item :name "ash348r") + (new 'static 'speech-info-item :name "ash349r") + (new 'static 'speech-info-item :name "ash108r") + (new 'static 'speech-info-item :name "ash112r") + (new 'static 'speech-info-item :name "ash114r") + (new 'static 'speech-info-item :name "ash115r") + (new 'static 'speech-info-item :name "ash116r") + (new 'static 'speech-info-item :name "ash118r") + (new 'static 'speech-info-item :name "ash121r") + (new 'static 'speech-info-item :name "ash149r") + (new 'static 'speech-info-item :name "ash191r") + (new 'static 'speech-info-item :name "ash192r") + (new 'static 'speech-info-item :name "ash193r") + (new 'static 'speech-info-item :name "ash194r") + (new 'static 'speech-info-item :name "ash197r") + (new 'static 'speech-info-item :name "ash199r") + (new 'static 'speech-info-item :name "ash200r") + (new 'static 'speech-info-item :name "ash201r") + (new 'static 'speech-info-item :name "ash205r") + (new 'static 'speech-info-item :name "ash206r") + (new 'static 'speech-info-item :name "ash210r") + (new 'static 'speech-info-item :name "ash211r") + (new 'static 'speech-info-item :name "ash212r") + (new 'static 'speech-info-item :name "ash213r") + (new 'static 'speech-info-item :name "ash215r") + (new 'static 'speech-info-item :name "ash216r") + (new 'static 'speech-info-item :name "ash222r") + (new 'static 'speech-info-item :name "ash223r") + (new 'static 'speech-info-item :name "ash224r") + (new 'static 'speech-info-item :name "ash227r") + (new 'static 'speech-info-item :name "ash241r") + (new 'static 'speech-info-item :name "ash264r") + (new 'static 'speech-info-item :name "ash287r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash106r") + (new 'static 'speech-info-item :name "ash107r") + (new 'static 'speech-info-item :name "ash198r") + (new 'static 'speech-info-item :name "ash256r") + (new 'static 'speech-info-item :name "ash257r") + (new 'static 'speech-info-item :name "ash258r") + (new 'static 'speech-info-item :name "ash259r") + (new 'static 'speech-info-item :name "ash261r") + (new 'static 'speech-info-item :name "ash262r") + (new 'static 'speech-info-item :name "ash265r") + (new 'static 'speech-info-item :name "ash266r") + (new 'static 'speech-info-item :name "ash267r") + (new 'static 'speech-info-item :name "ash268r") + (new 'static 'speech-info-item :name "ash270r") + (new 'static 'speech-info-item :name "ash273r") + (new 'static 'speech-info-item :name "ash274r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 4 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ash164r") + (new 'static 'speech-info-item :name "ash166r") + (new 'static 'speech-info-item :name "ash167r") + (new 'static 'speech-info-item :name "ash169r") + (new 'static 'speech-info-item :name "ash170r") + (new 'static 'speech-info-item :name "ash172r") + (new 'static 'speech-info-item :name "ash173r") + (new 'static 'speech-info-item :name "ash174r") + (new 'static 'speech-info-item :name "ash176r") + (new 'static 'speech-info-item :name "ash177r") + (new 'static 'speech-info-item :name "ash178r") + (new 'static 'speech-info-item :name "ash179r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "ash180r") + (new 'static 'speech-info-item :name "ash181r") + (new 'static 'speech-info-item :name "ash119r") + (new 'static 'speech-info-item :name "ash163r") + (new 'static 'speech-info-item :name "ash282r") + (new 'static 'speech-info-item :name "ash291r") + (new 'static 'speech-info-item :name "ash330r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-daxter_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-daxter_REF.gc new file mode 100644 index 0000000000..6ef244e619 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-daxter_REF.gc @@ -0,0 +1,508 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax106r") + (new 'static 'speech-info-item :name "dax107r") + (new 'static 'speech-info-item :name "dax108r") + (new 'static 'speech-info-item :name "dax109r") + (new 'static 'speech-info-item :name "dax111r") + (new 'static 'speech-info-item :name "dax112r") + (new 'static 'speech-info-item :name "dax113r") + (new 'static 'speech-info-item :name "dax114r") + (new 'static 'speech-info-item :name "dax125r") + (new 'static 'speech-info-item :name "dax127r") + (new 'static 'speech-info-item :name "dax128r") + (new 'static 'speech-info-item :name "dax129r") + (new 'static 'speech-info-item :name "dax130r") + (new 'static 'speech-info-item :name "dax131r") + (new 'static 'speech-info-item :name "dax132r") + (new 'static 'speech-info-item :name "dax133r") + (new 'static 'speech-info-item :name "dax135r") + (new 'static 'speech-info-item :name "dax136r") + (new 'static 'speech-info-item :name "dax137r") + (new 'static 'speech-info-item :name "dax138r") + (new 'static 'speech-info-item :name "dax139r") + (new 'static 'speech-info-item :name "dax142r") + (new 'static 'speech-info-item :name "dax143r") + (new 'static 'speech-info-item :name "dax144r") + (new 'static 'speech-info-item :name "dax145r") + (new 'static 'speech-info-item :name "dax146r") + (new 'static 'speech-info-item :name "dax147r") + (new 'static 'speech-info-item :name "dax150r") + (new 'static 'speech-info-item :name "dax159r") + (new 'static 'speech-info-item :name "dax160r") + (new 'static 'speech-info-item :name "dax161r") + (new 'static 'speech-info-item :name "dax162r") + (new 'static 'speech-info-item :name "dax164r") + (new 'static 'speech-info-item :name "dax223r") + (new 'static 'speech-info-item :name "dax224r") + (new 'static 'speech-info-item :name "dax225r") + (new 'static 'speech-info-item :name "dax254r") + (new 'static 'speech-info-item :name "dax256r") + (new 'static 'speech-info-item :name "dax339r") + (new 'static 'speech-info-item :name "dax340r") + (new 'static 'speech-info-item :name "dax341r") + (new 'static 'speech-info-item :name "dax342r") + (new 'static 'speech-info-item :name "dax343r") + (new 'static 'speech-info-item :name "dax344r") + (new 'static 'speech-info-item :name "dax345r") + (new 'static 'speech-info-item :name "dax346r") + (new 'static 'speech-info-item :name "dax347r") + (new 'static 'speech-info-item :name "dax348r") + (new 'static 'speech-info-item :name "dax351r") + (new 'static 'speech-info-item :name "dax352r") + (new 'static 'speech-info-item :name "dax353r") + (new 'static 'speech-info-item :name "dax354r") + (new 'static 'speech-info-item :name "dax355r") + (new 'static 'speech-info-item :name "dax356r") + (new 'static 'speech-info-item :name "dax402r") + (new 'static 'speech-info-item :name "dax403r") + (new 'static 'speech-info-item :name "dax404r") + (new 'static 'speech-info-item :name "dax405r") + (new 'static 'speech-info-item :name "dax409r") + (new 'static 'speech-info-item :name "dax410r") + (new 'static 'speech-info-item :name "dax413r") + (new 'static 'speech-info-item :name "dax414r") + (new 'static 'speech-info-item :name "dax416r") + (new 'static 'speech-info-item :name "dax420r") + (new 'static 'speech-info-item :name "dax421r") + (new 'static 'speech-info-item :name "dax422r") + (new 'static 'speech-info-item :name "dax423r") + (new 'static 'speech-info-item :name "dax425r") + (new 'static 'speech-info-item :name "dax426r") + (new 'static 'speech-info-item :name "dax427r") + (new 'static 'speech-info-item :name "dax428r") + (new 'static 'speech-info-item :name "dax328r") + (new 'static 'speech-info-item :name "dax329r") + (new 'static 'speech-info-item :name "dax330r") + (new 'static 'speech-info-item :name "dax332r") + (new 'static 'speech-info-item :name "dax335r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax124r") + (new 'static 'speech-info-item :name "dax173r") + (new 'static 'speech-info-item :name "dax174r") + (new 'static 'speech-info-item :name "dax175r") + (new 'static 'speech-info-item :name "dax176r") + (new 'static 'speech-info-item :name "dax177r") + (new 'static 'speech-info-item :name "dax178r") + (new 'static 'speech-info-item :name "dax179r") + (new 'static 'speech-info-item :name "dax180r") + (new 'static 'speech-info-item :name "dax181r") + (new 'static 'speech-info-item :name "dax182r") + (new 'static 'speech-info-item :name "dax183r") + (new 'static 'speech-info-item :name "dax184r") + (new 'static 'speech-info-item :name "dax185r") + (new 'static 'speech-info-item :name "dax186r") + (new 'static 'speech-info-item :name "dax187r") + (new 'static 'speech-info-item :name "dax188r") + (new 'static 'speech-info-item :name "dax189r") + (new 'static 'speech-info-item :name "dax190r") + (new 'static 'speech-info-item :name "dax191r") + (new 'static 'speech-info-item :name "dax192r") + (new 'static 'speech-info-item :name "dax193r") + (new 'static 'speech-info-item :name "dax194r") + (new 'static 'speech-info-item :name "dax195r") + (new 'static 'speech-info-item :name "dax196r") + (new 'static 'speech-info-item :name "dax197r") + (new 'static 'speech-info-item :name "dax198r") + (new 'static 'speech-info-item :name "dax199r") + (new 'static 'speech-info-item :name "dax200r") + (new 'static 'speech-info-item :name "dax201r") + (new 'static 'speech-info-item :name "dax202r") + (new 'static 'speech-info-item :name "dax203r") + (new 'static 'speech-info-item :name "dax204r") + (new 'static 'speech-info-item :name "dax205r") + (new 'static 'speech-info-item :name "dax206r") + (new 'static 'speech-info-item :name "dax207r") + (new 'static 'speech-info-item :name "dax208r") + (new 'static 'speech-info-item :name "dax244r") + (new 'static 'speech-info-item :name "dax412r") + (new 'static 'speech-info-item :name "dax236r") + (new 'static 'speech-info-item :name "dax234r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax174r") + (new 'static 'speech-info-item :name "dax176r") + (new 'static 'speech-info-item :name "dax177r") + (new 'static 'speech-info-item :name "dax179r") + (new 'static 'speech-info-item :name "dax180r") + (new 'static 'speech-info-item :name "dax181r") + (new 'static 'speech-info-item :name "dax182r") + (new 'static 'speech-info-item :name "dax183r") + (new 'static 'speech-info-item :name "dax185r") + (new 'static 'speech-info-item :name "dax186r") + (new 'static 'speech-info-item :name "dax187r") + (new 'static 'speech-info-item :name "dax188r") + (new 'static 'speech-info-item :name "dax189r") + (new 'static 'speech-info-item :name "dax191r") + (new 'static 'speech-info-item :name "dax192r") + (new 'static 'speech-info-item :name "dax193r") + (new 'static 'speech-info-item :name "dax195r") + (new 'static 'speech-info-item :name "dax196r") + (new 'static 'speech-info-item :name "dax197r") + (new 'static 'speech-info-item :name "dax199r") + (new 'static 'speech-info-item :name "dax200r") + (new 'static 'speech-info-item :name "dax201r") + (new 'static 'speech-info-item :name "dax202r") + (new 'static 'speech-info-item :name "dax203r") + (new 'static 'speech-info-item :name "dax204r") + (new 'static 'speech-info-item :name "dax206r") + (new 'static 'speech-info-item :name "dax207r") + (new 'static 'speech-info-item :name "dax208r") + (new 'static 'speech-info-item :name "dax412r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax115r") + (new 'static 'speech-info-item :name "dax119r") + (new 'static 'speech-info-item :name "dax120r") + (new 'static 'speech-info-item :name "dax122r") + (new 'static 'speech-info-item :name "dax126r") + (new 'static 'speech-info-item :name "dax368r") + (new 'static 'speech-info-item :name "dax369r") + (new 'static 'speech-info-item :name "dax370r") + (new 'static 'speech-info-item :name "dax371r") + (new 'static 'speech-info-item :name "dax372r") + (new 'static 'speech-info-item :name "dax373r") + (new 'static 'speech-info-item :name "dax374r") + (new 'static 'speech-info-item :name "dax375r") + (new 'static 'speech-info-item :name "dax376r") + (new 'static 'speech-info-item :name "dax377r") + (new 'static 'speech-info-item :name "dax378r") + (new 'static 'speech-info-item :name "dax379r") + (new 'static 'speech-info-item :name "dax380r") + (new 'static 'speech-info-item :name "dax381r") + (new 'static 'speech-info-item :name "dax382r") + (new 'static 'speech-info-item :name "dax383r") + (new 'static 'speech-info-item :name "dax384r") + (new 'static 'speech-info-item :name "dax385r") + (new 'static 'speech-info-item :name "dax386r") + (new 'static 'speech-info-item :name "dax387r") + (new 'static 'speech-info-item :name "dax388r") + (new 'static 'speech-info-item :name "dax235r") + (new 'static 'speech-info-item :name "dax424r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax115r") + (new 'static 'speech-info-item :name "dax119r") + (new 'static 'speech-info-item :name "dax120r") + (new 'static 'speech-info-item :name "dax122r") + (new 'static 'speech-info-item :name "dax126r") + (new 'static 'speech-info-item :name "dax368r") + (new 'static 'speech-info-item :name "dax369r") + (new 'static 'speech-info-item :name "dax370r") + (new 'static 'speech-info-item :name "dax371r") + (new 'static 'speech-info-item :name "dax372r") + (new 'static 'speech-info-item :name "dax373r") + (new 'static 'speech-info-item :name "dax374r") + (new 'static 'speech-info-item :name "dax375r") + (new 'static 'speech-info-item :name "dax376r") + (new 'static 'speech-info-item :name "dax377r") + (new 'static 'speech-info-item :name "dax378r") + (new 'static 'speech-info-item :name "dax379r") + (new 'static 'speech-info-item :name "dax380r") + (new 'static 'speech-info-item :name "dax381r") + (new 'static 'speech-info-item :name "dax382r") + (new 'static 'speech-info-item :name "dax383r") + (new 'static 'speech-info-item :name "dax384r") + (new 'static 'speech-info-item :name "dax385r") + (new 'static 'speech-info-item :name "dax386r") + (new 'static 'speech-info-item :name "dax387r") + (new 'static 'speech-info-item :name "dax388r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax105r") + (new 'static 'speech-info-item :name "dax389r") + (new 'static 'speech-info-item :name "dax390r") + (new 'static 'speech-info-item :name "dax391r") + (new 'static 'speech-info-item :name "dax392r") + (new 'static 'speech-info-item :name "dax393r") + (new 'static 'speech-info-item :name "dax394r") + (new 'static 'speech-info-item :name "dax395r") + (new 'static 'speech-info-item :name "dax396r") + (new 'static 'speech-info-item :name "dax397r") + (new 'static 'speech-info-item :name "dax398r") + (new 'static 'speech-info-item :name "dax399r") + (new 'static 'speech-info-item :name "dax400r") + (new 'static 'speech-info-item :name "dax401r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax105r") + (new 'static 'speech-info-item :name "dax389r") + (new 'static 'speech-info-item :name "dax390r") + (new 'static 'speech-info-item :name "dax391r") + (new 'static 'speech-info-item :name "dax392r") + (new 'static 'speech-info-item :name "dax393r") + (new 'static 'speech-info-item :name "dax394r") + (new 'static 'speech-info-item :name "dax395r") + (new 'static 'speech-info-item :name "dax396r") + (new 'static 'speech-info-item :name "dax397r") + (new 'static 'speech-info-item :name "dax398r") + (new 'static 'speech-info-item :name "dax399r") + (new 'static 'speech-info-item :name "dax400r") + (new 'static 'speech-info-item :name "dax401r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax140r") + (new 'static 'speech-info-item :name "dax141r") + (new 'static 'speech-info-item :name "dax151r") + (new 'static 'speech-info-item :name "dax152r") + (new 'static 'speech-info-item :name "dax134r") + (new 'static 'speech-info-item :name "dax163r") + (new 'static 'speech-info-item :name "dax209r") + (new 'static 'speech-info-item :name "dax210r") + (new 'static 'speech-info-item :name "dax211r") + (new 'static 'speech-info-item :name "dax212r") + (new 'static 'speech-info-item :name "dax213r") + (new 'static 'speech-info-item :name "dax214r") + (new 'static 'speech-info-item :name "dax215r") + (new 'static 'speech-info-item :name "dax216r") + (new 'static 'speech-info-item :name "dax217r") + (new 'static 'speech-info-item :name "dax218r") + (new 'static 'speech-info-item :name "dax219r") + (new 'static 'speech-info-item :name "dax220r") + (new 'static 'speech-info-item :name "dax221r") + (new 'static 'speech-info-item :name "dax222r") + (new 'static 'speech-info-item :name "dax228r") + (new 'static 'speech-info-item :name "dax242r") + (new 'static 'speech-info-item :name "dax243r") + (new 'static 'speech-info-item :name "dax245r") + (new 'static 'speech-info-item :name "dax415r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax226r") + (new 'static 'speech-info-item :name "dax229r") + (new 'static 'speech-info-item :name "dax230r") + (new 'static 'speech-info-item :name "dax231r") + (new 'static 'speech-info-item :name "dax232r") + (new 'static 'speech-info-item :name "dax233r") + (new 'static 'speech-info-item :name "dax237r") + (new 'static 'speech-info-item :name "dax238r") + (new 'static 'speech-info-item :name "dax239r") + (new 'static 'speech-info-item :name "dax240r") + (new 'static 'speech-info-item :name "dax241r") + (new 'static 'speech-info-item :name "dax246r") + (new 'static 'speech-info-item :name "dax248r") + (new 'static 'speech-info-item :name "dax249r") + (new 'static 'speech-info-item :name "dax250r") + (new 'static 'speech-info-item :name "dax251r") + (new 'static 'speech-info-item :name "dax252r") + (new 'static 'speech-info-item :name "dax253r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax258r") + (new 'static 'speech-info-item :name "dax259r") + (new 'static 'speech-info-item :name "dax260r") + (new 'static 'speech-info-item :name "dax261r") + (new 'static 'speech-info-item :name "dax262r") + (new 'static 'speech-info-item :name "dax263r") + (new 'static 'speech-info-item :name "dax264r") + (new 'static 'speech-info-item :name "dax265r") + (new 'static 'speech-info-item :name "dax266r") + (new 'static 'speech-info-item :name "dax267r") + (new 'static 'speech-info-item :name "dax268r") + (new 'static 'speech-info-item :name "dax269r") + (new 'static 'speech-info-item :name "dax270r") + (new 'static 'speech-info-item :name "dax271r") + (new 'static 'speech-info-item :name "dax272r") + (new 'static 'speech-info-item :name "dax273r") + (new 'static 'speech-info-item :name "dax274r") + (new 'static 'speech-info-item :name "dax275r") + (new 'static 'speech-info-item :name "dax276r") + (new 'static 'speech-info-item :name "dax277r") + (new 'static 'speech-info-item :name "dax278r") + (new 'static 'speech-info-item :name "dax279r") + (new 'static 'speech-info-item :name "dax280r") + (new 'static 'speech-info-item :name "dax281r") + (new 'static 'speech-info-item :name "dax282r") + (new 'static 'speech-info-item :name "dax283r") + (new 'static 'speech-info-item :name "dax284r") + (new 'static 'speech-info-item :name "dax285r") + (new 'static 'speech-info-item :name "dax286r") + (new 'static 'speech-info-item :name "dax287r") + (new 'static 'speech-info-item :name "dax288r") + (new 'static 'speech-info-item :name "dax289r") + (new 'static 'speech-info-item :name "dax290r") + (new 'static 'speech-info-item :name "dax336r") + (new 'static 'speech-info-item :name "dax337r") + (new 'static 'speech-info-item :name "dax338r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax291r") + (new 'static 'speech-info-item :name "dax292r") + (new 'static 'speech-info-item :name "dax293r") + (new 'static 'speech-info-item :name "dax294r") + (new 'static 'speech-info-item :name "dax295r") + (new 'static 'speech-info-item :name "dax296r") + (new 'static 'speech-info-item :name "dax297r") + (new 'static 'speech-info-item :name "dax298r") + (new 'static 'speech-info-item :name "dax299r") + (new 'static 'speech-info-item :name "dax300r") + (new 'static 'speech-info-item :name "dax301r") + (new 'static 'speech-info-item :name "dax302r") + (new 'static 'speech-info-item :name "dax303r") + (new 'static 'speech-info-item :name "dax304r") + (new 'static 'speech-info-item :name "dax305r") + (new 'static 'speech-info-item :name "dax306r") + (new 'static 'speech-info-item :name "dax307r") + (new 'static 'speech-info-item :name "dax308r") + (new 'static 'speech-info-item :name "dax309r") + (new 'static 'speech-info-item :name "dax310r") + (new 'static 'speech-info-item :name "dax311r") + (new 'static 'speech-info-item :name "dax312r") + (new 'static 'speech-info-item :name "dax313r") + (new 'static 'speech-info-item :name "dax314r") + (new 'static 'speech-info-item :name "dax315r") + (new 'static 'speech-info-item :name "dax316r") + (new 'static 'speech-info-item :name "dax317r") + (new 'static 'speech-info-item :name "dax318r") + (new 'static 'speech-info-item :name "dax319r") + (new 'static 'speech-info-item :name "dax320r") + (new 'static 'speech-info-item :name "dax247r") + (new 'static 'speech-info-item :name "dax257r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax101r") + (new 'static 'speech-info-item :name "dax102r") + (new 'static 'speech-info-item :name "dax103r") + (new 'static 'speech-info-item :name "dax104r") + (new 'static 'speech-info-item :name "dax321r") + (new 'static 'speech-info-item :name "dax322r") + (new 'static 'speech-info-item :name "dax323r") + (new 'static 'speech-info-item :name "dax324r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "dax357r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax358r") + (new 'static 'speech-info-item :name "dax359r") + (new 'static 'speech-info-item :name "dax360r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax361r") + (new 'static 'speech-info-item :name "dax362r") + (new 'static 'speech-info-item :name "dax363r") + (new 'static 'speech-info-item :name "dax364r") + (new 'static 'speech-info-item :name "dax365r") + (new 'static 'speech-info-item :name "dax366r") + (new 'static 'speech-info-item :name "dax367r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax255r") + (new 'static 'speech-info-item :name "dax325r") + (new 'static 'speech-info-item :name "dax326r") + (new 'static 'speech-info-item :name "dax327r") + (new 'static 'speech-info-item :name "dax331r") + (new 'static 'speech-info-item :name "dax333r") + (new 'static 'speech-info-item :name "dax334r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax429r") + (new 'static 'speech-info-item :name "dax430r") + (new 'static 'speech-info-item :name "dax431r") + (new 'static 'speech-info-item :name "dax432r") + (new 'static 'speech-info-item :name "dax433r") + (new 'static 'speech-info-item :name "dax434r") + (new 'static 'speech-info-item :name "dax435r") + (new 'static 'speech-info-item :name "dax436r") + (new 'static 'speech-info-item :name "dax227r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 2 speeches 21) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "dax349r") + (new 'static 'speech-info-item :name "dax350r") + ) + :flags (speech-info-flag si0) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-gtblitz_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-gtblitz_REF.gc new file mode 100644 index 0000000000..6216f49643 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-gtblitz_REF.gc @@ -0,0 +1,730 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb108r") + (new 'static 'speech-info-item :name "gtb109r") + (new 'static 'speech-info-item :name "gtb119r") + (new 'static 'speech-info-item :name "gtb120r") + (new 'static 'speech-info-item :name "gtb127r") + (new 'static 'speech-info-item :name "gtb128r") + (new 'static 'speech-info-item :name "gtb132r") + (new 'static 'speech-info-item :name "gtb133r") + (new 'static 'speech-info-item :name "gtb134r") + (new 'static 'speech-info-item :name "gtb135r") + (new 'static 'speech-info-item :name "gtb139r") + (new 'static 'speech-info-item :name "gtb141r") + (new 'static 'speech-info-item :name "gtb143r") + (new 'static 'speech-info-item :name "gtb146r") + (new 'static 'speech-info-item :name "gtb155r") + (new 'static 'speech-info-item :name "gtb158r") + (new 'static 'speech-info-item :name "gtb159r") + (new 'static 'speech-info-item :name "gtb161r") + (new 'static 'speech-info-item :name "gtb180r") + (new 'static 'speech-info-item :name "gtb181r") + (new 'static 'speech-info-item :name "gtb182r") + (new 'static 'speech-info-item :name "gtb183r") + (new 'static 'speech-info-item :name "gtb184r") + (new 'static 'speech-info-item :name "gtb186r") + (new 'static 'speech-info-item :name "gtb187r") + (new 'static 'speech-info-item :name "gtb191r") + (new 'static 'speech-info-item :name "gtb192r") + (new 'static 'speech-info-item :name "gtb193r") + (new 'static 'speech-info-item :name "gtb194r") + (new 'static 'speech-info-item :name "gtb195r") + (new 'static 'speech-info-item :name "gtb196r") + (new 'static 'speech-info-item :name "gtb197r") + (new 'static 'speech-info-item :name "gtb198r") + (new 'static 'speech-info-item :name "gtb199r") + (new 'static 'speech-info-item :name "gtb200r") + (new 'static 'speech-info-item :name "gtb201r") + (new 'static 'speech-info-item :name "gtb202r") + (new 'static 'speech-info-item :name "gtb203r") + (new 'static 'speech-info-item :name "gtb204r") + (new 'static 'speech-info-item :name "gtb205r") + (new 'static 'speech-info-item :name "gtb206r") + (new 'static 'speech-info-item :name "gtb207r") + (new 'static 'speech-info-item :name "gtb214r") + (new 'static 'speech-info-item :name "gtb215r") + (new 'static 'speech-info-item :name "gtb218r") + (new 'static 'speech-info-item :name "gtb219r") + (new 'static 'speech-info-item :name "gtb223r") + (new 'static 'speech-info-item :name "gtb224r") + (new 'static 'speech-info-item :name "gtb225r") + (new 'static 'speech-info-item :name "gtb226r") + (new 'static 'speech-info-item :name "gtb227r") + (new 'static 'speech-info-item :name "gtb228r") + (new 'static 'speech-info-item :name "gtb229r") + (new 'static 'speech-info-item :name "gtb230r") + (new 'static 'speech-info-item :name "gtb231r") + (new 'static 'speech-info-item :name "gtb235r") + (new 'static 'speech-info-item :name "gtb236r") + (new 'static 'speech-info-item :name "gtb238r") + (new 'static 'speech-info-item :name "gtb240r") + (new 'static 'speech-info-item :name "gtb241r") + (new 'static 'speech-info-item :name "gtb242r") + (new 'static 'speech-info-item :name "gtb243r") + (new 'static 'speech-info-item :name "gtb244r") + (new 'static 'speech-info-item :name "gtb245r") + (new 'static 'speech-info-item :name "gtb246r") + (new 'static 'speech-info-item :name "gtb247r") + (new 'static 'speech-info-item :name "gtb252r") + (new 'static 'speech-info-item :name "gtb255r") + (new 'static 'speech-info-item :name "gtb257r") + (new 'static 'speech-info-item :name "gtb260r") + (new 'static 'speech-info-item :name "gtb261r") + (new 'static 'speech-info-item :name "gtb265r") + (new 'static 'speech-info-item :name "gtb266r") + (new 'static 'speech-info-item :name "gtb268r") + (new 'static 'speech-info-item :name "gtb270r") + (new 'static 'speech-info-item :name "gtb271r") + (new 'static 'speech-info-item :name "gtb322r") + (new 'static 'speech-info-item :name "gtb332r") + (new 'static 'speech-info-item :name "gtb333r") + (new 'static 'speech-info-item :name "gtb354r") + (new 'static 'speech-info-item :name "gtb369r") + (new 'static 'speech-info-item :name "gtb373r") + (new 'static 'speech-info-item :name "gtb374r") + (new 'static 'speech-info-item :name "gtb375r") + (new 'static 'speech-info-item :name "gtb377r") + (new 'static 'speech-info-item :name "gtb378r") + (new 'static 'speech-info-item :name "gtb379r") + (new 'static 'speech-info-item :name "gtb380r") + (new 'static 'speech-info-item :name "gtb381r") + (new 'static 'speech-info-item :name "gtb382r") + (new 'static 'speech-info-item :name "gtb384r") + (new 'static 'speech-info-item :name "gtb474r") + (new 'static 'speech-info-item :name "gtb475r") + (new 'static 'speech-info-item :name "gtb478r") + (new 'static 'speech-info-item :name "gtb479r") + (new 'static 'speech-info-item :name "gtb480r") + (new 'static 'speech-info-item :name "gtb481r") + (new 'static 'speech-info-item :name "gtb497r") + (new 'static 'speech-info-item :name "gtb483r") + (new 'static 'speech-info-item :name "gtb484r") + (new 'static 'speech-info-item :name "gtb485r") + (new 'static 'speech-info-item :name "gtb486r") + (new 'static 'speech-info-item :name "gtb487r") + (new 'static 'speech-info-item :name "gtb488r") + (new 'static 'speech-info-item :name "gtb489r") + (new 'static 'speech-info-item :name "gtb490r") + (new 'static 'speech-info-item :name "gtb491r") + (new 'static 'speech-info-item :name "gtb492r") + (new 'static 'speech-info-item :name "gtb493r") + (new 'static 'speech-info-item :name "gtb495r") + (new 'static 'speech-info-item :name "gtb496r") + (new 'static 'speech-info-item :name "gtb498r") + (new 'static 'speech-info-item :name "gtb499r") + (new 'static 'speech-info-item :name "gtb553r") + (new 'static 'speech-info-item :name "gtb554r") + (new 'static 'speech-info-item :name "gtb555r") + (new 'static 'speech-info-item :name "gtb557r") + (new 'static 'speech-info-item :name "gtb558r") + (new 'static 'speech-info-item :name "gtb559r") + (new 'static 'speech-info-item :name "gtb560r") + (new 'static 'speech-info-item :name "gtb561r") + (new 'static 'speech-info-item :name "gtb562r") + (new 'static 'speech-info-item :name "gtb563r") + (new 'static 'speech-info-item :name "gtb564r") + (new 'static 'speech-info-item :name "gtb566r") + (new 'static 'speech-info-item :name "gtb567r") + (new 'static 'speech-info-item :name "gtb569r") + (new 'static 'speech-info-item :name "gtb570r") + (new 'static 'speech-info-item :name "gtb571r") + (new 'static 'speech-info-item :name "gtb572r") + (new 'static 'speech-info-item :name "gtb573r") + (new 'static 'speech-info-item :name "gtb575r") + (new 'static 'speech-info-item :name "gtb157") + (new 'static 'speech-info-item :name "gtb175") + (new 'static 'speech-info-item :name "gtb176") + (new 'static 'speech-info-item :name "gtb465r") + (new 'static 'speech-info-item :name "gtb466r") + (new 'static 'speech-info-item :name "gtb467r") + (new 'static 'speech-info-item :name "gtb470r") + (new 'static 'speech-info-item :name "gtb471r") + (new 'static 'speech-info-item :name "gtb472r") + (new 'static 'speech-info-item :name "gtb473r") + (new 'static 'speech-info-item :name "gtb190") + (new 'static 'speech-info-item :name "gtb188") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 17) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb101") + (new 'static 'speech-info-item :name "gtb102") + (new 'static 'speech-info-item :name "gtb103") + (new 'static 'speech-info-item :name "gtb104") + (new 'static 'speech-info-item :name "gtb105") + (new 'static 'speech-info-item :name "gtb106") + (new 'static 'speech-info-item :name "gtb107") + (new 'static 'speech-info-item :name "gtb110") + (new 'static 'speech-info-item :name "gtb111") + (new 'static 'speech-info-item :name "gtb112") + (new 'static 'speech-info-item :name "gtb113") + (new 'static 'speech-info-item :name "gtb114") + (new 'static 'speech-info-item :name "gtb115") + (new 'static 'speech-info-item :name "gtb117") + (new 'static 'speech-info-item :name "gtb118") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 18) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb116") + (new 'static 'speech-info-item :name "gtb122") + (new 'static 'speech-info-item :name "gtb121") + (new 'static 'speech-info-item :name "gtb123") + (new 'static 'speech-info-item :name "gtb124") + (new 'static 'speech-info-item :name "gtb125") + (new 'static 'speech-info-item :name "gtb126") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 19) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb248") + (new 'static 'speech-info-item :name "gtb249") + (new 'static 'speech-info-item :name "gtb250") + (new 'static 'speech-info-item :name "gtb251") + (new 'static 'speech-info-item :name "gtb253") + (new 'static 'speech-info-item :name "gtb254") + (new 'static 'speech-info-item :name "gtb256") + (new 'static 'speech-info-item :name "gtb258") + (new 'static 'speech-info-item :name "gtb259") + (new 'static 'speech-info-item :name "gtb262") + (new 'static 'speech-info-item :name "gtb263") + (new 'static 'speech-info-item :name "gtb264") + (new 'static 'speech-info-item :name "gtb269") + (new 'static 'speech-info-item :name "gtb267") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 20) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb137") + (new 'static 'speech-info-item :name "gtb138") + (new 'static 'speech-info-item :name "gtb140") + (new 'static 'speech-info-item :name "gtb142") + (new 'static 'speech-info-item :name "gtb144") + (new 'static 'speech-info-item :name "gtb148") + (new 'static 'speech-info-item :name "gtb151") + (new 'static 'speech-info-item :name "gtb152") + (new 'static 'speech-info-item :name "gtb153") + (new 'static 'speech-info-item :name "gtb154") + (new 'static 'speech-info-item :name "gtb160") + (new 'static 'speech-info-item :name "gtb162") + (new 'static 'speech-info-item :name "gtb163") + (new 'static 'speech-info-item :name "gtb164") + (new 'static 'speech-info-item :name "gtb165") + (new 'static 'speech-info-item :name "gtb166") + (new 'static 'speech-info-item :name "gtb167") + (new 'static 'speech-info-item :name "gtb168") + (new 'static 'speech-info-item :name "gtb169") + (new 'static 'speech-info-item :name "gtb170") + (new 'static 'speech-info-item :name "gtb172") + (new 'static 'speech-info-item :name "gtb177") + (new 'static 'speech-info-item :name "gtb178") + (new 'static 'speech-info-item :name "gtb179") + (new 'static 'speech-info-item :name "gtb185") + (new 'static 'speech-info-item :name "gtb189") + (new 'static 'speech-info-item :name "gtb208") + (new 'static 'speech-info-item :name "gtb209") + (new 'static 'speech-info-item :name "gtb210") + (new 'static 'speech-info-item :name "gtb212") + (new 'static 'speech-info-item :name "gtb217") + (new 'static 'speech-info-item :name "gtb220") + (new 'static 'speech-info-item :name "gtb221") + (new 'static 'speech-info-item :name "gtb232") + (new 'static 'speech-info-item :name "gtb233") + (new 'static 'speech-info-item :name "gtb234") + (new 'static 'speech-info-item :name "gtb237") + (new 'static 'speech-info-item :name "gtb239") + (new 'static 'speech-info-item :name "gtb129") + (new 'static 'speech-info-item :name "gtb130") + (new 'static 'speech-info-item :name "gtb131") + (new 'static 'speech-info-item :name "gtb136") + (new 'static 'speech-info-item :name "gtb145") + (new 'static 'speech-info-item :name "gtb147") + (new 'static 'speech-info-item :name "gtb156" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb171" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb173" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb150" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb149" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb216" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb174" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb222") + (new 'static 'speech-info-item :name "gtb211" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "gtb213" :flags (speech-info-flag si1)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb272r") + (new 'static 'speech-info-item :name "gtb273r") + (new 'static 'speech-info-item :name "gtb274r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb275r") + (new 'static 'speech-info-item :name "gtb276r") + (new 'static 'speech-info-item :name "gtb277r") + (new 'static 'speech-info-item :name "gtb278r") + (new 'static 'speech-info-item :name "gtb279r") + (new 'static 'speech-info-item :name "gtb280r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb281r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb282r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb283r") + (new 'static 'speech-info-item :name "gtb284r") + (new 'static 'speech-info-item :name "gtb285r") + (new 'static 'speech-info-item :name "gtb286r") + (new 'static 'speech-info-item :name "gtb287r") + (new 'static 'speech-info-item :name "gtb288r") + (new 'static 'speech-info-item :name "gtb289r") + (new 'static 'speech-info-item :name "gtb290r") + (new 'static 'speech-info-item :name "gtb291r") + (new 'static 'speech-info-item :name "gtb292r") + (new 'static 'speech-info-item :name "gtb293r") + (new 'static 'speech-info-item :name "gtb294r") + (new 'static 'speech-info-item :name "gtb295r") + (new 'static 'speech-info-item :name "gtb296r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb297r") + (new 'static 'speech-info-item :name "gtb298r") + (new 'static 'speech-info-item :name "gtb299r") + (new 'static 'speech-info-item :name "gtb300r") + (new 'static 'speech-info-item :name "gtb301r") + (new 'static 'speech-info-item :name "gtb302r") + (new 'static 'speech-info-item :name "gtb303r") + (new 'static 'speech-info-item :name "gtb304r") + (new 'static 'speech-info-item :name "gtb305r") + (new 'static 'speech-info-item :name "gtb306r") + (new 'static 'speech-info-item :name "gtb307r") + (new 'static 'speech-info-item :name "gtb308r") + (new 'static 'speech-info-item :name "gtb309r") + (new 'static 'speech-info-item :name "gtb310r") + (new 'static 'speech-info-item :name "gtb311r") + (new 'static 'speech-info-item :name "gtb312r") + (new 'static 'speech-info-item :name "gtb313r") + (new 'static 'speech-info-item :name "gtb314r") + (new 'static 'speech-info-item :name "gtb315r") + (new 'static 'speech-info-item :name "gtb316r") + (new 'static 'speech-info-item :name "gtb317r") + (new 'static 'speech-info-item :name "gtb368r") + (new 'static 'speech-info-item :name "gtb370r") + (new 'static 'speech-info-item :name "gtb371r") + (new 'static 'speech-info-item :name "gtb372r") + (new 'static 'speech-info-item :name "gtb385r") + (new 'static 'speech-info-item :name "gtb383r") + (new 'static 'speech-info-item :name "gtb565r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb272r") + (new 'static 'speech-info-item :name "gtb273r") + (new 'static 'speech-info-item :name "gtb274r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb276r") + (new 'static 'speech-info-item :name "gtb277r") + (new 'static 'speech-info-item :name "gtb278r") + (new 'static 'speech-info-item :name "gtb279r") + (new 'static 'speech-info-item :name "gtb280r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb281r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb282r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb283r") + (new 'static 'speech-info-item :name "gtb284r") + (new 'static 'speech-info-item :name "gtb285r") + (new 'static 'speech-info-item :name "gtb286r") + (new 'static 'speech-info-item :name "gtb287r") + (new 'static 'speech-info-item :name "gtb288r") + (new 'static 'speech-info-item :name "gtb289r") + (new 'static 'speech-info-item :name "gtb290r") + (new 'static 'speech-info-item :name "gtb291r") + (new 'static 'speech-info-item :name "gtb293r") + (new 'static 'speech-info-item :name "gtb294r") + (new 'static 'speech-info-item :name "gtb295r") + (new 'static 'speech-info-item :name "gtb296r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb297r") + (new 'static 'speech-info-item :name "gtb299r") + (new 'static 'speech-info-item :name "gtb300r") + (new 'static 'speech-info-item :name "gtb302r") + (new 'static 'speech-info-item :name "gtb303r") + (new 'static 'speech-info-item :name "gtb304r") + (new 'static 'speech-info-item :name "gtb306r") + (new 'static 'speech-info-item :name "gtb307r") + (new 'static 'speech-info-item :name "gtb308r") + (new 'static 'speech-info-item :name "gtb309r") + (new 'static 'speech-info-item :name "gtb310r") + (new 'static 'speech-info-item :name "gtb311r") + (new 'static 'speech-info-item :name "gtb312r") + (new 'static 'speech-info-item :name "gtb313r") + (new 'static 'speech-info-item :name "gtb314r") + (new 'static 'speech-info-item :name "gtb316r") + (new 'static 'speech-info-item :name "gtb317r") + (new 'static 'speech-info-item :name "gtb565r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb318r") + (new 'static 'speech-info-item :name "gtb319r") + (new 'static 'speech-info-item :name "gtb320r") + (new 'static 'speech-info-item :name "gtb321r") + (new 'static 'speech-info-item :name "gtb323r") + (new 'static 'speech-info-item :name "gtb324r") + (new 'static 'speech-info-item :name "gtb325r") + (new 'static 'speech-info-item :name "gtb326r") + (new 'static 'speech-info-item :name "gtb327r") + (new 'static 'speech-info-item :name "gtb328r") + (new 'static 'speech-info-item :name "gtb329r") + (new 'static 'speech-info-item :name "gtb330r") + (new 'static 'speech-info-item :name "gtb331r") + (new 'static 'speech-info-item :name "gtb334r") + (new 'static 'speech-info-item :name "gtb364r") + (new 'static 'speech-info-item :name "gtb482r") + (new 'static 'speech-info-item :name "gtb568r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb335r") + (new 'static 'speech-info-item :name "gtb336r") + (new 'static 'speech-info-item :name "gtb337r") + (new 'static 'speech-info-item :name "gtb338r") + (new 'static 'speech-info-item :name "gtb339r") + (new 'static 'speech-info-item :name "gtb340r") + (new 'static 'speech-info-item :name "gtb341r") + (new 'static 'speech-info-item :name "gtb342r") + (new 'static 'speech-info-item :name "gtb343r") + (new 'static 'speech-info-item :name "gtb344r") + (new 'static 'speech-info-item :name "gtb345r") + (new 'static 'speech-info-item :name "gtb346r") + (new 'static 'speech-info-item :name "gtb347r") + (new 'static 'speech-info-item :name "gtb348r") + (new 'static 'speech-info-item :name "gtb349r") + (new 'static 'speech-info-item :name "gtb350r") + (new 'static 'speech-info-item :name "gtb351r") + (new 'static 'speech-info-item :name "gtb352r") + (new 'static 'speech-info-item :name "gtb353r") + (new 'static 'speech-info-item :name "gtb355r") + (new 'static 'speech-info-item :name "gtb356r") + (new 'static 'speech-info-item :name "gtb357r") + (new 'static 'speech-info-item :name "gtb358r") + (new 'static 'speech-info-item :name "gtb359r") + (new 'static 'speech-info-item :name "gtb360r") + (new 'static 'speech-info-item :name "gtb361r") + (new 'static 'speech-info-item :name "gtb362r") + (new 'static 'speech-info-item :name "gtb363r") + (new 'static 'speech-info-item :name "gtb365r") + (new 'static 'speech-info-item :name "gtb366r") + (new 'static 'speech-info-item :name "gtb367r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb386r") + (new 'static 'speech-info-item :name "gtb387r") + (new 'static 'speech-info-item :name "gtb388r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb389r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb390r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb391r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb392r") + (new 'static 'speech-info-item :name "gtb393r") + (new 'static 'speech-info-item :name "gtb394r") + (new 'static 'speech-info-item :name "gtb395r") + (new 'static 'speech-info-item :name "gtb396r") + (new 'static 'speech-info-item :name "gtb397r") + (new 'static 'speech-info-item :name "gtb398r") + (new 'static 'speech-info-item :name "gtb399r") + (new 'static 'speech-info-item :name "gtb400r") + (new 'static 'speech-info-item :name "gtb401r") + (new 'static 'speech-info-item :name "gtb402r") + (new 'static 'speech-info-item :name "gtb403r") + (new 'static 'speech-info-item :name "gtb404r") + (new 'static 'speech-info-item :name "gtb405r") + (new 'static 'speech-info-item :name "gtb406r") + (new 'static 'speech-info-item :name "gtb407r") + (new 'static 'speech-info-item :name "gtb408r") + (new 'static 'speech-info-item :name "gtb409r") + (new 'static 'speech-info-item :name "gtb410r") + (new 'static 'speech-info-item :name "gtb411r") + (new 'static 'speech-info-item :name "gtb412r") + (new 'static 'speech-info-item :name "gtb413r") + (new 'static 'speech-info-item :name "gtb414r") + (new 'static 'speech-info-item :name "gtb415r") + (new 'static 'speech-info-item :name "gtb416r") + (new 'static 'speech-info-item :name "gtb417r") + (new 'static 'speech-info-item :name "gtb418r") + (new 'static 'speech-info-item :name "gtb419r") + (new 'static 'speech-info-item :name "gtb420r") + (new 'static 'speech-info-item :name "gtb421r") + (new 'static 'speech-info-item :name "gtb422r") + (new 'static 'speech-info-item :name "gtb423r") + (new 'static 'speech-info-item :name "gtb424r") + (new 'static 'speech-info-item :name "gtb425r") + (new 'static 'speech-info-item :name "gtb426r") + (new 'static 'speech-info-item :name "gtb427r") + (new 'static 'speech-info-item :name "gtb428r") + (new 'static 'speech-info-item :name "gtb429r") + (new 'static 'speech-info-item :name "gtb430r") + (new 'static 'speech-info-item :name "gtb431r") + (new 'static 'speech-info-item :name "gtb432r") + (new 'static 'speech-info-item :name "gtb556r") + (new 'static 'speech-info-item :name "gtb574r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb433r") + (new 'static 'speech-info-item :name "gtb434r") + (new 'static 'speech-info-item :name "gtb435r") + (new 'static 'speech-info-item :name "gtb436r") + (new 'static 'speech-info-item :name "gtb437r") + (new 'static 'speech-info-item :name "gtb438r") + (new 'static 'speech-info-item :name "gtb439r") + (new 'static 'speech-info-item :name "gtb440r") + (new 'static 'speech-info-item :name "gtb441r") + (new 'static 'speech-info-item :name "gtb442r") + (new 'static 'speech-info-item :name "gtb443r") + (new 'static 'speech-info-item :name "gtb444r") + (new 'static 'speech-info-item :name "gtb445r") + (new 'static 'speech-info-item :name "gtb446r") + (new 'static 'speech-info-item :name "gtb447r") + (new 'static 'speech-info-item :name "gtb448r") + (new 'static 'speech-info-item :name "gtb449r") + (new 'static 'speech-info-item :name "gtb450r") + (new 'static 'speech-info-item :name "gtb451r") + (new 'static 'speech-info-item :name "gtb452r") + (new 'static 'speech-info-item :name "gtb453r") + (new 'static 'speech-info-item :name "gtb376r") + (new 'static 'speech-info-item :name "gtb476r") + (new 'static 'speech-info-item :name "gtb477r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb454r") + (new 'static 'speech-info-item :name "gtb455r") + (new 'static 'speech-info-item :name "gtb456r") + (new 'static 'speech-info-item :name "gtb457r") + (new 'static 'speech-info-item :name "gtb458r") + (new 'static 'speech-info-item :name "gtb459r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb454r") + (new 'static 'speech-info-item :name "gtb463r") + (new 'static 'speech-info-item :name "gtb464r") + (new 'static 'speech-info-item :name "gtb469r") + (new 'static 'speech-info-item :name "gtb468r") + (new 'static 'speech-info-item :name "gtb460r") + (new 'static 'speech-info-item :name "gtb461r") + (new 'static 'speech-info-item :name "gtb462r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "gtb500r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb501r") + (new 'static 'speech-info-item :name "gtb502r") + (new 'static 'speech-info-item :name "gtb503r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb504r") + (new 'static 'speech-info-item :name "gtb505r") + (new 'static 'speech-info-item :name "gtb506r") + (new 'static 'speech-info-item :name "gtb507r") + (new 'static 'speech-info-item :name "gtb508r") + (new 'static 'speech-info-item :name "gtb509r") + (new 'static 'speech-info-item :name "gtb510r") + (new 'static 'speech-info-item :name "gtb511r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb512r") + (new 'static 'speech-info-item :name "gtb513r") + (new 'static 'speech-info-item :name "gtb514r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb515r") + (new 'static 'speech-info-item :name "gtb516r") + (new 'static 'speech-info-item :name "gtb517r") + (new 'static 'speech-info-item :name "gtb518r") + (new 'static 'speech-info-item :name "gtb519r") + (new 'static 'speech-info-item :name "gtb520r") + (new 'static 'speech-info-item :name "gtb521r") + (new 'static 'speech-info-item :name "gtb522r") + (new 'static 'speech-info-item :name "gtb523r") + (new 'static 'speech-info-item :name "gtb524r") + (new 'static 'speech-info-item :name "gtb525r") + (new 'static 'speech-info-item :name "gtb526r") + (new 'static 'speech-info-item :name "gtb527r") + (new 'static 'speech-info-item :name "gtb528r") + (new 'static 'speech-info-item :name "gtb529r") + (new 'static 'speech-info-item :name "gtb530r") + (new 'static 'speech-info-item :name "gtb531r") + (new 'static 'speech-info-item :name "gtb532r") + (new 'static 'speech-info-item :name "gtb533r") + (new 'static 'speech-info-item :name "gtb534r") + (new 'static 'speech-info-item :name "gtb535r") + (new 'static 'speech-info-item :name "gtb536r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 14) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb512r") + (new 'static 'speech-info-item :name "gtb513r") + (new 'static 'speech-info-item :name "gtb514r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "gtb515r") + (new 'static 'speech-info-item :name "gtb516r") + (new 'static 'speech-info-item :name "gtb517r") + (new 'static 'speech-info-item :name "gtb518r") + (new 'static 'speech-info-item :name "gtb519r") + (new 'static 'speech-info-item :name "gtb520r") + (new 'static 'speech-info-item :name "gtb521r") + (new 'static 'speech-info-item :name "gtb522r") + (new 'static 'speech-info-item :name "gtb523r") + (new 'static 'speech-info-item :name "gtb524r") + (new 'static 'speech-info-item :name "gtb525r") + (new 'static 'speech-info-item :name "gtb526r") + (new 'static 'speech-info-item :name "gtb527r") + (new 'static 'speech-info-item :name "gtb528r") + (new 'static 'speech-info-item :name "gtb529r") + (new 'static 'speech-info-item :name "gtb530r") + (new 'static 'speech-info-item :name "gtb531r") + (new 'static 'speech-info-item :name "gtb532r") + (new 'static 'speech-info-item :name "gtb533r") + (new 'static 'speech-info-item :name "gtb534r") + (new 'static 'speech-info-item :name "gtb535r") + (new 'static 'speech-info-item :name "gtb536r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb537r") + (new 'static 'speech-info-item :name "gtb538r") + (new 'static 'speech-info-item :name "gtb539r") + (new 'static 'speech-info-item :name "gtb540r") + (new 'static 'speech-info-item :name "gtb541r") + (new 'static 'speech-info-item :name "gtb542r") + (new 'static 'speech-info-item :name "gtb543r") + (new 'static 'speech-info-item :name "gtb544r") + (new 'static 'speech-info-item :name "gtb545r") + (new 'static 'speech-info-item :name "gtb546r") + (new 'static 'speech-info-item :name "gtb547r") + (new 'static 'speech-info-item :name "gtb548r") + (new 'static 'speech-info-item :name "gtb549r") + (new 'static 'speech-info-item :name "gtb550r") + (new 'static 'speech-info-item :name "gtb551r") + (new 'static 'speech-info-item :name "gtb552r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb537r") + (new 'static 'speech-info-item :name "gtb538r") + (new 'static 'speech-info-item :name "gtb539r") + (new 'static 'speech-info-item :name "gtb540r") + (new 'static 'speech-info-item :name "gtb541r") + (new 'static 'speech-info-item :name "gtb542r") + (new 'static 'speech-info-item :name "gtb543r") + (new 'static 'speech-info-item :name "gtb544r") + (new 'static 'speech-info-item :name "gtb545r") + (new 'static 'speech-info-item :name "gtb546r") + (new 'static 'speech-info-item :name "gtb547r") + (new 'static 'speech-info-item :name "gtb548r") + (new 'static 'speech-info-item :name "gtb549r") + (new 'static 'speech-info-item :name "gtb550r") + (new 'static 'speech-info-item :name "gtb551r") + (new 'static 'speech-info-item :name "gtb552r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "gtb576r") + (new 'static 'speech-info-item :name "gtb577r") + (new 'static 'speech-info-item :name "gtb578r") + (new 'static 'speech-info-item :name "gtb579r") + (new 'static 'speech-info-item :name "gtb580r") + (new 'static 'speech-info-item :name "gtb581r") + (new 'static 'speech-info-item :name "gtb582r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 6 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "gtb494r")) + :flags (speech-info-flag si0) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-jak_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-jak_REF.gc new file mode 100644 index 0000000000..5390c38033 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-jak_REF.gc @@ -0,0 +1,728 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak117r") + (new 'static 'speech-info-item :name "jak119r") + (new 'static 'speech-info-item :name "jak120r") + (new 'static 'speech-info-item :name "jak121r") + (new 'static 'speech-info-item :name "jak122r") + (new 'static 'speech-info-item :name "jak123r") + (new 'static 'speech-info-item :name "jak124r") + (new 'static 'speech-info-item :name "jak125r") + (new 'static 'speech-info-item :name "jak126r") + (new 'static 'speech-info-item :name "jak127r") + (new 'static 'speech-info-item :name "jak128r") + (new 'static 'speech-info-item :name "jak129r") + (new 'static 'speech-info-item :name "jak130r") + (new 'static 'speech-info-item :name "jak137r") + (new 'static 'speech-info-item :name "jak138r") + (new 'static 'speech-info-item :name "jak139r") + (new 'static 'speech-info-item :name "jak140r") + (new 'static 'speech-info-item :name "jak141r") + (new 'static 'speech-info-item :name "jak143r") + (new 'static 'speech-info-item :name "jak146r") + (new 'static 'speech-info-item :name "jak150r") + (new 'static 'speech-info-item :name "jak151r") + (new 'static 'speech-info-item :name "jak152r") + (new 'static 'speech-info-item :name "jak153r") + (new 'static 'speech-info-item :name "jak154r") + (new 'static 'speech-info-item :name "jak155r") + (new 'static 'speech-info-item :name "jak162r") + (new 'static 'speech-info-item :name "jak167r") + (new 'static 'speech-info-item :name "jak168r") + (new 'static 'speech-info-item :name "jak169r") + (new 'static 'speech-info-item :name "jak170r") + (new 'static 'speech-info-item :name "jak171r") + (new 'static 'speech-info-item :name "jak173r") + (new 'static 'speech-info-item :name "jak174r") + (new 'static 'speech-info-item :name "jak178r") + (new 'static 'speech-info-item :name "jak179r") + (new 'static 'speech-info-item :name "jak180r") + (new 'static 'speech-info-item :name "jak186r") + (new 'static 'speech-info-item :name "jak187r") + (new 'static 'speech-info-item :name "jak188r") + (new 'static 'speech-info-item :name "jak189r") + (new 'static 'speech-info-item :name "jak190r") + (new 'static 'speech-info-item :name "jak191r") + (new 'static 'speech-info-item :name "jak192r") + (new 'static 'speech-info-item :name "jak193r") + (new 'static 'speech-info-item :name "jak194r") + (new 'static 'speech-info-item :name "jak195r") + (new 'static 'speech-info-item :name "jak196r") + (new 'static 'speech-info-item :name "jak197r") + (new 'static 'speech-info-item :name "jak233r") + (new 'static 'speech-info-item :name "jak242r") + (new 'static 'speech-info-item :name "jak254r") + (new 'static 'speech-info-item :name "jak268r") + (new 'static 'speech-info-item :name "jak270r") + (new 'static 'speech-info-item :name "jak341r") + (new 'static 'speech-info-item :name "jak342r") + (new 'static 'speech-info-item :name "jak343r") + (new 'static 'speech-info-item :name "jak344r") + (new 'static 'speech-info-item :name "jak345r") + (new 'static 'speech-info-item :name "jak346r") + (new 'static 'speech-info-item :name "jak347r") + (new 'static 'speech-info-item :name "jak348r") + (new 'static 'speech-info-item :name "jak349r") + (new 'static 'speech-info-item :name "jak350r") + (new 'static 'speech-info-item :name "jak351r") + (new 'static 'speech-info-item :name "jak352r") + (new 'static 'speech-info-item :name "jak353r") + (new 'static 'speech-info-item :name "jak354r") + (new 'static 'speech-info-item :name "jak358r") + (new 'static 'speech-info-item :name "jak359r") + (new 'static 'speech-info-item :name "jak362r") + (new 'static 'speech-info-item :name "jak363r") + (new 'static 'speech-info-item :name "jak365r") + (new 'static 'speech-info-item :name "jak369r") + (new 'static 'speech-info-item :name "jak372r") + (new 'static 'speech-info-item :name "jak425r") + (new 'static 'speech-info-item :name "jak427r") + (new 'static 'speech-info-item :name "jak428r") + (new 'static 'speech-info-item :name "jak434r") + (new 'static 'speech-info-item :name "jak435r") + (new 'static 'speech-info-item :name "jak436r") + (new 'static 'speech-info-item :name "jak437r") + (new 'static 'speech-info-item :name "jak438r") + (new 'static 'speech-info-item :name "jak439r") + (new 'static 'speech-info-item :name "jak440r") + (new 'static 'speech-info-item :name "jak441r") + (new 'static 'speech-info-item :name "jak442r") + (new 'static 'speech-info-item :name "jak443r") + (new 'static 'speech-info-item :name "jak444r") + (new 'static 'speech-info-item :name "jak445r") + (new 'static 'speech-info-item :name "jak446r") + (new 'static 'speech-info-item :name "jak447r") + (new 'static 'speech-info-item :name "jak448r") + (new 'static 'speech-info-item :name "jak389r") + (new 'static 'speech-info-item :name "jak390r") + (new 'static 'speech-info-item :name "jak391r") + (new 'static 'speech-info-item :name "jak392r") + (new 'static 'speech-info-item :name "jak393r") + (new 'static 'speech-info-item :name "jak395r") + (new 'static 'speech-info-item :name "jak400r") + (new 'static 'speech-info-item :name "jak404r") + (new 'static 'speech-info-item :name "jak406r") + (new 'static 'speech-info-item :name "jak108r") + (new 'static 'speech-info-item :name "jak410r") + (new 'static 'speech-info-item :name "jak411r") + (new 'static 'speech-info-item :name "jak417r") + (new 'static 'speech-info-item :name "jak366r") + (new 'static 'speech-info-item :name "jak256r") + (new 'static 'speech-info-item :name "jak419r") + (new 'static 'speech-info-item :name "jak420r") + (new 'static 'speech-info-item :name "jak272r") + (new 'static 'speech-info-item :name "jak275r") + (new 'static 'speech-info-item :name "jak282r") + (new 'static 'speech-info-item :name "jak283r") + (new 'static 'speech-info-item :name "jak288r") + (new 'static 'speech-info-item :name "jak291r") + (new 'static 'speech-info-item :name "jak294r") + (new 'static 'speech-info-item :name "jak298r") + (new 'static 'speech-info-item :name "jak301r") + (new 'static 'speech-info-item :name "jak302r") + (new 'static 'speech-info-item :name "jak303r") + (new 'static 'speech-info-item :name "jak332r") + (new 'static 'speech-info-item :name "jak333r") + (new 'static 'speech-info-item :name "jak334r") + (new 'static 'speech-info-item :name "jak335r") + (new 'static 'speech-info-item :name "jak336r") + (new 'static 'speech-info-item :name "jak337r") + (new 'static 'speech-info-item :name "jak338r") + (new 'static 'speech-info-item :name "jak339r") + (new 'static 'speech-info-item :name "jak340r") + (new 'static 'speech-info-item :name "jak307r") + (new 'static 'speech-info-item :name "jak309r") + (new 'static 'speech-info-item :name "jak310r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak201r") + (new 'static 'speech-info-item :name "jak202r") + (new 'static 'speech-info-item :name "jak203r") + (new 'static 'speech-info-item :name "jak204r") + (new 'static 'speech-info-item :name "jak205r") + (new 'static 'speech-info-item :name "jak206r") + (new 'static 'speech-info-item :name "jak207r") + (new 'static 'speech-info-item :name "jak208r") + (new 'static 'speech-info-item :name "jak209r") + (new 'static 'speech-info-item :name "jak210r") + (new 'static 'speech-info-item :name "jak211r") + (new 'static 'speech-info-item :name "jak212r") + (new 'static 'speech-info-item :name "jak213r") + (new 'static 'speech-info-item :name "jak214r") + (new 'static 'speech-info-item :name "jak215r") + (new 'static 'speech-info-item :name "jak216r") + (new 'static 'speech-info-item :name "jak217r") + (new 'static 'speech-info-item :name "jak218r") + (new 'static 'speech-info-item :name "jak219r") + (new 'static 'speech-info-item :name "jak220r") + (new 'static 'speech-info-item :name "jak221r") + (new 'static 'speech-info-item :name "jak222r") + (new 'static 'speech-info-item :name "jak223r") + (new 'static 'speech-info-item :name "jak224r") + (new 'static 'speech-info-item :name "jak225r") + (new 'static 'speech-info-item :name "jak226r") + (new 'static 'speech-info-item :name "jak227r") + (new 'static 'speech-info-item :name "jak228r") + (new 'static 'speech-info-item :name "jak116r") + (new 'static 'speech-info-item :name "jak156r") + (new 'static 'speech-info-item :name "jak161r") + (new 'static 'speech-info-item :name "jak163r") + (new 'static 'speech-info-item :name "jak432r") + (new 'static 'speech-info-item :name "jak433r") + (new 'static 'speech-info-item :name "jak360r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak385r") + (new 'static 'speech-info-item :name "jak386r") + (new 'static 'speech-info-item :name "jak387r") + (new 'static 'speech-info-item :name "jak388r") + (new 'static 'speech-info-item :name "jak394r") + (new 'static 'speech-info-item :name "jak396r") + (new 'static 'speech-info-item :name "jak397r") + (new 'static 'speech-info-item :name "jak398r") + (new 'static 'speech-info-item :name "jak399r") + (new 'static 'speech-info-item :name "jak401r") + (new 'static 'speech-info-item :name "jak402r") + (new 'static 'speech-info-item :name "jak403r") + (new 'static 'speech-info-item :name "jak405r") + (new 'static 'speech-info-item :name "jak407r") + (new 'static 'speech-info-item :name "jak408r") + (new 'static 'speech-info-item :name "jak109r") + (new 'static 'speech-info-item :name "jak110r") + (new 'static 'speech-info-item :name "jak111r") + (new 'static 'speech-info-item :name "jak112r") + (new 'static 'speech-info-item :name "jak113r") + (new 'static 'speech-info-item :name "jak114r") + (new 'static 'speech-info-item :name "jak115r") + (new 'static 'speech-info-item :name "jak135r") + (new 'static 'speech-info-item :name "jak199r") + (new 'static 'speech-info-item :name "jak200r") + (new 'static 'speech-info-item :name "jak136r") + (new 'static 'speech-info-item :name "dax116r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax117r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax118r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 2) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak409r") + (new 'static 'speech-info-item :name "jak412r") + (new 'static 'speech-info-item :name "jak413r") + (new 'static 'speech-info-item :name "jak414r") + (new 'static 'speech-info-item :name "jak415r") + (new 'static 'speech-info-item :name "jak416r") + (new 'static 'speech-info-item :name "jak418r") + (new 'static 'speech-info-item :name "jak421r") + (new 'static 'speech-info-item :name "dax121r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak385r") + (new 'static 'speech-info-item :name "jak386r") + (new 'static 'speech-info-item :name "jak387r") + (new 'static 'speech-info-item :name "jak396r") + (new 'static 'speech-info-item :name "jak397r") + (new 'static 'speech-info-item :name "jak398r") + (new 'static 'speech-info-item :name "jak399r") + (new 'static 'speech-info-item :name "jak401r") + (new 'static 'speech-info-item :name "jak402r") + (new 'static 'speech-info-item :name "jak403r") + (new 'static 'speech-info-item :name "jak407r") + (new 'static 'speech-info-item :name "jak408r") + (new 'static 'speech-info-item :name "jak109r") + (new 'static 'speech-info-item :name "jak110r") + (new 'static 'speech-info-item :name "jak111r") + (new 'static 'speech-info-item :name "jak112r") + (new 'static 'speech-info-item :name "jak114r") + (new 'static 'speech-info-item :name "jak115r") + (new 'static 'speech-info-item :name "jak135r") + (new 'static 'speech-info-item :name "jak200r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak409r") + (new 'static 'speech-info-item :name "jak412r") + (new 'static 'speech-info-item :name "jak413r") + (new 'static 'speech-info-item :name "jak414r") + (new 'static 'speech-info-item :name "jak415r") + (new 'static 'speech-info-item :name "jak416r") + (new 'static 'speech-info-item :name "jak418r") + (new 'static 'speech-info-item :name "jak421r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak229r") + (new 'static 'speech-info-item :name "jak230r") + (new 'static 'speech-info-item :name "jak231r") + (new 'static 'speech-info-item :name "jak232r") + (new 'static 'speech-info-item :name "jak234r") + (new 'static 'speech-info-item :name "jak235r") + (new 'static 'speech-info-item :name "jak236r") + (new 'static 'speech-info-item :name "jak237r") + (new 'static 'speech-info-item :name "jak238r") + (new 'static 'speech-info-item :name "jak239r") + (new 'static 'speech-info-item :name "jak240r") + (new 'static 'speech-info-item :name "jak241r") + (new 'static 'speech-info-item :name "jak243r") + (new 'static 'speech-info-item :name "jak106r") + (new 'static 'speech-info-item :name "jak132r") + (new 'static 'speech-info-item :name "jak133r") + (new 'static 'speech-info-item :name "jak142r") + (new 'static 'speech-info-item :name "jak175r") + (new 'static 'speech-info-item :name "jak176r") + (new 'static 'speech-info-item :name "jak265r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak244r") + (new 'static 'speech-info-item :name "jak245r") + (new 'static 'speech-info-item :name "jak246r") + (new 'static 'speech-info-item :name "jak247r") + (new 'static 'speech-info-item :name "jak248r") + (new 'static 'speech-info-item :name "jak249r") + (new 'static 'speech-info-item :name "jak250r") + (new 'static 'speech-info-item :name "jak251r") + (new 'static 'speech-info-item :name "jak252r") + (new 'static 'speech-info-item :name "jak253r") + (new 'static 'speech-info-item :name "jak255r") + (new 'static 'speech-info-item :name "jak257r") + (new 'static 'speech-info-item :name "jak258r") + (new 'static 'speech-info-item :name "jak259r") + (new 'static 'speech-info-item :name "jak260r") + (new 'static 'speech-info-item :name "jak261r") + (new 'static 'speech-info-item :name "jak262r") + (new 'static 'speech-info-item :name "jak263r") + (new 'static 'speech-info-item :name "jak264r") + (new 'static 'speech-info-item :name "jak266r") + (new 'static 'speech-info-item :name "jak267r") + (new 'static 'speech-info-item :name "jak320r") + (new 'static 'speech-info-item :name "jak355r") + (new 'static 'speech-info-item :name "jak356r") + (new 'static 'speech-info-item :name "jak357r") + (new 'static 'speech-info-item :name "jak364r") + (new 'static 'speech-info-item :name "jak368r") + (new 'static 'speech-info-item :name "jak370r") + (new 'static 'speech-info-item :name "jak371r") + (new 'static 'speech-info-item :name "jak430r") + (new 'static 'speech-info-item :name "jak431r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "jak373r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak374r") + (new 'static 'speech-info-item :name "jak375r") + (new 'static 'speech-info-item :name "jak376r") + (new 'static 'speech-info-item :name "jak377r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak378r") + (new 'static 'speech-info-item :name "jak379r") + (new 'static 'speech-info-item :name "jak380r") + (new 'static 'speech-info-item :name "jak381r") + (new 'static 'speech-info-item :name "jak382r") + (new 'static 'speech-info-item :name "jak383r") + (new 'static 'speech-info-item :name "jak384r") + (new 'static 'speech-info-item :name "jak182r") + (new 'static 'speech-info-item :name "jak183r") + (new 'static 'speech-info-item :name "jak184r") + (new 'static 'speech-info-item :name "jak185r") + (new 'static 'speech-info-item :name "jak181r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak273r") + (new 'static 'speech-info-item :name "jak274r") + (new 'static 'speech-info-item :name "jak276r") + (new 'static 'speech-info-item :name "jak277r") + (new 'static 'speech-info-item :name "jak278r") + (new 'static 'speech-info-item :name "jak279r") + (new 'static 'speech-info-item :name "jak280r") + (new 'static 'speech-info-item :name "jak281r") + (new 'static 'speech-info-item :name "jak284r") + (new 'static 'speech-info-item :name "jak285r") + (new 'static 'speech-info-item :name "jak286r") + (new 'static 'speech-info-item :name "jak287r") + (new 'static 'speech-info-item :name "jak289r") + (new 'static 'speech-info-item :name "jak290r") + (new 'static 'speech-info-item :name "jak292r") + (new 'static 'speech-info-item :name "jak293r") + (new 'static 'speech-info-item :name "jak295r") + (new 'static 'speech-info-item :name "jak296r") + (new 'static 'speech-info-item :name "jak297r") + (new 'static 'speech-info-item :name "jak299r") + (new 'static 'speech-info-item :name "jak300r") + (new 'static 'speech-info-item :name "jak304r") + (new 'static 'speech-info-item :name "jak131r") + (new 'static 'speech-info-item :name "jak159r") + (new 'static 'speech-info-item :name "jak160r") + (new 'static 'speech-info-item :name "jak166r") + (new 'static 'speech-info-item :name "dax123r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak325r") + (new 'static 'speech-info-item :name "jak326r") + (new 'static 'speech-info-item :name "jak327r") + (new 'static 'speech-info-item :name "jak328r") + (new 'static 'speech-info-item :name "jak329r") + (new 'static 'speech-info-item :name "jak330r") + (new 'static 'speech-info-item :name "jak331r") + (new 'static 'speech-info-item :name "jak101r") + (new 'static 'speech-info-item :name "jak102r") + (new 'static 'speech-info-item :name "jak103r") + (new 'static 'speech-info-item :name "jak104r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak449r") + (new 'static 'speech-info-item :name "jak450r") + (new 'static 'speech-info-item :name "jak451r") + (new 'static 'speech-info-item :name "jak452r") + (new 'static 'speech-info-item :name "jak453r") + (new 'static 'speech-info-item :name "jak454r") + (new 'static 'speech-info-item :name "jak108r") + (new 'static 'speech-info-item :name "jak114r") + (new 'static 'speech-info-item :name "jak115r") + (new 'static 'speech-info-item :name "jak117r") + (new 'static 'speech-info-item :name "jak238r") + (new 'static 'speech-info-item :name "jak244r") + (new 'static 'speech-info-item :name "jak245r") + (new 'static 'speech-info-item :name "jak246r") + (new 'static 'speech-info-item :name "jak247r") + (new 'static 'speech-info-item :name "jak250r") + (new 'static 'speech-info-item :name "jak251r") + (new 'static 'speech-info-item :name "jak258r") + (new 'static 'speech-info-item :name "jak263r") + (new 'static 'speech-info-item :name "jak264r") + (new 'static 'speech-info-item :name "jak266r") + (new 'static 'speech-info-item :name "jak267r") + (new 'static 'speech-info-item :name "jak360r") + (new 'static 'speech-info-item :name "jak367r") + (new 'static 'speech-info-item :name "jak368r") + (new 'static 'speech-info-item :name "jak371r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak104r") + (new 'static 'speech-info-item :name "jak105r") + (new 'static 'speech-info-item :name "jak333r") + (new 'static 'speech-info-item :name "jak335r") + (new 'static 'speech-info-item :name "jak336r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak201r") + (new 'static 'speech-info-item :name "jak202r") + (new 'static 'speech-info-item :name "jak204r") + (new 'static 'speech-info-item :name "jak205r") + (new 'static 'speech-info-item :name "jak206r") + (new 'static 'speech-info-item :name "jak207r") + (new 'static 'speech-info-item :name "jak208r") + (new 'static 'speech-info-item :name "jak210r") + (new 'static 'speech-info-item :name "jak211r") + (new 'static 'speech-info-item :name "jak212r") + (new 'static 'speech-info-item :name "jak213r") + (new 'static 'speech-info-item :name "jak215r") + (new 'static 'speech-info-item :name "jak216r") + (new 'static 'speech-info-item :name "jak217r") + (new 'static 'speech-info-item :name "jak219r") + (new 'static 'speech-info-item :name "jak220r") + (new 'static 'speech-info-item :name "jak221r") + (new 'static 'speech-info-item :name "jak222r") + (new 'static 'speech-info-item :name "jak223r") + (new 'static 'speech-info-item :name "jak224r") + (new 'static 'speech-info-item :name "jak225r") + (new 'static 'speech-info-item :name "jak226r") + (new 'static 'speech-info-item :name "jak228r") + (new 'static 'speech-info-item :name "jak361r") + (new 'static 'speech-info-item :name "jak156r") + (new 'static 'speech-info-item :name "jak161r") + (new 'static 'speech-info-item :name "jak163r") + (new 'static 'speech-info-item :name "jak432r") + (new 'static 'speech-info-item :name "jak433r") + (new 'static 'speech-info-item :name "jak360r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 10) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak305r") + (new 'static 'speech-info-item :name "jak306r") + (new 'static 'speech-info-item :name "jak308r") + (new 'static 'speech-info-item :name "jak311r") + (new 'static 'speech-info-item :name "jak312r") + (new 'static 'speech-info-item :name "jak313r") + (new 'static 'speech-info-item :name "jak314r") + (new 'static 'speech-info-item :name "jak315r") + (new 'static 'speech-info-item :name "jak316r") + (new 'static 'speech-info-item :name "jak317r") + (new 'static 'speech-info-item :name "jak318r") + (new 'static 'speech-info-item :name "jak319r") + (new 'static 'speech-info-item :name "jak321r") + (new 'static 'speech-info-item :name "jak322r") + (new 'static 'speech-info-item :name "jak323r") + (new 'static 'speech-info-item :name "jak324r") + (new 'static 'speech-info-item :name "jak107r") + (new 'static 'speech-info-item :name "jak158r") + (new 'static 'speech-info-item :name "jak271r") + (new 'static 'speech-info-item :name "jak144r") + (new 'static 'speech-info-item :name "jak145r") + (new 'static 'speech-info-item :name "jak269r") + (new 'static 'speech-info-item :name "dax110r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax153r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "dax154r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "jak367r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 22) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak165r") + (new 'static 'speech-info-item :name "jak166r") + (new 'static 'speech-info-item :name "jak198r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 26) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak305r") + (new 'static 'speech-info-item :name "jak306r") + (new 'static 'speech-info-item :name "jak308r") + (new 'static 'speech-info-item :name "jak311r") + (new 'static 'speech-info-item :name "jak312r") + (new 'static 'speech-info-item :name "jak313r") + (new 'static 'speech-info-item :name "jak314r") + (new 'static 'speech-info-item :name "jak315r") + (new 'static 'speech-info-item :name "jak316r") + (new 'static 'speech-info-item :name "jak317r") + (new 'static 'speech-info-item :name "jak318r") + (new 'static 'speech-info-item :name "jak319r") + (new 'static 'speech-info-item :name "jak321r") + (new 'static 'speech-info-item :name "jak322r") + (new 'static 'speech-info-item :name "jak323r") + (new 'static 'speech-info-item :name "jak324r") + (new 'static 'speech-info-item :name "jak107r") + (new 'static 'speech-info-item :name "jak271r") + (new 'static 'speech-info-item :name "jak144r") + (new 'static 'speech-info-item :name "jak145r") + (new 'static 'speech-info-item :name "jak269r") + (new 'static 'speech-info-item :name "dax110r") + (new 'static 'speech-info-item :name "jak147r") + (new 'static 'speech-info-item :name "jak148r") + (new 'static 'speech-info-item :name "jak149r") + (new 'static 'speech-info-item :name "jak157r") + (new 'static 'speech-info-item :name "jak158r") + (new 'static 'speech-info-item :name "jak134r") + (new 'static 'speech-info-item :name "dax153r") + (new 'static 'speech-info-item :name "dax154r") + (new 'static 'speech-info-item :name "dax155r") + (new 'static 'speech-info-item :name "dax156r") + (new 'static 'speech-info-item :name "dax157r") + (new 'static 'speech-info-item :name "dax158r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 23) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak118r") + (new 'static 'speech-info-item :name "jak172r") + (new 'static 'speech-info-item :name "jak177r") + (new 'static 'speech-info-item :name "dax411r") + (new 'static 'speech-info-item :name "dax148r") + (new 'static 'speech-info-item :name "dax149r") + ) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 24) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak429r") + (new 'static 'speech-info-item :name "dax417r") + (new 'static 'speech-info-item :name "dax418r") + (new 'static 'speech-info-item :name "dax419r") + ) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 25) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak273r") + (new 'static 'speech-info-item :name "jak274r") + (new 'static 'speech-info-item :name "jak276r") + (new 'static 'speech-info-item :name "jak277r") + (new 'static 'speech-info-item :name "jak278r") + (new 'static 'speech-info-item :name "jak279r") + (new 'static 'speech-info-item :name "jak280r") + (new 'static 'speech-info-item :name "jak281r") + (new 'static 'speech-info-item :name "jak284r") + (new 'static 'speech-info-item :name "jak285r") + (new 'static 'speech-info-item :name "jak286r") + (new 'static 'speech-info-item :name "jak287r") + (new 'static 'speech-info-item :name "jak289r") + (new 'static 'speech-info-item :name "jak290r") + (new 'static 'speech-info-item :name "jak292r") + (new 'static 'speech-info-item :name "jak293r") + (new 'static 'speech-info-item :name "jak295r") + (new 'static 'speech-info-item :name "jak296r") + (new 'static 'speech-info-item :name "jak297r") + (new 'static 'speech-info-item :name "jak299r") + (new 'static 'speech-info-item :name "jak300r") + (new 'static 'speech-info-item :name "jak304r") + (new 'static 'speech-info-item :name "jak131r") + (new 'static 'speech-info-item :name "jak160r") + (new 'static 'speech-info-item :name "jak166r") + (new 'static 'speech-info-item :name "dax123r") + (new 'static 'speech-info-item :name "jak159r") + (new 'static 'speech-info-item :name "jak199r") + (new 'static 'speech-info-item :name "jak422r") + (new 'static 'speech-info-item :name "jak424r") + (new 'static 'speech-info-item :name "dax407r") + (new 'static 'speech-info-item :name "dax408r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 27) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak229r") + (new 'static 'speech-info-item :name "jak230r") + (new 'static 'speech-info-item :name "jak231r") + (new 'static 'speech-info-item :name "jak232r") + (new 'static 'speech-info-item :name "jak233r") + (new 'static 'speech-info-item :name "jak234r") + (new 'static 'speech-info-item :name "jak235r") + (new 'static 'speech-info-item :name "jak236r") + (new 'static 'speech-info-item :name "jak237r") + (new 'static 'speech-info-item :name "jak238r") + (new 'static 'speech-info-item :name "jak239r") + (new 'static 'speech-info-item :name "jak240r") + (new 'static 'speech-info-item :name "jak241r") + (new 'static 'speech-info-item :name "jak242r") + (new 'static 'speech-info-item :name "jak243r") + (new 'static 'speech-info-item :name "jak106r") + (new 'static 'speech-info-item :name "jak132r") + (new 'static 'speech-info-item :name "jak133r") + (new 'static 'speech-info-item :name "jak142r") + (new 'static 'speech-info-item :name "jak175r") + (new 'static 'speech-info-item :name "jak176r") + (new 'static 'speech-info-item :name "jak423r") + (new 'static 'speech-info-item :name "dax415r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 28) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "jak426r") + (new 'static 'speech-info-item :name "dax406r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 1 speeches 29) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn220r") + (new 'static 'speech-info-item :name "rayn216r") + (new 'static 'speech-info-item :name "rayn217r") + ) + :flags (speech-info-flag si0) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-kaeden_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-kaeden_REF.gc new file mode 100644 index 0000000000..20c56be904 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-kaeden_REF.gc @@ -0,0 +1,261 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed126r") + (new 'static 'speech-info-item :name "kaed134r") + (new 'static 'speech-info-item :name "kaed137r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed101r") + (new 'static 'speech-info-item :name "kaed102r") + (new 'static 'speech-info-item :name "kaed103r") + (new 'static 'speech-info-item :name "kaed104r") + (new 'static 'speech-info-item :name "kaed105r") + (new 'static 'speech-info-item :name "kaed106r") + (new 'static 'speech-info-item :name "kaed107r") + (new 'static 'speech-info-item :name "kaed108r") + (new 'static 'speech-info-item :name "kaed109r") + (new 'static 'speech-info-item :name "kaed110r") + (new 'static 'speech-info-item :name "kaed111r") + (new 'static 'speech-info-item :name "kaed112r") + (new 'static 'speech-info-item :name "kaed113r") + (new 'static 'speech-info-item :name "kaed114r") + (new 'static 'speech-info-item :name "kaed115r") + (new 'static 'speech-info-item :name "kaed116r") + (new 'static 'speech-info-item :name "kaed117r") + (new 'static 'speech-info-item :name "kaed118r") + (new 'static 'speech-info-item :name "kaed119r") + (new 'static 'speech-info-item :name "kaed120r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed102r") + (new 'static 'speech-info-item :name "kaed103r") + (new 'static 'speech-info-item :name "kaed104r") + (new 'static 'speech-info-item :name "kaed105r") + (new 'static 'speech-info-item :name "kaed106r") + (new 'static 'speech-info-item :name "kaed107r") + (new 'static 'speech-info-item :name "kaed108r") + (new 'static 'speech-info-item :name "kaed109r") + (new 'static 'speech-info-item :name "kaed111r") + (new 'static 'speech-info-item :name "kaed112r") + (new 'static 'speech-info-item :name "kaed113r") + (new 'static 'speech-info-item :name "kaed114r") + (new 'static 'speech-info-item :name "kaed115r") + (new 'static 'speech-info-item :name "kaed116r") + (new 'static 'speech-info-item :name "kaed117r") + (new 'static 'speech-info-item :name "kaed118r") + (new 'static 'speech-info-item :name "kaed120r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed121r") + (new 'static 'speech-info-item :name "kaed122r") + (new 'static 'speech-info-item :name "kaed123r") + (new 'static 'speech-info-item :name "kaed124r") + (new 'static 'speech-info-item :name "kaed125r") + (new 'static 'speech-info-item :name "kaed127r") + (new 'static 'speech-info-item :name "kaed128r") + (new 'static 'speech-info-item :name "kaed129r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed130r") + (new 'static 'speech-info-item :name "kaed131r") + (new 'static 'speech-info-item :name "kaed132r") + (new 'static 'speech-info-item :name "kaed133r") + (new 'static 'speech-info-item :name "kaed135r") + (new 'static 'speech-info-item :name "kaed136r") + (new 'static 'speech-info-item :name "kaed138r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed139r") + (new 'static 'speech-info-item :name "kaed140r") + (new 'static 'speech-info-item :name "kaed141r") + (new 'static 'speech-info-item :name "kaed142r") + (new 'static 'speech-info-item :name "kaed143r") + (new 'static 'speech-info-item :name "kaed144r") + (new 'static 'speech-info-item :name "kaed145r") + (new 'static 'speech-info-item :name "kaed146r") + (new 'static 'speech-info-item :name "kaed147r") + (new 'static 'speech-info-item :name "kaed148r") + (new 'static 'speech-info-item :name "kaed149r") + (new 'static 'speech-info-item :name "kaed150r") + (new 'static 'speech-info-item :name "kaed151r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed152r") + (new 'static 'speech-info-item :name "kaed153r") + (new 'static 'speech-info-item :name "kaed154r") + (new 'static 'speech-info-item :name "kaed155r") + (new 'static 'speech-info-item :name "kaed156r") + (new 'static 'speech-info-item :name "kaed157r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed158r") + (new 'static 'speech-info-item :name "kaed159r") + (new 'static 'speech-info-item :name "kaed160r") + (new 'static 'speech-info-item :name "kaed161r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "kaed163r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "kaed164r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed165r") + (new 'static 'speech-info-item :name "kaed166r") + (new 'static 'speech-info-item :name "kaed167r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed168r") + (new 'static 'speech-info-item :name "kaed169r") + (new 'static 'speech-info-item :name "kaed170r") + (new 'static 'speech-info-item :name "kaed171r") + (new 'static 'speech-info-item :name "kaed172r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed173r") + (new 'static 'speech-info-item :name "kaed174r") + (new 'static 'speech-info-item :name "kaed175r") + (new 'static 'speech-info-item :name "kaed176r") + (new 'static 'speech-info-item :name "kaed177r") + (new 'static 'speech-info-item :name "kaed178r") + (new 'static 'speech-info-item :name "kaed179r") + (new 'static 'speech-info-item :name "kaed180r") + (new 'static 'speech-info-item :name "kaed181r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed173r") + (new 'static 'speech-info-item :name "kaed174r") + (new 'static 'speech-info-item :name "kaed175r") + (new 'static 'speech-info-item :name "kaed176r") + (new 'static 'speech-info-item :name "kaed177r") + (new 'static 'speech-info-item :name "kaed178r") + (new 'static 'speech-info-item :name "kaed179r") + (new 'static 'speech-info-item :name "kaed180r") + (new 'static 'speech-info-item :name "kaed181r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed182r") + (new 'static 'speech-info-item :name "kaed183r") + (new 'static 'speech-info-item :name "kaed184r") + (new 'static 'speech-info-item :name "kaed185r") + (new 'static 'speech-info-item :name "kaed186r") + (new 'static 'speech-info-item :name "kaed187r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed182r") + (new 'static 'speech-info-item :name "kaed183r") + (new 'static 'speech-info-item :name "kaed184r") + (new 'static 'speech-info-item :name "kaed185r") + (new 'static 'speech-info-item :name "kaed186r") + (new 'static 'speech-info-item :name "kaed187r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed188r") + (new 'static 'speech-info-item :name "kaed189r") + (new 'static 'speech-info-item :name "kaed190r") + (new 'static 'speech-info-item :name "kaed191r") + (new 'static 'speech-info-item :name "kaed192r") + (new 'static 'speech-info-item :name "kaed193r") + (new 'static 'speech-info-item :name "kaed194r") + (new 'static 'speech-info-item :name "kaed195r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 19 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "kaed183r") + (new 'static 'speech-info-item :name "kaed162r") + (new 'static 'speech-info-item :name "kaed155r") + (new 'static 'speech-info-item :name "kaed162r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-keira_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-keira_REF.gc new file mode 100644 index 0000000000..875c4d061a --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-keira_REF.gc @@ -0,0 +1,543 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir108r") + (new 'static 'speech-info-item :name "keir113r") + (new 'static 'speech-info-item :name "keir116r") + (new 'static 'speech-info-item :name "keir117r") + (new 'static 'speech-info-item :name "keir120r") + (new 'static 'speech-info-item :name "keir121r") + (new 'static 'speech-info-item :name "keir122r") + (new 'static 'speech-info-item :name "keir123r") + (new 'static 'speech-info-item :name "keir124r") + (new 'static 'speech-info-item :name "keir125r") + (new 'static 'speech-info-item :name "keir126r") + (new 'static 'speech-info-item :name "keir127r") + (new 'static 'speech-info-item :name "keir129r") + (new 'static 'speech-info-item :name "keir130r") + (new 'static 'speech-info-item :name "keir131r") + (new 'static 'speech-info-item :name "keir132r") + (new 'static 'speech-info-item :name "keir133r") + (new 'static 'speech-info-item :name "keir134r") + (new 'static 'speech-info-item :name "keir135r") + (new 'static 'speech-info-item :name "keir139r") + (new 'static 'speech-info-item :name "keir140r") + (new 'static 'speech-info-item :name "keir142r") + (new 'static 'speech-info-item :name "keir143r") + (new 'static 'speech-info-item :name "keir144r") + (new 'static 'speech-info-item :name "keir146r") + (new 'static 'speech-info-item :name "keir147r") + (new 'static 'speech-info-item :name "keir148r") + (new 'static 'speech-info-item :name "keir149r") + (new 'static 'speech-info-item :name "keir150r") + (new 'static 'speech-info-item :name "keir151r") + (new 'static 'speech-info-item :name "keir152r") + (new 'static 'speech-info-item :name "keir153r") + (new 'static 'speech-info-item :name "keir154r") + (new 'static 'speech-info-item :name "keir155r") + (new 'static 'speech-info-item :name "keir157r") + (new 'static 'speech-info-item :name "keir158r") + (new 'static 'speech-info-item :name "keir162r") + (new 'static 'speech-info-item :name "keir163r") + (new 'static 'speech-info-item :name "keir164r") + (new 'static 'speech-info-item :name "keir165r") + (new 'static 'speech-info-item :name "keir166r") + (new 'static 'speech-info-item :name "keir167r") + (new 'static 'speech-info-item :name "keir168r") + (new 'static 'speech-info-item :name "keir169r") + (new 'static 'speech-info-item :name "keir170r") + (new 'static 'speech-info-item :name "keir171r") + (new 'static 'speech-info-item :name "keir172r") + (new 'static 'speech-info-item :name "keir173r") + (new 'static 'speech-info-item :name "keir174r") + (new 'static 'speech-info-item :name "keir176r") + (new 'static 'speech-info-item :name "keir177r") + (new 'static 'speech-info-item :name "keir178r") + (new 'static 'speech-info-item :name "keir182r") + (new 'static 'speech-info-item :name "keir183r") + (new 'static 'speech-info-item :name "keir188r") + (new 'static 'speech-info-item :name "keir189r") + (new 'static 'speech-info-item :name "keir190r") + (new 'static 'speech-info-item :name "keir193r") + (new 'static 'speech-info-item :name "keir194r") + (new 'static 'speech-info-item :name "keir195r") + (new 'static 'speech-info-item :name "keir196r") + (new 'static 'speech-info-item :name "keir197r") + (new 'static 'speech-info-item :name "keir198r") + (new 'static 'speech-info-item :name "keir199r") + (new 'static 'speech-info-item :name "keir200r") + (new 'static 'speech-info-item :name "keir201r") + (new 'static 'speech-info-item :name "keir202r") + (new 'static 'speech-info-item :name "keir204r") + (new 'static 'speech-info-item :name "keir205r") + (new 'static 'speech-info-item :name "keir206r") + (new 'static 'speech-info-item :name "keir207r") + (new 'static 'speech-info-item :name "keir208r") + (new 'static 'speech-info-item :name "keir209r") + (new 'static 'speech-info-item :name "keir210r") + (new 'static 'speech-info-item :name "keir211r") + (new 'static 'speech-info-item :name "keir215r") + (new 'static 'speech-info-item :name "keir218r") + (new 'static 'speech-info-item :name "keir219r") + (new 'static 'speech-info-item :name "keir220r") + (new 'static 'speech-info-item :name "keir221r") + (new 'static 'speech-info-item :name "keir222r") + (new 'static 'speech-info-item :name "keir223r") + (new 'static 'speech-info-item :name "keir224r") + (new 'static 'speech-info-item :name "keir225r") + (new 'static 'speech-info-item :name "keir226r") + (new 'static 'speech-info-item :name "keir227r") + (new 'static 'speech-info-item :name "keir228r") + (new 'static 'speech-info-item :name "keir229r") + (new 'static 'speech-info-item :name "keir230r") + (new 'static 'speech-info-item :name "keir231r") + (new 'static 'speech-info-item :name "keir232r") + (new 'static 'speech-info-item :name "keir233r") + (new 'static 'speech-info-item :name "keir269r") + (new 'static 'speech-info-item :name "keir281r") + (new 'static 'speech-info-item :name "keir289r") + (new 'static 'speech-info-item :name "keir351r") + (new 'static 'speech-info-item :name "keir352r") + (new 'static 'speech-info-item :name "keir355r") + (new 'static 'speech-info-item :name "keir356r") + (new 'static 'speech-info-item :name "keir359r") + (new 'static 'speech-info-item :name "keir360r") + (new 'static 'speech-info-item :name "keir362r") + (new 'static 'speech-info-item :name "keir402r") + (new 'static 'speech-info-item :name "keir403r") + (new 'static 'speech-info-item :name "keir404r") + (new 'static 'speech-info-item :name "keir405r") + (new 'static 'speech-info-item :name "keir406r") + (new 'static 'speech-info-item :name "keir407r") + (new 'static 'speech-info-item :name "keir409r") + (new 'static 'speech-info-item :name "keir410r") + (new 'static 'speech-info-item :name "keir411r") + (new 'static 'speech-info-item :name "keir412r") + (new 'static 'speech-info-item :name "keir413r") + (new 'static 'speech-info-item :name "keir414r") + (new 'static 'speech-info-item :name "keir415r") + (new 'static 'speech-info-item :name "keir416r") + (new 'static 'speech-info-item :name "keir417r") + (new 'static 'speech-info-item :name "keir418r") + (new 'static 'speech-info-item :name "keir419r") + (new 'static 'speech-info-item :name "keir420r") + (new 'static 'speech-info-item :name "keir421r") + (new 'static 'speech-info-item :name "keir255r") + (new 'static 'speech-info-item :name "keir256r") + (new 'static 'speech-info-item :name "keir257r") + (new 'static 'speech-info-item :name "keir259r") + (new 'static 'speech-info-item :name "keir262r") + (new 'static 'speech-info-item :name "keir271r") + (new 'static 'speech-info-item :name "keir292r") + (new 'static 'speech-info-item :name "keir295r") + (new 'static 'speech-info-item :name "keir299r") + (new 'static 'speech-info-item :name "keir302r") + (new 'static 'speech-info-item :name "keir303r") + (new 'static 'speech-info-item :name "keir304r") + (new 'static 'speech-info-item :name "keir315r") + (new 'static 'speech-info-item :name "keir316r") + (new 'static 'speech-info-item :name "keir318r") + (new 'static 'speech-info-item :name "keir319r") + (new 'static 'speech-info-item :name "keir320r") + (new 'static 'speech-info-item :name "keir321r") + (new 'static 'speech-info-item :name "keir322r") + (new 'static 'speech-info-item :name "keir323r") + (new 'static 'speech-info-item :name "keir191r") + (new 'static 'speech-info-item :name "keir325r") + (new 'static 'speech-info-item :name "keir327r") + (new 'static 'speech-info-item :name "keir328r") + (new 'static 'speech-info-item :name "keir329r") + (new 'static 'speech-info-item :name "keir337r") + (new 'static 'speech-info-item :name "keir338r") + (new 'static 'speech-info-item :name "keir347r") + (new 'static 'speech-info-item :name "keir348r") + (new 'static 'speech-info-item :name "keir349r") + (new 'static 'speech-info-item :name "keir350r") + (new 'static 'speech-info-item :name "keir105r") + (new 'static 'speech-info-item :name "keir381r") + (new 'static 'speech-info-item :name "keir382r") + (new 'static 'speech-info-item :name "keir388r") + (new 'static 'speech-info-item :name "keir389r") + (new 'static 'speech-info-item :name "keir393r") + (new 'static 'speech-info-item :name "keir106r") + (new 'static 'speech-info-item :name "keir114r") + (new 'static 'speech-info-item :name "keir395r") + (new 'static 'speech-info-item :name "keir238r") + (new 'static 'speech-info-item :name "keir239r") + (new 'static 'speech-info-item :name "keir252r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "keir358r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir234r") + (new 'static 'speech-info-item :name "keir235r") + (new 'static 'speech-info-item :name "keir236r") + (new 'static 'speech-info-item :name "keir237r") + (new 'static 'speech-info-item :name "keir238r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir239r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir240r") + (new 'static 'speech-info-item :name "keir241r") + (new 'static 'speech-info-item :name "keir242r") + (new 'static 'speech-info-item :name "keir243r") + (new 'static 'speech-info-item :name "keir244r") + (new 'static 'speech-info-item :name "keir245r") + (new 'static 'speech-info-item :name "keir246r") + (new 'static 'speech-info-item :name "keir247r") + (new 'static 'speech-info-item :name "keir248r") + (new 'static 'speech-info-item :name "keir249r") + (new 'static 'speech-info-item :name "keir250r") + (new 'static 'speech-info-item :name "keir251r") + (new 'static 'speech-info-item :name "keir252r") + (new 'static 'speech-info-item :name "keir253r") + (new 'static 'speech-info-item :name "keir254r") + (new 'static 'speech-info-item :name "keir185r") + (new 'static 'speech-info-item :name "keir353r") + (new 'static 'speech-info-item :name "keir357r") + (new 'static 'speech-info-item :name "keir408r") + (new 'static 'speech-info-item :name "keir361r") + (new 'static 'speech-info-item :name "keir115r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir258r") + (new 'static 'speech-info-item :name "keir260r") + (new 'static 'speech-info-item :name "keir261r") + (new 'static 'speech-info-item :name "keir263r") + (new 'static 'speech-info-item :name "keir264r") + (new 'static 'speech-info-item :name "keir265r") + (new 'static 'speech-info-item :name "keir266r") + (new 'static 'speech-info-item :name "keir267r") + (new 'static 'speech-info-item :name "keir268r") + (new 'static 'speech-info-item :name "keir270r") + (new 'static 'speech-info-item :name "keir136r") + (new 'static 'speech-info-item :name "keir137r") + (new 'static 'speech-info-item :name "keir138r") + (new 'static 'speech-info-item :name "keir156r") + (new 'static 'speech-info-item :name "keir203r") + (new 'static 'speech-info-item :name "keir128r") + (new 'static 'speech-info-item :name "keir141r") + (new 'static 'speech-info-item :name "keir159r") + (new 'static 'speech-info-item :name "keir179r") + (new 'static 'speech-info-item :name "keir180r") + (new 'static 'speech-info-item :name "keir363r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir272r") + (new 'static 'speech-info-item :name "keir273r") + (new 'static 'speech-info-item :name "keir274r") + (new 'static 'speech-info-item :name "keir275r") + (new 'static 'speech-info-item :name "keir276r") + (new 'static 'speech-info-item :name "keir277r") + (new 'static 'speech-info-item :name "keir278r") + (new 'static 'speech-info-item :name "keir279r") + (new 'static 'speech-info-item :name "keir280r") + (new 'static 'speech-info-item :name "keir282r") + (new 'static 'speech-info-item :name "keir283r") + (new 'static 'speech-info-item :name "keir284r") + (new 'static 'speech-info-item :name "keir285r") + (new 'static 'speech-info-item :name "keir286r") + (new 'static 'speech-info-item :name "keir287r") + (new 'static 'speech-info-item :name "keir288r") + (new 'static 'speech-info-item :name "keir290r") + (new 'static 'speech-info-item :name "keir216r") + (new 'static 'speech-info-item :name "keir217r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir291r") + (new 'static 'speech-info-item :name "keir293r") + (new 'static 'speech-info-item :name "keir294r") + (new 'static 'speech-info-item :name "keir296r") + (new 'static 'speech-info-item :name "keir297r") + (new 'static 'speech-info-item :name "keir298r") + (new 'static 'speech-info-item :name "keir300r") + (new 'static 'speech-info-item :name "keir301r") + (new 'static 'speech-info-item :name "keir305r") + (new 'static 'speech-info-item :name "keir306r") + (new 'static 'speech-info-item :name "keir307r") + (new 'static 'speech-info-item :name "keir308r") + (new 'static 'speech-info-item :name "keir309r") + (new 'static 'speech-info-item :name "keir310r") + (new 'static 'speech-info-item :name "keir311r") + (new 'static 'speech-info-item :name "keir312r") + (new 'static 'speech-info-item :name "keir313r") + (new 'static 'speech-info-item :name "keir314r") + (new 'static 'speech-info-item :name "keir317r") + (new 'static 'speech-info-item :name "keir175r") + (new 'static 'speech-info-item :name "keir118r") + (new 'static 'speech-info-item :name "keir119r") + (new 'static 'speech-info-item :name "keir181r") + (new 'static 'speech-info-item :name "keir184r") + (new 'static 'speech-info-item :name "keir186r") + (new 'static 'speech-info-item :name "keir187r") + (new 'static 'speech-info-item :name "keir192r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir324r") + (new 'static 'speech-info-item :name "keir326r") + (new 'static 'speech-info-item :name "keir330r") + (new 'static 'speech-info-item :name "keir331r") + (new 'static 'speech-info-item :name "keir332r") + (new 'static 'speech-info-item :name "keir333r") + (new 'static 'speech-info-item :name "keir334r") + (new 'static 'speech-info-item :name "keir335r") + (new 'static 'speech-info-item :name "keir336r") + (new 'static 'speech-info-item :name "keir339r") + (new 'static 'speech-info-item :name "keir340r") + (new 'static 'speech-info-item :name "keir341r") + (new 'static 'speech-info-item :name "keir354r") + (new 'static 'speech-info-item :name "keir159r") + (new 'static 'speech-info-item :name "keir160r") + (new 'static 'speech-info-item :name "keir161r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir342r") + (new 'static 'speech-info-item :name "keir343r") + (new 'static 'speech-info-item :name "keir344r") + (new 'static 'speech-info-item :name "keir345r") + (new 'static 'speech-info-item :name "keir346r") + (new 'static 'speech-info-item :name "keir101r") + (new 'static 'speech-info-item :name "keir102r") + (new 'static 'speech-info-item :name "keir103r") + (new 'static 'speech-info-item :name "keir104r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "keir364r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir365r") + (new 'static 'speech-info-item :name "keir366r") + (new 'static 'speech-info-item :name "keir367r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir368r") + (new 'static 'speech-info-item :name "keir369r") + (new 'static 'speech-info-item :name "keir370r") + (new 'static 'speech-info-item :name "keir371r") + (new 'static 'speech-info-item :name "keir372r") + (new 'static 'speech-info-item :name "keir373r") + (new 'static 'speech-info-item :name "keir374r") + (new 'static 'speech-info-item :name "keir375r") + (new 'static 'speech-info-item :name "keir212r") + (new 'static 'speech-info-item :name "keir213r") + (new 'static 'speech-info-item :name "keir214r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir376r") + (new 'static 'speech-info-item :name "keir377r") + (new 'static 'speech-info-item :name "keir378r") + (new 'static 'speech-info-item :name "keir379r") + (new 'static 'speech-info-item :name "keir380r") + (new 'static 'speech-info-item :name "keir383r") + (new 'static 'speech-info-item :name "keir384r") + (new 'static 'speech-info-item :name "keir385r") + (new 'static 'speech-info-item :name "keir386r") + (new 'static 'speech-info-item :name "keir387r") + (new 'static 'speech-info-item :name "keir390r") + (new 'static 'speech-info-item :name "keir391r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir392r") + (new 'static 'speech-info-item :name "keir107r") + (new 'static 'speech-info-item :name "keir109r") + (new 'static 'speech-info-item :name "keir110r") + (new 'static 'speech-info-item :name "keir112r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 2) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir394r") + (new 'static 'speech-info-item :name "keir396r") + (new 'static 'speech-info-item :name "keir397r") + (new 'static 'speech-info-item :name "keir398r") + (new 'static 'speech-info-item :name "keir399r") + (new 'static 'speech-info-item :name "keir400r") + (new 'static 'speech-info-item :name "keir401r") + (new 'static 'speech-info-item :name "keir111r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "keir145r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir376r") + (new 'static 'speech-info-item :name "keir377r") + (new 'static 'speech-info-item :name "keir378r") + (new 'static 'speech-info-item :name "keir379r") + (new 'static 'speech-info-item :name "keir380r") + (new 'static 'speech-info-item :name "keir383r") + (new 'static 'speech-info-item :name "keir384r") + (new 'static 'speech-info-item :name "keir385r") + (new 'static 'speech-info-item :name "keir386r") + (new 'static 'speech-info-item :name "keir387r") + (new 'static 'speech-info-item :name "keir390r") + (new 'static 'speech-info-item :name "keir392r") + (new 'static 'speech-info-item :name "keir107r") + (new 'static 'speech-info-item :name "keir109r") + (new 'static 'speech-info-item :name "keir110r") + (new 'static 'speech-info-item :name "keir112r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir394r") + (new 'static 'speech-info-item :name "keir396r") + (new 'static 'speech-info-item :name "keir397r") + (new 'static 'speech-info-item :name "keir398r") + (new 'static 'speech-info-item :name "keir399r") + (new 'static 'speech-info-item :name "keir400r") + (new 'static 'speech-info-item :name "keir401r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir422r") + (new 'static 'speech-info-item :name "keir423r") + (new 'static 'speech-info-item :name "keir424r") + (new 'static 'speech-info-item :name "keir425r") + (new 'static 'speech-info-item :name "keir426r") + (new 'static 'speech-info-item :name "keir427r") + (new 'static 'speech-info-item :name "keir106r") + (new 'static 'speech-info-item :name "keir112r") + (new 'static 'speech-info-item :name "keir114r") + (new 'static 'speech-info-item :name "keir116r") + (new 'static 'speech-info-item :name "keir120r") + (new 'static 'speech-info-item :name "keir181r") + (new 'static 'speech-info-item :name "keir184r") + (new 'static 'speech-info-item :name "keir188r") + (new 'static 'speech-info-item :name "keir190r") + (new 'static 'speech-info-item :name "keir227r") + (new 'static 'speech-info-item :name "keir263r") + (new 'static 'speech-info-item :name "keir265r") + (new 'static 'speech-info-item :name "keir266r") + (new 'static 'speech-info-item :name "keir273r") + (new 'static 'speech-info-item :name "keir274r") + (new 'static 'speech-info-item :name "keir278r") + (new 'static 'speech-info-item :name "keir279r") + (new 'static 'speech-info-item :name "keir280r") + (new 'static 'speech-info-item :name "keir281r") + (new 'static 'speech-info-item :name "keir284r") + (new 'static 'speech-info-item :name "keir286r") + (new 'static 'speech-info-item :name "keir287r") + (new 'static 'speech-info-item :name "keir288r") + (new 'static 'speech-info-item :name "keir290r") + (new 'static 'speech-info-item :name "keir295r") + (new 'static 'speech-info-item :name "keir296r") + (new 'static 'speech-info-item :name "keir297r") + (new 'static 'speech-info-item :name "keir300r") + (new 'static 'speech-info-item :name "keir313r") + (new 'static 'speech-info-item :name "keir353r") + (new 'static 'speech-info-item :name "keir358r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir104r") + (new 'static 'speech-info-item :name "keir105r") + (new 'static 'speech-info-item :name "keir342r") + (new 'static 'speech-info-item :name "keir346r") + (new 'static 'speech-info-item :name "keir347r") + (new 'static 'speech-info-item :name "keir348r") + (new 'static 'speech-info-item :name "keir350r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 3 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "keir234r") + (new 'static 'speech-info-item :name "keir235r") + (new 'static 'speech-info-item :name "keir237r") + (new 'static 'speech-info-item :name "keir241r") + (new 'static 'speech-info-item :name "keir242r") + (new 'static 'speech-info-item :name "keir243r") + (new 'static 'speech-info-item :name "keir245r") + (new 'static 'speech-info-item :name "keir246r") + (new 'static 'speech-info-item :name "keir247r") + (new 'static 'speech-info-item :name "keir249r") + (new 'static 'speech-info-item :name "keir250r") + (new 'static 'speech-info-item :name "keir253r") + (new 'static 'speech-info-item :name "keir254r") + (new 'static 'speech-info-item :name "keir185r") + (new 'static 'speech-info-item :name "keir353r") + (new 'static 'speech-info-item :name "keir408r") + (new 'static 'speech-info-item :name "keir361r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-kleiver_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-kleiver_REF.gc new file mode 100644 index 0000000000..93f11c926e --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-kleiver_REF.gc @@ -0,0 +1,534 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev142r") + (new 'static 'speech-info-item :name "klev152r") + (new 'static 'speech-info-item :name "klev153r") + (new 'static 'speech-info-item :name "klev159r") + (new 'static 'speech-info-item :name "klev171r") + (new 'static 'speech-info-item :name "klev179r") + (new 'static 'speech-info-item :name "klev180r") + (new 'static 'speech-info-item :name "klev181r") + (new 'static 'speech-info-item :name "klev182r") + (new 'static 'speech-info-item :name "klev189r") + (new 'static 'speech-info-item :name "klev263r") + (new 'static 'speech-info-item :name "klev264r") + (new 'static 'speech-info-item :name "klev265r") + (new 'static 'speech-info-item :name "klev267r") + (new 'static 'speech-info-item :name "klev268r") + (new 'static 'speech-info-item :name "klev269r") + (new 'static 'speech-info-item :name "klev270r") + (new 'static 'speech-info-item :name "klev273r") + (new 'static 'speech-info-item :name "klev274r") + (new 'static 'speech-info-item :name "klev275r") + (new 'static 'speech-info-item :name "klev278r") + (new 'static 'speech-info-item :name "klev329r") + (new 'static 'speech-info-item :name "klev330r") + (new 'static 'speech-info-item :name "klev331r") + (new 'static 'speech-info-item :name "klev332r") + (new 'static 'speech-info-item :name "klev333r") + (new 'static 'speech-info-item :name "klev334r") + (new 'static 'speech-info-item :name "klev335r") + (new 'static 'speech-info-item :name "klev336r") + (new 'static 'speech-info-item :name "klev337r") + (new 'static 'speech-info-item :name "klev338r") + (new 'static 'speech-info-item :name "klev339r") + (new 'static 'speech-info-item :name "klev340r") + (new 'static 'speech-info-item :name "klev342r") + (new 'static 'speech-info-item :name "klev343r") + (new 'static 'speech-info-item :name "klev344r") + (new 'static 'speech-info-item :name "klev345r") + (new 'static 'speech-info-item :name "klev347r") + (new 'static 'speech-info-item :name "klev348r") + (new 'static 'speech-info-item :name "klev349r") + (new 'static 'speech-info-item :name "klev350r") + (new 'static 'speech-info-item :name "klev351r") + (new 'static 'speech-info-item :name "klev352r") + (new 'static 'speech-info-item :name "klev353r") + (new 'static 'speech-info-item :name "klev354r") + (new 'static 'speech-info-item :name "klev202r") + (new 'static 'speech-info-item :name "klev203r") + (new 'static 'speech-info-item :name "klev233r") + (new 'static 'speech-info-item :name "klev235r") + (new 'static 'speech-info-item :name "klev223r") + (new 'static 'speech-info-item :name "klev224r") + (new 'static 'speech-info-item :name "klev228r") + (new 'static 'speech-info-item :name "klev240r") + (new 'static 'speech-info-item :name "klev246r") + (new 'static 'speech-info-item :name "klev183r") + (new 'static 'speech-info-item :name "klev256r") + (new 'static 'speech-info-item :name "klev257r") + (new 'static 'speech-info-item :name "klev258r") + (new 'static 'speech-info-item :name "klev259r") + (new 'static 'speech-info-item :name "klev260r") + (new 'static 'speech-info-item :name "klev261r") + (new 'static 'speech-info-item :name "klev307r") + (new 'static 'speech-info-item :name "klev308r") + (new 'static 'speech-info-item :name "klev312r") + (new 'static 'speech-info-item :name "klev316r") + (new 'static 'speech-info-item :name "klev317r") + (new 'static 'speech-info-item :name "klev323r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "klev272r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev101r") + (new 'static 'speech-info-item :name "klev102r") + (new 'static 'speech-info-item :name "klev103r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev104r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev105r") + (new 'static 'speech-info-item :name "klev106r") + (new 'static 'speech-info-item :name "klev107r") + (new 'static 'speech-info-item :name "klev108r") + (new 'static 'speech-info-item :name "klev109r") + (new 'static 'speech-info-item :name "klev110r") + (new 'static 'speech-info-item :name "klev111r") + (new 'static 'speech-info-item :name "klev112r") + (new 'static 'speech-info-item :name "klev113r") + (new 'static 'speech-info-item :name "klev114r") + (new 'static 'speech-info-item :name "klev115r") + (new 'static 'speech-info-item :name "klev116r") + (new 'static 'speech-info-item :name "klev117r") + (new 'static 'speech-info-item :name "klev118r") + (new 'static 'speech-info-item :name "klev119r") + (new 'static 'speech-info-item :name "klev120r") + (new 'static 'speech-info-item :name "klev121r") + (new 'static 'speech-info-item :name "klev122r") + (new 'static 'speech-info-item :name "klev123r") + (new 'static 'speech-info-item :name "klev124r") + (new 'static 'speech-info-item :name "klev125r") + (new 'static 'speech-info-item :name "klev126r") + (new 'static 'speech-info-item :name "klev127r") + (new 'static 'speech-info-item :name "klev128r") + (new 'static 'speech-info-item :name "klev129r") + (new 'static 'speech-info-item :name "klev130r") + (new 'static 'speech-info-item :name "klev131r") + (new 'static 'speech-info-item :name "klev132r") + (new 'static 'speech-info-item :name "klev133r") + (new 'static 'speech-info-item :name "klev271r") + (new 'static 'speech-info-item :name "klev277r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev134r") + (new 'static 'speech-info-item :name "klev135r") + (new 'static 'speech-info-item :name "klev136r") + (new 'static 'speech-info-item :name "klev137r") + (new 'static 'speech-info-item :name "klev138r") + (new 'static 'speech-info-item :name "klev139r") + (new 'static 'speech-info-item :name "klev140r") + (new 'static 'speech-info-item :name "klev141r") + (new 'static 'speech-info-item :name "klev143r") + (new 'static 'speech-info-item :name "klev144r") + (new 'static 'speech-info-item :name "klev145r") + (new 'static 'speech-info-item :name "klev146r") + (new 'static 'speech-info-item :name "klev147r") + (new 'static 'speech-info-item :name "klev148r") + (new 'static 'speech-info-item :name "klev149r") + (new 'static 'speech-info-item :name "klev150r") + (new 'static 'speech-info-item :name "klev151r") + (new 'static 'speech-info-item :name "klev176r") + (new 'static 'speech-info-item :name "klev279r") + (new 'static 'speech-info-item :name "klev346r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev154r") + (new 'static 'speech-info-item :name "klev155r") + (new 'static 'speech-info-item :name "klev156r") + (new 'static 'speech-info-item :name "klev157r") + (new 'static 'speech-info-item :name "klev158r") + (new 'static 'speech-info-item :name "klev160r") + (new 'static 'speech-info-item :name "klev161r") + (new 'static 'speech-info-item :name "klev162r") + (new 'static 'speech-info-item :name "klev163r") + (new 'static 'speech-info-item :name "klev164r") + (new 'static 'speech-info-item :name "klev165r") + (new 'static 'speech-info-item :name "klev166r") + (new 'static 'speech-info-item :name "klev167r") + (new 'static 'speech-info-item :name "klev168r") + (new 'static 'speech-info-item :name "klev169r") + (new 'static 'speech-info-item :name "klev170r") + (new 'static 'speech-info-item :name "klev172r") + (new 'static 'speech-info-item :name "klev173r") + (new 'static 'speech-info-item :name "klev174r") + (new 'static 'speech-info-item :name "klev175r") + (new 'static 'speech-info-item :name "klev177r") + (new 'static 'speech-info-item :name "klev178r") + (new 'static 'speech-info-item :name "klev341r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev190r") + (new 'static 'speech-info-item :name "klev191r") + (new 'static 'speech-info-item :name "klev192r") + (new 'static 'speech-info-item :name "klev193r") + (new 'static 'speech-info-item :name "klev194r") + (new 'static 'speech-info-item :name "klev195r") + (new 'static 'speech-info-item :name "klev196r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev197r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev198r") + (new 'static 'speech-info-item :name "klev199r") + (new 'static 'speech-info-item :name "klev200r") + (new 'static 'speech-info-item :name "klev201r") + (new 'static 'speech-info-item :name "klev204r") + (new 'static 'speech-info-item :name "klev205r") + (new 'static 'speech-info-item :name "klev206r") + (new 'static 'speech-info-item :name "klev207r") + (new 'static 'speech-info-item :name "klev208r") + (new 'static 'speech-info-item :name "klev209r") + (new 'static 'speech-info-item :name "klev210r") + (new 'static 'speech-info-item :name "klev211r") + (new 'static 'speech-info-item :name "klev212r") + (new 'static 'speech-info-item :name "klev213r") + (new 'static 'speech-info-item :name "klev214r") + (new 'static 'speech-info-item :name "klev215r") + (new 'static 'speech-info-item :name "klev216r") + (new 'static 'speech-info-item :name "klev217r") + (new 'static 'speech-info-item :name "klev218r") + (new 'static 'speech-info-item :name "klev219r") + (new 'static 'speech-info-item :name "klev220r") + (new 'static 'speech-info-item :name "klev221r") + (new 'static 'speech-info-item :name "klev222r") + (new 'static 'speech-info-item :name "klev225r") + (new 'static 'speech-info-item :name "klev226r") + (new 'static 'speech-info-item :name "klev227r") + (new 'static 'speech-info-item :name "klev229r") + (new 'static 'speech-info-item :name "klev230r") + (new 'static 'speech-info-item :name "klev184r") + (new 'static 'speech-info-item :name "klev185r") + (new 'static 'speech-info-item :name "klev188r") + (new 'static 'speech-info-item :name "klev266r") + (new 'static 'speech-info-item :name "klev355r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev231r") + (new 'static 'speech-info-item :name "klev232r") + (new 'static 'speech-info-item :name "klev234r") + (new 'static 'speech-info-item :name "klev236r") + (new 'static 'speech-info-item :name "klev237r") + (new 'static 'speech-info-item :name "klev238r") + (new 'static 'speech-info-item :name "klev239r") + (new 'static 'speech-info-item :name "klev241r") + (new 'static 'speech-info-item :name "klev242r") + (new 'static 'speech-info-item :name "klev243r") + (new 'static 'speech-info-item :name "klev244r") + (new 'static 'speech-info-item :name "klev245r") + (new 'static 'speech-info-item :name "klev247r") + (new 'static 'speech-info-item :name "klev248r") + (new 'static 'speech-info-item :name "klev249r") + (new 'static 'speech-info-item :name "klev250r") + (new 'static 'speech-info-item :name "klev186r") + (new 'static 'speech-info-item :name "klev187r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev251r") + (new 'static 'speech-info-item :name "klev252r") + (new 'static 'speech-info-item :name "klev253r") + (new 'static 'speech-info-item :name "klev254r") + (new 'static 'speech-info-item :name "klev255r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "klev280r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev281r") + (new 'static 'speech-info-item :name "klev282r") + (new 'static 'speech-info-item :name "klev283r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev284r") + (new 'static 'speech-info-item :name "klev285r") + (new 'static 'speech-info-item :name "klev286r") + (new 'static 'speech-info-item :name "klev287r") + (new 'static 'speech-info-item :name "klev288r") + (new 'static 'speech-info-item :name "klev289r") + (new 'static 'speech-info-item :name "klev290r") + (new 'static 'speech-info-item :name "klev291r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev292r") + (new 'static 'speech-info-item :name "klev293r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev294r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev295r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev296r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "klev297r") + (new 'static 'speech-info-item :name "klev298r") + (new 'static 'speech-info-item :name "klev299r") + (new 'static 'speech-info-item :name "klev300r") + (new 'static 'speech-info-item :name "klev301r") + (new 'static 'speech-info-item :name "klev302r") + (new 'static 'speech-info-item :name "klev303r") + (new 'static 'speech-info-item :name "klev304r") + (new 'static 'speech-info-item :name "klev305r") + (new 'static 'speech-info-item :name "klev306r") + (new 'static 'speech-info-item :name "klev309r") + (new 'static 'speech-info-item :name "klev310r") + (new 'static 'speech-info-item :name "klev311r") + (new 'static 'speech-info-item :name "klev313r") + (new 'static 'speech-info-item :name "klev314r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev315r") + (new 'static 'speech-info-item :name "klev318r") + (new 'static 'speech-info-item :name "klev319r") + (new 'static 'speech-info-item :name "klev320r") + (new 'static 'speech-info-item :name "klev321r") + (new 'static 'speech-info-item :name "klev322r") + (new 'static 'speech-info-item :name "klev324r") + (new 'static 'speech-info-item :name "klev325r") + (new 'static 'speech-info-item :name "klev326r") + (new 'static 'speech-info-item :name "klev327r") + (new 'static 'speech-info-item :name "klev328r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev292r") + (new 'static 'speech-info-item :name "klev297r") + (new 'static 'speech-info-item :name "klev298r") + (new 'static 'speech-info-item :name "klev299r") + (new 'static 'speech-info-item :name "klev300r") + (new 'static 'speech-info-item :name "klev301r") + (new 'static 'speech-info-item :name "klev302r") + (new 'static 'speech-info-item :name "klev303r") + (new 'static 'speech-info-item :name "klev304r") + (new 'static 'speech-info-item :name "klev305r") + (new 'static 'speech-info-item :name "klev306r") + (new 'static 'speech-info-item :name "klev309r") + (new 'static 'speech-info-item :name "klev310r") + (new 'static 'speech-info-item :name "klev311r") + (new 'static 'speech-info-item :name "klev313r") + (new 'static 'speech-info-item :name "klev314r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev315r") + (new 'static 'speech-info-item :name "klev318r") + (new 'static 'speech-info-item :name "klev319r") + (new 'static 'speech-info-item :name "klev320r") + (new 'static 'speech-info-item :name "klev321r") + (new 'static 'speech-info-item :name "klev322r") + (new 'static 'speech-info-item :name "klev324r") + (new 'static 'speech-info-item :name "klev325r") + (new 'static 'speech-info-item :name "klev326r") + (new 'static 'speech-info-item :name "klev327r") + (new 'static 'speech-info-item :name "klev328r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev356r") + (new 'static 'speech-info-item :name "klev357r") + (new 'static 'speech-info-item :name "klev358r") + (new 'static 'speech-info-item :name "klev359r") + (new 'static 'speech-info-item :name "klev360r") + (new 'static 'speech-info-item :name "klev361r") + (new 'static 'speech-info-item :name "klev135r") + (new 'static 'speech-info-item :name "klev136r") + (new 'static 'speech-info-item :name "klev137r") + (new 'static 'speech-info-item :name "klev138r") + (new 'static 'speech-info-item :name "klev140r") + (new 'static 'speech-info-item :name "klev144r") + (new 'static 'speech-info-item :name "klev145r") + (new 'static 'speech-info-item :name "klev146r") + (new 'static 'speech-info-item :name "klev147r") + (new 'static 'speech-info-item :name "klev148r") + (new 'static 'speech-info-item :name "klev149r") + (new 'static 'speech-info-item :name "klev154r") + (new 'static 'speech-info-item :name "klev155r") + (new 'static 'speech-info-item :name "klev156r") + (new 'static 'speech-info-item :name "klev158r") + (new 'static 'speech-info-item :name "klev160r") + (new 'static 'speech-info-item :name "klev161r") + (new 'static 'speech-info-item :name "klev164r") + (new 'static 'speech-info-item :name "klev165r") + (new 'static 'speech-info-item :name "klev166r") + (new 'static 'speech-info-item :name "klev167r") + (new 'static 'speech-info-item :name "klev168r") + (new 'static 'speech-info-item :name "klev169r") + (new 'static 'speech-info-item :name "klev170r") + (new 'static 'speech-info-item :name "klev172r") + (new 'static 'speech-info-item :name "klev177r") + (new 'static 'speech-info-item :name "klev178r") + (new 'static 'speech-info-item :name "klev194r") + (new 'static 'speech-info-item :name "klev195r") + (new 'static 'speech-info-item :name "klev198r") + (new 'static 'speech-info-item :name "klev201r") + (new 'static 'speech-info-item :name "klev206r") + (new 'static 'speech-info-item :name "klev207r") + (new 'static 'speech-info-item :name "klev208r") + (new 'static 'speech-info-item :name "klev213r") + (new 'static 'speech-info-item :name "klev215r") + (new 'static 'speech-info-item :name "klev221r") + (new 'static 'speech-info-item :name "klev246r") + (new 'static 'speech-info-item :name "klev266r") + (new 'static 'speech-info-item :name "klev272r") + (new 'static 'speech-info-item :name "klev276r") + (new 'static 'speech-info-item :name "klev277r") + (new 'static 'speech-info-item :name "klev289r") + (new 'static 'speech-info-item :name "klev302r") + (new 'static 'speech-info-item :name "klev306r") + (new 'static 'speech-info-item :name "klev312r") + (new 'static 'speech-info-item :name "klev313r") + (new 'static 'speech-info-item :name "klev342r") + (new 'static 'speech-info-item :name "klev343r") + (new 'static 'speech-info-item :name "klev350r") + (new 'static 'speech-info-item :name "klev355r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 15) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev143r") + (new 'static 'speech-info-item :name "klev153r") + (new 'static 'speech-info-item :name "klev159r") + (new 'static 'speech-info-item :name "klev174r") + (new 'static 'speech-info-item :name "klev175r") + (new 'static 'speech-info-item :name "klev182r") + (new 'static 'speech-info-item :name "klev184r") + (new 'static 'speech-info-item :name "klev188r") + (new 'static 'speech-info-item :name "klev231r") + (new 'static 'speech-info-item :name "klev234r") + (new 'static 'speech-info-item :name "klev236r") + (new 'static 'speech-info-item :name "klev237r") + (new 'static 'speech-info-item :name "klev238r") + (new 'static 'speech-info-item :name "klev239r") + (new 'static 'speech-info-item :name "klev240r") + (new 'static 'speech-info-item :name "klev242r") + (new 'static 'speech-info-item :name "klev243r") + (new 'static 'speech-info-item :name "klev247r") + (new 'static 'speech-info-item :name "klev248r") + (new 'static 'speech-info-item :name "klev249r") + (new 'static 'speech-info-item :name "klev251r") + (new 'static 'speech-info-item :name "klev255r") + (new 'static 'speech-info-item :name "klev256r") + (new 'static 'speech-info-item :name "klev257r") + (new 'static 'speech-info-item :name "klev258r") + (new 'static 'speech-info-item :name "klev259r") + (new 'static 'speech-info-item :name "klev260r") + (new 'static 'speech-info-item :name "klev261r") + (new 'static 'speech-info-item :name "klev316r") + (new 'static 'speech-info-item :name "klev320r") + (new 'static 'speech-info-item :name "klev323r") + (new 'static 'speech-info-item :name "klev262r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 11 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "klev101r") + (new 'static 'speech-info-item :name "klev103r") + (new 'static 'speech-info-item :name "klev104r") + (new 'static 'speech-info-item :name "klev105r") + (new 'static 'speech-info-item :name "klev106r") + (new 'static 'speech-info-item :name "klev107r") + (new 'static 'speech-info-item :name "klev108r") + (new 'static 'speech-info-item :name "klev109r") + (new 'static 'speech-info-item :name "klev110r") + (new 'static 'speech-info-item :name "klev111r") + (new 'static 'speech-info-item :name "klev113r") + (new 'static 'speech-info-item :name "klev114r") + (new 'static 'speech-info-item :name "klev115r") + (new 'static 'speech-info-item :name "klev116r") + (new 'static 'speech-info-item :name "klev117r") + (new 'static 'speech-info-item :name "klev118r") + (new 'static 'speech-info-item :name "klev119r") + (new 'static 'speech-info-item :name "klev120r") + (new 'static 'speech-info-item :name "klev121r") + (new 'static 'speech-info-item :name "klev122r") + (new 'static 'speech-info-item :name "klev123r") + (new 'static 'speech-info-item :name "klev125r") + (new 'static 'speech-info-item :name "klev126r") + (new 'static 'speech-info-item :name "klev127r") + (new 'static 'speech-info-item :name "klev129r") + (new 'static 'speech-info-item :name "klev130r") + (new 'static 'speech-info-item :name "klev131r") + (new 'static 'speech-info-item :name "klev132r") + (new 'static 'speech-info-item :name "klev133r") + (new 'static 'speech-info-item :name "klev277r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-mizo_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-mizo_REF.gc new file mode 100644 index 0000000000..a94bcd9a8f --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-mizo_REF.gc @@ -0,0 +1,94 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 12 speeches 22) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo101r") + (new 'static 'speech-info-item :name "mizo102r") + (new 'static 'speech-info-item :name "mizo119r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 12 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo181r") + (new 'static 'speech-info-item :name "mizo182r") + (new 'static 'speech-info-item :name "mizo184r") + (new 'static 'speech-info-item :name "mizo187r") + (new 'static 'speech-info-item :name "mizo188r") + (new 'static 'speech-info-item :name "mizo189r") + (new 'static 'speech-info-item :name "mizo190r") + (new 'static 'speech-info-item :name "mizo191r") + (new 'static 'speech-info-item :name "mizo192r") + (new 'static 'speech-info-item :name "mizo193r") + (new 'static 'speech-info-item :name "mizo194r") + (new 'static 'speech-info-item :name "mizo183r") + (new 'static 'speech-info-item :name "mizo185r") + (new 'static 'speech-info-item :name "mizo186r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 12 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo209r") + (new 'static 'speech-info-item :name "mizo210r") + (new 'static 'speech-info-item :name "mizo213r") + (new 'static 'speech-info-item :name "mizo214r") + (new 'static 'speech-info-item :name "mizo215r") + (new 'static 'speech-info-item :name "mizo216r") + (new 'static 'speech-info-item :name "mizo217r") + (new 'static 'speech-info-item :name "mizo218r") + (new 'static 'speech-info-item :name "mizo228r") + (new 'static 'speech-info-item :name "mizo229r") + (new 'static 'speech-info-item :name "mizo230r") + (new 'static 'speech-info-item :name "mizo231r") + (new 'static 'speech-info-item :name "mizo232r") + (new 'static 'speech-info-item :name "mizo233r") + (new 'static 'speech-info-item :name "mizo234r") + (new 'static 'speech-info-item :name "mizo235r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 12 speeches 24) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "mizo303r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 12 speeches 28) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo266r") + (new 'static 'speech-info-item :name "mizo268r") + (new 'static 'speech-info-item :name "mizo298r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 12 speeches 30) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "mizo102r") + (new 'static 'speech-info-item :name "mizo129r") + (new 'static 'speech-info-item :name "mizo130r") + (new 'static 'speech-info-item :name "mizo131r") + (new 'static 'speech-info-item :name "mizo132r") + (new 'static 'speech-info-item :name "mizo264r") + (new 'static 'speech-info-item :name "mizo296r") + (new 'static 'speech-info-item :name "mizo297r") + ) + :flags (speech-info-flag si0) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-osmo_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-osmo_REF.gc new file mode 100644 index 0000000000..70e3ba5211 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-osmo_REF.gc @@ -0,0 +1,343 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm150r") + (new 'static 'speech-info-item :name "osm159r") + (new 'static 'speech-info-item :name "osm163r") + (new 'static 'speech-info-item :name "osm217r") + (new 'static 'speech-info-item :name "osm224r") + (new 'static 'speech-info-item :name "osm271r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm101r") + (new 'static 'speech-info-item :name "osm102r") + (new 'static 'speech-info-item :name "osm103r") + (new 'static 'speech-info-item :name "osm104r") + (new 'static 'speech-info-item :name "osm105r") + (new 'static 'speech-info-item :name "osm106r") + (new 'static 'speech-info-item :name "osm107r") + (new 'static 'speech-info-item :name "osm108r") + (new 'static 'speech-info-item :name "osm109r") + (new 'static 'speech-info-item :name "osm110r") + (new 'static 'speech-info-item :name "osm111r") + (new 'static 'speech-info-item :name "osm112r") + (new 'static 'speech-info-item :name "osm113r") + (new 'static 'speech-info-item :name "osm114r") + (new 'static 'speech-info-item :name "osm115r") + (new 'static 'speech-info-item :name "osm116r") + (new 'static 'speech-info-item :name "osm117r") + (new 'static 'speech-info-item :name "osm118r") + (new 'static 'speech-info-item :name "osm119r") + (new 'static 'speech-info-item :name "osm120r") + (new 'static 'speech-info-item :name "osm121r") + (new 'static 'speech-info-item :name "osm122r") + (new 'static 'speech-info-item :name "osm123r") + (new 'static 'speech-info-item :name "osm124r") + (new 'static 'speech-info-item :name "osm125r") + (new 'static 'speech-info-item :name "osm126r") + (new 'static 'speech-info-item :name "osm127r") + (new 'static 'speech-info-item :name "osm128r") + (new 'static 'speech-info-item :name "osm129r") + (new 'static 'speech-info-item :name "osm130r") + (new 'static 'speech-info-item :name "osm131r") + (new 'static 'speech-info-item :name "osm132r") + (new 'static 'speech-info-item :name "osm133r") + (new 'static 'speech-info-item :name "osm134r") + (new 'static 'speech-info-item :name "osm135r") + (new 'static 'speech-info-item :name "osm136r") + (new 'static 'speech-info-item :name "osm137r") + (new 'static 'speech-info-item :name "osm138r") + (new 'static 'speech-info-item :name "osm139r") + (new 'static 'speech-info-item :name "osm140r") + (new 'static 'speech-info-item :name "osm141r") + (new 'static 'speech-info-item :name "osm263r") + (new 'static 'speech-info-item :name "osm218r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm101r") + (new 'static 'speech-info-item :name "osm102r") + (new 'static 'speech-info-item :name "osm103r") + (new 'static 'speech-info-item :name "osm106r") + (new 'static 'speech-info-item :name "osm107r") + (new 'static 'speech-info-item :name "osm108r") + (new 'static 'speech-info-item :name "osm109r") + (new 'static 'speech-info-item :name "osm110r") + (new 'static 'speech-info-item :name "osm112r") + (new 'static 'speech-info-item :name "osm113r") + (new 'static 'speech-info-item :name "osm115r") + (new 'static 'speech-info-item :name "osm116r") + (new 'static 'speech-info-item :name "osm117r") + (new 'static 'speech-info-item :name "osm118r") + (new 'static 'speech-info-item :name "osm120r") + (new 'static 'speech-info-item :name "osm121r") + (new 'static 'speech-info-item :name "osm122r") + (new 'static 'speech-info-item :name "osm123r") + (new 'static 'speech-info-item :name "osm124r") + (new 'static 'speech-info-item :name "osm125r") + (new 'static 'speech-info-item :name "osm126r") + (new 'static 'speech-info-item :name "osm127r") + (new 'static 'speech-info-item :name "osm128r") + (new 'static 'speech-info-item :name "osm129r") + (new 'static 'speech-info-item :name "osm130r") + (new 'static 'speech-info-item :name "osm131r") + (new 'static 'speech-info-item :name "osm132r") + (new 'static 'speech-info-item :name "osm133r") + (new 'static 'speech-info-item :name "osm134r") + (new 'static 'speech-info-item :name "osm135r") + (new 'static 'speech-info-item :name "osm136r") + (new 'static 'speech-info-item :name "osm137r") + (new 'static 'speech-info-item :name "osm139r") + (new 'static 'speech-info-item :name "osm140r") + (new 'static 'speech-info-item :name "osm141r") + (new 'static 'speech-info-item :name "osm263r") + (new 'static 'speech-info-item :name "osm218r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm142r") + (new 'static 'speech-info-item :name "osm143r") + (new 'static 'speech-info-item :name "osm144r") + (new 'static 'speech-info-item :name "osm145r") + (new 'static 'speech-info-item :name "osm146r") + (new 'static 'speech-info-item :name "osm147r") + (new 'static 'speech-info-item :name "osm148r") + (new 'static 'speech-info-item :name "osm149r") + (new 'static 'speech-info-item :name "osm151r") + (new 'static 'speech-info-item :name "osm152r") + (new 'static 'speech-info-item :name "osm267r") + (new 'static 'speech-info-item :name "osm219r") + (new 'static 'speech-info-item :name "osm220r") + (new 'static 'speech-info-item :name "osm226r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm153r") + (new 'static 'speech-info-item :name "osm154r") + (new 'static 'speech-info-item :name "osm155r") + (new 'static 'speech-info-item :name "osm156r") + (new 'static 'speech-info-item :name "osm157r") + (new 'static 'speech-info-item :name "osm158r") + (new 'static 'speech-info-item :name "osm160r") + (new 'static 'speech-info-item :name "osm161r") + (new 'static 'speech-info-item :name "osm162r") + (new 'static 'speech-info-item :name "osm164r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm166r") + (new 'static 'speech-info-item :name "osm167r") + (new 'static 'speech-info-item :name "osm168r") + (new 'static 'speech-info-item :name "osm169r") + (new 'static 'speech-info-item :name "osm170r") + (new 'static 'speech-info-item :name "osm171r") + (new 'static 'speech-info-item :name "osm172r") + (new 'static 'speech-info-item :name "osm173r") + (new 'static 'speech-info-item :name "osm174r") + (new 'static 'speech-info-item :name "osm175r") + (new 'static 'speech-info-item :name "osm176r") + (new 'static 'speech-info-item :name "osm177r") + (new 'static 'speech-info-item :name "osm178r") + (new 'static 'speech-info-item :name "osm179r") + (new 'static 'speech-info-item :name "osm180r") + (new 'static 'speech-info-item :name "osm181r") + (new 'static 'speech-info-item :name "osm182r") + (new 'static 'speech-info-item :name "osm183r") + (new 'static 'speech-info-item :name "osm187r") + (new 'static 'speech-info-item :name "osm188r") + (new 'static 'speech-info-item :name "osm189r") + (new 'static 'speech-info-item :name "osm190r") + (new 'static 'speech-info-item :name "osm193r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm194r") + (new 'static 'speech-info-item :name "osm195r") + (new 'static 'speech-info-item :name "osm196r") + (new 'static 'speech-info-item :name "osm197r") + (new 'static 'speech-info-item :name "osm198r") + (new 'static 'speech-info-item :name "osm199r") + (new 'static 'speech-info-item :name "osm200r") + (new 'static 'speech-info-item :name "osm201r") + (new 'static 'speech-info-item :name "osm202r") + (new 'static 'speech-info-item :name "osm203r") + (new 'static 'speech-info-item :name "osm204r") + (new 'static 'speech-info-item :name "osm205r") + (new 'static 'speech-info-item :name "osm206r") + (new 'static 'speech-info-item :name "osm207r") + (new 'static 'speech-info-item :name "osm208r") + (new 'static 'speech-info-item :name "osm209r") + (new 'static 'speech-info-item :name "osm210r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm211r") + (new 'static 'speech-info-item :name "osm212r") + (new 'static 'speech-info-item :name "osm213r") + (new 'static 'speech-info-item :name "osm214r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "osm227r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm228r") + (new 'static 'speech-info-item :name "osm229r") + (new 'static 'speech-info-item :name "osm230r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm231r") + (new 'static 'speech-info-item :name "osm232r") + (new 'static 'speech-info-item :name "osm233r") + (new 'static 'speech-info-item :name "osm234r") + (new 'static 'speech-info-item :name "osm235r") + (new 'static 'speech-info-item :name "osm236r") + (new 'static 'speech-info-item :name "osm237r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm238r") + (new 'static 'speech-info-item :name "osm239r") + (new 'static 'speech-info-item :name "osm240r") + (new 'static 'speech-info-item :name "osm241r") + (new 'static 'speech-info-item :name "osm242r") + (new 'static 'speech-info-item :name "osm243r") + (new 'static 'speech-info-item :name "osm244r") + (new 'static 'speech-info-item :name "osm245r") + (new 'static 'speech-info-item :name "osm246r") + (new 'static 'speech-info-item :name "osm247r") + (new 'static 'speech-info-item :name "osm248r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm238r") + (new 'static 'speech-info-item :name "osm239r") + (new 'static 'speech-info-item :name "osm240r") + (new 'static 'speech-info-item :name "osm241r") + (new 'static 'speech-info-item :name "osm242r") + (new 'static 'speech-info-item :name "osm243r") + (new 'static 'speech-info-item :name "osm244r") + (new 'static 'speech-info-item :name "osm245r") + (new 'static 'speech-info-item :name "osm246r") + (new 'static 'speech-info-item :name "osm247r") + (new 'static 'speech-info-item :name "osm248r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm249r") + (new 'static 'speech-info-item :name "osm250r") + (new 'static 'speech-info-item :name "osm251r") + (new 'static 'speech-info-item :name "osm252r") + (new 'static 'speech-info-item :name "osm253r") + (new 'static 'speech-info-item :name "osm254r") + (new 'static 'speech-info-item :name "osm255r") + (new 'static 'speech-info-item :name "osm256r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm249r") + (new 'static 'speech-info-item :name "osm250r") + (new 'static 'speech-info-item :name "osm251r") + (new 'static 'speech-info-item :name "osm252r") + (new 'static 'speech-info-item :name "osm253r") + (new 'static 'speech-info-item :name "osm254r") + (new 'static 'speech-info-item :name "osm255r") + (new 'static 'speech-info-item :name "osm256r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm275r") + (new 'static 'speech-info-item :name "osm278r") + (new 'static 'speech-info-item :name "osm279r") + (new 'static 'speech-info-item :name "osm281r") + (new 'static 'speech-info-item :name "osm282r") + (new 'static 'speech-info-item :name "osm283r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "osm222r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 21 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "osm215r") + (new 'static 'speech-info-item :name "osm216r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-pecker_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-pecker_REF.gc new file mode 100644 index 0000000000..72454ecd89 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-pecker_REF.gc @@ -0,0 +1,705 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec102") + (new 'static 'speech-info-item :name "pec111") + (new 'static 'speech-info-item :name "pec113") + (new 'static 'speech-info-item :name "pec115") + (new 'static 'speech-info-item :name "pec119") + (new 'static 'speech-info-item :name "pec121") + (new 'static 'speech-info-item :name "pec122") + (new 'static 'speech-info-item :name "pec128") + (new 'static 'speech-info-item :name "pec129") + (new 'static 'speech-info-item :name "pec130") + (new 'static 'speech-info-item :name "pec133") + (new 'static 'speech-info-item :name "pec134") + (new 'static 'speech-info-item :name "pec135") + (new 'static 'speech-info-item :name "pec137") + (new 'static 'speech-info-item :name "pec142") + (new 'static 'speech-info-item :name "pec144") + (new 'static 'speech-info-item :name "pec158") + (new 'static 'speech-info-item :name "pec161") + (new 'static 'speech-info-item :name "pec162") + (new 'static 'speech-info-item :name "pec165") + (new 'static 'speech-info-item :name "pec167") + (new 'static 'speech-info-item :name "pec168") + (new 'static 'speech-info-item :name "pec169") + (new 'static 'speech-info-item :name "pec171") + (new 'static 'speech-info-item :name "pec174") + (new 'static 'speech-info-item :name "pec177") + (new 'static 'speech-info-item :name "pec180") + (new 'static 'speech-info-item :name "pec185") + (new 'static 'speech-info-item :name "pec186") + (new 'static 'speech-info-item :name "pec194") + (new 'static 'speech-info-item :name "pec195") + (new 'static 'speech-info-item :name "pec196") + (new 'static 'speech-info-item :name "pec197") + (new 'static 'speech-info-item :name "pec198") + (new 'static 'speech-info-item :name "pec200") + (new 'static 'speech-info-item :name "pec201") + (new 'static 'speech-info-item :name "pec202") + (new 'static 'speech-info-item :name "pec203") + (new 'static 'speech-info-item :name "pec204") + (new 'static 'speech-info-item :name "pec205") + (new 'static 'speech-info-item :name "pec206") + (new 'static 'speech-info-item :name "pec207") + (new 'static 'speech-info-item :name "pec209") + (new 'static 'speech-info-item :name "pec210") + (new 'static 'speech-info-item :name "pec211") + (new 'static 'speech-info-item :name "pec212") + (new 'static 'speech-info-item :name "pec213") + (new 'static 'speech-info-item :name "pec214") + (new 'static 'speech-info-item :name "pec215") + (new 'static 'speech-info-item :name "pec216") + (new 'static 'speech-info-item :name "pec217") + (new 'static 'speech-info-item :name "pec218") + (new 'static 'speech-info-item :name "pec219") + (new 'static 'speech-info-item :name "pec220") + (new 'static 'speech-info-item :name "pec221") + (new 'static 'speech-info-item :name "pec222") + (new 'static 'speech-info-item :name "pec223") + (new 'static 'speech-info-item :name "pec224") + (new 'static 'speech-info-item :name "pec225") + (new 'static 'speech-info-item :name "pec229") + (new 'static 'speech-info-item :name "pec232") + (new 'static 'speech-info-item :name "pec235") + (new 'static 'speech-info-item :name "pec236") + (new 'static 'speech-info-item :name "pec239") + (new 'static 'speech-info-item :name "pec240") + (new 'static 'speech-info-item :name "pec241") + (new 'static 'speech-info-item :name "pec242") + (new 'static 'speech-info-item :name "pec243") + (new 'static 'speech-info-item :name "pec244") + (new 'static 'speech-info-item :name "pec245") + (new 'static 'speech-info-item :name "pec246") + (new 'static 'speech-info-item :name "pec247") + (new 'static 'speech-info-item :name "pec252") + (new 'static 'speech-info-item :name "pec253") + (new 'static 'speech-info-item :name "pec254") + (new 'static 'speech-info-item :name "pec256") + (new 'static 'speech-info-item :name "pec258") + (new 'static 'speech-info-item :name "pec259") + (new 'static 'speech-info-item :name "pec260") + (new 'static 'speech-info-item :name "pec261") + (new 'static 'speech-info-item :name "pec262") + (new 'static 'speech-info-item :name "pec264") + (new 'static 'speech-info-item :name "pec269") + (new 'static 'speech-info-item :name "pec272") + (new 'static 'speech-info-item :name "pec274") + (new 'static 'speech-info-item :name "pec277") + (new 'static 'speech-info-item :name "pec278") + (new 'static 'speech-info-item :name "pec282") + (new 'static 'speech-info-item :name "pec283") + (new 'static 'speech-info-item :name "pec285") + (new 'static 'speech-info-item :name "pec288") + (new 'static 'speech-info-item :name "pec289") + (new 'static 'speech-info-item :name "pec290") + (new 'static 'speech-info-item :name "pec291") + (new 'static 'speech-info-item :name "pec292") + (new 'static 'speech-info-item :name "pec293") + (new 'static 'speech-info-item :name "pec294") + (new 'static 'speech-info-item :name "pec295") + (new 'static 'speech-info-item :name "pec296") + (new 'static 'speech-info-item :name "pec298") + (new 'static 'speech-info-item :name "pec299") + (new 'static 'speech-info-item :name "pec302") + (new 'static 'speech-info-item :name "pec303") + (new 'static 'speech-info-item :name "pec304") + (new 'static 'speech-info-item :name "pec305") + (new 'static 'speech-info-item :name "pec306") + (new 'static 'speech-info-item :name "pec307") + (new 'static 'speech-info-item :name "pec309") + (new 'static 'speech-info-item :name "pec310") + (new 'static 'speech-info-item :name "pec311") + (new 'static 'speech-info-item :name "pec312") + (new 'static 'speech-info-item :name "pec314") + (new 'static 'speech-info-item :name "pec317") + (new 'static 'speech-info-item :name "pec319") + (new 'static 'speech-info-item :name "pec320") + (new 'static 'speech-info-item :name "pec321") + (new 'static 'speech-info-item :name "pec322") + (new 'static 'speech-info-item :name "pec324") + (new 'static 'speech-info-item :name "pec371r") + (new 'static 'speech-info-item :name "pec372r") + (new 'static 'speech-info-item :name "pec376r") + (new 'static 'speech-info-item :name "pec392r") + (new 'static 'speech-info-item :name "pec404") + (new 'static 'speech-info-item :name "pec405") + (new 'static 'speech-info-item :name "pec406") + (new 'static 'speech-info-item :name "pec489") + (new 'static 'speech-info-item :name "pec492") + (new 'static 'speech-info-item :name "pec493") + (new 'static 'speech-info-item :name "pec494") + (new 'static 'speech-info-item :name "pec495") + (new 'static 'speech-info-item :name "pec496") + (new 'static 'speech-info-item :name "pec497") + (new 'static 'speech-info-item :name "pec498") + (new 'static 'speech-info-item :name "pec499") + (new 'static 'speech-info-item :name "pec500") + (new 'static 'speech-info-item :name "pec501") + (new 'static 'speech-info-item :name "pec506r") + (new 'static 'speech-info-item :name "pec508") + (new 'static 'speech-info-item :name "pec509") + (new 'static 'speech-info-item :name "pec554") + (new 'static 'speech-info-item :name "pec555") + (new 'static 'speech-info-item :name "pec556") + (new 'static 'speech-info-item :name "pec557") + (new 'static 'speech-info-item :name "pec558") + (new 'static 'speech-info-item :name "pec559") + (new 'static 'speech-info-item :name "pec560") + (new 'static 'speech-info-item :name "pec561") + (new 'static 'speech-info-item :name "pec562") + (new 'static 'speech-info-item :name "pec563") + (new 'static 'speech-info-item :name "pec565") + (new 'static 'speech-info-item :name "pec566") + (new 'static 'speech-info-item :name "pec567") + (new 'static 'speech-info-item :name "pec568") + (new 'static 'speech-info-item :name "pec569") + (new 'static 'speech-info-item :name "pec570") + (new 'static 'speech-info-item :name "pec571") + (new 'static 'speech-info-item :name "pec572") + (new 'static 'speech-info-item :name "pec573") + (new 'static 'speech-info-item :name "pec574") + (new 'static 'speech-info-item :name "pec575") + (new 'static 'speech-info-item :name "pec159") + (new 'static 'speech-info-item :name "pec164") + (new 'static 'speech-info-item :name "pec166") + (new 'static 'speech-info-item :name "pec188") + (new 'static 'speech-info-item :name "pec193") + (new 'static 'speech-info-item :name "pec226") + (new 'static 'speech-info-item :name "pec251") + (new 'static 'speech-info-item :name "pec300") + (new 'static 'speech-info-item :name "pec315") + (new 'static 'speech-info-item :name "pec318") + (new 'static 'speech-info-item :name "pec323") + (new 'static 'speech-info-item :name "pec418r") + (new 'static 'speech-info-item :name "pec442r") + (new 'static 'speech-info-item :name "pec443r") + (new 'static 'speech-info-item :name "pec444r") + (new 'static 'speech-info-item :name "pec488r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 17) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec101") + (new 'static 'speech-info-item :name "pec103") + (new 'static 'speech-info-item :name "pec104") + (new 'static 'speech-info-item :name "pec105") + (new 'static 'speech-info-item :name "pec106") + (new 'static 'speech-info-item :name "pec107") + (new 'static 'speech-info-item :name "pec108") + (new 'static 'speech-info-item :name "pec109") + (new 'static 'speech-info-item :name "pec110") + (new 'static 'speech-info-item :name "pec112") + (new 'static 'speech-info-item :name "pec114") + (new 'static 'speech-info-item :name "pec117") + (new 'static 'speech-info-item :name "pec118") + (new 'static 'speech-info-item :name "pec136") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 18) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec116") + (new 'static 'speech-info-item :name "pec120") + (new 'static 'speech-info-item :name "pec123") + (new 'static 'speech-info-item :name "pec124") + (new 'static 'speech-info-item :name "pec125") + (new 'static 'speech-info-item :name "pec126") + (new 'static 'speech-info-item :name "pec127") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 19) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec263") + (new 'static 'speech-info-item :name "pec265") + (new 'static 'speech-info-item :name "pec266") + (new 'static 'speech-info-item :name "pec267") + (new 'static 'speech-info-item :name "pec268") + (new 'static 'speech-info-item :name "pec270") + (new 'static 'speech-info-item :name "pec271") + (new 'static 'speech-info-item :name "pec273") + (new 'static 'speech-info-item :name "pec275") + (new 'static 'speech-info-item :name "pec276") + (new 'static 'speech-info-item :name "pec279") + (new 'static 'speech-info-item :name "pec280") + (new 'static 'speech-info-item :name "pec281") + (new 'static 'speech-info-item :name "pec284") + (new 'static 'speech-info-item :name "pec286") + (new 'static 'speech-info-item :name "pec287") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 20) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec139") + (new 'static 'speech-info-item :name "pec140") + (new 'static 'speech-info-item :name "pec141") + (new 'static 'speech-info-item :name "pec143") + (new 'static 'speech-info-item :name "pec145") + (new 'static 'speech-info-item :name "pec147") + (new 'static 'speech-info-item :name "pec149") + (new 'static 'speech-info-item :name "pec151") + (new 'static 'speech-info-item :name "pec156") + (new 'static 'speech-info-item :name "pec157") + (new 'static 'speech-info-item :name "pec160") + (new 'static 'speech-info-item :name "pec163") + (new 'static 'speech-info-item :name "pec170") + (new 'static 'speech-info-item :name "pec172") + (new 'static 'speech-info-item :name "pec173") + (new 'static 'speech-info-item :name "pec175") + (new 'static 'speech-info-item :name "pec176") + (new 'static 'speech-info-item :name "pec178") + (new 'static 'speech-info-item :name "pec181") + (new 'static 'speech-info-item :name "pec187") + (new 'static 'speech-info-item :name "pec189") + (new 'static 'speech-info-item :name "pec190") + (new 'static 'speech-info-item :name "pec191") + (new 'static 'speech-info-item :name "pec192") + (new 'static 'speech-info-item :name "pec199") + (new 'static 'speech-info-item :name "pec227") + (new 'static 'speech-info-item :name "pec228") + (new 'static 'speech-info-item :name "pec230") + (new 'static 'speech-info-item :name "pec231") + (new 'static 'speech-info-item :name "pec234") + (new 'static 'speech-info-item :name "pec237") + (new 'static 'speech-info-item :name "pec238") + (new 'static 'speech-info-item :name "pec249") + (new 'static 'speech-info-item :name "pec250") + (new 'static 'speech-info-item :name "pec255") + (new 'static 'speech-info-item :name "pec297") + (new 'static 'speech-info-item :name "pec301") + (new 'static 'speech-info-item :name "pec308") + (new 'static 'speech-info-item :name "pec131") + (new 'static 'speech-info-item :name "pec132") + (new 'static 'speech-info-item :name "pec138") + (new 'static 'speech-info-item :name "pec146") + (new 'static 'speech-info-item :name "pec148") + (new 'static 'speech-info-item :name "pec150") + (new 'static 'speech-info-item :name "pec152" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec153" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec154" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec155" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec179" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec182" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec183") + (new 'static 'speech-info-item :name "pec208") + (new 'static 'speech-info-item :name "pec257") + (new 'static 'speech-info-item :name "pec233" :flags (speech-info-flag si1)) + (new 'static 'speech-info-item :name "pec313") + (new 'static 'speech-info-item :name "pec316") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec325r") + (new 'static 'speech-info-item :name "pec326r") + (new 'static 'speech-info-item :name "pec327r") + (new 'static 'speech-info-item :name "pec328r") + (new 'static 'speech-info-item :name "pec329r") + (new 'static 'speech-info-item :name "pec330r") + (new 'static 'speech-info-item :name "pec331r") + (new 'static 'speech-info-item :name "pec332r") + (new 'static 'speech-info-item :name "pec333r") + (new 'static 'speech-info-item :name "pec334r") + (new 'static 'speech-info-item :name "pec335r") + (new 'static 'speech-info-item :name "pec336r") + (new 'static 'speech-info-item :name "pec337r") + (new 'static 'speech-info-item :name "pec338r") + (new 'static 'speech-info-item :name "pec339r") + (new 'static 'speech-info-item :name "pec340r") + (new 'static 'speech-info-item :name "pec341r") + (new 'static 'speech-info-item :name "pec342r") + (new 'static 'speech-info-item :name "pec343r") + (new 'static 'speech-info-item :name "pec344r") + (new 'static 'speech-info-item :name "pec345r") + (new 'static 'speech-info-item :name "pec346r") + (new 'static 'speech-info-item :name "pec347r") + (new 'static 'speech-info-item :name "pec348r") + (new 'static 'speech-info-item :name "pec349r") + (new 'static 'speech-info-item :name "pec350r") + (new 'static 'speech-info-item :name "pec351r") + (new 'static 'speech-info-item :name "pec352r") + (new 'static 'speech-info-item :name "pec353r") + (new 'static 'speech-info-item :name "pec354r") + (new 'static 'speech-info-item :name "pec355r") + (new 'static 'speech-info-item :name "pec356r") + (new 'static 'speech-info-item :name "pec184r") + (new 'static 'speech-info-item :name "pec564r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec325r") + (new 'static 'speech-info-item :name "pec326r") + (new 'static 'speech-info-item :name "pec327r") + (new 'static 'speech-info-item :name "pec328r") + (new 'static 'speech-info-item :name "pec329r") + (new 'static 'speech-info-item :name "pec330r") + (new 'static 'speech-info-item :name "pec333r") + (new 'static 'speech-info-item :name "pec334r") + (new 'static 'speech-info-item :name "pec335r") + (new 'static 'speech-info-item :name "pec336r") + (new 'static 'speech-info-item :name "pec337r") + (new 'static 'speech-info-item :name "pec338r") + (new 'static 'speech-info-item :name "pec340r") + (new 'static 'speech-info-item :name "pec341r") + (new 'static 'speech-info-item :name "pec342r") + (new 'static 'speech-info-item :name "pec343r") + (new 'static 'speech-info-item :name "pec345r") + (new 'static 'speech-info-item :name "pec346r") + (new 'static 'speech-info-item :name "pec347r") + (new 'static 'speech-info-item :name "pec349r") + (new 'static 'speech-info-item :name "pec350r") + (new 'static 'speech-info-item :name "pec351r") + (new 'static 'speech-info-item :name "pec352r") + (new 'static 'speech-info-item :name "pec353r") + (new 'static 'speech-info-item :name "pec354r") + (new 'static 'speech-info-item :name "pec355r") + (new 'static 'speech-info-item :name "pec356r") + (new 'static 'speech-info-item :name "pec184r") + (new 'static 'speech-info-item :name "pec564r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec357r") + (new 'static 'speech-info-item :name "pec358r") + (new 'static 'speech-info-item :name "pec359r") + (new 'static 'speech-info-item :name "pec360r") + (new 'static 'speech-info-item :name "pec361r") + (new 'static 'speech-info-item :name "pec362r") + (new 'static 'speech-info-item :name "pec363r") + (new 'static 'speech-info-item :name "pec364r") + (new 'static 'speech-info-item :name "pec365r") + (new 'static 'speech-info-item :name "pec366r") + (new 'static 'speech-info-item :name "pec367r") + (new 'static 'speech-info-item :name "pec368r") + (new 'static 'speech-info-item :name "pec369r") + (new 'static 'speech-info-item :name "pec370r") + (new 'static 'speech-info-item :name "pec248r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec373r") + (new 'static 'speech-info-item :name "pec374r") + (new 'static 'speech-info-item :name "pec375r") + (new 'static 'speech-info-item :name "pec377r") + (new 'static 'speech-info-item :name "pec378r") + (new 'static 'speech-info-item :name "pec379r") + (new 'static 'speech-info-item :name "pec380r") + (new 'static 'speech-info-item :name "pec381r") + (new 'static 'speech-info-item :name "pec382r") + (new 'static 'speech-info-item :name "pec383r") + (new 'static 'speech-info-item :name "pec384r") + (new 'static 'speech-info-item :name "pec385r") + (new 'static 'speech-info-item :name "pec386r") + (new 'static 'speech-info-item :name "pec387r") + (new 'static 'speech-info-item :name "pec388r") + (new 'static 'speech-info-item :name "pec389r") + (new 'static 'speech-info-item :name "pec390r") + (new 'static 'speech-info-item :name "pec391r") + (new 'static 'speech-info-item :name "pec393r") + (new 'static 'speech-info-item :name "pec394r") + (new 'static 'speech-info-item :name "pec395r") + (new 'static 'speech-info-item :name "pec396r") + (new 'static 'speech-info-item :name "pec397r") + (new 'static 'speech-info-item :name "pec398r") + (new 'static 'speech-info-item :name "pec399r") + (new 'static 'speech-info-item :name "pec400r") + (new 'static 'speech-info-item :name "pec401r") + (new 'static 'speech-info-item :name "pec402r") + (new 'static 'speech-info-item :name "pec403r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec408r") + (new 'static 'speech-info-item :name "pec409r") + (new 'static 'speech-info-item :name "pec410r") + (new 'static 'speech-info-item :name "pec411r") + (new 'static 'speech-info-item :name "pec412r") + (new 'static 'speech-info-item :name "pec413r") + (new 'static 'speech-info-item :name "pec414r") + (new 'static 'speech-info-item :name "pec415r") + (new 'static 'speech-info-item :name "pec416r") + (new 'static 'speech-info-item :name "pec417r") + (new 'static 'speech-info-item :name "pec419r") + (new 'static 'speech-info-item :name "pec420r") + (new 'static 'speech-info-item :name "pec421r") + (new 'static 'speech-info-item :name "pec422r") + (new 'static 'speech-info-item :name "pec423r") + (new 'static 'speech-info-item :name "pec424r") + (new 'static 'speech-info-item :name "pec425r") + (new 'static 'speech-info-item :name "pec426r") + (new 'static 'speech-info-item :name "pec427r") + (new 'static 'speech-info-item :name "pec428r") + (new 'static 'speech-info-item :name "pec429r") + (new 'static 'speech-info-item :name "pec430r") + (new 'static 'speech-info-item :name "pec431r") + (new 'static 'speech-info-item :name "pec432r") + (new 'static 'speech-info-item :name "pec433r") + (new 'static 'speech-info-item :name "pec434r") + (new 'static 'speech-info-item :name "pec435r") + (new 'static 'speech-info-item :name "pec436r") + (new 'static 'speech-info-item :name "pec437r") + (new 'static 'speech-info-item :name "pec438r") + (new 'static 'speech-info-item :name "pec439r") + (new 'static 'speech-info-item :name "pec440r") + (new 'static 'speech-info-item :name "pec441r") + (new 'static 'speech-info-item :name "pec445r") + (new 'static 'speech-info-item :name "pec490r") + (new 'static 'speech-info-item :name "pec491r") + (new 'static 'speech-info-item :name "pec505r") + (new 'static 'speech-info-item :name "pec507r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec446r") + (new 'static 'speech-info-item :name "pec447r") + (new 'static 'speech-info-item :name "pec448r") + (new 'static 'speech-info-item :name "pec449r") + (new 'static 'speech-info-item :name "pec450r") + (new 'static 'speech-info-item :name "pec451r") + (new 'static 'speech-info-item :name "pec452r") + (new 'static 'speech-info-item :name "pec453r") + (new 'static 'speech-info-item :name "pec454r") + (new 'static 'speech-info-item :name "pec455r") + (new 'static 'speech-info-item :name "pec456r") + (new 'static 'speech-info-item :name "pec457r") + (new 'static 'speech-info-item :name "pec458r") + (new 'static 'speech-info-item :name "pec459r") + (new 'static 'speech-info-item :name "pec460r") + (new 'static 'speech-info-item :name "pec461r") + (new 'static 'speech-info-item :name "pec462r") + (new 'static 'speech-info-item :name "pec463r") + (new 'static 'speech-info-item :name "pec464r") + (new 'static 'speech-info-item :name "pec465r") + (new 'static 'speech-info-item :name "pec466r") + (new 'static 'speech-info-item :name "pec467r") + (new 'static 'speech-info-item :name "pec468r") + (new 'static 'speech-info-item :name "pec469r") + (new 'static 'speech-info-item :name "pec470r") + (new 'static 'speech-info-item :name "pec471r") + (new 'static 'speech-info-item :name "pec472r") + (new 'static 'speech-info-item :name "pec407r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec473r") + (new 'static 'speech-info-item :name "pec474r") + (new 'static 'speech-info-item :name "pec475r") + (new 'static 'speech-info-item :name "pec476r") + (new 'static 'speech-info-item :name "pec477r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "pec510r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec511r") + (new 'static 'speech-info-item :name "pec512r") + (new 'static 'speech-info-item :name "pec513r") + (new 'static 'speech-info-item :name "pec514r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec515r") + (new 'static 'speech-info-item :name "pec516r") + (new 'static 'speech-info-item :name "pec517r") + (new 'static 'speech-info-item :name "pec518r") + (new 'static 'speech-info-item :name "pec519r") + (new 'static 'speech-info-item :name "pec520r") + (new 'static 'speech-info-item :name "pec521r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec522r") + (new 'static 'speech-info-item :name "pec523r") + (new 'static 'speech-info-item :name "pec524r") + (new 'static 'speech-info-item :name "pec525r") + (new 'static 'speech-info-item :name "pec526r") + (new 'static 'speech-info-item :name "pec527r") + (new 'static 'speech-info-item :name "pec528r") + (new 'static 'speech-info-item :name "pec529r") + (new 'static 'speech-info-item :name "pec530r") + (new 'static 'speech-info-item :name "pec531r") + (new 'static 'speech-info-item :name "pec532r") + (new 'static 'speech-info-item :name "pec533r") + (new 'static 'speech-info-item :name "pec534r") + (new 'static 'speech-info-item :name "pec535r") + (new 'static 'speech-info-item :name "pec536r") + (new 'static 'speech-info-item :name "pec537r") + (new 'static 'speech-info-item :name "pec538r") + (new 'static 'speech-info-item :name "pec539r") + (new 'static 'speech-info-item :name "pec540r") + (new 'static 'speech-info-item :name "pec541r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec522r") + (new 'static 'speech-info-item :name "pec523r") + (new 'static 'speech-info-item :name "pec524r") + (new 'static 'speech-info-item :name "pec525r") + (new 'static 'speech-info-item :name "pec526r") + (new 'static 'speech-info-item :name "pec527r") + (new 'static 'speech-info-item :name "pec528r") + (new 'static 'speech-info-item :name "pec529r") + (new 'static 'speech-info-item :name "pec530r") + (new 'static 'speech-info-item :name "pec531r") + (new 'static 'speech-info-item :name "pec532r") + (new 'static 'speech-info-item :name "pec533r") + (new 'static 'speech-info-item :name "pec534r") + (new 'static 'speech-info-item :name "pec535r") + (new 'static 'speech-info-item :name "pec536r") + (new 'static 'speech-info-item :name "pec537r") + (new 'static 'speech-info-item :name "pec538r") + (new 'static 'speech-info-item :name "pec539r") + (new 'static 'speech-info-item :name "pec540r") + (new 'static 'speech-info-item :name "pec541r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec542r") + (new 'static 'speech-info-item :name "pec543r") + (new 'static 'speech-info-item :name "pec544r") + (new 'static 'speech-info-item :name "pec545r") + (new 'static 'speech-info-item :name "pec546r") + (new 'static 'speech-info-item :name "pec547r") + (new 'static 'speech-info-item :name "pec548r") + (new 'static 'speech-info-item :name "pec549r") + (new 'static 'speech-info-item :name "pec550r") + (new 'static 'speech-info-item :name "pec551r") + (new 'static 'speech-info-item :name "pec552r") + (new 'static 'speech-info-item :name "pec553r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec542r") + (new 'static 'speech-info-item :name "pec543r") + (new 'static 'speech-info-item :name "pec544r") + (new 'static 'speech-info-item :name "pec545r") + (new 'static 'speech-info-item :name "pec546r") + (new 'static 'speech-info-item :name "pec547r") + (new 'static 'speech-info-item :name "pec548r") + (new 'static 'speech-info-item :name "pec549r") + (new 'static 'speech-info-item :name "pec550r") + (new 'static 'speech-info-item :name "pec551r") + (new 'static 'speech-info-item :name "pec552r") + (new 'static 'speech-info-item :name "pec553r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec576r") + (new 'static 'speech-info-item :name "pec577r") + (new 'static 'speech-info-item :name "pec578r") + (new 'static 'speech-info-item :name "pec579r") + (new 'static 'speech-info-item :name "pec580r") + (new 'static 'speech-info-item :name "pec581r") + (new 'static 'speech-info-item :name "pec582r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 21) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec502r") + (new 'static 'speech-info-item :name "pec503r") + (new 'static 'speech-info-item :name "pec504r") + ) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 7 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "pec446r") + (new 'static 'speech-info-item :name "pec478r") + (new 'static 'speech-info-item :name "pec479r") + (new 'static 'speech-info-item :name "pec480r") + (new 'static 'speech-info-item :name "pec481r") + (new 'static 'speech-info-item :name "pec482r") + (new 'static 'speech-info-item :name "pec483r") + (new 'static 'speech-info-item :name "pec484r") + (new 'static 'speech-info-item :name "pec485r") + (new 'static 'speech-info-item :name "pec486r") + (new 'static 'speech-info-item :name "pec487r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-ratchet_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-ratchet_REF.gc new file mode 100644 index 0000000000..b01b7b06ef --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-ratchet_REF.gc @@ -0,0 +1,349 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat102r") + (new 'static 'speech-info-item :name "rat106r") + (new 'static 'speech-info-item :name "rat107r") + (new 'static 'speech-info-item :name "rat110r") + (new 'static 'speech-info-item :name "rat115r") + (new 'static 'speech-info-item :name "rat120r") + (new 'static 'speech-info-item :name "rat126r") + (new 'static 'speech-info-item :name "rat141r") + (new 'static 'speech-info-item :name "rat143r") + (new 'static 'speech-info-item :name "rat144r") + (new 'static 'speech-info-item :name "rat159r") + (new 'static 'speech-info-item :name "rat160r") + (new 'static 'speech-info-item :name "rat162r") + (new 'static 'speech-info-item :name "rat163r") + (new 'static 'speech-info-item :name "rat169r") + (new 'static 'speech-info-item :name "rat170r") + (new 'static 'speech-info-item :name "rat171r") + (new 'static 'speech-info-item :name "rat176r") + (new 'static 'speech-info-item :name "rat179r") + (new 'static 'speech-info-item :name "rat200r") + (new 'static 'speech-info-item :name "rat204r") + (new 'static 'speech-info-item :name "rat207r") + (new 'static 'speech-info-item :name "rat208r") + (new 'static 'speech-info-item :name "rat238r") + (new 'static 'speech-info-item :name "rat243r") + (new 'static 'speech-info-item :name "rat244r") + (new 'static 'speech-info-item :name "rat245r") + (new 'static 'speech-info-item :name "rat246r") + (new 'static 'speech-info-item :name "rat247r") + (new 'static 'speech-info-item :name "rat248r") + (new 'static 'speech-info-item :name "rat250r") + (new 'static 'speech-info-item :name "rat252r") + (new 'static 'speech-info-item :name "rat253r") + (new 'static 'speech-info-item :name "rat254r") + (new 'static 'speech-info-item :name "rat256r") + (new 'static 'speech-info-item :name "rat257r") + (new 'static 'speech-info-item :name "rat258r") + (new 'static 'speech-info-item :name "rat261r") + (new 'static 'speech-info-item :name "rat262r") + (new 'static 'speech-info-item :name "rat263r") + (new 'static 'speech-info-item :name "rat264r") + (new 'static 'speech-info-item :name "rat268r") + (new 'static 'speech-info-item :name "rat271r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat108r") + (new 'static 'speech-info-item :name "rat109r") + (new 'static 'speech-info-item :name "rat111r") + (new 'static 'speech-info-item :name "rat112r") + (new 'static 'speech-info-item :name "rat113r") + (new 'static 'speech-info-item :name "rat114r") + (new 'static 'speech-info-item :name "rat116r") + (new 'static 'speech-info-item :name "rat117r") + (new 'static 'speech-info-item :name "rat118r") + (new 'static 'speech-info-item :name "rat119r") + (new 'static 'speech-info-item :name "rat121r") + (new 'static 'speech-info-item :name "rat122r") + (new 'static 'speech-info-item :name "rat123r") + (new 'static 'speech-info-item :name "rat124r") + (new 'static 'speech-info-item :name "rat125r") + (new 'static 'speech-info-item :name "rat127r") + (new 'static 'speech-info-item :name "rat128r") + (new 'static 'speech-info-item :name "rat129r") + (new 'static 'speech-info-item :name "rat130r") + (new 'static 'speech-info-item :name "rat131r") + (new 'static 'speech-info-item :name "rat132r") + (new 'static 'speech-info-item :name "rat133r") + (new 'static 'speech-info-item :name "rat209r") + (new 'static 'speech-info-item :name "rat201r") + (new 'static 'speech-info-item :name "rat101r") + (new 'static 'speech-info-item :name "rat103r") + (new 'static 'speech-info-item :name "rat104r") + (new 'static 'speech-info-item :name "rat105r") + (new 'static 'speech-info-item :name "rat251r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat109r") + (new 'static 'speech-info-item :name "rat112r") + (new 'static 'speech-info-item :name "rat113r") + (new 'static 'speech-info-item :name "rat114r") + (new 'static 'speech-info-item :name "rat116r") + (new 'static 'speech-info-item :name "rat117r") + (new 'static 'speech-info-item :name "rat118r") + (new 'static 'speech-info-item :name "rat119r") + (new 'static 'speech-info-item :name "rat121r") + (new 'static 'speech-info-item :name "rat122r") + (new 'static 'speech-info-item :name "rat123r") + (new 'static 'speech-info-item :name "rat124r") + (new 'static 'speech-info-item :name "rat125r") + (new 'static 'speech-info-item :name "rat127r") + (new 'static 'speech-info-item :name "rat128r") + (new 'static 'speech-info-item :name "rat129r") + (new 'static 'speech-info-item :name "rat130r") + (new 'static 'speech-info-item :name "rat133r") + (new 'static 'speech-info-item :name "rat209r") + (new 'static 'speech-info-item :name "rat201r") + (new 'static 'speech-info-item :name "rat101r") + (new 'static 'speech-info-item :name "rat104r") + (new 'static 'speech-info-item :name "rat251r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat134r") + (new 'static 'speech-info-item :name "rat135r") + (new 'static 'speech-info-item :name "rat136r") + (new 'static 'speech-info-item :name "rat137r") + (new 'static 'speech-info-item :name "rat138r") + (new 'static 'speech-info-item :name "rat139r") + (new 'static 'speech-info-item :name "rat140r") + (new 'static 'speech-info-item :name "rat142r") + (new 'static 'speech-info-item :name "rat148r") + (new 'static 'speech-info-item :name "rat152r") + (new 'static 'speech-info-item :name "rat210r") + (new 'static 'speech-info-item :name "rat203r") + (new 'static 'speech-info-item :name "rat255r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat145r") + (new 'static 'speech-info-item :name "rat146r") + (new 'static 'speech-info-item :name "rat147r") + (new 'static 'speech-info-item :name "rat149r") + (new 'static 'speech-info-item :name "rat150r") + (new 'static 'speech-info-item :name "rat151r") + (new 'static 'speech-info-item :name "rat153r") + (new 'static 'speech-info-item :name "rat154r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat155r") + (new 'static 'speech-info-item :name "rat156r") + (new 'static 'speech-info-item :name "rat157r") + (new 'static 'speech-info-item :name "rat158r") + (new 'static 'speech-info-item :name "rat161r") + (new 'static 'speech-info-item :name "rat164r") + (new 'static 'speech-info-item :name "rat165r") + (new 'static 'speech-info-item :name "rat166r") + (new 'static 'speech-info-item :name "rat167r") + (new 'static 'speech-info-item :name "rat168r") + (new 'static 'speech-info-item :name "rat172r") + (new 'static 'speech-info-item :name "rat173r") + (new 'static 'speech-info-item :name "rat174r") + (new 'static 'speech-info-item :name "rat175r") + (new 'static 'speech-info-item :name "rat177r") + (new 'static 'speech-info-item :name "rat249r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat178r") + (new 'static 'speech-info-item :name "rat180r") + (new 'static 'speech-info-item :name "rat181r") + (new 'static 'speech-info-item :name "rat182r") + (new 'static 'speech-info-item :name "rat183r") + (new 'static 'speech-info-item :name "rat184r") + (new 'static 'speech-info-item :name "rat185r") + (new 'static 'speech-info-item :name "rat186r") + (new 'static 'speech-info-item :name "rat187r") + (new 'static 'speech-info-item :name "rat188r") + (new 'static 'speech-info-item :name "rat189r") + (new 'static 'speech-info-item :name "rat190r") + (new 'static 'speech-info-item :name "rat191r") + (new 'static 'speech-info-item :name "rat192r") + (new 'static 'speech-info-item :name "rat202r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat193r") + (new 'static 'speech-info-item :name "rat194r") + (new 'static 'speech-info-item :name "rat195r") + (new 'static 'speech-info-item :name "rat196r") + (new 'static 'speech-info-item :name "rat197r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "rat211r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat212r") + (new 'static 'speech-info-item :name "rat213r") + (new 'static 'speech-info-item :name "rat214r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat215r") + (new 'static 'speech-info-item :name "rat216r") + (new 'static 'speech-info-item :name "rat217r") + (new 'static 'speech-info-item :name "rat218r") + (new 'static 'speech-info-item :name "rat219r") + (new 'static 'speech-info-item :name "rat220r") + (new 'static 'speech-info-item :name "rat221r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat222r") + (new 'static 'speech-info-item :name "rat223r") + (new 'static 'speech-info-item :name "rat224r") + (new 'static 'speech-info-item :name "rat225r") + (new 'static 'speech-info-item :name "rat226r") + (new 'static 'speech-info-item :name "rat227r") + (new 'static 'speech-info-item :name "rat228r") + (new 'static 'speech-info-item :name "rat229r") + (new 'static 'speech-info-item :name "rat230r") + (new 'static 'speech-info-item :name "rat231r") + (new 'static 'speech-info-item :name "rat232r") + (new 'static 'speech-info-item :name "rat233r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat222r") + (new 'static 'speech-info-item :name "rat223r") + (new 'static 'speech-info-item :name "rat224r") + (new 'static 'speech-info-item :name "rat225r") + (new 'static 'speech-info-item :name "rat226r") + (new 'static 'speech-info-item :name "rat227r") + (new 'static 'speech-info-item :name "rat228r") + (new 'static 'speech-info-item :name "rat229r") + (new 'static 'speech-info-item :name "rat230r") + (new 'static 'speech-info-item :name "rat231r") + (new 'static 'speech-info-item :name "rat232r") + (new 'static 'speech-info-item :name "rat233r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat234r") + (new 'static 'speech-info-item :name "rat235r") + (new 'static 'speech-info-item :name "rat236r") + (new 'static 'speech-info-item :name "rat237r") + (new 'static 'speech-info-item :name "rat239r") + (new 'static 'speech-info-item :name "rat240r") + (new 'static 'speech-info-item :name "rat241r") + (new 'static 'speech-info-item :name "rat242r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat234r") + (new 'static 'speech-info-item :name "rat235r") + (new 'static 'speech-info-item :name "rat236r") + (new 'static 'speech-info-item :name "rat237r") + (new 'static 'speech-info-item :name "rat239r") + (new 'static 'speech-info-item :name "rat240r") + (new 'static 'speech-info-item :name "rat241r") + (new 'static 'speech-info-item :name "rat242r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat265r") + (new 'static 'speech-info-item :name "rat266r") + (new 'static 'speech-info-item :name "rat267r") + (new 'static 'speech-info-item :name "rat269r") + (new 'static 'speech-info-item :name "rat270r") + (new 'static 'speech-info-item :name "rat272r") + (new 'static 'speech-info-item :name "rat273r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 21) (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat205r") + (new 'static 'speech-info-item :name "rat206r") + ) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 17 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rat193r") + (new 'static 'speech-info-item :name "rat198r") + (new 'static 'speech-info-item :name "rat199r") + (new 'static 'speech-info-item :name "rat259r") + (new 'static 'speech-info-item :name "rat260r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-rayn_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-rayn_REF.gc new file mode 100644 index 0000000000..0f8cdf92ce --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-rayn_REF.gc @@ -0,0 +1,287 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn112r") + (new 'static 'speech-info-item :name "rayn113r") + (new 'static 'speech-info-item :name "rayn114r") + (new 'static 'speech-info-item :name "rayn115r") + (new 'static 'speech-info-item :name "rayn148r") + (new 'static 'speech-info-item :name "rayn149r") + (new 'static 'speech-info-item :name "rayn150r") + (new 'static 'speech-info-item :name "rayn151r") + (new 'static 'speech-info-item :name "rayn152r") + (new 'static 'speech-info-item :name "rayn153r") + (new 'static 'speech-info-item :name "rayn155r") + (new 'static 'speech-info-item :name "rayn156r") + (new 'static 'speech-info-item :name "rayn182r") + (new 'static 'speech-info-item :name "rayn183r") + (new 'static 'speech-info-item :name "rayn184r") + (new 'static 'speech-info-item :name "rayn185r") + (new 'static 'speech-info-item :name "rayn186r") + (new 'static 'speech-info-item :name "rayn187r") + (new 'static 'speech-info-item :name "rayn188r") + (new 'static 'speech-info-item :name "rayn189r") + (new 'static 'speech-info-item :name "rayn190r") + (new 'static 'speech-info-item :name "rayn191r") + (new 'static 'speech-info-item :name "rayn192r") + (new 'static 'speech-info-item :name "rayn193r") + (new 'static 'speech-info-item :name "rayn194r") + (new 'static 'speech-info-item :name "rayn195r") + (new 'static 'speech-info-item :name "rayn196r") + (new 'static 'speech-info-item :name "rayn197r") + (new 'static 'speech-info-item :name "rayn198r") + (new 'static 'speech-info-item :name "rayn199r") + (new 'static 'speech-info-item :name "rayn200r") + (new 'static 'speech-info-item :name "rayn201r") + (new 'static 'speech-info-item :name "rayn202r") + (new 'static 'speech-info-item :name "rayn203r") + (new 'static 'speech-info-item :name "rayn204r") + (new 'static 'speech-info-item :name "rayn205r") + (new 'static 'speech-info-item :name "rayn206r") + (new 'static 'speech-info-item :name "rayn207r") + (new 'static 'speech-info-item :name "rayn208r") + (new 'static 'speech-info-item :name "rayn209r") + (new 'static 'speech-info-item :name "rayn211r") + (new 'static 'speech-info-item :name "rayn212r") + (new 'static 'speech-info-item :name "rayn213r") + (new 'static 'speech-info-item :name "rayn214r") + (new 'static 'speech-info-item :name "rayn215r") + (new 'static 'speech-info-item :name "rayn218r") + (new 'static 'speech-info-item :name "rayn219r") + (new 'static 'speech-info-item :name "rayn135r") + (new 'static 'speech-info-item :name "rayn136r") + (new 'static 'speech-info-item :name "rayn146r") + (new 'static 'speech-info-item :name "rayn147r") + (new 'static 'speech-info-item :name "rayn175r") + (new 'static 'speech-info-item :name "rayn176r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "rayn154r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn101r") + (new 'static 'speech-info-item :name "rayn102r") + (new 'static 'speech-info-item :name "rayn103r") + (new 'static 'speech-info-item :name "rayn104r") + (new 'static 'speech-info-item :name "rayn105r") + (new 'static 'speech-info-item :name "rayn106r") + (new 'static 'speech-info-item :name "rayn107r") + (new 'static 'speech-info-item :name "rayn108r") + (new 'static 'speech-info-item :name "rayn109r") + (new 'static 'speech-info-item :name "rayn110r") + (new 'static 'speech-info-item :name "rayn111r") + (new 'static 'speech-info-item :name "rayn126r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn116r") + (new 'static 'speech-info-item :name "rayn117r") + (new 'static 'speech-info-item :name "rayn118r") + (new 'static 'speech-info-item :name "rayn119r") + (new 'static 'speech-info-item :name "rayn120r") + (new 'static 'speech-info-item :name "rayn121r") + (new 'static 'speech-info-item :name "rayn122r") + (new 'static 'speech-info-item :name "rayn123r") + (new 'static 'speech-info-item :name "rayn124r") + (new 'static 'speech-info-item :name "rayn210r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn125r") + (new 'static 'speech-info-item :name "rayn127r") + (new 'static 'speech-info-item :name "rayn128r") + (new 'static 'speech-info-item :name "rayn129r") + (new 'static 'speech-info-item :name "rayn130r") + (new 'static 'speech-info-item :name "rayn131r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn132r") + (new 'static 'speech-info-item :name "rayn133r") + (new 'static 'speech-info-item :name "rayn134r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn137r") + (new 'static 'speech-info-item :name "rayn138r") + (new 'static 'speech-info-item :name "rayn139r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn141r") + (new 'static 'speech-info-item :name "rayn142r") + (new 'static 'speech-info-item :name "rayn143r") + (new 'static 'speech-info-item :name "rayn144r") + (new 'static 'speech-info-item :name "rayn145r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "rayn157r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn158r") + (new 'static 'speech-info-item :name "rayn159r") + (new 'static 'speech-info-item :name "rayn160r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn161r") + (new 'static 'speech-info-item :name "rayn162r") + (new 'static 'speech-info-item :name "rayn163r") + (new 'static 'speech-info-item :name "rayn164r") + (new 'static 'speech-info-item :name "rayn165r") + (new 'static 'speech-info-item :name "rayn166r") + (new 'static 'speech-info-item :name "rayn167r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn168r") + (new 'static 'speech-info-item :name "rayn169r") + (new 'static 'speech-info-item :name "rayn170r") + (new 'static 'speech-info-item :name "rayn171r") + (new 'static 'speech-info-item :name "rayn172r") + (new 'static 'speech-info-item :name "rayn173r") + (new 'static 'speech-info-item :name "rayn174r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn178r") + (new 'static 'speech-info-item :name "rayn180r") + (new 'static 'speech-info-item :name "rayn181r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn168r") + (new 'static 'speech-info-item :name "rayn169r") + (new 'static 'speech-info-item :name "rayn170r") + (new 'static 'speech-info-item :name "rayn171r") + (new 'static 'speech-info-item :name "rayn172r") + (new 'static 'speech-info-item :name "rayn173r") + (new 'static 'speech-info-item :name "rayn174r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn178r") + (new 'static 'speech-info-item :name "rayn180r") + (new 'static 'speech-info-item :name "rayn181r") + (new 'static 'speech-info-item :name "rayn177r") + (new 'static 'speech-info-item :name "rayn179r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn117r") + (new 'static 'speech-info-item :name "rayn118r") + (new 'static 'speech-info-item :name "rayn119r") + (new 'static 'speech-info-item :name "rayn120r") + (new 'static 'speech-info-item :name "rayn121r") + (new 'static 'speech-info-item :name "rayn122r") + (new 'static 'speech-info-item :name "rayn123r") + (new 'static 'speech-info-item :name "rayn125r") + (new 'static 'speech-info-item :name "rayn127r") + (new 'static 'speech-info-item :name "rayn128r") + (new 'static 'speech-info-item :name "rayn129r") + (new 'static 'speech-info-item :name "rayn130r") + (new 'static 'speech-info-item :name "rayn135r") + (new 'static 'speech-info-item :name "rayn154r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn138r") + (new 'static 'speech-info-item :name "rayn140r") + (new 'static 'speech-info-item :name "rayn141r") + (new 'static 'speech-info-item :name "rayn144r") + (new 'static 'speech-info-item :name "rayn146r") + (new 'static 'speech-info-item :name "rayn179r") + (new 'static 'speech-info-item :name "rayn180r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 5 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "rayn101r") + (new 'static 'speech-info-item :name "rayn102r") + (new 'static 'speech-info-item :name "rayn103r") + (new 'static 'speech-info-item :name "rayn104r") + (new 'static 'speech-info-item :name "rayn105r") + (new 'static 'speech-info-item :name "rayn106r") + (new 'static 'speech-info-item :name "rayn108r") + (new 'static 'speech-info-item :name "rayn110r") + (new 'static 'speech-info-item :name "rayn111r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-razer_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-razer_REF.gc new file mode 100644 index 0000000000..838e96196d --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-razer_REF.gc @@ -0,0 +1,520 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz101r") + (new 'static 'speech-info-item :name "raz102r") + (new 'static 'speech-info-item :name "raz104r") + (new 'static 'speech-info-item :name "raz108r") + (new 'static 'speech-info-item :name "raz109r") + (new 'static 'speech-info-item :name "raz110r") + (new 'static 'speech-info-item :name "raz111r") + (new 'static 'speech-info-item :name "raz115r") + (new 'static 'speech-info-item :name "raz116r") + (new 'static 'speech-info-item :name "raz117r") + (new 'static 'speech-info-item :name "raz118r") + (new 'static 'speech-info-item :name "raz120r") + (new 'static 'speech-info-item :name "raz123r") + (new 'static 'speech-info-item :name "raz124r") + (new 'static 'speech-info-item :name "raz126r") + (new 'static 'speech-info-item :name "raz130r") + (new 'static 'speech-info-item :name "raz131r") + (new 'static 'speech-info-item :name "raz143r") + (new 'static 'speech-info-item :name "raz144r") + (new 'static 'speech-info-item :name "raz148r") + (new 'static 'speech-info-item :name "raz149r") + (new 'static 'speech-info-item :name "raz150r") + (new 'static 'speech-info-item :name "raz153r") + (new 'static 'speech-info-item :name "raz157r") + (new 'static 'speech-info-item :name "raz158r") + (new 'static 'speech-info-item :name "raz195r") + (new 'static 'speech-info-item :name "raz199r") + (new 'static 'speech-info-item :name "raz202r") + (new 'static 'speech-info-item :name "raz203r") + (new 'static 'speech-info-item :name "raz204r") + (new 'static 'speech-info-item :name "raz205r") + (new 'static 'speech-info-item :name "raz220r") + (new 'static 'speech-info-item :name "raz293r") + (new 'static 'speech-info-item :name "raz295r") + (new 'static 'speech-info-item :name "raz300r") + (new 'static 'speech-info-item :name "raz301r") + (new 'static 'speech-info-item :name "raz305r") + (new 'static 'speech-info-item :name "raz306r") + (new 'static 'speech-info-item :name "raz307r") + (new 'static 'speech-info-item :name "raz308r") + (new 'static 'speech-info-item :name "raz350r") + (new 'static 'speech-info-item :name "raz351r") + (new 'static 'speech-info-item :name "raz352r") + (new 'static 'speech-info-item :name "raz353r") + (new 'static 'speech-info-item :name "raz355r") + (new 'static 'speech-info-item :name "raz356r") + (new 'static 'speech-info-item :name "raz357r") + (new 'static 'speech-info-item :name "raz358r") + (new 'static 'speech-info-item :name "raz359r") + (new 'static 'speech-info-item :name "raz360r") + (new 'static 'speech-info-item :name "raz362r") + (new 'static 'speech-info-item :name "raz363r") + (new 'static 'speech-info-item :name "raz364r") + (new 'static 'speech-info-item :name "raz365r") + (new 'static 'speech-info-item :name "raz366r") + (new 'static 'speech-info-item :name "raz368r") + (new 'static 'speech-info-item :name "raz174r") + (new 'static 'speech-info-item :name "raz177r") + (new 'static 'speech-info-item :name "raz182r") + (new 'static 'speech-info-item :name "raz190r") + (new 'static 'speech-info-item :name "raz194r") + (new 'static 'speech-info-item :name "raz103r") + (new 'static 'speech-info-item :name "raz146r") + (new 'static 'speech-info-item :name "raz197r") + (new 'static 'speech-info-item :name "raz212r") + (new 'static 'speech-info-item :name "raz238r") + (new 'static 'speech-info-item :name "raz245r") + (new 'static 'speech-info-item :name "raz246r") + (new 'static 'speech-info-item :name "raz247r") + (new 'static 'speech-info-item :name "raz255r") + (new 'static 'speech-info-item :name "raz256r") + (new 'static 'speech-info-item :name "raz257r") + (new 'static 'speech-info-item :name "raz258r") + (new 'static 'speech-info-item :name "raz259r") + (new 'static 'speech-info-item :name "raz260r") + (new 'static 'speech-info-item :name "raz263r") + (new 'static 'speech-info-item :name "raz264r") + (new 'static 'speech-info-item :name "raz265r") + (new 'static 'speech-info-item :name "raz266r") + (new 'static 'speech-info-item :name "raz267r") + (new 'static 'speech-info-item :name "raz268r") + (new 'static 'speech-info-item :name "raz274r") + (new 'static 'speech-info-item :name "raz275r") + (new 'static 'speech-info-item :name "raz279r") + (new 'static 'speech-info-item :name "raz291r") + (new 'static 'speech-info-item :name "raz292r") + (new 'static 'speech-info-item :name "raz135r") + (new 'static 'speech-info-item :name "raz337r") + (new 'static 'speech-info-item :name "raz339r") + (new 'static 'speech-info-item :name "raz313r") + (new 'static 'speech-info-item :name "raz331r") + (new 'static 'speech-info-item :name "raz333r") + (new 'static 'speech-info-item :name "raz334r") + (new 'static 'speech-info-item :name "raz128r") + (new 'static 'speech-info-item :name "raz129r") + (new 'static 'speech-info-item :name "raz154r") + (new 'static 'speech-info-item :name "raz156r") + (new 'static 'speech-info-item :name "raz348r") + (new 'static 'speech-info-item :name "raz349r") + (new 'static 'speech-info-item :name "raz174r") + (new 'static 'speech-info-item :name "raz185r") + (new 'static 'speech-info-item :name "raz190r") + (new 'static 'speech-info-item :name "raz194r") + (new 'static 'speech-info-item :name "raz103r") + (new 'static 'speech-info-item :name "raz197r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz145r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz147r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz172r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz173r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz175r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz176r") + (new 'static 'speech-info-item :name "raz178r") + (new 'static 'speech-info-item :name "raz179r") + (new 'static 'speech-info-item :name "raz180r") + (new 'static 'speech-info-item :name "raz181r") + (new 'static 'speech-info-item :name "raz183r") + (new 'static 'speech-info-item :name "raz184r") + (new 'static 'speech-info-item :name "raz185r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz186r") + (new 'static 'speech-info-item :name "raz187r") + (new 'static 'speech-info-item :name "raz188r") + (new 'static 'speech-info-item :name "raz189r") + (new 'static 'speech-info-item :name "raz191r") + (new 'static 'speech-info-item :name "raz192r") + (new 'static 'speech-info-item :name "raz193r") + (new 'static 'speech-info-item :name "raz105r") + (new 'static 'speech-info-item :name "raz140r") + (new 'static 'speech-info-item :name "raz141r") + (new 'static 'speech-info-item :name "raz196r") + (new 'static 'speech-info-item :name "raz198r") + (new 'static 'speech-info-item :name "raz200r") + (new 'static 'speech-info-item :name "raz201r") + (new 'static 'speech-info-item :name "raz354r") + (new 'static 'speech-info-item :name "raz361r") + (new 'static 'speech-info-item :name "raz370r") + (new 'static 'speech-info-item :name "raz369r") + (new 'static 'speech-info-item :name "raz226r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz206r") + (new 'static 'speech-info-item :name "raz207r") + (new 'static 'speech-info-item :name "raz208r") + (new 'static 'speech-info-item :name "raz209r") + (new 'static 'speech-info-item :name "raz210r") + (new 'static 'speech-info-item :name "raz211r") + (new 'static 'speech-info-item :name "raz213r") + (new 'static 'speech-info-item :name "raz214r") + (new 'static 'speech-info-item :name "raz215r") + (new 'static 'speech-info-item :name "raz216r") + (new 'static 'speech-info-item :name "raz217r") + (new 'static 'speech-info-item :name "raz218r") + (new 'static 'speech-info-item :name "raz219r") + (new 'static 'speech-info-item :name "raz221r") + (new 'static 'speech-info-item :name "raz227r") + (new 'static 'speech-info-item :name "raz233r") + (new 'static 'speech-info-item :name "raz125r") + (new 'static 'speech-info-item :name "raz139r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz222r") + (new 'static 'speech-info-item :name "raz223r") + (new 'static 'speech-info-item :name "raz224r") + (new 'static 'speech-info-item :name "raz225r") + (new 'static 'speech-info-item :name "raz228r") + (new 'static 'speech-info-item :name "raz229r") + (new 'static 'speech-info-item :name "raz230r") + (new 'static 'speech-info-item :name "raz231r") + (new 'static 'speech-info-item :name "raz232r") + (new 'static 'speech-info-item :name "raz234r") + (new 'static 'speech-info-item :name "raz235r") + (new 'static 'speech-info-item :name "raz106r") + (new 'static 'speech-info-item :name "raz112r") + (new 'static 'speech-info-item :name "raz113r") + (new 'static 'speech-info-item :name "raz119r") + (new 'static 'speech-info-item :name "raz296r") + (new 'static 'speech-info-item :name "raz297r") + (new 'static 'speech-info-item :name "raz298r") + (new 'static 'speech-info-item :name "raz367r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz236r") + (new 'static 'speech-info-item :name "raz237r") + (new 'static 'speech-info-item :name "raz239r") + (new 'static 'speech-info-item :name "raz240r") + (new 'static 'speech-info-item :name "raz241r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz242r") + (new 'static 'speech-info-item :name "raz243r") + (new 'static 'speech-info-item :name "raz244r") + (new 'static 'speech-info-item :name "raz248r") + (new 'static 'speech-info-item :name "raz249r") + (new 'static 'speech-info-item :name "raz250r") + (new 'static 'speech-info-item :name "raz251r") + (new 'static 'speech-info-item :name "raz252r") + (new 'static 'speech-info-item :name "raz253r") + (new 'static 'speech-info-item :name "raz254r") + (new 'static 'speech-info-item :name "raz261r") + (new 'static 'speech-info-item :name "raz262r") + (new 'static 'speech-info-item :name "raz133r") + (new 'static 'speech-info-item :name "raz136r") + (new 'static 'speech-info-item :name "raz302r") + (new 'static 'speech-info-item :name "raz303r") + (new 'static 'speech-info-item :name "raz107r") + (new 'static 'speech-info-item :name "raz114r") + (new 'static 'speech-info-item :name "raz121r") + (new 'static 'speech-info-item :name "raz122r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz269r") + (new 'static 'speech-info-item :name "raz270r") + (new 'static 'speech-info-item :name "raz271r") + (new 'static 'speech-info-item :name "raz272r") + (new 'static 'speech-info-item :name "raz273r") + (new 'static 'speech-info-item :name "raz276r") + (new 'static 'speech-info-item :name "raz277r") + (new 'static 'speech-info-item :name "raz278r") + (new 'static 'speech-info-item :name "raz280r") + (new 'static 'speech-info-item :name "raz281r") + (new 'static 'speech-info-item :name "raz282r") + (new 'static 'speech-info-item :name "raz283r") + (new 'static 'speech-info-item :name "raz284r") + (new 'static 'speech-info-item :name "raz285r") + (new 'static 'speech-info-item :name "raz299r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz286r") + (new 'static 'speech-info-item :name "raz287r") + (new 'static 'speech-info-item :name "raz288r") + (new 'static 'speech-info-item :name "raz289r") + (new 'static 'speech-info-item :name "raz290r") + (new 'static 'speech-info-item :name "raz134r") + (new 'static 'speech-info-item :name "raz137r") + (new 'static 'speech-info-item :name "raz138r") + (new 'static 'speech-info-item :name "raz165r") + (new 'static 'speech-info-item :name "raz166r") + (new 'static 'speech-info-item :name "raz167r") + (new 'static 'speech-info-item :name "raz168r") + (new 'static 'speech-info-item :name "raz169r") + (new 'static 'speech-info-item :name "raz170r") + (new 'static 'speech-info-item :name "raz171r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "raz309r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz310r") + (new 'static 'speech-info-item :name "raz311r") + (new 'static 'speech-info-item :name "raz312r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 11) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz314r") + (new 'static 'speech-info-item :name "raz315r") + (new 'static 'speech-info-item :name "raz316r") + (new 'static 'speech-info-item :name "raz317r") + (new 'static 'speech-info-item :name "raz318r") + (new 'static 'speech-info-item :name "raz319r") + (new 'static 'speech-info-item :name "raz320r") + (new 'static 'speech-info-item :name "raz321r") + (new 'static 'speech-info-item :name "raz322r") + (new 'static 'speech-info-item :name "raz323r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz127r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz324r") + (new 'static 'speech-info-item :name "raz325r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz326r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz327r") + (new 'static 'speech-info-item :name "raz328r") + (new 'static 'speech-info-item :name "raz329r") + (new 'static 'speech-info-item :name "raz330r") + (new 'static 'speech-info-item :name "raz332r") + (new 'static 'speech-info-item :name "raz335r") + (new 'static 'speech-info-item :name "raz151r") + (new 'static 'speech-info-item :name "raz152r") + (new 'static 'speech-info-item :name "raz155r") + (new 'static 'speech-info-item :name "raz159r") + (new 'static 'speech-info-item :name "raz160r") + (new 'static 'speech-info-item :name "raz161r") + (new 'static 'speech-info-item :name "raz162r") + (new 'static 'speech-info-item :name "raz371r") + (new 'static 'speech-info-item :name "raz142r") + (new 'static 'speech-info-item :name "raz132r") + (new 'static 'speech-info-item :name "raz163r") + (new 'static 'speech-info-item :name "raz164r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz336r") + (new 'static 'speech-info-item :name "raz338r") + (new 'static 'speech-info-item :name "raz340r") + (new 'static 'speech-info-item :name "raz341r") + (new 'static 'speech-info-item :name "raz342r") + (new 'static 'speech-info-item :name "raz343r") + (new 'static 'speech-info-item :name "raz344r") + (new 'static 'speech-info-item :name "raz345r") + (new 'static 'speech-info-item :name "raz346r") + (new 'static 'speech-info-item :name "raz347r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz324r") + (new 'static 'speech-info-item :name "raz327r") + (new 'static 'speech-info-item :name "raz328r") + (new 'static 'speech-info-item :name "raz329r") + (new 'static 'speech-info-item :name "raz330r") + (new 'static 'speech-info-item :name "raz332r") + (new 'static 'speech-info-item :name "raz335r") + (new 'static 'speech-info-item :name "raz152r") + (new 'static 'speech-info-item :name "raz155r") + (new 'static 'speech-info-item :name "raz159r") + (new 'static 'speech-info-item :name "raz160r") + (new 'static 'speech-info-item :name "raz161r") + (new 'static 'speech-info-item :name "raz162r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz336r") + (new 'static 'speech-info-item :name "raz338r") + (new 'static 'speech-info-item :name "raz340r") + (new 'static 'speech-info-item :name "raz341r") + (new 'static 'speech-info-item :name "raz342r") + (new 'static 'speech-info-item :name "raz343r") + (new 'static 'speech-info-item :name "raz344r") + (new 'static 'speech-info-item :name "raz345r") + (new 'static 'speech-info-item :name "raz346r") + (new 'static 'speech-info-item :name "raz347r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz372r") + (new 'static 'speech-info-item :name "raz373r") + (new 'static 'speech-info-item :name "raz374r") + (new 'static 'speech-info-item :name "raz375r") + (new 'static 'speech-info-item :name "raz376r") + (new 'static 'speech-info-item :name "raz377r") + (new 'static 'speech-info-item :name "raz378r") + (new 'static 'speech-info-item :name "raz379r") + (new 'static 'speech-info-item :name "raz136r") + (new 'static 'speech-info-item :name "raz139r") + (new 'static 'speech-info-item :name "raz140r") + (new 'static 'speech-info-item :name "raz143r") + (new 'static 'speech-info-item :name "raz144r") + (new 'static 'speech-info-item :name "raz201r") + (new 'static 'speech-info-item :name "raz206r") + (new 'static 'speech-info-item :name "raz207r") + (new 'static 'speech-info-item :name "raz210r") + (new 'static 'speech-info-item :name "raz211r") + (new 'static 'speech-info-item :name "raz212r") + (new 'static 'speech-info-item :name "raz213r") + (new 'static 'speech-info-item :name "raz214r") + (new 'static 'speech-info-item :name "raz215r") + (new 'static 'speech-info-item :name "raz216r") + (new 'static 'speech-info-item :name "raz217r") + (new 'static 'speech-info-item :name "raz218r") + (new 'static 'speech-info-item :name "raz219r") + (new 'static 'speech-info-item :name "raz221r") + (new 'static 'speech-info-item :name "raz223r") + (new 'static 'speech-info-item :name "raz224r") + (new 'static 'speech-info-item :name "raz225r") + (new 'static 'speech-info-item :name "raz227r") + (new 'static 'speech-info-item :name "raz230r") + (new 'static 'speech-info-item :name "raz231r") + (new 'static 'speech-info-item :name "raz232r") + (new 'static 'speech-info-item :name "raz233r") + (new 'static 'speech-info-item :name "raz234r") + (new 'static 'speech-info-item :name "raz238r") + (new 'static 'speech-info-item :name "raz242r") + (new 'static 'speech-info-item :name "raz243r") + (new 'static 'speech-info-item :name "raz261r") + (new 'static 'speech-info-item :name "raz294r") + (new 'static 'speech-info-item :name "raz297r") + (new 'static 'speech-info-item :name "raz298r") + (new 'static 'speech-info-item :name "raz302r") + (new 'static 'speech-info-item :name "raz303r") + (new 'static 'speech-info-item :name "raz304r") + (new 'static 'speech-info-item :name "raz333r") + (new 'static 'speech-info-item :name "raz361r") + (new 'static 'speech-info-item :name "raz362r") + (new 'static 'speech-info-item :name "raz366r") + (new 'static 'speech-info-item :name "raz367r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz134r") + (new 'static 'speech-info-item :name "raz135r") + (new 'static 'speech-info-item :name "raz165r") + (new 'static 'speech-info-item :name "raz200r") + (new 'static 'speech-info-item :name "raz269r") + (new 'static 'speech-info-item :name "raz270r") + (new 'static 'speech-info-item :name "raz272r") + (new 'static 'speech-info-item :name "raz273r") + (new 'static 'speech-info-item :name "raz275r") + (new 'static 'speech-info-item :name "raz276r") + (new 'static 'speech-info-item :name "raz277r") + (new 'static 'speech-info-item :name "raz278r") + (new 'static 'speech-info-item :name "raz279r") + (new 'static 'speech-info-item :name "raz286r") + (new 'static 'speech-info-item :name "raz291r") + (new 'static 'speech-info-item :name "raz292r") + (new 'static 'speech-info-item :name "raz342r") + (new 'static 'speech-info-item :name "raz343r") + (new 'static 'speech-info-item :name "raz344r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 8 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "raz172r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz173r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz175r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz177r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "raz178r") + (new 'static 'speech-info-item :name "raz179r") + (new 'static 'speech-info-item :name "raz181r") + (new 'static 'speech-info-item :name "raz184r") + (new 'static 'speech-info-item :name "raz186r") + (new 'static 'speech-info-item :name "raz188r") + (new 'static 'speech-info-item :name "raz189r") + (new 'static 'speech-info-item :name "raz192r") + (new 'static 'speech-info-item :name "raz193r") + (new 'static 'speech-info-item :name "raz140r") + (new 'static 'speech-info-item :name "raz141r") + (new 'static 'speech-info-item :name "raz196r") + (new 'static 'speech-info-item :name "raz198r") + (new 'static 'speech-info-item :name "raz200r") + (new 'static 'speech-info-item :name "raz201r") + (new 'static 'speech-info-item :name "raz354r") + (new 'static 'speech-info-item :name "raz361r") + (new 'static 'speech-info-item :name "raz370r") + (new 'static 'speech-info-item :name "raz369r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-sig_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-sig_REF.gc new file mode 100644 index 0000000000..7abe210201 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-sig_REF.gc @@ -0,0 +1,397 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig135r") + (new 'static 'speech-info-item :name "sig140r") + (new 'static 'speech-info-item :name "sig143r") + (new 'static 'speech-info-item :name "sig145r") + (new 'static 'speech-info-item :name "sig154r") + (new 'static 'speech-info-item :name "sig155r") + (new 'static 'speech-info-item :name "sig212r") + (new 'static 'speech-info-item :name "sig214r") + (new 'static 'speech-info-item :name "sig215r") + (new 'static 'speech-info-item :name "sig216r") + (new 'static 'speech-info-item :name "sig217r") + (new 'static 'speech-info-item :name "sig219r") + (new 'static 'speech-info-item :name "sig220r") + (new 'static 'speech-info-item :name "sig259r") + (new 'static 'speech-info-item :name "sig260r") + (new 'static 'speech-info-item :name "sig261r") + (new 'static 'speech-info-item :name "sig262r") + (new 'static 'speech-info-item :name "sig263r") + (new 'static 'speech-info-item :name "sig264r") + (new 'static 'speech-info-item :name "sig266r") + (new 'static 'speech-info-item :name "sig267r") + (new 'static 'speech-info-item :name "sig268r") + (new 'static 'speech-info-item :name "sig269r") + (new 'static 'speech-info-item :name "sig270r") + (new 'static 'speech-info-item :name "sig271r") + (new 'static 'speech-info-item :name "sig272r") + (new 'static 'speech-info-item :name "sig273r") + (new 'static 'speech-info-item :name "sig274r") + (new 'static 'speech-info-item :name "sig275r") + (new 'static 'speech-info-item :name "sig276r") + (new 'static 'speech-info-item :name "sig112r") + (new 'static 'speech-info-item :name "sig113r") + (new 'static 'speech-info-item :name "sig130r") + (new 'static 'speech-info-item :name "sig131r") + (new 'static 'speech-info-item :name "sig133r") + (new 'static 'speech-info-item :name "sig136r") + (new 'static 'speech-info-item :name "sig138r") + (new 'static 'speech-info-item :name "sig157r") + (new 'static 'speech-info-item :name "sig165r") + (new 'static 'speech-info-item :name "sig166r") + (new 'static 'speech-info-item :name "sig169r") + (new 'static 'speech-info-item :name "sig170r") + (new 'static 'speech-info-item :name "sig177r") + (new 'static 'speech-info-item :name "sig178r") + (new 'static 'speech-info-item :name "sig181r") + (new 'static 'speech-info-item :name "sig182r") + (new 'static 'speech-info-item :name "sig183r") + (new 'static 'speech-info-item :name "sig184r") + (new 'static 'speech-info-item :name "sig185r") + (new 'static 'speech-info-item :name "sig189r") + (new 'static 'speech-info-item :name "sig195r") + (new 'static 'speech-info-item :name "sig196r") + (new 'static 'speech-info-item :name "sig239r") + (new 'static 'speech-info-item :name "sig243r") + (new 'static 'speech-info-item :name "sig229r") + (new 'static 'speech-info-item :name "sig108r") + (new 'static 'speech-info-item :name "sig112r") + (new 'static 'speech-info-item :name "sig113r") + (new 'static 'speech-info-item :name "sig247r") + (new 'static 'speech-info-item :name "sig248r") + (new 'static 'speech-info-item :name "sig253r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "sig218r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig101r") + (new 'static 'speech-info-item :name "sig102r") + (new 'static 'speech-info-item :name "sig103r") + (new 'static 'speech-info-item :name "sig104r") + (new 'static 'speech-info-item :name "sig105r") + (new 'static 'speech-info-item :name "sig106r") + (new 'static 'speech-info-item :name "sig107r") + (new 'static 'speech-info-item :name "sig108r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "sig109r") + (new 'static 'speech-info-item :name "sig110r") + (new 'static 'speech-info-item :name "sig111r") + (new 'static 'speech-info-item :name "sig114r") + (new 'static 'speech-info-item :name "sig115r") + (new 'static 'speech-info-item :name "sig116r") + (new 'static 'speech-info-item :name "sig117r") + (new 'static 'speech-info-item :name "sig118r") + (new 'static 'speech-info-item :name "sig119r") + (new 'static 'speech-info-item :name "sig120r") + (new 'static 'speech-info-item :name "sig121r") + (new 'static 'speech-info-item :name "sig122r") + (new 'static 'speech-info-item :name "sig258r") + (new 'static 'speech-info-item :name "sig265r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig123r") + (new 'static 'speech-info-item :name "sig124r") + (new 'static 'speech-info-item :name "sig125r") + (new 'static 'speech-info-item :name "sig126r") + (new 'static 'speech-info-item :name "sig127r") + (new 'static 'speech-info-item :name "sig128r") + (new 'static 'speech-info-item :name "sig129r") + (new 'static 'speech-info-item :name "sig132r") + (new 'static 'speech-info-item :name "sig134r") + (new 'static 'speech-info-item :name "sig137r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig139r") + (new 'static 'speech-info-item :name "sig141r") + (new 'static 'speech-info-item :name "sig142r") + (new 'static 'speech-info-item :name "sig144r") + (new 'static 'speech-info-item :name "sig146r") + (new 'static 'speech-info-item :name "sig147r") + (new 'static 'speech-info-item :name "sig148r") + (new 'static 'speech-info-item :name "sig149r") + (new 'static 'speech-info-item :name "sig150r") + (new 'static 'speech-info-item :name "sig151r") + (new 'static 'speech-info-item :name "sig152r") + (new 'static 'speech-info-item :name "sig153r") + (new 'static 'speech-info-item :name "sig156r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig158r") + (new 'static 'speech-info-item :name "sig159r") + (new 'static 'speech-info-item :name "sig160r") + (new 'static 'speech-info-item :name "sig161r") + (new 'static 'speech-info-item :name "sig162r") + (new 'static 'speech-info-item :name "sig163r") + (new 'static 'speech-info-item :name "sig164r") + (new 'static 'speech-info-item :name "sig167r") + (new 'static 'speech-info-item :name "sig168r") + (new 'static 'speech-info-item :name "sig171r") + (new 'static 'speech-info-item :name "sig172r") + (new 'static 'speech-info-item :name "sig173r") + (new 'static 'speech-info-item :name "sig174r") + (new 'static 'speech-info-item :name "sig175r") + (new 'static 'speech-info-item :name "sig176r") + (new 'static 'speech-info-item :name "sig179r") + (new 'static 'speech-info-item :name "sig180r") + (new 'static 'speech-info-item :name "sig186r") + (new 'static 'speech-info-item :name "sig187r") + (new 'static 'speech-info-item :name "sig188r") + (new 'static 'speech-info-item :name "sig213r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig190r") + (new 'static 'speech-info-item :name "sig191r") + (new 'static 'speech-info-item :name "sig192r") + (new 'static 'speech-info-item :name "sig193r") + (new 'static 'speech-info-item :name "sig194r") + (new 'static 'speech-info-item :name "sig197r") + (new 'static 'speech-info-item :name "sig198r") + (new 'static 'speech-info-item :name "sig199r") + (new 'static 'speech-info-item :name "sig200r") + (new 'static 'speech-info-item :name "sig202r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig203r") + (new 'static 'speech-info-item :name "sig204r") + (new 'static 'speech-info-item :name "sig205r") + (new 'static 'speech-info-item :name "sig206r") + (new 'static 'speech-info-item :name "sig207r") + (new 'static 'speech-info-item :name "sig208r") + (new 'static 'speech-info-item :name "sig211r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "sig221r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig222r") + (new 'static 'speech-info-item :name "sig223r") + (new 'static 'speech-info-item :name "sig224r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig225r") + (new 'static 'speech-info-item :name "sig226r") + (new 'static 'speech-info-item :name "sig227r") + (new 'static 'speech-info-item :name "sig228r") + (new 'static 'speech-info-item :name "sig229r") + (new 'static 'speech-info-item :name "sig230r") + (new 'static 'speech-info-item :name "sig231r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig232r") + (new 'static 'speech-info-item :name "sig233r") + (new 'static 'speech-info-item :name "sig234r") + (new 'static 'speech-info-item :name "sig235r") + (new 'static 'speech-info-item :name "sig236r") + (new 'static 'speech-info-item :name "sig237r") + (new 'static 'speech-info-item :name "sig238r") + (new 'static 'speech-info-item :name "sig240r") + (new 'static 'speech-info-item :name "sig241r") + (new 'static 'speech-info-item :name "sig242r") + (new 'static 'speech-info-item :name "sig245r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig246r") + (new 'static 'speech-info-item :name "sig249r") + (new 'static 'speech-info-item :name "sig250r") + (new 'static 'speech-info-item :name "sig251r") + (new 'static 'speech-info-item :name "sig252r") + (new 'static 'speech-info-item :name "sig254r") + (new 'static 'speech-info-item :name "sig255r") + (new 'static 'speech-info-item :name "sig256r") + (new 'static 'speech-info-item :name "sig257r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig232r") + (new 'static 'speech-info-item :name "sig233r") + (new 'static 'speech-info-item :name "sig234r") + (new 'static 'speech-info-item :name "sig235r") + (new 'static 'speech-info-item :name "sig236r") + (new 'static 'speech-info-item :name "sig237r") + (new 'static 'speech-info-item :name "sig238r") + (new 'static 'speech-info-item :name "sig240r") + (new 'static 'speech-info-item :name "sig241r") + (new 'static 'speech-info-item :name "sig242r") + (new 'static 'speech-info-item :name "sig245r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig246r") + (new 'static 'speech-info-item :name "sig249r") + (new 'static 'speech-info-item :name "sig250r") + (new 'static 'speech-info-item :name "sig251r") + (new 'static 'speech-info-item :name "sig252r") + (new 'static 'speech-info-item :name "sig254r") + (new 'static 'speech-info-item :name "sig255r") + (new 'static 'speech-info-item :name "sig256r") + (new 'static 'speech-info-item :name "sig257r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig278r") + (new 'static 'speech-info-item :name "sig279r") + (new 'static 'speech-info-item :name "sig280r") + (new 'static 'speech-info-item :name "sig281r") + (new 'static 'speech-info-item :name "sig282r") + (new 'static 'speech-info-item :name "sig123r") + (new 'static 'speech-info-item :name "sig125r") + (new 'static 'speech-info-item :name "sig127r") + (new 'static 'speech-info-item :name "sig128r") + (new 'static 'speech-info-item :name "sig132r") + (new 'static 'speech-info-item :name "sig133r") + (new 'static 'speech-info-item :name "sig134r") + (new 'static 'speech-info-item :name "sig136r") + (new 'static 'speech-info-item :name "sig137r") + (new 'static 'speech-info-item :name "sig140r") + (new 'static 'speech-info-item :name "sig141r") + (new 'static 'speech-info-item :name "sig145r") + (new 'static 'speech-info-item :name "sig148r") + (new 'static 'speech-info-item :name "sig149r") + (new 'static 'speech-info-item :name "sig151r") + (new 'static 'speech-info-item :name "sig152r") + (new 'static 'speech-info-item :name "sig155r") + (new 'static 'speech-info-item :name "sig156r") + (new 'static 'speech-info-item :name "sig159r") + (new 'static 'speech-info-item :name "sig176r") + (new 'static 'speech-info-item :name "sig179r") + (new 'static 'speech-info-item :name "sig218r") + (new 'static 'speech-info-item :name "sig244r") + (new 'static 'speech-info-item :name "sig265r") + (new 'static 'speech-info-item :name "sig277r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig129r") + (new 'static 'speech-info-item :name "sig130r") + (new 'static 'speech-info-item :name "sig131r") + (new 'static 'speech-info-item :name "sig189r") + (new 'static 'speech-info-item :name "sig191r") + (new 'static 'speech-info-item :name "sig192r") + (new 'static 'speech-info-item :name "sig193r") + (new 'static 'speech-info-item :name "sig195r") + (new 'static 'speech-info-item :name "sig197r") + (new 'static 'speech-info-item :name "sig198r") + (new 'static 'speech-info-item :name "sig199r") + (new 'static 'speech-info-item :name "sig200r") + (new 'static 'speech-info-item :name "sig201r") + (new 'static 'speech-info-item :name "sig203r") + (new 'static 'speech-info-item :name "sig208r") + (new 'static 'speech-info-item :name "sig209r") + (new 'static 'speech-info-item :name "sig210r") + (new 'static 'speech-info-item :name "sig247r") + (new 'static 'speech-info-item :name "sig248r") + (new 'static 'speech-info-item :name "sig253r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 10 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "sig101r") + (new 'static 'speech-info-item :name "sig102r") + (new 'static 'speech-info-item :name "sig104r") + (new 'static 'speech-info-item :name "sig105r") + (new 'static 'speech-info-item :name "sig106r") + (new 'static 'speech-info-item :name "sig107r") + (new 'static 'speech-info-item :name "sig109r") + (new 'static 'speech-info-item :name "sig111r") + (new 'static 'speech-info-item :name "sig114r") + (new 'static 'speech-info-item :name "sig115r") + (new 'static 'speech-info-item :name "sig116r") + (new 'static 'speech-info-item :name "sig117r") + (new 'static 'speech-info-item :name "sig118r") + (new 'static 'speech-info-item :name "sig119r") + (new 'static 'speech-info-item :name "sig120r") + (new 'static 'speech-info-item :name "sig121r") + (new 'static 'speech-info-item :name "sig122r") + (new 'static 'speech-info-item :name "sig258r") + (new 'static 'speech-info-item :name "sig265r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-taryn_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-taryn_REF.gc new file mode 100644 index 0000000000..f532036044 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-taryn_REF.gc @@ -0,0 +1,342 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar102r") + (new 'static 'speech-info-item :name "tar103r") + (new 'static 'speech-info-item :name "tar141r") + (new 'static 'speech-info-item :name "tar197r") + (new 'static 'speech-info-item :name "tar199r") + (new 'static 'speech-info-item :name "tar201r") + (new 'static 'speech-info-item :name "tar203r") + (new 'static 'speech-info-item :name "tar204r") + (new 'static 'speech-info-item :name "tar205r") + (new 'static 'speech-info-item :name "tar236r") + (new 'static 'speech-info-item :name "tar237r") + (new 'static 'speech-info-item :name "tar238r") + (new 'static 'speech-info-item :name "tar239r") + (new 'static 'speech-info-item :name "tar240r") + (new 'static 'speech-info-item :name "tar241r") + (new 'static 'speech-info-item :name "tar243r") + (new 'static 'speech-info-item :name "tar244r") + (new 'static 'speech-info-item :name "tar245r") + (new 'static 'speech-info-item :name "tar246r") + (new 'static 'speech-info-item :name "tar247r") + (new 'static 'speech-info-item :name "tar248r") + (new 'static 'speech-info-item :name "tar249r") + (new 'static 'speech-info-item :name "tar251r") + (new 'static 'speech-info-item :name "tar252r") + (new 'static 'speech-info-item :name "tar253r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar101r") + (new 'static 'speech-info-item :name "tar104r") + (new 'static 'speech-info-item :name "tar105r") + (new 'static 'speech-info-item :name "tar106r") + (new 'static 'speech-info-item :name "tar107r") + (new 'static 'speech-info-item :name "tar108r") + (new 'static 'speech-info-item :name "tar109r") + (new 'static 'speech-info-item :name "tar110r") + (new 'static 'speech-info-item :name "tar111r") + (new 'static 'speech-info-item :name "tar112r") + (new 'static 'speech-info-item :name "tar113r") + (new 'static 'speech-info-item :name "tar114r") + (new 'static 'speech-info-item :name "tar115r") + (new 'static 'speech-info-item :name "tar116r") + (new 'static 'speech-info-item :name "tar117r") + (new 'static 'speech-info-item :name "tar118r") + (new 'static 'speech-info-item :name "tar119r") + (new 'static 'speech-info-item :name "tar120r") + (new 'static 'speech-info-item :name "tar121r") + (new 'static 'speech-info-item :name "tar122r") + (new 'static 'speech-info-item :name "tar123r") + (new 'static 'speech-info-item :name "tar124r") + (new 'static 'speech-info-item :name "tar125r") + (new 'static 'speech-info-item :name "tar126r") + (new 'static 'speech-info-item :name "tar127r") + (new 'static 'speech-info-item :name "tar128r") + (new 'static 'speech-info-item :name "tar129r") + (new 'static 'speech-info-item :name "tar130r") + (new 'static 'speech-info-item :name "tar131r") + (new 'static 'speech-info-item :name "tar132r") + (new 'static 'speech-info-item :name "tar133r") + (new 'static 'speech-info-item :name "tar198r") + (new 'static 'speech-info-item :name "tar242r") + (new 'static 'speech-info-item :name "tar146r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar101r") + (new 'static 'speech-info-item :name "tar105r") + (new 'static 'speech-info-item :name "tar106r") + (new 'static 'speech-info-item :name "tar108r") + (new 'static 'speech-info-item :name "tar109r") + (new 'static 'speech-info-item :name "tar110r") + (new 'static 'speech-info-item :name "tar111r") + (new 'static 'speech-info-item :name "tar113r") + (new 'static 'speech-info-item :name "tar114r") + (new 'static 'speech-info-item :name "tar115r") + (new 'static 'speech-info-item :name "tar116r") + (new 'static 'speech-info-item :name "tar117r") + (new 'static 'speech-info-item :name "tar118r") + (new 'static 'speech-info-item :name "tar119r") + (new 'static 'speech-info-item :name "tar120r") + (new 'static 'speech-info-item :name "tar121r") + (new 'static 'speech-info-item :name "tar122r") + (new 'static 'speech-info-item :name "tar123r") + (new 'static 'speech-info-item :name "tar124r") + (new 'static 'speech-info-item :name "tar125r") + (new 'static 'speech-info-item :name "tar126r") + (new 'static 'speech-info-item :name "tar127r") + (new 'static 'speech-info-item :name "tar128r") + (new 'static 'speech-info-item :name "tar130r") + (new 'static 'speech-info-item :name "tar131r") + (new 'static 'speech-info-item :name "tar132r") + (new 'static 'speech-info-item :name "tar133r") + (new 'static 'speech-info-item :name "tar198r") + (new 'static 'speech-info-item :name "tar242r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar134r") + (new 'static 'speech-info-item :name "tar135r") + (new 'static 'speech-info-item :name "tar136r") + (new 'static 'speech-info-item :name "tar137r") + (new 'static 'speech-info-item :name "tar138r") + (new 'static 'speech-info-item :name "tar139r") + (new 'static 'speech-info-item :name "tar140r") + (new 'static 'speech-info-item :name "tar142r") + (new 'static 'speech-info-item :name "tar200r") + (new 'static 'speech-info-item :name "tar206r") + (new 'static 'speech-info-item :name "tar150r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar143r") + (new 'static 'speech-info-item :name "tar144r") + (new 'static 'speech-info-item :name "tar145r") + (new 'static 'speech-info-item :name "tar147r") + (new 'static 'speech-info-item :name "tar148r") + (new 'static 'speech-info-item :name "tar149r") + (new 'static 'speech-info-item :name "tar151r") + (new 'static 'speech-info-item :name "tar152r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar153r") + (new 'static 'speech-info-item :name "tar154r") + (new 'static 'speech-info-item :name "tar155r") + (new 'static 'speech-info-item :name "tar156r") + (new 'static 'speech-info-item :name "tar157r") + (new 'static 'speech-info-item :name "tar158r") + (new 'static 'speech-info-item :name "tar159r") + (new 'static 'speech-info-item :name "tar160r") + (new 'static 'speech-info-item :name "tar161r") + (new 'static 'speech-info-item :name "tar162r") + (new 'static 'speech-info-item :name "tar163r") + (new 'static 'speech-info-item :name "tar164r") + (new 'static 'speech-info-item :name "tar165r") + (new 'static 'speech-info-item :name "tar166r") + (new 'static 'speech-info-item :name "tar167r") + (new 'static 'speech-info-item :name "tar168r") + (new 'static 'speech-info-item :name "tar169r") + (new 'static 'speech-info-item :name "tar170r") + (new 'static 'speech-info-item :name "tar171r") + (new 'static 'speech-info-item :name "tar172r") + (new 'static 'speech-info-item :name "tar173r") + (new 'static 'speech-info-item :name "tar174r") + (new 'static 'speech-info-item :name "tar175r") + (new 'static 'speech-info-item :name "tar176r") + (new 'static 'speech-info-item :name "tar177r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar178r") + (new 'static 'speech-info-item :name "tar179r") + (new 'static 'speech-info-item :name "tar180r") + (new 'static 'speech-info-item :name "tar181r") + (new 'static 'speech-info-item :name "tar182r") + (new 'static 'speech-info-item :name "tar183r") + (new 'static 'speech-info-item :name "tar184r") + (new 'static 'speech-info-item :name "tar185r") + (new 'static 'speech-info-item :name "tar186r") + (new 'static 'speech-info-item :name "tar187r") + (new 'static 'speech-info-item :name "tar188r") + (new 'static 'speech-info-item :name "tar189r") + (new 'static 'speech-info-item :name "tar190r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar191r") + (new 'static 'speech-info-item :name "tar192r") + (new 'static 'speech-info-item :name "tar193r") + (new 'static 'speech-info-item :name "tar194r") + (new 'static 'speech-info-item :name "tar196r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "tar207r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar208r") + (new 'static 'speech-info-item :name "tar209r") + (new 'static 'speech-info-item :name "tar210r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar211r") + (new 'static 'speech-info-item :name "tar212r") + (new 'static 'speech-info-item :name "tar213r") + (new 'static 'speech-info-item :name "tar214r") + (new 'static 'speech-info-item :name "tar215r") + (new 'static 'speech-info-item :name "tar216r") + (new 'static 'speech-info-item :name "tar217r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar218r") + (new 'static 'speech-info-item :name "tar219r") + (new 'static 'speech-info-item :name "tar220r") + (new 'static 'speech-info-item :name "tar221r") + (new 'static 'speech-info-item :name "tar222r") + (new 'static 'speech-info-item :name "tar223r") + (new 'static 'speech-info-item :name "tar224r") + (new 'static 'speech-info-item :name "tar225r") + (new 'static 'speech-info-item :name "tar226r") + (new 'static 'speech-info-item :name "tar227r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar218r") + (new 'static 'speech-info-item :name "tar219r") + (new 'static 'speech-info-item :name "tar220r") + (new 'static 'speech-info-item :name "tar221r") + (new 'static 'speech-info-item :name "tar222r") + (new 'static 'speech-info-item :name "tar223r") + (new 'static 'speech-info-item :name "tar224r") + (new 'static 'speech-info-item :name "tar225r") + (new 'static 'speech-info-item :name "tar226r") + (new 'static 'speech-info-item :name "tar227r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar228r") + (new 'static 'speech-info-item :name "tar229r") + (new 'static 'speech-info-item :name "tar230r") + (new 'static 'speech-info-item :name "tar231r") + (new 'static 'speech-info-item :name "tar232r") + (new 'static 'speech-info-item :name "tar233r") + (new 'static 'speech-info-item :name "tar234r") + (new 'static 'speech-info-item :name "tar235r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar228r") + (new 'static 'speech-info-item :name "tar229r") + (new 'static 'speech-info-item :name "tar230r") + (new 'static 'speech-info-item :name "tar231r") + (new 'static 'speech-info-item :name "tar232r") + (new 'static 'speech-info-item :name "tar233r") + (new 'static 'speech-info-item :name "tar234r") + (new 'static 'speech-info-item :name "tar235r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar254r") + (new 'static 'speech-info-item :name "tar255r") + (new 'static 'speech-info-item :name "tar256r") + (new 'static 'speech-info-item :name "tar257r") + (new 'static 'speech-info-item :name "tar258r") + (new 'static 'speech-info-item :name "tar259r") + (new 'static 'speech-info-item :name "tar260r") + (new 'static 'speech-info-item :name "tar261r") + (new 'static 'speech-info-item :name "tar262r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "tar202r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 18 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "tar191r") + (new 'static 'speech-info-item :name "tar250r") + (new 'static 'speech-info-item :name "tar142r") + (new 'static 'speech-info-item :name "tar195r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-thuga_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-thuga_REF.gc new file mode 100644 index 0000000000..a7d48bad64 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-thuga_REF.gc @@ -0,0 +1,340 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb199r") + (new 'static 'speech-info-item :name "thgb200r") + (new 'static 'speech-info-item :name "thgb202r") + (new 'static 'speech-info-item :name "thgb203r") + (new 'static 'speech-info-item :name "thgb235r") + (new 'static 'speech-info-item :name "thgb236r") + (new 'static 'speech-info-item :name "thgb237r") + (new 'static 'speech-info-item :name "thgb238r") + (new 'static 'speech-info-item :name "thgb239r") + (new 'static 'speech-info-item :name "thgb241r") + (new 'static 'speech-info-item :name "thgb242r") + (new 'static 'speech-info-item :name "thgb244r") + (new 'static 'speech-info-item :name "thgb245r") + (new 'static 'speech-info-item :name "thgb246r") + (new 'static 'speech-info-item :name "thgb247r") + (new 'static 'speech-info-item :name "thgb248r") + (new 'static 'speech-info-item :name "thgb249r") + (new 'static 'speech-info-item :name "thgb250r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb101r") + (new 'static 'speech-info-item :name "thgb102r") + (new 'static 'speech-info-item :name "thgb103r") + (new 'static 'speech-info-item :name "thgb104r") + (new 'static 'speech-info-item :name "thgb105r") + (new 'static 'speech-info-item :name "thgb106r") + (new 'static 'speech-info-item :name "thgb107r") + (new 'static 'speech-info-item :name "thgb108r") + (new 'static 'speech-info-item :name "thgb109r") + (new 'static 'speech-info-item :name "thgb110r") + (new 'static 'speech-info-item :name "thgb111r") + (new 'static 'speech-info-item :name "thgb112r") + (new 'static 'speech-info-item :name "thgb113r") + (new 'static 'speech-info-item :name "thgb114r") + (new 'static 'speech-info-item :name "thgb115r") + (new 'static 'speech-info-item :name "thgb116r") + (new 'static 'speech-info-item :name "thgb117r") + (new 'static 'speech-info-item :name "thgb118r") + (new 'static 'speech-info-item :name "thgb119r") + (new 'static 'speech-info-item :name "thgb120r") + (new 'static 'speech-info-item :name "thgb121r") + (new 'static 'speech-info-item :name "thgb122r") + (new 'static 'speech-info-item :name "thgb123r") + (new 'static 'speech-info-item :name "thgb124r") + (new 'static 'speech-info-item :name "thgb125r") + (new 'static 'speech-info-item :name "thgb126r") + (new 'static 'speech-info-item :name "thgb127r") + (new 'static 'speech-info-item :name "thgb128r") + (new 'static 'speech-info-item :name "thgb129r") + (new 'static 'speech-info-item :name "thgb130r") + (new 'static 'speech-info-item :name "thgb131r") + (new 'static 'speech-info-item :name "thgb197r") + (new 'static 'speech-info-item :name "thgb240r") + (new 'static 'speech-info-item :name "thgb145r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb102r") + (new 'static 'speech-info-item :name "thgb103r") + (new 'static 'speech-info-item :name "thgb105r") + (new 'static 'speech-info-item :name "thgb106r") + (new 'static 'speech-info-item :name "thgb107r") + (new 'static 'speech-info-item :name "thgb108r") + (new 'static 'speech-info-item :name "thgb109r") + (new 'static 'speech-info-item :name "thgb110r") + (new 'static 'speech-info-item :name "thgb111r") + (new 'static 'speech-info-item :name "thgb112r") + (new 'static 'speech-info-item :name "thgb113r") + (new 'static 'speech-info-item :name "thgb114r") + (new 'static 'speech-info-item :name "thgb115r") + (new 'static 'speech-info-item :name "thgb116r") + (new 'static 'speech-info-item :name "thgb117r") + (new 'static 'speech-info-item :name "thgb118r") + (new 'static 'speech-info-item :name "thgb119r") + (new 'static 'speech-info-item :name "thgb120r") + (new 'static 'speech-info-item :name "thgb121r") + (new 'static 'speech-info-item :name "thgb122r") + (new 'static 'speech-info-item :name "thgb123r") + (new 'static 'speech-info-item :name "thgb124r") + (new 'static 'speech-info-item :name "thgb125r") + (new 'static 'speech-info-item :name "thgb126r") + (new 'static 'speech-info-item :name "thgb128r") + (new 'static 'speech-info-item :name "thgb129r") + (new 'static 'speech-info-item :name "thgb130r") + (new 'static 'speech-info-item :name "thgb131r") + (new 'static 'speech-info-item :name "thgb197r") + (new 'static 'speech-info-item :name "thgb240r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb132r") + (new 'static 'speech-info-item :name "thgb133r") + (new 'static 'speech-info-item :name "thgb134r") + (new 'static 'speech-info-item :name "thgb135r") + (new 'static 'speech-info-item :name "thgb136r") + (new 'static 'speech-info-item :name "thgb137r") + (new 'static 'speech-info-item :name "thgb138r") + (new 'static 'speech-info-item :name "thgb140r") + (new 'static 'speech-info-item :name "thgb141r") + (new 'static 'speech-info-item :name "thgb243r") + (new 'static 'speech-info-item :name "thgb149r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb142r") + (new 'static 'speech-info-item :name "thgb143r") + (new 'static 'speech-info-item :name "thgb144r") + (new 'static 'speech-info-item :name "thgb146r") + (new 'static 'speech-info-item :name "thgb147r") + (new 'static 'speech-info-item :name "thgb148r") + (new 'static 'speech-info-item :name "thgb150r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb151r") + (new 'static 'speech-info-item :name "thgb152r") + (new 'static 'speech-info-item :name "thgb153r") + (new 'static 'speech-info-item :name "thgb154r") + (new 'static 'speech-info-item :name "thgb155r") + (new 'static 'speech-info-item :name "thgb156r") + (new 'static 'speech-info-item :name "thgb157r") + (new 'static 'speech-info-item :name "thgb158r") + (new 'static 'speech-info-item :name "thgb159r") + (new 'static 'speech-info-item :name "thgb160r") + (new 'static 'speech-info-item :name "thgb161r") + (new 'static 'speech-info-item :name "thgb162r") + (new 'static 'speech-info-item :name "thgb163r") + (new 'static 'speech-info-item :name "thgb164r") + (new 'static 'speech-info-item :name "thgb165r") + (new 'static 'speech-info-item :name "thgb166r") + (new 'static 'speech-info-item :name "thgb167r") + (new 'static 'speech-info-item :name "thgb168r") + (new 'static 'speech-info-item :name "thgb169r") + (new 'static 'speech-info-item :name "thgb170r") + (new 'static 'speech-info-item :name "thgb171r") + (new 'static 'speech-info-item :name "thgb172r") + (new 'static 'speech-info-item :name "thgb173r") + (new 'static 'speech-info-item :name "thgb174r") + (new 'static 'speech-info-item :name "thgb175r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb176r") + (new 'static 'speech-info-item :name "thgb177r") + (new 'static 'speech-info-item :name "thgb178r") + (new 'static 'speech-info-item :name "thgb179r") + (new 'static 'speech-info-item :name "thgb180r") + (new 'static 'speech-info-item :name "thgb181r") + (new 'static 'speech-info-item :name "thgb182r") + (new 'static 'speech-info-item :name "thgb183r") + (new 'static 'speech-info-item :name "thgb184r") + (new 'static 'speech-info-item :name "thgb185r") + (new 'static 'speech-info-item :name "thgb186r") + (new 'static 'speech-info-item :name "thgb187r") + (new 'static 'speech-info-item :name "thgb198r") + (new 'static 'speech-info-item :name "thgb188r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb189r") + (new 'static 'speech-info-item :name "thgb190r") + (new 'static 'speech-info-item :name "thgb191r") + (new 'static 'speech-info-item :name "thgb192r") + (new 'static 'speech-info-item :name "thgb195r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgb204r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb205r") + (new 'static 'speech-info-item :name "thgb206r") + (new 'static 'speech-info-item :name "thgb207r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb208r") + (new 'static 'speech-info-item :name "thgb209r") + (new 'static 'speech-info-item :name "thgb210r") + (new 'static 'speech-info-item :name "thgb211r") + (new 'static 'speech-info-item :name "thgb212r") + (new 'static 'speech-info-item :name "thgb213r") + (new 'static 'speech-info-item :name "thgb214r") + (new 'static 'speech-info-item :name "thgb215r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb216r") + (new 'static 'speech-info-item :name "thgb217r") + (new 'static 'speech-info-item :name "thgb218r") + (new 'static 'speech-info-item :name "thgb219r") + (new 'static 'speech-info-item :name "thgb220r") + (new 'static 'speech-info-item :name "thgb221r") + (new 'static 'speech-info-item :name "thgb222r") + (new 'static 'speech-info-item :name "thgb223r") + (new 'static 'speech-info-item :name "thgb224r") + (new 'static 'speech-info-item :name "thgb225r") + (new 'static 'speech-info-item :name "thgb226r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb216r") + (new 'static 'speech-info-item :name "thgb217r") + (new 'static 'speech-info-item :name "thgb218r") + (new 'static 'speech-info-item :name "thgb219r") + (new 'static 'speech-info-item :name "thgb220r") + (new 'static 'speech-info-item :name "thgb221r") + (new 'static 'speech-info-item :name "thgb222r") + (new 'static 'speech-info-item :name "thgb223r") + (new 'static 'speech-info-item :name "thgb224r") + (new 'static 'speech-info-item :name "thgb225r") + (new 'static 'speech-info-item :name "thgb226r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb227r") + (new 'static 'speech-info-item :name "thgb228r") + (new 'static 'speech-info-item :name "thgb229r") + (new 'static 'speech-info-item :name "thgb230r") + (new 'static 'speech-info-item :name "thgb231r") + (new 'static 'speech-info-item :name "thgb232r") + (new 'static 'speech-info-item :name "thgb233r") + (new 'static 'speech-info-item :name "thgb234r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb227r") + (new 'static 'speech-info-item :name "thgb228r") + (new 'static 'speech-info-item :name "thgb229r") + (new 'static 'speech-info-item :name "thgb230r") + (new 'static 'speech-info-item :name "thgb231r") + (new 'static 'speech-info-item :name "thgb232r") + (new 'static 'speech-info-item :name "thgb233r") + (new 'static 'speech-info-item :name "thgb234r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb251r") + (new 'static 'speech-info-item :name "thgb252") + (new 'static 'speech-info-item :name "thgb253") + (new 'static 'speech-info-item :name "thgb254r") + (new 'static 'speech-info-item :name "thgb255r") + (new 'static 'speech-info-item :name "thgb256r") + (new 'static 'speech-info-item :name "thgb257r") + (new 'static 'speech-info-item :name "thgb258r") + (new 'static 'speech-info-item :name "thgb259r") + (new 'static 'speech-info-item :name "thgb260r") + (new 'static 'speech-info-item :name "thgb261r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgb201r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 14 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgb193r") + (new 'static 'speech-info-item :name "thgb194r") + (new 'static 'speech-info-item :name "thgb228r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-thugb_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-thugb_REF.gc new file mode 100644 index 0000000000..1d34725871 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-thugb_REF.gc @@ -0,0 +1,328 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc135r") + (new 'static 'speech-info-item :name "thgc190r") + (new 'static 'speech-info-item :name "thgc192r") + (new 'static 'speech-info-item :name "thgc193r") + (new 'static 'speech-info-item :name "thgc194r") + (new 'static 'speech-info-item :name "thgc196r") + (new 'static 'speech-info-item :name "thgc197r") + (new 'static 'speech-info-item :name "thgc198r") + (new 'static 'speech-info-item :name "thgc199r") + (new 'static 'speech-info-item :name "thgc229r") + (new 'static 'speech-info-item :name "thgc230r") + (new 'static 'speech-info-item :name "thgc231r") + (new 'static 'speech-info-item :name "thgc232r") + (new 'static 'speech-info-item :name "thgc233r") + (new 'static 'speech-info-item :name "thgc234r") + (new 'static 'speech-info-item :name "thgc236r") + (new 'static 'speech-info-item :name "thgc237r") + (new 'static 'speech-info-item :name "thgc238r") + (new 'static 'speech-info-item :name "thgc239r") + (new 'static 'speech-info-item :name "thgc240r") + (new 'static 'speech-info-item :name "thgc241r") + (new 'static 'speech-info-item :name "thgc242r") + (new 'static 'speech-info-item :name "thgc243r") + (new 'static 'speech-info-item :name "thgc244r") + (new 'static 'speech-info-item :name "thgc245r") + (new 'static 'speech-info-item :name "thgc246r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc101r") + (new 'static 'speech-info-item :name "thgc102r") + (new 'static 'speech-info-item :name "thgc103r") + (new 'static 'speech-info-item :name "thgc104r") + (new 'static 'speech-info-item :name "thgc105r") + (new 'static 'speech-info-item :name "thgc106r") + (new 'static 'speech-info-item :name "thgc107r") + (new 'static 'speech-info-item :name "thgc108r") + (new 'static 'speech-info-item :name "thgc109r") + (new 'static 'speech-info-item :name "thgc110r") + (new 'static 'speech-info-item :name "thgc111r") + (new 'static 'speech-info-item :name "thgc112r") + (new 'static 'speech-info-item :name "thgc113r") + (new 'static 'speech-info-item :name "thgc114r") + (new 'static 'speech-info-item :name "thgc115r") + (new 'static 'speech-info-item :name "thgc116r") + (new 'static 'speech-info-item :name "thgc117r") + (new 'static 'speech-info-item :name "thgc118r") + (new 'static 'speech-info-item :name "thgc119r") + (new 'static 'speech-info-item :name "thgc120r") + (new 'static 'speech-info-item :name "thgc121r") + (new 'static 'speech-info-item :name "thgc122r") + (new 'static 'speech-info-item :name "thgc123r") + (new 'static 'speech-info-item :name "thgc124r") + (new 'static 'speech-info-item :name "thgc125r") + (new 'static 'speech-info-item :name "thgc126r") + (new 'static 'speech-info-item :name "thgc127r") + (new 'static 'speech-info-item :name "thgc191r") + (new 'static 'speech-info-item :name "thgc235r") + (new 'static 'speech-info-item :name "thgc141r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc102r") + (new 'static 'speech-info-item :name "thgc103r") + (new 'static 'speech-info-item :name "thgc105r") + (new 'static 'speech-info-item :name "thgc106r") + (new 'static 'speech-info-item :name "thgc107r") + (new 'static 'speech-info-item :name "thgc108r") + (new 'static 'speech-info-item :name "thgc109r") + (new 'static 'speech-info-item :name "thgc110r") + (new 'static 'speech-info-item :name "thgc111r") + (new 'static 'speech-info-item :name "thgc112r") + (new 'static 'speech-info-item :name "thgc113r") + (new 'static 'speech-info-item :name "thgc114r") + (new 'static 'speech-info-item :name "thgc115r") + (new 'static 'speech-info-item :name "thgc116r") + (new 'static 'speech-info-item :name "thgc117r") + (new 'static 'speech-info-item :name "thgc118r") + (new 'static 'speech-info-item :name "thgc119r") + (new 'static 'speech-info-item :name "thgc120r") + (new 'static 'speech-info-item :name "thgc121r") + (new 'static 'speech-info-item :name "thgc122r") + (new 'static 'speech-info-item :name "thgc123r") + (new 'static 'speech-info-item :name "thgc126r") + (new 'static 'speech-info-item :name "thgc127r") + (new 'static 'speech-info-item :name "thgc191r") + (new 'static 'speech-info-item :name "thgc235r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc128r") + (new 'static 'speech-info-item :name "thgc129r") + (new 'static 'speech-info-item :name "thgc130r") + (new 'static 'speech-info-item :name "thgc131r") + (new 'static 'speech-info-item :name "thgc132r") + (new 'static 'speech-info-item :name "thgc133r") + (new 'static 'speech-info-item :name "thgc134r") + (new 'static 'speech-info-item :name "thgc136r") + (new 'static 'speech-info-item :name "thgc137r") + (new 'static 'speech-info-item :name "thgc145r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc138r") + (new 'static 'speech-info-item :name "thgc139r") + (new 'static 'speech-info-item :name "thgc140r") + (new 'static 'speech-info-item :name "thgc142r") + (new 'static 'speech-info-item :name "thgc143r") + (new 'static 'speech-info-item :name "thgc144r") + (new 'static 'speech-info-item :name "thgc146r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc147r") + (new 'static 'speech-info-item :name "thgc148r") + (new 'static 'speech-info-item :name "thgc149r") + (new 'static 'speech-info-item :name "thgc150r") + (new 'static 'speech-info-item :name "thgc151r") + (new 'static 'speech-info-item :name "thgc152r") + (new 'static 'speech-info-item :name "thgc153r") + (new 'static 'speech-info-item :name "thgc154r") + (new 'static 'speech-info-item :name "thgc155r") + (new 'static 'speech-info-item :name "thgc156r") + (new 'static 'speech-info-item :name "thgc157r") + (new 'static 'speech-info-item :name "thgc158r") + (new 'static 'speech-info-item :name "thgc159r") + (new 'static 'speech-info-item :name "thgc160r") + (new 'static 'speech-info-item :name "thgc161r") + (new 'static 'speech-info-item :name "thgc162r") + (new 'static 'speech-info-item :name "thgc163r") + (new 'static 'speech-info-item :name "thgc164r") + (new 'static 'speech-info-item :name "thgc165r") + (new 'static 'speech-info-item :name "thgc166r") + (new 'static 'speech-info-item :name "thgc167r") + (new 'static 'speech-info-item :name "thgc168r") + (new 'static 'speech-info-item :name "thgc169r") + (new 'static 'speech-info-item :name "thgc170r") + (new 'static 'speech-info-item :name "thgc171r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc172r") + (new 'static 'speech-info-item :name "thgc173r") + (new 'static 'speech-info-item :name "thgc174r") + (new 'static 'speech-info-item :name "thgc175r") + (new 'static 'speech-info-item :name "thgc176r") + (new 'static 'speech-info-item :name "thgc177r") + (new 'static 'speech-info-item :name "thgc178r") + (new 'static 'speech-info-item :name "thgc179r") + (new 'static 'speech-info-item :name "thgc180r") + (new 'static 'speech-info-item :name "thgc181r") + (new 'static 'speech-info-item :name "thgc182r") + (new 'static 'speech-info-item :name "thgc183r") + (new 'static 'speech-info-item :name "thgc184r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc185r") + (new 'static 'speech-info-item :name "thgc186r") + (new 'static 'speech-info-item :name "thgc187r") + (new 'static 'speech-info-item :name "thgc188r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgc200r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc201r") + (new 'static 'speech-info-item :name "thgc202r") + (new 'static 'speech-info-item :name "thgc203r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc204r") + (new 'static 'speech-info-item :name "thgc205r") + (new 'static 'speech-info-item :name "thgc206r") + (new 'static 'speech-info-item :name "thgc207r") + (new 'static 'speech-info-item :name "thgc208r") + (new 'static 'speech-info-item :name "thgc209r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc210r") + (new 'static 'speech-info-item :name "thgc211r") + (new 'static 'speech-info-item :name "thgc212r") + (new 'static 'speech-info-item :name "thgc213r") + (new 'static 'speech-info-item :name "thgc214r") + (new 'static 'speech-info-item :name "thgc215r") + (new 'static 'speech-info-item :name "thgc216r") + (new 'static 'speech-info-item :name "thgc217r") + (new 'static 'speech-info-item :name "thgc218r") + (new 'static 'speech-info-item :name "thgc219r") + (new 'static 'speech-info-item :name "thgc220r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc210r") + (new 'static 'speech-info-item :name "thgc211r") + (new 'static 'speech-info-item :name "thgc212r") + (new 'static 'speech-info-item :name "thgc213r") + (new 'static 'speech-info-item :name "thgc214r") + (new 'static 'speech-info-item :name "thgc215r") + (new 'static 'speech-info-item :name "thgc216r") + (new 'static 'speech-info-item :name "thgc217r") + (new 'static 'speech-info-item :name "thgc218r") + (new 'static 'speech-info-item :name "thgc219r") + (new 'static 'speech-info-item :name "thgc220r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc221r") + (new 'static 'speech-info-item :name "thgc222r") + (new 'static 'speech-info-item :name "thgc223r") + (new 'static 'speech-info-item :name "thgc224r") + (new 'static 'speech-info-item :name "thgc225r") + (new 'static 'speech-info-item :name "thgc226r") + (new 'static 'speech-info-item :name "thgc227r") + (new 'static 'speech-info-item :name "thgc228r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc221r") + (new 'static 'speech-info-item :name "thgc222r") + (new 'static 'speech-info-item :name "thgc223r") + (new 'static 'speech-info-item :name "thgc224r") + (new 'static 'speech-info-item :name "thgc225r") + (new 'static 'speech-info-item :name "thgc226r") + (new 'static 'speech-info-item :name "thgc227r") + (new 'static 'speech-info-item :name "thgc228r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc247r") + (new 'static 'speech-info-item :name "thgc248r") + (new 'static 'speech-info-item :name "thgc249r") + (new 'static 'speech-info-item :name "thgc250r") + (new 'static 'speech-info-item :name "thgc251r") + (new 'static 'speech-info-item :name "thgc252r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thgc195r")) + :flags (speech-info-flag si0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 15 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thgc189r") + (new 'static 'speech-info-item :name "thgc222r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-thugc_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-thugc_REF.gc new file mode 100644 index 0000000000..29c296fcb2 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-thugc_REF.gc @@ -0,0 +1,397 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug122r") + (new 'static 'speech-info-item :name "thug123r") + (new 'static 'speech-info-item :name "thug124r") + (new 'static 'speech-info-item :name "thug125r") + (new 'static 'speech-info-item :name "thug126r") + (new 'static 'speech-info-item :name "thug127r") + (new 'static 'speech-info-item :name "thug129r") + (new 'static 'speech-info-item :name "thug130r") + (new 'static 'speech-info-item :name "thug131r") + (new 'static 'speech-info-item :name "thug133r") + (new 'static 'speech-info-item :name "thug134r") + (new 'static 'speech-info-item :name "thug135r") + (new 'static 'speech-info-item :name "thug137r") + (new 'static 'speech-info-item :name "thug138r") + (new 'static 'speech-info-item :name "thug139r") + (new 'static 'speech-info-item :name "thug140r") + (new 'static 'speech-info-item :name "thug141r") + (new 'static 'speech-info-item :name "thug142r") + (new 'static 'speech-info-item :name "thug143r") + (new 'static 'speech-info-item :name "thug144r") + (new 'static 'speech-info-item :name "thug145r") + (new 'static 'speech-info-item :name "thug166r") + (new 'static 'speech-info-item :name "thug236r") + (new 'static 'speech-info-item :name "thug237r") + (new 'static 'speech-info-item :name "thug238r") + (new 'static 'speech-info-item :name "thug239r") + (new 'static 'speech-info-item :name "thug241r") + (new 'static 'speech-info-item :name "thug242r") + (new 'static 'speech-info-item :name "thug243r") + (new 'static 'speech-info-item :name "thug244r") + (new 'static 'speech-info-item :name "thug245r") + (new 'static 'speech-info-item :name "thug246r") + (new 'static 'speech-info-item :name "thug247r") + (new 'static 'speech-info-item :name "thug248r") + (new 'static 'speech-info-item :name "thug249r") + (new 'static 'speech-info-item :name "thug291r") + (new 'static 'speech-info-item :name "thug292r") + (new 'static 'speech-info-item :name "thug293r") + (new 'static 'speech-info-item :name "thug294r") + (new 'static 'speech-info-item :name "thug295r") + (new 'static 'speech-info-item :name "thug296r") + (new 'static 'speech-info-item :name "thug297r") + (new 'static 'speech-info-item :name "thug298r") + (new 'static 'speech-info-item :name "thug299r") + (new 'static 'speech-info-item :name "thug300r") + (new 'static 'speech-info-item :name "thug301r") + (new 'static 'speech-info-item :name "thug303r") + (new 'static 'speech-info-item :name "thug304r") + (new 'static 'speech-info-item :name "thug305r") + (new 'static 'speech-info-item :name "thug306r") + (new 'static 'speech-info-item :name "thug307r") + (new 'static 'speech-info-item :name "thug308r") + (new 'static 'speech-info-item :name "thug309r") + (new 'static 'speech-info-item :name "thug311r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 1) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug101r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug102r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug103r") + (new 'static 'speech-info-item :name "thug104r") + (new 'static 'speech-info-item :name "thug105r") + (new 'static 'speech-info-item :name "thug106r") + (new 'static 'speech-info-item :name "thug107r") + (new 'static 'speech-info-item :name "thug108r") + (new 'static 'speech-info-item :name "thug109r") + (new 'static 'speech-info-item :name "thug110r") + (new 'static 'speech-info-item :name "thug111r") + (new 'static 'speech-info-item :name "thug112r") + (new 'static 'speech-info-item :name "thug113r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug114r") + (new 'static 'speech-info-item :name "thug115r") + (new 'static 'speech-info-item :name "thug117r") + (new 'static 'speech-info-item :name "thug118r") + (new 'static 'speech-info-item :name "thug119r") + (new 'static 'speech-info-item :name "thug120r") + (new 'static 'speech-info-item :name "thug121r") + (new 'static 'speech-info-item :name "thug128r") + (new 'static 'speech-info-item :name "thug132r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug136r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug302r") + (new 'static 'speech-info-item :name "thug310r") + (new 'static 'speech-info-item :name "thug172r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 16) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug101r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug102r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug103r") + (new 'static 'speech-info-item :name "thug104r") + (new 'static 'speech-info-item :name "thug105r") + (new 'static 'speech-info-item :name "thug106r") + (new 'static 'speech-info-item :name "thug107r") + (new 'static 'speech-info-item :name "thug108r") + (new 'static 'speech-info-item :name "thug109r") + (new 'static 'speech-info-item :name "thug110r") + (new 'static 'speech-info-item :name "thug111r") + (new 'static 'speech-info-item :name "thug112r") + (new 'static 'speech-info-item :name "thug113r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug114r") + (new 'static 'speech-info-item :name "thug115r") + (new 'static 'speech-info-item :name "thug117r") + (new 'static 'speech-info-item :name "thug118r") + (new 'static 'speech-info-item :name "thug119r") + (new 'static 'speech-info-item :name "thug120r") + (new 'static 'speech-info-item :name "thug121r") + (new 'static 'speech-info-item :name "thug128r") + (new 'static 'speech-info-item :name "thug132r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug136r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug302r") + (new 'static 'speech-info-item :name "thug310r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 4) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug146r") + (new 'static 'speech-info-item :name "thug147r") + (new 'static 'speech-info-item :name "thug148r") + (new 'static 'speech-info-item :name "thug149r") + (new 'static 'speech-info-item :name "thug150r") + (new 'static 'speech-info-item :name "thug151r") + (new 'static 'speech-info-item :name "thug152r") + (new 'static 'speech-info-item :name "thug153r") + (new 'static 'speech-info-item :name "thug154r") + (new 'static 'speech-info-item :name "thug155r") + (new 'static 'speech-info-item :name "thug156r") + (new 'static 'speech-info-item :name "thug157r") + (new 'static 'speech-info-item :name "thug158r") + (new 'static 'speech-info-item :name "thug159r") + (new 'static 'speech-info-item :name "thug160r") + (new 'static 'speech-info-item :name "thug161r") + (new 'static 'speech-info-item :name "thug162r") + (new 'static 'speech-info-item :name "thug163r") + (new 'static 'speech-info-item :name "thug164r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug165r") + (new 'static 'speech-info-item :name "thug173r") + (new 'static 'speech-info-item :name "thug178r") + (new 'static 'speech-info-item :name "thug179r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug167r") + (new 'static 'speech-info-item :name "thug168r") + (new 'static 'speech-info-item :name "thug169r") + (new 'static 'speech-info-item :name "thug170r") + (new 'static 'speech-info-item :name "thug171r") + (new 'static 'speech-info-item :name "thug175r") + (new 'static 'speech-info-item :name "thug176r") + (new 'static 'speech-info-item :name "thug177r") + (new 'static 'speech-info-item :name "thug180r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 6) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug181r") + (new 'static 'speech-info-item :name "thug182r") + (new 'static 'speech-info-item :name "thug183r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug184r") + (new 'static 'speech-info-item :name "thug185r") + (new 'static 'speech-info-item :name "thug186r") + (new 'static 'speech-info-item :name "thug187r") + (new 'static 'speech-info-item :name "thug188r") + (new 'static 'speech-info-item :name "thug189r") + (new 'static 'speech-info-item :name "thug190r") + (new 'static 'speech-info-item :name "thug191r") + (new 'static 'speech-info-item :name "thug192r") + (new 'static 'speech-info-item :name "thug193r") + (new 'static 'speech-info-item :name "thug194r") + (new 'static 'speech-info-item :name "thug197r") + (new 'static 'speech-info-item :name "thug198r") + (new 'static 'speech-info-item :name "thug199r") + (new 'static 'speech-info-item :name "thug200r") + (new 'static 'speech-info-item :name "thug201r") + (new 'static 'speech-info-item :name "thug202r") + (new 'static 'speech-info-item :name "thug203r") + (new 'static 'speech-info-item :name "thug204r") + (new 'static 'speech-info-item :name "thug205r") + (new 'static 'speech-info-item :name "thug206r") + (new 'static 'speech-info-item :name "thug207r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 10) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug209r") + (new 'static 'speech-info-item :name "thug210r") + (new 'static 'speech-info-item :name "thug211r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug212r") + (new 'static 'speech-info-item :name "thug213r") + (new 'static 'speech-info-item :name "thug214r") + (new 'static 'speech-info-item :name "thug215r") + (new 'static 'speech-info-item :name "thug216r") + (new 'static 'speech-info-item :name "thug217r") + (new 'static 'speech-info-item :name "thug218r") + (new 'static 'speech-info-item :name "thug219r") + (new 'static 'speech-info-item :name "thug220r") + (new 'static 'speech-info-item :name "thug221r") + (new 'static 'speech-info-item :name "thug222r") + (new 'static 'speech-info-item :name "thug223r") + (new 'static 'speech-info-item :name "thug224r") + (new 'static 'speech-info-item :name "thug225r") + (new 'static 'speech-info-item :name "thug226r") + (new 'static 'speech-info-item :name "thug227r") + (new 'static 'speech-info-item :name "thug174r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug228r") + (new 'static 'speech-info-item :name "thug229r") + (new 'static 'speech-info-item :name "thug230r") + (new 'static 'speech-info-item :name "thug231r") + (new 'static 'speech-info-item :name "thug234r") + (new 'static 'speech-info-item :name "thug235r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug228r") + (new 'static 'speech-info-item :name "thug232r") + (new 'static 'speech-info-item :name "thug233r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "thug250r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug251r") + (new 'static 'speech-info-item :name "thug252r") + (new 'static 'speech-info-item :name "thug253r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 11) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug254r") + (new 'static 'speech-info-item :name "thug255r") + (new 'static 'speech-info-item :name "thug256r") + (new 'static 'speech-info-item :name "thug257r") + (new 'static 'speech-info-item :name "thug258r") + (new 'static 'speech-info-item :name "thug259r") + (new 'static 'speech-info-item :name "thug260r") + (new 'static 'speech-info-item :name "thug261r") + (new 'static 'speech-info-item :name "thug262r") + (new 'static 'speech-info-item :name "thug263r") + (new 'static 'speech-info-item :name "thug264r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug265r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug266r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug267r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug268r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug269r") + (new 'static 'speech-info-item :name "thug270r") + (new 'static 'speech-info-item :name "thug271r") + (new 'static 'speech-info-item :name "thug272r") + (new 'static 'speech-info-item :name "thug273r") + (new 'static 'speech-info-item :name "thug274r") + (new 'static 'speech-info-item :name "thug275r") + (new 'static 'speech-info-item :name "thug276r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 14) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug265r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug266r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug267r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug268r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "thug269r") + (new 'static 'speech-info-item :name "thug270r") + (new 'static 'speech-info-item :name "thug271r") + (new 'static 'speech-info-item :name "thug272r") + (new 'static 'speech-info-item :name "thug273r") + (new 'static 'speech-info-item :name "thug274r") + (new 'static 'speech-info-item :name "thug275r") + (new 'static 'speech-info-item :name "thug276r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug277r") + (new 'static 'speech-info-item :name "thug278r") + (new 'static 'speech-info-item :name "thug279r") + (new 'static 'speech-info-item :name "thug280r") + (new 'static 'speech-info-item :name "thug281r") + (new 'static 'speech-info-item :name "thug282r") + (new 'static 'speech-info-item :name "thug283r") + (new 'static 'speech-info-item :name "thug284r") + (new 'static 'speech-info-item :name "thug285r") + (new 'static 'speech-info-item :name "thug286r") + (new 'static 'speech-info-item :name "thug287r") + (new 'static 'speech-info-item :name "thug288r") + (new 'static 'speech-info-item :name "thug289r") + (new 'static 'speech-info-item :name "thug290r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug277r") + (new 'static 'speech-info-item :name "thug278r") + (new 'static 'speech-info-item :name "thug279r") + (new 'static 'speech-info-item :name "thug280r") + (new 'static 'speech-info-item :name "thug281r") + (new 'static 'speech-info-item :name "thug282r") + (new 'static 'speech-info-item :name "thug283r") + (new 'static 'speech-info-item :name "thug284r") + (new 'static 'speech-info-item :name "thug285r") + (new 'static 'speech-info-item :name "thug286r") + (new 'static 'speech-info-item :name "thug287r") + (new 'static 'speech-info-item :name "thug288r") + (new 'static 'speech-info-item :name "thug289r") + (new 'static 'speech-info-item :name "thug290r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 16 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "thug313r") + (new 'static 'speech-info-item :name "thug314r") + (new 'static 'speech-info-item :name "thug315r") + (new 'static 'speech-info-item :name "thug316r") + (new 'static 'speech-info-item :name "thug317r") + (new 'static 'speech-info-item :name "thug318r") + (new 'static 'speech-info-item :name "thug240r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-torn_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-torn_REF.gc new file mode 100644 index 0000000000..1830b3869e --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-torn_REF.gc @@ -0,0 +1,488 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn108r") + (new 'static 'speech-info-item :name "torn116r") + (new 'static 'speech-info-item :name "torn121r") + (new 'static 'speech-info-item :name "torn122r") + (new 'static 'speech-info-item :name "torn123r") + (new 'static 'speech-info-item :name "torn124r") + (new 'static 'speech-info-item :name "torn125r") + (new 'static 'speech-info-item :name "torn126r") + (new 'static 'speech-info-item :name "torn127r") + (new 'static 'speech-info-item :name "torn129r") + (new 'static 'speech-info-item :name "torn130r") + (new 'static 'speech-info-item :name "torn131r") + (new 'static 'speech-info-item :name "torn132r") + (new 'static 'speech-info-item :name "torn133r") + (new 'static 'speech-info-item :name "torn134r") + (new 'static 'speech-info-item :name "torn135r") + (new 'static 'speech-info-item :name "torn139r") + (new 'static 'speech-info-item :name "torn140r") + (new 'static 'speech-info-item :name "torn141r") + (new 'static 'speech-info-item :name "torn142r") + (new 'static 'speech-info-item :name "torn143r") + (new 'static 'speech-info-item :name "torn144r") + (new 'static 'speech-info-item :name "torn146r") + (new 'static 'speech-info-item :name "torn147r") + (new 'static 'speech-info-item :name "torn148r") + (new 'static 'speech-info-item :name "torn149r") + (new 'static 'speech-info-item :name "torn150r") + (new 'static 'speech-info-item :name "torn151r") + (new 'static 'speech-info-item :name "torn152r") + (new 'static 'speech-info-item :name "torn153r") + (new 'static 'speech-info-item :name "torn154r") + (new 'static 'speech-info-item :name "torn155r") + (new 'static 'speech-info-item :name "torn157r") + (new 'static 'speech-info-item :name "torn158r") + (new 'static 'speech-info-item :name "torn159r") + (new 'static 'speech-info-item :name "torn160r") + (new 'static 'speech-info-item :name "torn163r") + (new 'static 'speech-info-item :name "torn164r") + (new 'static 'speech-info-item :name "torn165r") + (new 'static 'speech-info-item :name "torn166r") + (new 'static 'speech-info-item :name "torn167r") + (new 'static 'speech-info-item :name "torn168r") + (new 'static 'speech-info-item :name "torn169r") + (new 'static 'speech-info-item :name "torn170r") + (new 'static 'speech-info-item :name "torn172r") + (new 'static 'speech-info-item :name "torn173r") + (new 'static 'speech-info-item :name "torn174r") + (new 'static 'speech-info-item :name "torn175r") + (new 'static 'speech-info-item :name "torn177r") + (new 'static 'speech-info-item :name "torn178r") + (new 'static 'speech-info-item :name "torn179r") + (new 'static 'speech-info-item :name "torn180r") + (new 'static 'speech-info-item :name "torn182r") + (new 'static 'speech-info-item :name "torn183r") + (new 'static 'speech-info-item :name "torn184r") + (new 'static 'speech-info-item :name "torn185r") + (new 'static 'speech-info-item :name "torn187r") + (new 'static 'speech-info-item :name "torn188r") + (new 'static 'speech-info-item :name "torn189r") + (new 'static 'speech-info-item :name "torn190r") + (new 'static 'speech-info-item :name "torn194r") + (new 'static 'speech-info-item :name "torn196r") + (new 'static 'speech-info-item :name "torn197r") + (new 'static 'speech-info-item :name "torn198r") + (new 'static 'speech-info-item :name "torn199r") + (new 'static 'speech-info-item :name "torn200r") + (new 'static 'speech-info-item :name "torn201r") + (new 'static 'speech-info-item :name "torn202r") + (new 'static 'speech-info-item :name "torn203r") + (new 'static 'speech-info-item :name "torn205r") + (new 'static 'speech-info-item :name "torn206r") + (new 'static 'speech-info-item :name "torn207r") + (new 'static 'speech-info-item :name "torn208r") + (new 'static 'speech-info-item :name "torn209r") + (new 'static 'speech-info-item :name "torn210r") + (new 'static 'speech-info-item :name "torn211r") + (new 'static 'speech-info-item :name "torn212r") + (new 'static 'speech-info-item :name "torn216r") + (new 'static 'speech-info-item :name "torn219r") + (new 'static 'speech-info-item :name "torn220r") + (new 'static 'speech-info-item :name "torn221r") + (new 'static 'speech-info-item :name "torn222r") + (new 'static 'speech-info-item :name "torn223r") + (new 'static 'speech-info-item :name "torn224r") + (new 'static 'speech-info-item :name "torn225r") + (new 'static 'speech-info-item :name "torn227r") + (new 'static 'speech-info-item :name "torn228r") + (new 'static 'speech-info-item :name "torn229r") + (new 'static 'speech-info-item :name "torn230r") + (new 'static 'speech-info-item :name "torn231r") + (new 'static 'speech-info-item :name "torn232r") + (new 'static 'speech-info-item :name "torn233r") + (new 'static 'speech-info-item :name "torn234r") + (new 'static 'speech-info-item :name "torn316r") + (new 'static 'speech-info-item :name "torn319r") + (new 'static 'speech-info-item :name "torn320r") + (new 'static 'speech-info-item :name "torn321r") + (new 'static 'speech-info-item :name "torn324r") + (new 'static 'speech-info-item :name "torn326r") + (new 'static 'speech-info-item :name "torn361r") + (new 'static 'speech-info-item :name "torn362r") + (new 'static 'speech-info-item :name "torn363r") + (new 'static 'speech-info-item :name "torn364r") + (new 'static 'speech-info-item :name "torn365r") + (new 'static 'speech-info-item :name "torn366r") + (new 'static 'speech-info-item :name "torn368r") + (new 'static 'speech-info-item :name "torn369r") + (new 'static 'speech-info-item :name "torn370r") + (new 'static 'speech-info-item :name "torn371r") + (new 'static 'speech-info-item :name "torn372r") + (new 'static 'speech-info-item :name "torn373r") + (new 'static 'speech-info-item :name "torn374r") + (new 'static 'speech-info-item :name "torn376r") + (new 'static 'speech-info-item :name "torn377r") + (new 'static 'speech-info-item :name "torn378r") + (new 'static 'speech-info-item :name "torn282r") + (new 'static 'speech-info-item :name "torn283r") + (new 'static 'speech-info-item :name "torn284r") + (new 'static 'speech-info-item :name "torn291r") + (new 'static 'speech-info-item :name "torn292r") + (new 'static 'speech-info-item :name "torn293r") + (new 'static 'speech-info-item :name "torn353r") + (new 'static 'speech-info-item :name "torn315r") + (new 'static 'speech-info-item :name "torn105r") + (new 'static 'speech-info-item :name "torn345r") + (new 'static 'speech-info-item :name "torn347r") + (new 'static 'speech-info-item :name "torn349r") + (new 'static 'speech-info-item :name "torn106r") + (new 'static 'speech-info-item :name "torn114r") + (new 'static 'speech-info-item :name "torn323r") + (new 'static 'speech-info-item :name "torn355r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn236r") + (new 'static 'speech-info-item :name "torn237r") + (new 'static 'speech-info-item :name "torn238r") + (new 'static 'speech-info-item :name "torn239r") + (new 'static 'speech-info-item :name "torn240r") + (new 'static 'speech-info-item :name "torn241r") + (new 'static 'speech-info-item :name "torn242r") + (new 'static 'speech-info-item :name "torn243r") + (new 'static 'speech-info-item :name "torn244r") + (new 'static 'speech-info-item :name "torn245r") + (new 'static 'speech-info-item :name "torn115r") + (new 'static 'speech-info-item :name "torn186r") + (new 'static 'speech-info-item :name "torn191r") + (new 'static 'speech-info-item :name "torn235r") + (new 'static 'speech-info-item :name "torn317r") + (new 'static 'speech-info-item :name "torn260r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn246r") + (new 'static 'speech-info-item :name "torn247r") + (new 'static 'speech-info-item :name "torn248r") + (new 'static 'speech-info-item :name "torn249r") + (new 'static 'speech-info-item :name "torn250r") + (new 'static 'speech-info-item :name "torn251r") + (new 'static 'speech-info-item :name "torn252r") + (new 'static 'speech-info-item :name "torn253r") + (new 'static 'speech-info-item :name "torn254r") + (new 'static 'speech-info-item :name "torn255r") + (new 'static 'speech-info-item :name "torn256r") + (new 'static 'speech-info-item :name "torn136r") + (new 'static 'speech-info-item :name "torn137r") + (new 'static 'speech-info-item :name "torn138r") + (new 'static 'speech-info-item :name "torn156r") + (new 'static 'speech-info-item :name "torn181r") + (new 'static 'speech-info-item :name "torn204r") + (new 'static 'speech-info-item :name "torn325r") + (new 'static 'speech-info-item :name "torn128r") + (new 'static 'speech-info-item :name "torn171r") + (new 'static 'speech-info-item :name "torn327r") + (new 'static 'speech-info-item :name "torn264r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn257r") + (new 'static 'speech-info-item :name "torn258r") + (new 'static 'speech-info-item :name "torn259r") + (new 'static 'speech-info-item :name "torn261r") + (new 'static 'speech-info-item :name "torn262r") + (new 'static 'speech-info-item :name "torn263r") + (new 'static 'speech-info-item :name "torn265r") + (new 'static 'speech-info-item :name "torn217r") + (new 'static 'speech-info-item :name "torn218r") + (new 'static 'speech-info-item :name "torn226r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn266r") + (new 'static 'speech-info-item :name "torn267r") + (new 'static 'speech-info-item :name "torn268r") + (new 'static 'speech-info-item :name "torn269r") + (new 'static 'speech-info-item :name "torn270r") + (new 'static 'speech-info-item :name "torn271r") + (new 'static 'speech-info-item :name "torn272r") + (new 'static 'speech-info-item :name "torn273r") + (new 'static 'speech-info-item :name "torn274r") + (new 'static 'speech-info-item :name "torn275r") + (new 'static 'speech-info-item :name "torn276r") + (new 'static 'speech-info-item :name "torn277r") + (new 'static 'speech-info-item :name "torn278r") + (new 'static 'speech-info-item :name "torn279r") + (new 'static 'speech-info-item :name "torn280r") + (new 'static 'speech-info-item :name "torn281r") + (new 'static 'speech-info-item :name "torn285r") + (new 'static 'speech-info-item :name "torn286r") + (new 'static 'speech-info-item :name "torn287r") + (new 'static 'speech-info-item :name "torn288r") + (new 'static 'speech-info-item :name "torn289r") + (new 'static 'speech-info-item :name "torn290r") + (new 'static 'speech-info-item :name "torn294r") + (new 'static 'speech-info-item :name "torn295r") + (new 'static 'speech-info-item :name "torn117r") + (new 'static 'speech-info-item :name "torn176r") + (new 'static 'speech-info-item :name "torn193r") + (new 'static 'speech-info-item :name "torn118r") + (new 'static 'speech-info-item :name "torn119r") + (new 'static 'speech-info-item :name "torn192r") + (new 'static 'speech-info-item :name "torn195r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn296r") + (new 'static 'speech-info-item :name "torn297r") + (new 'static 'speech-info-item :name "torn298r") + (new 'static 'speech-info-item :name "torn299r") + (new 'static 'speech-info-item :name "torn300r") + (new 'static 'speech-info-item :name "torn301r") + (new 'static 'speech-info-item :name "torn302r") + (new 'static 'speech-info-item :name "torn303r") + (new 'static 'speech-info-item :name "torn304r") + (new 'static 'speech-info-item :name "torn305r") + (new 'static 'speech-info-item :name "torn306r") + (new 'static 'speech-info-item :name "torn307r") + (new 'static 'speech-info-item :name "torn308r") + (new 'static 'speech-info-item :name "torn161r") + (new 'static 'speech-info-item :name "torn162r") + (new 'static 'speech-info-item :name "torn318r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn309r") + (new 'static 'speech-info-item :name "torn310r") + (new 'static 'speech-info-item :name "torn311r") + (new 'static 'speech-info-item :name "torn312r") + (new 'static 'speech-info-item :name "torn313r") + (new 'static 'speech-info-item :name "torn314r") + (new 'static 'speech-info-item :name "torn101r") + (new 'static 'speech-info-item :name "torn102r") + (new 'static 'speech-info-item :name "torn103r") + (new 'static 'speech-info-item :name "torn104r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "torn328r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn329r") + (new 'static 'speech-info-item :name "torn330r") + (new 'static 'speech-info-item :name "torn331r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn332r") + (new 'static 'speech-info-item :name "torn333r") + (new 'static 'speech-info-item :name "torn334r") + (new 'static 'speech-info-item :name "torn335r") + (new 'static 'speech-info-item :name "torn336r") + (new 'static 'speech-info-item :name "torn337r") + (new 'static 'speech-info-item :name "torn338r") + (new 'static 'speech-info-item :name "torn213r") + (new 'static 'speech-info-item :name "torn214r") + (new 'static 'speech-info-item :name "torn215r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 3) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn339r") + (new 'static 'speech-info-item :name "torn340r") + (new 'static 'speech-info-item :name "torn341r") + (new 'static 'speech-info-item :name "torn342r") + (new 'static 'speech-info-item :name "torn343r") + (new 'static 'speech-info-item :name "torn344r") + (new 'static 'speech-info-item :name "torn346r") + (new 'static 'speech-info-item :name "torn348r") + (new 'static 'speech-info-item :name "torn350r") + (new 'static 'speech-info-item :name "torn351r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "torn107r") + (new 'static 'speech-info-item :name "torn109r") + (new 'static 'speech-info-item :name "torn110r") + (new 'static 'speech-info-item :name "torn112r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 2) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn352r") + (new 'static 'speech-info-item :name "torn354r") + (new 'static 'speech-info-item :name "torn356r") + (new 'static 'speech-info-item :name "torn357r") + (new 'static 'speech-info-item :name "torn358r") + (new 'static 'speech-info-item :name "torn359r") + (new 'static 'speech-info-item :name "torn360r") + (new 'static 'speech-info-item :name "torn111r" :flags (speech-info-flag si0)) + (new 'static 'speech-info-item :name "torn145r" :flags (speech-info-flag si0)) + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn339r") + (new 'static 'speech-info-item :name "torn340r") + (new 'static 'speech-info-item :name "torn341r") + (new 'static 'speech-info-item :name "torn342r") + (new 'static 'speech-info-item :name "torn343r") + (new 'static 'speech-info-item :name "torn344r") + (new 'static 'speech-info-item :name "torn346r") + (new 'static 'speech-info-item :name "torn348r") + (new 'static 'speech-info-item :name "torn350r") + (new 'static 'speech-info-item :name "torn107r") + (new 'static 'speech-info-item :name "torn109r") + (new 'static 'speech-info-item :name "torn110r") + (new 'static 'speech-info-item :name "torn112r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn352r") + (new 'static 'speech-info-item :name "torn354r") + (new 'static 'speech-info-item :name "torn356r") + (new 'static 'speech-info-item :name "torn357r") + (new 'static 'speech-info-item :name "torn358r") + (new 'static 'speech-info-item :name "torn359r") + (new 'static 'speech-info-item :name "torn360r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn379r") + (new 'static 'speech-info-item :name "torn380r") + (new 'static 'speech-info-item :name "torn381r") + (new 'static 'speech-info-item :name "torn382r") + (new 'static 'speech-info-item :name "torn106r") + (new 'static 'speech-info-item :name "torn113r") + (new 'static 'speech-info-item :name "torn114r") + (new 'static 'speech-info-item :name "torn120r") + (new 'static 'speech-info-item :name "torn247r") + (new 'static 'speech-info-item :name "torn248r") + (new 'static 'speech-info-item :name "torn249r") + (new 'static 'speech-info-item :name "torn250r") + (new 'static 'speech-info-item :name "torn251r") + (new 'static 'speech-info-item :name "torn252r") + (new 'static 'speech-info-item :name "torn258r") + (new 'static 'speech-info-item :name "torn259r") + (new 'static 'speech-info-item :name "torn263r") + (new 'static 'speech-info-item :name "torn264r") + (new 'static 'speech-info-item :name "torn265r") + (new 'static 'speech-info-item :name "torn267r") + (new 'static 'speech-info-item :name "torn268r") + (new 'static 'speech-info-item :name "torn269r") + (new 'static 'speech-info-item :name "torn271r") + (new 'static 'speech-info-item :name "torn280r") + (new 'static 'speech-info-item :name "torn285r") + (new 'static 'speech-info-item :name "torn286r") + (new 'static 'speech-info-item :name "torn287r") + (new 'static 'speech-info-item :name "torn305r") + (new 'static 'speech-info-item :name "torn322r") + (new 'static 'speech-info-item :name "torn323r") + (new 'static 'speech-info-item :name "torn367r") + (new 'static 'speech-info-item :name "torn375r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn102r") + (new 'static 'speech-info-item :name "torn104r") + (new 'static 'speech-info-item :name "torn105r") + (new 'static 'speech-info-item :name "torn254r") + (new 'static 'speech-info-item :name "torn255r") + (new 'static 'speech-info-item :name "torn296r") + (new 'static 'speech-info-item :name "torn299r") + (new 'static 'speech-info-item :name "torn300r") + (new 'static 'speech-info-item :name "torn301r") + (new 'static 'speech-info-item :name "torn303r") + (new 'static 'speech-info-item :name "torn304r") + (new 'static 'speech-info-item :name "torn306r") + (new 'static 'speech-info-item :name "torn307r") + (new 'static 'speech-info-item :name "torn309r") + (new 'static 'speech-info-item :name "torn313r") + (new 'static 'speech-info-item :name "torn314r") + (new 'static 'speech-info-item :name "torn315r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "torn236r") + (new 'static 'speech-info-item :name "torn237r") + (new 'static 'speech-info-item :name "torn239r") + (new 'static 'speech-info-item :name "torn240r") + (new 'static 'speech-info-item :name "torn241r") + (new 'static 'speech-info-item :name "torn242r") + (new 'static 'speech-info-item :name "torn243r") + (new 'static 'speech-info-item :name "torn244r") + (new 'static 'speech-info-item :name "torn245r") + (new 'static 'speech-info-item :name "torn186r") + (new 'static 'speech-info-item :name "torn191r") + (new 'static 'speech-info-item :name "torn317r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 9 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "torn322r")) + :flags (speech-info-flag si0) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-ur86_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-ur86_REF.gc new file mode 100644 index 0000000000..6b69a2bb85 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-ur86_REF.gc @@ -0,0 +1,222 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86101r") + (new 'static 'speech-info-item :name "ur86102r") + (new 'static 'speech-info-item :name "ur86103r") + (new 'static 'speech-info-item :name "ur86104r") + (new 'static 'speech-info-item :name "ur86105r") + (new 'static 'speech-info-item :name "ur86106r") + (new 'static 'speech-info-item :name "ur86107r") + (new 'static 'speech-info-item :name "ur86108r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86101r") + (new 'static 'speech-info-item :name "ur86102r") + (new 'static 'speech-info-item :name "ur86103r") + (new 'static 'speech-info-item :name "ur86104r") + (new 'static 'speech-info-item :name "ur86105r") + (new 'static 'speech-info-item :name "ur86106r") + (new 'static 'speech-info-item :name "ur86107r") + (new 'static 'speech-info-item :name "ur86108r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86109r") + (new 'static 'speech-info-item :name "ur86110r") + (new 'static 'speech-info-item :name "ur86111r") + (new 'static 'speech-info-item :name "ur86112r") + (new 'static 'speech-info-item :name "ur86113r") + (new 'static 'speech-info-item :name "ur86114r") + (new 'static 'speech-info-item :name "ur86115r") + (new 'static 'speech-info-item :name "ur86116r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86117r") + (new 'static 'speech-info-item :name "ur86118r") + (new 'static 'speech-info-item :name "ur86119r") + (new 'static 'speech-info-item :name "ur86120r") + (new 'static 'speech-info-item :name "ur86121r") + (new 'static 'speech-info-item :name "ur86122r") + (new 'static 'speech-info-item :name "ur86123r") + (new 'static 'speech-info-item :name "ur86142r") + (new 'static 'speech-info-item :name "ur86143r") + (new 'static 'speech-info-item :name "ur86144r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86124r") + (new 'static 'speech-info-item :name "ur86126r") + (new 'static 'speech-info-item :name "ur86127r") + (new 'static 'speech-info-item :name "ur86128r") + (new 'static 'speech-info-item :name "ur86129r") + (new 'static 'speech-info-item :name "ur86130r") + (new 'static 'speech-info-item :name "ur86131r") + (new 'static 'speech-info-item :name "ur86138r") + (new 'static 'speech-info-item :name "ur86139r") + (new 'static 'speech-info-item :name "ur86140r") + (new 'static 'speech-info-item :name "ur86141r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86132r") + (new 'static 'speech-info-item :name "ur86133r") + (new 'static 'speech-info-item :name "ur86134r") + (new 'static 'speech-info-item :name "ur86135r") + (new 'static 'speech-info-item :name "ur86136r") + (new 'static 'speech-info-item :name "ur86137r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86152r") + (new 'static 'speech-info-item :name "ur86153r") + (new 'static 'speech-info-item :name "ur86154r") + (new 'static 'speech-info-item :name "ur86155r") + (new 'static 'speech-info-item :name "ur86156r") + (new 'static 'speech-info-item :name "ur86157r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86152r") + (new 'static 'speech-info-item :name "ur86153r") + (new 'static 'speech-info-item :name "ur86154r") + (new 'static 'speech-info-item :name "ur86155r") + (new 'static 'speech-info-item :name "ur86156r") + (new 'static 'speech-info-item :name "ur86157r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86158r") + (new 'static 'speech-info-item :name "ur86159r") + (new 'static 'speech-info-item :name "ur86160r") + (new 'static 'speech-info-item :name "ur86161r") + (new 'static 'speech-info-item :name "ur86162r") + (new 'static 'speech-info-item :name "ur86163r") + (new 'static 'speech-info-item :name "ur86164r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86158r") + (new 'static 'speech-info-item :name "ur86159r") + (new 'static 'speech-info-item :name "ur86160r") + (new 'static 'speech-info-item :name "ur86161r") + (new 'static 'speech-info-item :name "ur86162r") + (new 'static 'speech-info-item :name "ur86163r") + (new 'static 'speech-info-item :name "ur86164r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86172r") + (new 'static 'speech-info-item :name "ur86173r") + (new 'static 'speech-info-item :name "ur86174r") + (new 'static 'speech-info-item :name "ur86175r") + (new 'static 'speech-info-item :name "ur86176r") + (new 'static 'speech-info-item :name "ur86177r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "ur86145r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86146r") + (new 'static 'speech-info-item :name "ur86147r") + (new 'static 'speech-info-item :name "ur86148r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86149r") + (new 'static 'speech-info-item :name "ur86150r") + (new 'static 'speech-info-item :name "ur86151r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86178r") + (new 'static 'speech-info-item :name "ur86179r") + (new 'static 'speech-info-item :name "ur86180r") + (new 'static 'speech-info-item :name "ur86181r") + (new 'static 'speech-info-item :name "ur86182r") + (new 'static 'speech-info-item :name "ur86183r") + (new 'static 'speech-info-item :name "ur86184r") + (new 'static 'speech-info-item :name "ur86185r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 13 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "ur86165r") + (new 'static 'speech-info-item :name "ur86166r") + (new 'static 'speech-info-item :name "ur86167r") + (new 'static 'speech-info-item :name "ur86168r") + (new 'static 'speech-info-item :name "ur86169r") + (new 'static 'speech-info-item :name "ur86170r") + (new 'static 'speech-info-item :name "ur86171r") + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/sound/speech/speech-ximon_REF.gc b/test/decompiler/reference/jakx/engine/sound/speech/speech-ximon_REF.gc new file mode 100644 index 0000000000..34984d631b --- /dev/null +++ b/test/decompiler/reference/jakx/engine/sound/speech/speech-ximon_REF.gc @@ -0,0 +1,367 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 0) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim228r") + (new 'static 'speech-info-item :name "xim230r") + (new 'static 'speech-info-item :name "xim232r") + (new 'static 'speech-info-item :name "xim284r") + (new 'static 'speech-info-item :name "xim295r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 1) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim101r") + (new 'static 'speech-info-item :name "xim102r") + (new 'static 'speech-info-item :name "xim103r") + (new 'static 'speech-info-item :name "xim104r") + (new 'static 'speech-info-item :name "xim105r") + (new 'static 'speech-info-item :name "xim106r") + (new 'static 'speech-info-item :name "xim107r") + (new 'static 'speech-info-item :name "xim108r") + (new 'static 'speech-info-item :name "xim109r") + (new 'static 'speech-info-item :name "xim110r") + (new 'static 'speech-info-item :name "xim111r") + (new 'static 'speech-info-item :name "xim112r") + (new 'static 'speech-info-item :name "xim113r") + (new 'static 'speech-info-item :name "xim114r") + (new 'static 'speech-info-item :name "xim115r") + (new 'static 'speech-info-item :name "xim116r") + (new 'static 'speech-info-item :name "xim117r") + (new 'static 'speech-info-item :name "xim118r") + (new 'static 'speech-info-item :name "xim119r") + (new 'static 'speech-info-item :name "xim120r") + (new 'static 'speech-info-item :name "xim121r") + (new 'static 'speech-info-item :name "xim122r") + (new 'static 'speech-info-item :name "xim123r") + (new 'static 'speech-info-item :name "xim124r") + (new 'static 'speech-info-item :name "xim125r") + (new 'static 'speech-info-item :name "xim126r") + (new 'static 'speech-info-item :name "xim127r") + (new 'static 'speech-info-item :name "xim128r") + (new 'static 'speech-info-item :name "xim129r") + (new 'static 'speech-info-item :name "xim130r") + (new 'static 'speech-info-item :name "xim131r") + (new 'static 'speech-info-item :name "xim132r") + (new 'static 'speech-info-item :name "xim133r") + (new 'static 'speech-info-item :name "xim134r") + (new 'static 'speech-info-item :name "xim135r") + (new 'static 'speech-info-item :name "xim136r") + (new 'static 'speech-info-item :name "xim137r") + (new 'static 'speech-info-item :name "xim138r") + (new 'static 'speech-info-item :name "xim139r") + (new 'static 'speech-info-item :name "xim140r") + (new 'static 'speech-info-item :name "xim141r") + (new 'static 'speech-info-item :name "xim142r") + (new 'static 'speech-info-item :name "xim143r") + (new 'static 'speech-info-item :name "xim276r") + (new 'static 'speech-info-item :name "xim225r") + (new 'static 'speech-info-item :name "xim164r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 16) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim101r") + (new 'static 'speech-info-item :name "xim103r") + (new 'static 'speech-info-item :name "xim104r") + (new 'static 'speech-info-item :name "xim105r") + (new 'static 'speech-info-item :name "xim106r") + (new 'static 'speech-info-item :name "xim107r") + (new 'static 'speech-info-item :name "xim108r") + (new 'static 'speech-info-item :name "xim109r") + (new 'static 'speech-info-item :name "xim110r") + (new 'static 'speech-info-item :name "xim112r") + (new 'static 'speech-info-item :name "xim113r") + (new 'static 'speech-info-item :name "xim115r") + (new 'static 'speech-info-item :name "xim116r") + (new 'static 'speech-info-item :name "xim118r") + (new 'static 'speech-info-item :name "xim119r") + (new 'static 'speech-info-item :name "xim120r") + (new 'static 'speech-info-item :name "xim121r") + (new 'static 'speech-info-item :name "xim123r") + (new 'static 'speech-info-item :name "xim124r") + (new 'static 'speech-info-item :name "xim125r") + (new 'static 'speech-info-item :name "xim126r") + (new 'static 'speech-info-item :name "xim127r") + (new 'static 'speech-info-item :name "xim128r") + (new 'static 'speech-info-item :name "xim129r") + (new 'static 'speech-info-item :name "xim130r") + (new 'static 'speech-info-item :name "xim131r") + (new 'static 'speech-info-item :name "xim132r") + (new 'static 'speech-info-item :name "xim133r") + (new 'static 'speech-info-item :name "xim134r") + (new 'static 'speech-info-item :name "xim135r") + (new 'static 'speech-info-item :name "xim136r") + (new 'static 'speech-info-item :name "xim137r") + (new 'static 'speech-info-item :name "xim138r") + (new 'static 'speech-info-item :name "xim139r") + (new 'static 'speech-info-item :name "xim140r") + (new 'static 'speech-info-item :name "xim142r") + (new 'static 'speech-info-item :name "xim143r") + (new 'static 'speech-info-item :name "xim276r") + (new 'static 'speech-info-item :name "xim225r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 4) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim144r") + (new 'static 'speech-info-item :name "xim145r") + (new 'static 'speech-info-item :name "xim146r") + (new 'static 'speech-info-item :name "xim147r") + (new 'static 'speech-info-item :name "xim148r") + (new 'static 'speech-info-item :name "xim149r") + (new 'static 'speech-info-item :name "xim150r") + (new 'static 'speech-info-item :name "xim151r") + (new 'static 'speech-info-item :name "xim152r") + (new 'static 'speech-info-item :name "xim153r") + (new 'static 'speech-info-item :name "xim154r") + (new 'static 'speech-info-item :name "xim155r") + (new 'static 'speech-info-item :name "xim156r") + (new 'static 'speech-info-item :name "xim157r") + (new 'static 'speech-info-item :name "xim224r") + (new 'static 'speech-info-item :name "xim233r") + (new 'static 'speech-info-item :name "xim231r") + (new 'static 'speech-info-item :name "xim227r") + (new 'static 'speech-info-item :name "xim169r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 5) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim158r") + (new 'static 'speech-info-item :name "xim159r") + (new 'static 'speech-info-item :name "xim160r") + (new 'static 'speech-info-item :name "xim161r") + (new 'static 'speech-info-item :name "xim162r") + (new 'static 'speech-info-item :name "xim163r") + (new 'static 'speech-info-item :name "xim165r") + (new 'static 'speech-info-item :name "xim166r") + (new 'static 'speech-info-item :name "xim167r") + (new 'static 'speech-info-item :name "xim168r") + (new 'static 'speech-info-item :name "xim170r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 6) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim171r") + (new 'static 'speech-info-item :name "xim172r") + (new 'static 'speech-info-item :name "xim173r") + (new 'static 'speech-info-item :name "xim174r") + (new 'static 'speech-info-item :name "xim175r") + (new 'static 'speech-info-item :name "xim176r") + (new 'static 'speech-info-item :name "xim177r") + (new 'static 'speech-info-item :name "xim178r") + (new 'static 'speech-info-item :name "xim179r") + (new 'static 'speech-info-item :name "xim180r") + (new 'static 'speech-info-item :name "xim181r") + (new 'static 'speech-info-item :name "xim182r") + (new 'static 'speech-info-item :name "xim183r") + (new 'static 'speech-info-item :name "xim184r") + (new 'static 'speech-info-item :name "xim185r") + (new 'static 'speech-info-item :name "xim186r") + (new 'static 'speech-info-item :name "xim187r") + (new 'static 'speech-info-item :name "xim188r") + (new 'static 'speech-info-item :name "xim189r") + (new 'static 'speech-info-item :name "xim190r") + (new 'static 'speech-info-item :name "xim191r") + (new 'static 'speech-info-item :name "xim192r") + (new 'static 'speech-info-item :name "xim193r") + (new 'static 'speech-info-item :name "xim194r") + (new 'static 'speech-info-item :name "xim195r") + (new 'static 'speech-info-item :name "xim196r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 10) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim197r") + (new 'static 'speech-info-item :name "xim198r") + (new 'static 'speech-info-item :name "xim199r") + (new 'static 'speech-info-item :name "xim200r") + (new 'static 'speech-info-item :name "xim201r") + (new 'static 'speech-info-item :name "xim202r") + (new 'static 'speech-info-item :name "xim203r") + (new 'static 'speech-info-item :name "xim204r") + (new 'static 'speech-info-item :name "xim205r") + (new 'static 'speech-info-item :name "xim206r") + (new 'static 'speech-info-item :name "xim207r") + (new 'static 'speech-info-item :name "xim208r") + (new 'static 'speech-info-item :name "xim209r") + (new 'static 'speech-info-item :name "xim210r") + (new 'static 'speech-info-item :name "xim211r") + (new 'static 'speech-info-item :name "xim212r") + (new 'static 'speech-info-item :name "xim213r") + (new 'static 'speech-info-item :name "xim214r") + (new 'static 'speech-info-item :name "xim226r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 7) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim215r") + (new 'static 'speech-info-item :name "xim219r") + (new 'static 'speech-info-item :name "xim220r") + (new 'static 'speech-info-item :name "xim221r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 12) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "xim234r")) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 8) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim235r") + (new 'static 'speech-info-item :name "xim236r") + (new 'static 'speech-info-item :name "xim237r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 11) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim238r") + (new 'static 'speech-info-item :name "xim239r") + (new 'static 'speech-info-item :name "xim240r") + (new 'static 'speech-info-item :name "xim241r") + (new 'static 'speech-info-item :name "xim242r") + (new 'static 'speech-info-item :name "xim243r") + (new 'static 'speech-info-item :name "xim244r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 3) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim245r") + (new 'static 'speech-info-item :name "xim246r") + (new 'static 'speech-info-item :name "xim247r") + (new 'static 'speech-info-item :name "xim248r") + (new 'static 'speech-info-item :name "xim249r") + (new 'static 'speech-info-item :name "xim250r") + (new 'static 'speech-info-item :name "xim251r") + (new 'static 'speech-info-item :name "xim252r") + (new 'static 'speech-info-item :name "xim254r") + (new 'static 'speech-info-item :name "xim255r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 14) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim245r") + (new 'static 'speech-info-item :name "xim246r") + (new 'static 'speech-info-item :name "xim247r") + (new 'static 'speech-info-item :name "xim248r") + (new 'static 'speech-info-item :name "xim249r") + (new 'static 'speech-info-item :name "xim250r") + (new 'static 'speech-info-item :name "xim251r") + (new 'static 'speech-info-item :name "xim252r") + (new 'static 'speech-info-item :name "xim254r") + (new 'static 'speech-info-item :name "xim255r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 2) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim258r") + (new 'static 'speech-info-item :name "xim259r") + (new 'static 'speech-info-item :name "xim260r") + (new 'static 'speech-info-item :name "xim261r") + (new 'static 'speech-info-item :name "xim262r") + (new 'static 'speech-info-item :name "xim263r") + (new 'static 'speech-info-item :name "xim264r") + (new 'static 'speech-info-item :name "xim265r") + (new 'static 'speech-info-item :name "xim266r") + (new 'static 'speech-info-item :name "xim267r") + (new 'static 'speech-info-item :name "xim268r") + (new 'static 'speech-info-item :name "xim269r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 13) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim258r") + (new 'static 'speech-info-item :name "xim259r") + (new 'static 'speech-info-item :name "xim260r") + (new 'static 'speech-info-item :name "xim261r") + (new 'static 'speech-info-item :name "xim262r") + (new 'static 'speech-info-item :name "xim263r") + (new 'static 'speech-info-item :name "xim264r") + (new 'static 'speech-info-item :name "xim265r") + (new 'static 'speech-info-item :name "xim266r") + (new 'static 'speech-info-item :name "xim267r") + (new 'static 'speech-info-item :name "xim268r") + (new 'static 'speech-info-item :name "xim269r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 9) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim288r") + (new 'static 'speech-info-item :name "xim289r") + (new 'static 'speech-info-item :name "xim290r") + (new 'static 'speech-info-item :name "xim291r") + (new 'static 'speech-info-item :name "xim292r") + (new 'static 'speech-info-item :name "xim294r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 15) + (new 'static 'speech-info :list (new 'static 'boxed-array :type speech-info-item + (new 'static 'speech-info-item :name "xim222r") + (new 'static 'speech-info-item :name "xim223r") + (new 'static 'speech-info-item :name "xim216r") + (new 'static 'speech-info-item :name "xim217r") + (new 'static 'speech-info-item :name "xim218r") + ) + ) + ) + +;; failed to figure out what this is: +(set! (-> *speech-control* channels 20 speeches 21) + (new 'static 'speech-info + :list (new 'static 'boxed-array :type speech-info-item (new 'static 'speech-info-item :name "xim229r")) + :flags (speech-info-flag si0) + ) + ) + + + + diff --git a/test/decompiler/reference/jakx/engine/target/target-h_REF.gc b/test/decompiler/reference/jakx/engine/target/target-h_REF.gc new file mode 100644 index 0000000000..ed62b79d12 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/target/target-h_REF.gc @@ -0,0 +1,127 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type target +(deftype target (process-focusable) + ((control collide-shape-moving :overlay-at root) + (vehicle uint64) + (target-flags target-flags :overlay-at state-flags) + (game game-info) + (init-time uint64) + (teleport-time uint64) + (state-hook-time uint64) + (state-hook (function none :behavior target)) + (cam-user-mode symbol) + (anim-seed uint64) + (alt-cam-pos vector :inline) + (current-level level) + (saved-pos transformq :inline) + (saved-owner uint64) + (excitement float) + (shock-effect-time uint64) + (fp-hud uint64) + (no-load-wait uint64) + (no-look-around-wait uint64) + (burn-proc uint64) + (pre-joint-hook (function none :behavior target)) + (notify uint64) + (mode-cache symbol) + (mode-param1 uint64) + (mode-param2 uint64) + (mode-param3 uint64) + (major-mode-exit-hook (function none :behavior target)) + (major-mode-event-hook (function process int symbol event-message-block object :behavior target)) + (sub-mode-exit-hook (function none :behavior target)) + (target-effect uint64) + (color-effect symbol) + (color-effect-start-time uint64) + (color-effect-duration uint64) + (yes-state basic) + (no-state basic) + (state-object object 4) + (state-uint32 uint32 4 :overlay-at (-> state-object 0)) + (state-float float 4 :overlay-at (-> state-object 0)) + (state-button uint32 4) + (state-vector vector 4 :inline) + (pad1 uint32 6) + (state-smush smush-control :inline) + (state-sound uint32 4) + (state-handle handle 4) + (state-impact impact-control 1 :inline) + ) + (:methods + (target-method-59 () none) + ) + (:states + target-continue + target-float + target-intro + target-introb + target-pilot-start + target-title + ) + ) + +;; definition for method 3 of type target +(defmethod inspect ((this target)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process-focusable inspect))) + (t9-0 this) + ) + (format #t "~2Tvehicle: ~D~%" (-> this vehicle)) + (format #t "~2Ttarget-flags: ~D~%" (-> this state-flags)) + (format #t "~2Tgame: ~A~%" (-> this game)) + (format #t "~2Tinit-time: ~D~%" (-> this init-time)) + (format #t "~2Tteleport-time: ~D~%" (-> this teleport-time)) + (format #t "~2Tstate-hook-time: ~D~%" (-> this state-hook-time)) + (format #t "~2Tstate-hook: ~A~%" (-> this state-hook)) + (format #t "~2Tcam-user-mode: ~A~%" (-> this cam-user-mode)) + (format #t "~2Tanim-seed: ~D~%" (-> this anim-seed)) + (format #t "~2Talt-cam-pos: ~`vector`P~%" (-> this alt-cam-pos)) + (format #t "~2Tcurrent-level: ~A~%" (-> this current-level)) + (format #t "~2Tsaved-pos: #~%" (-> this saved-pos)) + (format #t "~2Tsaved-owner: ~D~%" (-> this saved-owner)) + (format #t "~2Texcitement: ~f~%" (-> this excitement)) + (format #t "~2Tshock-effect-time: ~D~%" (-> this shock-effect-time)) + (format #t "~2Tfp-hud: ~D~%" (-> this fp-hud)) + (format #t "~2Tno-load-wait: ~D~%" (-> this no-load-wait)) + (format #t "~2Tno-look-around-wait: ~D~%" (-> this no-look-around-wait)) + (format #t "~2Tburn-proc: ~D~%" (-> this burn-proc)) + (format #t "~2Tpre-joint-hook: ~A~%" (-> this pre-joint-hook)) + (format #t "~2Tnotify: ~D~%" (-> this notify)) + (format #t "~2Tmode-cache: ~A~%" (-> this mode-cache)) + (format #t "~2Tmode-param1: ~D~%" (-> this mode-param1)) + (format #t "~2Tmode-param2: ~A~%" (-> this mode-param2)) + (format #t "~2Tmode-param3: ~A~%" (-> this mode-param3)) + (format #t "~2Tmajor-mode-exit-hook: ~A~%" (-> this major-mode-exit-hook)) + (format #t "~2Tmajor-mode-event-hook: ~A~%" (-> this major-mode-event-hook)) + (format #t "~2Tsub-mode-exit-hook: ~A~%" (-> this sub-mode-exit-hook)) + (format #t "~2Ttarget-effect: ~D~%" (-> this target-effect)) + (format #t "~2Tcolor-effect: ~A~%" (-> this color-effect)) + (format #t "~2Tcolor-effect-start-time: ~D~%" (-> this color-effect-start-time)) + (format #t "~2Tcolor-effect-duration: ~D~%" (-> this color-effect-duration)) + (format #t "~2Tyes-state: ~A~%" (-> this yes-state)) + (format #t "~2Tno-state: ~A~%" (-> this no-state)) + (format #t "~2Tstate-object[4] @ #x~X~%" (-> this state-object)) + (format #t "~2Tstate-uint32[4] @ #x~X~%" (-> this state-object)) + (format #t "~2Tstate-float[4] @ #x~X~%" (-> this state-object)) + (format #t "~2Tstate-button[4] @ #x~X~%" (-> this state-button)) + (format #t "~2Tstate-vector[4] @ #x~X~%" (-> this state-vector)) + (format #t "~2Tstate-time[4] @ #x~X~%" (-> this state-time)) + (format #t "~2Tstate-smush: #~%" (-> this state-smush)) + (format #t "~2Tstate-sound[4] @ #x~X~%" (-> this state-sound)) + (format #t "~2Tstate-handle[4] @ #x~X~%" (-> this state-handle)) + (format #t "~2Tstate-impact[1] @ #x~X~%" (-> this state-impact)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/ui/hud-h_REF.gc b/test/decompiler/reference/jakx/engine/ui/hud-h_REF.gc index e10534f778..14dbed8a6e 100644 --- a/test/decompiler/reference/jakx/engine/ui/hud-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/ui/hud-h_REF.gc @@ -242,3 +242,7 @@ ;; failed to figure out what this is: 0 + + + + diff --git a/test/decompiler/reference/jakx/engine/ui/menu2-h_REF.gc b/test/decompiler/reference/jakx/engine/ui/menu2-h_REF.gc new file mode 100644 index 0000000000..fc8f4fe3f6 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/ui/menu2-h_REF.gc @@ -0,0 +1,1524 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type menu-string +(deftype menu-string (hud-string) + ((pad int32) + ) + ) + +;; definition for method 3 of type menu-string +(defmethod inspect ((this menu-string)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'menu-string) + (format #t "~1Ttext: ~A~%" (-> this text)) + (format #t "~1Tscale: ~f~%" (-> this scale)) + (format #t "~1Twidth: ~f~%" (-> this width)) + (format #t "~1Theight: ~f~%" (-> this height)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tpos: #~%" (-> this pos)) + (format #t "~1Talpha: ~f~%" (-> this alpha)) + (format #t "~1Ttime: ~f~%" (-> this time)) + (format #t "~1Teffect: ~D~%" (-> this effect)) + (format #t "~1Teffect-color: ~D~%" (-> this effect-color)) + (format #t "~1Ttext-length: ~D~%" (-> this text-length)) + (format #t "~1Talpha: ~f~%" (-> this alpha)) + (label cfg-4) + this + ) + +;; definition of type menu-option-info +(deftype menu-option-info (structure) + ((display-name-id uint32) + (sym basic) + (extra basic) + (extra-object basic :overlay-at extra) + (extra-int int32 :overlay-at extra) + ) + ) + +;; definition for method 3 of type menu-option-info +(defmethod inspect ((this menu-option-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'menu-option-info) + (format #t "~1Tdisplay-name-id: ~D~%" (-> this display-name-id)) + (format #t "~1Tsym: ~A~%" (-> this sym)) + (format #t "~1Textra: ~A~%" (-> this extra)) + (format #t "~1Textra-object: ~A~%" (-> this extra)) + (format #t "~1Textra-int: ~D~%" (-> this extra)) + (label cfg-4) + this + ) + +;; definition of type strings-extra-struct +(deftype strings-extra-struct (structure) + ((text uint8 128) + (extra basic) + (extra-object basic :overlay-at extra) + (extra-int int32 :overlay-at extra) + (extra-int16 int16 2 :overlay-at extra) + ) + ) + +;; definition for method 3 of type strings-extra-struct +(defmethod inspect ((this strings-extra-struct)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'strings-extra-struct) + (format #t "~1Ttext[128] @ #x~X~%" (-> this text)) + (format #t "~1Textra: ~A~%" (-> this extra)) + (format #t "~1Textra-object: ~A~%" (-> this extra)) + (format #t "~1Textra-int: ~D~%" (-> this extra)) + (format #t "~1Textra-int16[2] @ #x~X~%" (&-> this extra)) + (label cfg-4) + this + ) + +;; definition of type menu-selection-struct +(deftype menu-selection-struct (structure) + ((array-ptr basic) + (selection-index int32) + (last-sym basic) + ) + ) + +;; definition for method 3 of type menu-selection-struct +(defmethod inspect ((this menu-selection-struct)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'menu-selection-struct) + (format #t "~1Tarray-ptr: ~A~%" (-> this array-ptr)) + (format #t "~1Tselection-index: ~D~%" (-> this selection-index)) + (format #t "~1Tlast-sym: ~A~%" (-> this last-sym)) + (label cfg-4) + this + ) + +;; definition of type animation-info +(deftype animation-info (structure) + ((enter-anim int32) + (exit-anim int32) + (running-anim int32) + (anim-speed float) + (enter-delay uint32) + (3d-offset vector :inline) + (3d-offset-x float :overlay-at (-> 3d-offset data 0)) + (3d-offset-y float :overlay-at (-> 3d-offset data 1)) + (3d-offset-z float :overlay-at (-> 3d-offset data 2)) + (3d-offset-w float :overlay-at (-> 3d-offset data 3)) + ) + ) + +;; definition for method 3 of type animation-info +(defmethod inspect ((this animation-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'animation-info) + (format #t "~1Tenter-anim: ~D~%" (-> this enter-anim)) + (format #t "~1Texit-anim: ~D~%" (-> this exit-anim)) + (format #t "~1Trunning-anim: ~D~%" (-> this running-anim)) + (format #t "~1Tanim-speed: ~f~%" (-> this anim-speed)) + (format #t "~1Tenter-delay: ~D~%" (-> this enter-delay)) + (format #t "~1T3d-offset: #~%" (-> this 3d-offset)) + (format #t "~1T3d-offset-x: ~f~%" (-> this 3d-offset x)) + (format #t "~1T3d-offset-y: ~f~%" (-> this 3d-offset y)) + (format #t "~1T3d-offset-z: ~f~%" (-> this 3d-offset z)) + (format #t "~1T3d-offset-w: ~f~%" (-> this 3d-offset w)) + (label cfg-4) + this + ) + +;; definition of type base-menu-info +(deftype base-menu-info (structure) + ((menu-type basic) + (children basic) + (name-symbol basic) + (3d-menu-type basic) + (trans-info animation-info) + (joint-index int8) + (joint-index-2 int8) + (box-index int8) + (flags uint8) + (joints basic) + (anim-delay uint32) + (width int32) + (height int32) + (scale-y float) + (scale-x float) + (user-data uint32) + ) + ) + +;; definition for method 3 of type base-menu-info +(defmethod inspect ((this base-menu-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'base-menu-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (label cfg-4) + this + ) + +;; definition of type base-menu +(deftype base-menu (process-drawable) + ((child-handles basic) + (info-ptr base-menu-info) + (focused? basic) + (3d-menu-2d-offset vector :inline) + (pos-x float) + (pos-y float) + (pos-z float) + (menu-time uint32) + (width int32) + (height int32) + (width-array basic) + (height-array basic) + (joint-mat matrix :inline) + (offset-matrix matrix :inline) + (j-mod joint-mod-set-world :inline) + (extra-offset vector :inline) + (pad int8) + (hidden? basic) + ) + (:methods + (base-menu-method-50 () none) + (base-menu-method-51 () none) + (base-menu-method-52 () none) + (base-menu-method-53 () none) + (base-menu-method-54 () none) + (base-menu-method-55 () none) + (base-menu-method-56 () none) + (base-menu-method-57 () none) + (base-menu-method-58 () none) + (base-menu-method-59 () none) + (base-menu-method-60 () none) + (base-menu-method-61 () none) + (base-menu-method-62 () none) + (base-menu-method-63 () none) + (base-menu-method-64 () none) + ) + ) + +;; definition for method 3 of type base-menu +(defmethod inspect ((this base-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 this) + ) + (format #t "~2Tchild-handles: ~A~%" (-> this child-handles)) + (format #t "~2Tinfo-ptr: #~%" (-> this info-ptr)) + (format #t "~2Tfocused?: ~A~%" (-> this focused?)) + (format #t "~2T3d-menu-2d-offset: #~%" (-> this 3d-menu-2d-offset)) + (format #t "~2Tpos-x: ~f~%" (-> this pos-x)) + (format #t "~2Tpos-y: ~f~%" (-> this pos-y)) + (format #t "~2Tpos-z: ~f~%" (-> this pos-z)) + (format #t "~2Tmenu-time: ~D~%" (-> this menu-time)) + (format #t "~2Twidth: ~D~%" (-> this width)) + (format #t "~2Theight: ~D~%" (-> this height)) + (format #t "~2Twidth-array: ~A~%" (-> this width-array)) + (format #t "~2Theight-array: ~A~%" (-> this height-array)) + (format #t "~2Tjoint-mat: #~%" (-> this joint-mat)) + (format #t "~2Toffset-matrix: #~%" (-> this offset-matrix)) + (format #t "~2Tj-mod: #~%" (-> this j-mod)) + (format #t "~2Textra-offset: #~%" (-> this extra-offset)) + (format #t "~2Tpad: ~D~%" (-> this pad)) + (format #t "~2Thidden?: ~A~%" (-> this hidden?)) + (label cfg-4) + this + ) + +;; definition of type jakx-logo-menu +(deftype jakx-logo-menu (base-menu) + () + ) + +;; definition for method 3 of type jakx-logo-menu +(defmethod inspect ((this jakx-logo-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type base-menu inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition for symbol *jakx-logo-seen?*, type symbol +(define *jakx-logo-seen?* #f) + +;; definition of type map-menu +(deftype map-menu (base-menu) + () + (:methods + (map-menu-method-65 () none) + ) + ) + +;; definition for method 3 of type map-menu +(defmethod inspect ((this map-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type base-menu inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type selection-menu-manager +(deftype selection-menu-manager (base-menu) + ((selection-index int32) + (prev-selection-index int32) + (enabled basic) + ) + (:methods + (selection-menu-manager-method-65 () none) + (selection-menu-manager-method-66 () none) + ) + ) + +;; definition for method 3 of type selection-menu-manager +(defmethod inspect ((this selection-menu-manager)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type base-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tselection-index: ~D~%" (-> this selection-index)) + (format #t "~2Tprev-selection-index: ~D~%" (-> this prev-selection-index)) + (format #t "~2Tenabled: ~A~%" (-> this enabled)) + (label cfg-4) + this + ) + +;; definition of type sprite-info +(deftype sprite-info (structure) + ((offset vector :inline) + (offset-x float :overlay-at (-> offset data 0)) + (offset-y float :overlay-at (-> offset data 1)) + (offset-z float :overlay-at (-> offset data 2)) + (offset-w float :overlay-at (-> offset data 3)) + (pos-z int32) + (tex-name basic) + (tex-id uint32) + (scale-x float) + (scale-y float) + (flags uint16) + (offset-from-index int8) + (offset-dir uint8) + (texture-index int8) + ) + ) + +;; definition for method 3 of type sprite-info +(defmethod inspect ((this sprite-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sprite-info) + (format #t "~1Toffset: #~%" (-> this offset)) + (format #t "~1Toffset-x: ~f~%" (-> this offset x)) + (format #t "~1Toffset-y: ~f~%" (-> this offset y)) + (format #t "~1Toffset-z: ~f~%" (-> this offset z)) + (format #t "~1Toffset-w: ~f~%" (-> this offset w)) + (format #t "~1Tpos-z: ~D~%" (-> this pos-z)) + (format #t "~1Ttex-name: ~A~%" (-> this tex-name)) + (format #t "~1Ttex-id: ~D~%" (-> this tex-id)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Toffset-from-index: ~D~%" (-> this offset-from-index)) + (format #t "~1Toffset-dir: ~D~%" (-> this offset-dir)) + (format #t "~1Ttexture-index: ~D~%" (-> this texture-index)) + (label cfg-4) + this + ) + +;; definition of type transition-info +(deftype transition-info (animation-info) + ((enter-pos-x float) + (enter-pos-y float) + (enter-alpha float) + (running-alpha float) + (exit-alpha float) + (running-pos-x float) + (running-pos-y float) + (exit-pos-x float) + (exit-pos-y float) + (move-rate float) + (scroll-offset-x int32) + (scroll-offset-y int32) + (scroll-rate float) + ) + :pack-me + ) + +;; definition for method 3 of type transition-info +(defmethod inspect ((this transition-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'transition-info) + (format #t "~1Tenter-anim: ~D~%" (-> this enter-anim)) + (format #t "~1Texit-anim: ~D~%" (-> this exit-anim)) + (format #t "~1Trunning-anim: ~D~%" (-> this running-anim)) + (format #t "~1Tanim-speed: ~f~%" (-> this anim-speed)) + (format #t "~1Tenter-delay: ~D~%" (-> this enter-delay)) + (format #t "~1T3d-offset: #~%" (-> this 3d-offset)) + (format #t "~1T3d-offset-x: ~f~%" (-> this 3d-offset x)) + (format #t "~1T3d-offset-y: ~f~%" (-> this 3d-offset y)) + (format #t "~1T3d-offset-z: ~f~%" (-> this 3d-offset z)) + (format #t "~1T3d-offset-w: ~f~%" (-> this 3d-offset w)) + (format #t "~1Tenter-pos-x: ~f~%" (-> this enter-pos-x)) + (format #t "~1Tenter-pos-y: ~f~%" (-> this enter-pos-y)) + (format #t "~1Tenter-alpha: ~f~%" (-> this enter-alpha)) + (format #t "~1Trunning-alpha: ~f~%" (-> this running-alpha)) + (format #t "~1Texit-alpha: ~f~%" (-> this exit-alpha)) + (format #t "~1Trunning-pos-x: ~f~%" (-> this running-pos-x)) + (format #t "~1Trunning-pos-y: ~f~%" (-> this running-pos-y)) + (format #t "~1Texit-pos-x: ~f~%" (-> this exit-pos-x)) + (format #t "~1Texit-pos-y: ~f~%" (-> this exit-pos-y)) + (format #t "~1Tmove-rate: ~f~%" (-> this move-rate)) + (format #t "~1Tscroll-offset-x: ~D~%" (-> this scroll-offset-x)) + (format #t "~1Tscroll-offset-y: ~D~%" (-> this scroll-offset-y)) + (format #t "~1Tscroll-rate: ~f~%" (-> this scroll-rate)) + (label cfg-4) + this + ) + +;; definition of type sprite-menu-info +(deftype sprite-menu-info (base-menu-info) + ((trans-info transition-info :override) + (sprites-info basic) + (color uint32) + ) + ) + +;; definition for method 3 of type sprite-menu-info +(defmethod inspect ((this sprite-menu-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sprite-menu-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (label cfg-4) + this + ) + +;; definition of type hud-sprite-array +(deftype hud-sprite-array (inline-array-class) + ((data hud-sprite :inline :dynamic) + ) + ) + +;; definition for method 3 of type hud-sprite-array +(defmethod inspect ((this hud-sprite-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> hud-sprite-array heap-base) (the-as uint 64)) + +;; definition of type sprite-menu +(deftype sprite-menu (base-menu) + ((sprites basic) + (alpha float) + ) + (:methods + (sprite-menu-method-65 () none) + ) + ) + +;; definition for method 3 of type sprite-menu +(defmethod inspect ((this sprite-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type base-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tsprites: ~A~%" (-> this sprites)) + (format #t "~2Talpha: ~f~%" (-> this alpha)) + (label cfg-4) + this + ) + +;; definition of type menu-prim-strip-client +(deftype menu-prim-strip-client (prim-client) + ((strip basic) + ) + (:methods + (menu-prim-strip-client-method-10 () none) + ) + ) + +;; definition for method 3 of type menu-prim-strip-client +(defmethod inspect ((this menu-prim-strip-client)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tstrip: ~A~%" (-> this strip)) + (label cfg-4) + this + ) + +;; definition of type prim-strip-menu +(deftype prim-strip-menu (sprite-menu) + ((p-client-array basic) + (colors basic) + ) + (:methods + (prim-strip-menu-method-66 () none) + ) + ) + +;; definition for method 3 of type prim-strip-menu +(defmethod inspect ((this prim-strip-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type sprite-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tp-client-array: ~A~%" (-> this p-client-array)) + (format #t "~2Tcolors: ~A~%" (-> this colors)) + (label cfg-4) + this + ) + +;; definition of type sprite-ptr-info +(deftype sprite-ptr-info (sprite-info) + ((sprite-ptr basic) + ) + ) + +;; definition for method 3 of type sprite-ptr-info +(defmethod inspect ((this sprite-ptr-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sprite-ptr-info) + (format #t "~1Toffset: #~%" (-> this offset)) + (format #t "~1Toffset-x: ~f~%" (-> this offset x)) + (format #t "~1Toffset-y: ~f~%" (-> this offset y)) + (format #t "~1Toffset-z: ~f~%" (-> this offset z)) + (format #t "~1Toffset-w: ~f~%" (-> this offset w)) + (format #t "~1Tpos-z: ~D~%" (-> this pos-z)) + (format #t "~1Ttex-name: ~A~%" (-> this tex-name)) + (format #t "~1Ttex-id: ~D~%" (-> this tex-id)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Toffset-from-index: ~D~%" (-> this offset-from-index)) + (format #t "~1Toffset-dir: ~D~%" (-> this offset-dir)) + (format #t "~1Ttexture-index: ~D~%" (-> this texture-index)) + (format #t "~1Tsprite-ptr: ~A~%" (-> this sprite-ptr)) + (label cfg-4) + this + ) + +;; definition of type sprite-ptr-menu-info +(deftype sprite-ptr-menu-info (sprite-menu-info) + () + ) + +;; definition for method 3 of type sprite-ptr-menu-info +(defmethod inspect ((this sprite-ptr-menu-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'sprite-ptr-menu-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (label cfg-4) + this + ) + +;; definition of type sprite-ptr-menu +(deftype sprite-ptr-menu (prim-strip-menu) + () + ) + +;; definition for method 3 of type sprite-ptr-menu +(defmethod inspect ((this sprite-ptr-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type prim-strip-menu inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type index-sprite-list-menu-info +(deftype index-sprite-list-menu-info (sprite-menu-info) + ((pad1 uint32 2) + (index-list basic) + (horiz-list? basic) + (item-offset int32) + (color-array basic) + ) + ) + +;; definition for method 3 of type index-sprite-list-menu-info +(defmethod inspect ((this index-sprite-list-menu-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'index-sprite-list-menu-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tindex-list: ~A~%" (-> this index-list)) + (format #t "~1Thoriz-list?: ~A~%" (-> this horiz-list?)) + (format #t "~1Titem-offset: ~D~%" (-> this item-offset)) + (format #t "~1Tcolor-array: ~A~%" (-> this color-array)) + (label cfg-4) + this + ) + +;; definition of type index-sprite-list-menu +(deftype index-sprite-list-menu (prim-strip-menu) + ((index-list basic) + ) + ) + +;; definition for method 3 of type index-sprite-list-menu +(defmethod inspect ((this index-sprite-list-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type prim-strip-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tindex-list: ~A~%" (-> this index-list)) + (label cfg-4) + this + ) + +;; definition of type string-info +(deftype string-info (structure) + ((offset vector :inline) + (offset-x float :overlay-at (-> offset data 0)) + (offset-y float :overlay-at (-> offset data 1)) + (offset-z float :overlay-at (-> offset data 2)) + (offset-w float :overlay-at (-> offset data 3)) + (pos-z int32) + (id uint32) + (font-scale float) + (width float) + (height float) + (string-ptr basic) + (string-ptr-needs-format basic) + (font-flags uint16) + (font-color uint8) + (font-color-2 uint8) + (font-color-3 uint8) + (offset-dir uint8) + (offset-from-index int8) + (offset-type-from int8) + (is-player-string basic) + (tmp-talking int32) + (extra-arg basic) + ) + ) + +;; definition for method 3 of type string-info +(defmethod inspect ((this string-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'string-info) + (format #t "~1Toffset: #~%" (-> this offset)) + (format #t "~1Toffset-x: ~f~%" (-> this offset x)) + (format #t "~1Toffset-y: ~f~%" (-> this offset y)) + (format #t "~1Toffset-z: ~f~%" (-> this offset z)) + (format #t "~1Toffset-w: ~f~%" (-> this offset w)) + (format #t "~1Tpos-z: ~D~%" (-> this pos-z)) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tfont-scale: ~f~%" (-> this font-scale)) + (format #t "~1Twidth: ~f~%" (-> this width)) + (format #t "~1Theight: ~f~%" (-> this height)) + (format #t "~1Tstring-ptr: ~A~%" (-> this string-ptr)) + (format #t "~1Tstring-ptr-needs-format: ~A~%" (-> this string-ptr-needs-format)) + (format #t "~1Tfont-flags: ~D~%" (-> this font-flags)) + (format #t "~1Tfont-color: ~D~%" (-> this font-color)) + (format #t "~1Tfont-color-2: ~D~%" (-> this font-color-2)) + (format #t "~1Tfont-color-3: ~D~%" (-> this font-color-3)) + (format #t "~1Toffset-dir: ~D~%" (-> this offset-dir)) + (format #t "~1Toffset-from-index: ~D~%" (-> this offset-from-index)) + (format #t "~1Toffset-type-from: ~D~%" (-> this offset-type-from)) + (format #t "~1Tis-player-string: ~A~%" (-> this is-player-string)) + (format #t "~1Ttmp-talking: ~D~%" (-> this tmp-talking)) + (format #t "~1Textra-arg: ~A~%" (-> this extra-arg)) + (label cfg-4) + this + ) + +;; definition of type menu-string-array +(deftype menu-string-array (inline-array-class) + ((data menu-string :inline :dynamic) + ) + ) + +;; definition for method 3 of type menu-string-array +(defmethod inspect ((this menu-string-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlength: ~D~%" (-> this length)) + (format #t "~1Tallocated-length: ~D~%" (-> this allocated-length)) + (format #t "~1Tdata[0] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(set! (-> menu-string-array heap-base) (the-as uint 80)) + +;; definition of type string-menu-info +(deftype string-menu-info (sprite-menu-info) + ((strings-info basic) + (text-ids basic) + ) + ) + +;; definition for method 3 of type string-menu-info +(defmethod inspect ((this string-menu-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'string-menu-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tstrings-info: ~A~%" (-> this strings-info)) + (format #t "~1Ttext-ids: ~A~%" (-> this text-ids)) + (label cfg-4) + this + ) + +;; definition of type string-menu +(deftype string-menu (prim-strip-menu) + ((strings basic) + (text-ids basic) + ) + (:methods + (string-menu-method-67 () none) + (string-menu-method-68 () none) + ) + ) + +;; definition for method 3 of type string-menu +(defmethod inspect ((this string-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type prim-strip-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tstrings: ~A~%" (-> this strings)) + (format #t "~2Ttext-ids: ~A~%" (-> this text-ids)) + (label cfg-4) + this + ) + +;; definition of type options-bar-indicator +(deftype options-bar-indicator (string-menu) + () + ) + +;; definition for method 3 of type options-bar-indicator +(defmethod inspect ((this options-bar-indicator)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type string-menu inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type game-text-menu-info +(deftype game-text-menu-info (string-menu-info) + ((text-id uint32) + ) + ) + +;; definition for method 3 of type game-text-menu-info +(defmethod inspect ((this game-text-menu-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'game-text-menu-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tstrings-info: ~A~%" (-> this strings-info)) + (format #t "~1Ttext-ids: ~A~%" (-> this text-ids)) + (format #t "~1Ttext-id: ~D~%" (-> this text-id)) + (label cfg-4) + this + ) + +;; definition of type game-text-menu +(deftype game-text-menu (string-menu) + ((text-id uint32) + ) + ) + +;; definition for method 3 of type game-text-menu +(defmethod inspect ((this game-text-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type string-menu inspect))) + (t9-0 this) + ) + (format #t "~2Ttext-id: ~D~%" (-> this text-id)) + (label cfg-4) + this + ) + +;; definition of type dynamic-string-menu +(deftype dynamic-string-menu (string-menu) + () + ) + +;; definition for method 3 of type dynamic-string-menu +(defmethod inspect ((this dynamic-string-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type string-menu inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type dynamic-driver-info +(deftype dynamic-driver-info (dynamic-string-menu) + () + ) + +;; definition for method 3 of type dynamic-driver-info +(defmethod inspect ((this dynamic-driver-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type dynamic-string-menu inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type dropdown-trans-info +(deftype dropdown-trans-info (transition-info) + ((selected-offset vector) + ) + ) + +;; definition for method 3 of type dropdown-trans-info +(defmethod inspect ((this dropdown-trans-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'dropdown-trans-info) + (format #t "~1Tenter-anim: ~D~%" (-> this enter-anim)) + (format #t "~1Texit-anim: ~D~%" (-> this exit-anim)) + (format #t "~1Trunning-anim: ~D~%" (-> this running-anim)) + (format #t "~1Tanim-speed: ~f~%" (-> this anim-speed)) + (format #t "~1Tenter-delay: ~D~%" (-> this enter-delay)) + (format #t "~1T3d-offset: #~%" (-> this 3d-offset)) + (format #t "~1T3d-offset-x: ~f~%" (-> this 3d-offset x)) + (format #t "~1T3d-offset-y: ~f~%" (-> this 3d-offset y)) + (format #t "~1T3d-offset-z: ~f~%" (-> this 3d-offset z)) + (format #t "~1T3d-offset-w: ~f~%" (-> this 3d-offset w)) + (format #t "~1Tenter-pos-x: ~f~%" (-> this enter-pos-x)) + (format #t "~1Tenter-pos-y: ~f~%" (-> this enter-pos-y)) + (format #t "~1Tenter-alpha: ~f~%" (-> this enter-alpha)) + (format #t "~1Trunning-alpha: ~f~%" (-> this running-alpha)) + (format #t "~1Texit-alpha: ~f~%" (-> this exit-alpha)) + (format #t "~1Trunning-pos-x: ~f~%" (-> this running-pos-x)) + (format #t "~1Trunning-pos-y: ~f~%" (-> this running-pos-y)) + (format #t "~1Texit-pos-x: ~f~%" (-> this exit-pos-x)) + (format #t "~1Texit-pos-y: ~f~%" (-> this exit-pos-y)) + (format #t "~1Tmove-rate: ~f~%" (-> this move-rate)) + (format #t "~1Tscroll-offset-x: ~D~%" (-> this scroll-offset-x)) + (format #t "~1Tscroll-offset-y: ~D~%" (-> this scroll-offset-y)) + (format #t "~1Tscroll-rate: ~f~%" (-> this scroll-rate)) + (format #t "~1Tselected-offset: #~%" (-> this selected-offset)) + (label cfg-4) + this + ) + +;; definition of type dropdown-item-info +(deftype dropdown-item-info (string-menu-info) + ((trans-info dropdown-trans-info :override) + (selection-box-width int32) + (selection-box-height int32) + (selection-type basic) + (selection-extra int32) + (selection-box-offset vector :inline) + (selection-box-offset-x float :overlay-at (-> selection-box-offset data 0)) + (selection-box-offset-y float :overlay-at (-> selection-box-offset data 1)) + (selection-box-offset-z float :overlay-at (-> selection-box-offset data 2)) + (selection-box-offset-w float :overlay-at (-> selection-box-offset data 3)) + (selection-box-color uint32) + (down-index-modifier int8) + (up-index-modifier int8) + (left-index-modifier int8) + (right-index-modifier int8) + (selection-box-texture-index int8) + (reset-pad uint8) + ) + ) + +;; definition for method 3 of type dropdown-item-info +(defmethod inspect ((this dropdown-item-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'dropdown-item-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tstrings-info: ~A~%" (-> this strings-info)) + (format #t "~1Ttext-ids: ~A~%" (-> this text-ids)) + (format #t "~1Tselection-box-width: ~D~%" (-> this selection-box-width)) + (format #t "~1Tselection-box-height: ~D~%" (-> this selection-box-height)) + (format #t "~1Tselection-type: ~A~%" (-> this selection-type)) + (format #t "~1Tselection-extra: ~D~%" (-> this selection-extra)) + (format #t "~1Tselection-box-offset: #~%" (-> this selection-box-offset)) + (format #t "~1Tselection-box-offset-x: ~f~%" (-> this selection-box-offset x)) + (format #t "~1Tselection-box-offset-y: ~f~%" (-> this selection-box-offset y)) + (format #t "~1Tselection-box-offset-z: ~f~%" (-> this selection-box-offset z)) + (format #t "~1Tselection-box-offset-w: ~f~%" (-> this selection-box-offset w)) + (format #t "~1Tselection-box-color: ~D~%" (-> this selection-box-color)) + (format #t "~1Tdown-index-modifier: ~D~%" (-> this down-index-modifier)) + (format #t "~1Tup-index-modifier: ~D~%" (-> this up-index-modifier)) + (format #t "~1Tleft-index-modifier: ~D~%" (-> this left-index-modifier)) + (format #t "~1Tright-index-modifier: ~D~%" (-> this right-index-modifier)) + (format #t "~1Tselection-box-texture-index: ~D~%" (-> this selection-box-texture-index)) + (format #t "~1Treset-pad: ~D~%" (-> this reset-pad)) + (label cfg-4) + this + ) + +;; definition of type dropdown-item +(deftype dropdown-item (string-menu) + ((selected basic) + (p-client-selection basic) + (prev-selection int32) + (enabled basic) + (selected-offset vector :inline) + ) + (:methods + (dropdown-item-method-69 () none) + ) + ) + +;; definition for method 3 of type dropdown-item +(defmethod inspect ((this dropdown-item)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type string-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tselected: ~A~%" (-> this selected)) + (format #t "~2Tp-client-selection: ~A~%" (-> this p-client-selection)) + (format #t "~2Tprev-selection: ~D~%" (-> this prev-selection)) + (format #t "~2Tenabled: ~A~%" (-> this enabled)) + (format #t "~2Tselected-offset: #~%" (-> this selected-offset)) + (label cfg-4) + this + ) + +;; definition of type item-list-selection-info +(deftype item-list-selection-info (dropdown-item-info) + ((menu-options-info-sym basic) + (add-string uint32) + ) + ) + +;; definition for method 3 of type item-list-selection-info +(defmethod inspect ((this item-list-selection-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'item-list-selection-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tstrings-info: ~A~%" (-> this strings-info)) + (format #t "~1Ttext-ids: ~A~%" (-> this text-ids)) + (format #t "~1Tselection-box-width: ~D~%" (-> this selection-box-width)) + (format #t "~1Tselection-box-height: ~D~%" (-> this selection-box-height)) + (format #t "~1Tselection-type: ~A~%" (-> this selection-type)) + (format #t "~1Tselection-extra: ~D~%" (-> this selection-extra)) + (format #t "~1Tselection-box-offset: #~%" (-> this selection-box-offset)) + (format #t "~1Tselection-box-offset-x: ~f~%" (-> this selection-box-offset x)) + (format #t "~1Tselection-box-offset-y: ~f~%" (-> this selection-box-offset y)) + (format #t "~1Tselection-box-offset-z: ~f~%" (-> this selection-box-offset z)) + (format #t "~1Tselection-box-offset-w: ~f~%" (-> this selection-box-offset w)) + (format #t "~1Tselection-box-color: ~D~%" (-> this selection-box-color)) + (format #t "~1Tdown-index-modifier: ~D~%" (-> this down-index-modifier)) + (format #t "~1Tup-index-modifier: ~D~%" (-> this up-index-modifier)) + (format #t "~1Tleft-index-modifier: ~D~%" (-> this left-index-modifier)) + (format #t "~1Tright-index-modifier: ~D~%" (-> this right-index-modifier)) + (format #t "~1Tselection-box-texture-index: ~D~%" (-> this selection-box-texture-index)) + (format #t "~1Treset-pad: ~D~%" (-> this reset-pad)) + (format #t "~1Tmenu-options-info-sym: ~A~%" (-> this menu-options-info-sym)) + (format #t "~1Tadd-string: ~D~%" (-> this add-string)) + (label cfg-4) + this + ) + +;; definition of type item-list-selection +(deftype item-list-selection (dropdown-item) + ((menu-options-info-ptr menu-selection-struct) + (selection-type basic) + (selection-index int32) + ) + ) + +;; definition for method 3 of type item-list-selection +(defmethod inspect ((this item-list-selection)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type dropdown-item inspect))) + (t9-0 this) + ) + (format #t "~2Tmenu-options-info-ptr: #~%" (-> this menu-options-info-ptr)) + (format #t "~2Tselection-type: ~A~%" (-> this selection-type)) + (format #t "~2Tselection-index: ~D~%" (-> this selection-index)) + (label cfg-4) + this + ) + +;; definition of type item-list-driver-selection +(deftype item-list-driver-selection (item-list-selection) + () + ) + +;; definition for method 3 of type item-list-driver-selection +(defmethod inspect ((this item-list-driver-selection)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type item-list-selection inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type item-num-selection-info +(deftype item-num-selection-info (item-list-selection-info) + ((pad1 uint32) + ) + ) + +;; definition for method 3 of type item-num-selection-info +(defmethod inspect ((this item-num-selection-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'item-num-selection-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tstrings-info: ~A~%" (-> this strings-info)) + (format #t "~1Ttext-ids: ~A~%" (-> this text-ids)) + (format #t "~1Tselection-box-width: ~D~%" (-> this selection-box-width)) + (format #t "~1Tselection-box-height: ~D~%" (-> this selection-box-height)) + (format #t "~1Tselection-type: ~A~%" (-> this selection-type)) + (format #t "~1Tselection-extra: ~D~%" (-> this selection-extra)) + (format #t "~1Tselection-box-offset: #~%" (-> this selection-box-offset)) + (format #t "~1Tselection-box-offset-x: ~f~%" (-> this selection-box-offset x)) + (format #t "~1Tselection-box-offset-y: ~f~%" (-> this selection-box-offset y)) + (format #t "~1Tselection-box-offset-z: ~f~%" (-> this selection-box-offset z)) + (format #t "~1Tselection-box-offset-w: ~f~%" (-> this selection-box-offset w)) + (format #t "~1Tselection-box-color: ~D~%" (-> this selection-box-color)) + (format #t "~1Tdown-index-modifier: ~D~%" (-> this down-index-modifier)) + (format #t "~1Tup-index-modifier: ~D~%" (-> this up-index-modifier)) + (format #t "~1Tleft-index-modifier: ~D~%" (-> this left-index-modifier)) + (format #t "~1Tright-index-modifier: ~D~%" (-> this right-index-modifier)) + (format #t "~1Tselection-box-texture-index: ~D~%" (-> this selection-box-texture-index)) + (format #t "~1Treset-pad: ~D~%" (-> this reset-pad)) + (format #t "~1Tmenu-options-info-sym: ~A~%" (-> this menu-options-info-sym)) + (format #t "~1Tadd-string: ~D~%" (-> this add-string)) + (format #t "~1Tadd-string: ~D~%" (-> this add-string)) + (label cfg-4) + this + ) + +;; definition of type menu-num-info +(deftype menu-num-info (structure) + ((min int32) + (max int32) + (current-num int32) + (last-num int32) + ) + ) + +;; definition for method 3 of type menu-num-info +(defmethod inspect ((this menu-num-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'menu-num-info) + (format #t "~1Tmin: ~D~%" (-> this min)) + (format #t "~1Tmax: ~D~%" (-> this max)) + (format #t "~1Tcurrent-num: ~D~%" (-> this current-num)) + (format #t "~1Tlast-num: ~D~%" (-> this last-num)) + (label cfg-4) + this + ) + +;; definition of type item-num-selection +(deftype item-num-selection (item-list-selection) + ((num-selection int32) + (sound-id uint32) + ) + ) + +;; definition for method 3 of type item-num-selection +(defmethod inspect ((this item-num-selection)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type item-list-selection inspect))) + (t9-0 this) + ) + (format #t "~2Tnum-selection: ~D~%" (-> this num-selection)) + (format #t "~2Tsound-id: ~D~%" (-> this sound-id)) + (label cfg-4) + this + ) + +;; definition of type item-num-max-selection +(deftype item-num-max-selection (item-num-selection) + ((pad1 uint32) + ) + ) + +;; definition for method 3 of type item-num-max-selection +(defmethod inspect ((this item-num-max-selection)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type item-num-selection inspect))) + (t9-0 this) + ) + (format #t "~2Tnum-selection: ~D~%" (-> this num-selection)) + (label cfg-4) + this + ) + +;; definition of type games-list-selection +(deftype games-list-selection (string-menu) + ((selection-index int8) + ) + ) + +;; definition for method 3 of type games-list-selection +(defmethod inspect ((this games-list-selection)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type string-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tselection-index: ~D~%" (-> this selection-index)) + (label cfg-4) + this + ) + +;; definition of type player-ct-string-menu +(deftype player-ct-string-menu (string-menu) + () + ) + +;; definition for method 3 of type player-ct-string-menu +(defmethod inspect ((this player-ct-string-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type string-menu inspect))) + (t9-0 this) + ) + (label cfg-4) + this + ) + +;; definition of type string-list-selection +(deftype string-list-selection (dropdown-item) + ((selection-index int8) + ) + ) + +;; definition for method 3 of type string-list-selection +(defmethod inspect ((this string-list-selection)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type dropdown-item inspect))) + (t9-0 this) + ) + (format #t "~2Tselection-index: ~D~%" (-> this selection-index)) + (label cfg-4) + this + ) + +;; definition of type basic-list-selection-info +(deftype basic-list-selection-info (string-menu-info) + ((menu-options-info-sym basic) + ) + ) + +;; definition for method 3 of type basic-list-selection-info +(defmethod inspect ((this basic-list-selection-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'basic-list-selection-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tstrings-info: ~A~%" (-> this strings-info)) + (format #t "~1Ttext-ids: ~A~%" (-> this text-ids)) + (format #t "~1Tmenu-options-info-sym: ~A~%" (-> this menu-options-info-sym)) + (label cfg-4) + this + ) + +;; definition of type basic-list-selection +(deftype basic-list-selection (string-menu) + ((menu-options-info-ptr basic) + (selection-index int8) + ) + ) + +;; definition for method 3 of type basic-list-selection +(defmethod inspect ((this basic-list-selection)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type string-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tmenu-options-info-ptr: ~A~%" (-> this menu-options-info-ptr)) + (format #t "~2Tselection-index: ~D~%" (-> this selection-index)) + (label cfg-4) + this + ) + +;; definition of type big-text-menu-info +(deftype big-text-menu-info (sprite-menu-info) + ((string-info string-info) + (text basic) + (off-2d-x float) + (off-2d-y float) + ) + ) + +;; definition for method 3 of type big-text-menu-info +(defmethod inspect ((this big-text-menu-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'big-text-menu-info) + (format #t "~1Tmenu-type: ~A~%" (-> this menu-type)) + (format #t "~1Tchildren: ~A~%" (-> this children)) + (format #t "~1Tname-symbol: ~A~%" (-> this name-symbol)) + (format #t "~1T3d-menu-type: ~A~%" (-> this 3d-menu-type)) + (format #t "~1Ttrans-info: #~%" (-> this trans-info)) + (format #t "~1Tjoint-index: ~D~%" (-> this joint-index)) + (format #t "~1Tjoint-index-2: ~D~%" (-> this joint-index-2)) + (format #t "~1Tbox-index: ~D~%" (-> this box-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tanim-delay: ~D~%" (-> this anim-delay)) + (format #t "~1Twidth: ~D~%" (-> this width)) + (format #t "~1Theight: ~D~%" (-> this height)) + (format #t "~1Tscale-y: ~f~%" (-> this scale-y)) + (format #t "~1Tscale-x: ~f~%" (-> this scale-x)) + (format #t "~1Tuser-data: ~D~%" (-> this user-data)) + (format #t "~1Tsprites-info: ~A~%" (-> this sprites-info)) + (format #t "~1Tcolor: ~D~%" (-> this color)) + (format #t "~1Tstring-info: #~%" (-> this string-info)) + (format #t "~1Ttext: ~A~%" (-> this text)) + (format #t "~1Toff-2d-x: ~f~%" (-> this off-2d-x)) + (format #t "~1Toff-2d-y: ~f~%" (-> this off-2d-y)) + (label cfg-4) + this + ) + +;; definition of type big-text-menu +(deftype big-text-menu (sprite-menu) + ((big-text basic) + (vert-offset float) + (vert-extent float) + (temp-string basic) + ) + (:methods + (big-text-menu-method-66 () none) + ) + ) + +;; definition for method 3 of type big-text-menu +(defmethod inspect ((this big-text-menu)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type sprite-menu inspect))) + (t9-0 this) + ) + (format #t "~2Tbig-text: ~A~%" (-> this big-text)) + (format #t "~2Tvert-offset: ~f~%" (-> this vert-offset)) + (format #t "~2Tvert-extent: ~f~%" (-> this vert-extent)) + (format #t "~2Ttemp-string: ~A~%" (-> this temp-string)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/ui/text-h_REF.gc b/test/decompiler/reference/jakx/engine/ui/text-h_REF.gc index 6b68d33837..38c2e8f365 100644 --- a/test/decompiler/reference/jakx/engine/ui/text-h_REF.gc +++ b/test/decompiler/reference/jakx/engine/ui/text-h_REF.gc @@ -33,7 +33,7 @@ (text-data uint32) ) (:methods - (game-text-info-method-9 () none) + (lookup-text! (_type_ text-id symbol) string) (game-text-info-method-10 () none) (game-text-info-method-11 () none) (game-text-info-method-12 () none) diff --git a/test/decompiler/reference/jakx/engine/util/profile_REF.gc b/test/decompiler/reference/jakx/engine/util/profile_REF.gc index f8928234bc..8e1b4fb13d 100644 --- a/test/decompiler/reference/jakx/engine/util/profile_REF.gc +++ b/test/decompiler/reference/jakx/engine/util/profile_REF.gc @@ -1625,3 +1625,7 @@ 0 (none) ) + + + + diff --git a/test/decompiler/reference/jakx/engine/util/stream-media-h_REF.gc b/test/decompiler/reference/jakx/engine/util/stream-media-h_REF.gc new file mode 100644 index 0000000000..8e4b1f21d4 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/util/stream-media-h_REF.gc @@ -0,0 +1,9 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/car-info-h_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/car-info-h_REF.gc new file mode 100644 index 0000000000..3f33e59578 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/car-info-h_REF.gc @@ -0,0 +1,729 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *car-type-names*, type (array string) +(define *car-type-names* (new 'static 'boxed-array :type string + "mongoose" + "falcon" + "wombat" + "possum" + "bobcat" + "cougar" + "wolf" + "bear" + "leopard" + "panther" + "tiger" + "cheetah" + "gila" + "snake" + "daxtermobile" + ) + ) + +;; definition for function type-from-vehicle-type +(defun type-from-vehicle-type ((arg0 vehicle-type)) + (case arg0 + (((vehicle-type mongoose)) + v-mongoose + ) + (((vehicle-type falcon)) + v-falcon + ) + (((vehicle-type wombat)) + v-wombat + ) + (((vehicle-type possum)) + v-possum + ) + (((vehicle-type bobcat)) + v-bobcat + ) + (((vehicle-type cougar)) + v-cougar + ) + (((vehicle-type wolf)) + v-wolf + ) + (((vehicle-type bear)) + v-bear + ) + (((vehicle-type leopard)) + v-leopard + ) + (((vehicle-type panther)) + v-panther + ) + (((vehicle-type tiger)) + v-tiger + ) + (((vehicle-type cheetah)) + v-cheetah + ) + (((vehicle-type gila)) + v-gila + ) + (((vehicle-type snake)) + v-snake + ) + (((vehicle-type daxtermobile)) + v-daxtermobile + ) + (((vehicle-type drone)) + v-drone + ) + (else + (the-as type #f) + ) + ) + ) + +;; definition for function level-name-from-vehicle-type +(defun level-name-from-vehicle-type ((arg0 vehicle-type)) + (case arg0 + (((vehicle-type mongoose)) + 'mongl + ) + (((vehicle-type falcon)) + 'falcl + ) + (((vehicle-type wombat)) + 'wombl + ) + (((vehicle-type possum)) + 'possl + ) + (((vehicle-type bobcat)) + 'bobcl + ) + (((vehicle-type cougar)) + 'cougl + ) + (((vehicle-type wolf)) + 'wolfl + ) + (((vehicle-type bear)) + 'bearl + ) + (((vehicle-type leopard)) + 'leopl + ) + (((vehicle-type panther)) + 'pantl + ) + (((vehicle-type tiger)) + 'tigel + ) + (((vehicle-type cheetah)) + 'cheel + ) + (((vehicle-type gila)) + 'gilal + ) + (((vehicle-type snake)) + 'snakl + ) + (((vehicle-type daxtermobile)) + 'daxtl + ) + (((vehicle-type drone)) + 'drone + ) + (else + #f + ) + ) + ) + +;; definition for function car-type-from-vehicle-type +;; WARN: Return type mismatch int vs vehicle-type. +(defun car-type-from-vehicle-type ((arg0 int)) + (the-as vehicle-type (if (< (the-as uint arg0) (the-as uint 15)) + arg0 + -1 + ) + ) + ) + +;; definition for function vehicle-type-from-car-type +(defun vehicle-type-from-car-type ((arg0 int)) + "does nothing, returns input" + arg0 + ) + +;; definition for function car-type-from-level-name +;; WARN: Return type mismatch int vs vehicle-type. +(defun car-type-from-level-name ((arg0 symbol)) + (let ((v1-0 arg0)) + (the-as vehicle-type (cond + ((= v1-0 'mongl) + 0 + ) + ((= v1-0 'falcl) + 1 + ) + ((= v1-0 'wombl) + 2 + ) + ((= v1-0 'possl) + 3 + ) + ((= v1-0 'bobcl) + 4 + ) + ((= v1-0 'cougl) + 5 + ) + ((= v1-0 'wolfl) + 6 + ) + ((= v1-0 'bearl) + 7 + ) + ((= v1-0 'leopl) + 8 + ) + ((= v1-0 'pantl) + 9 + ) + ((= v1-0 'tigel) + 10 + ) + ((= v1-0 'cheel) + 11 + ) + ((= v1-0 'gilal) + 12 + ) + ((= v1-0 'snakl) + 13 + ) + ((= v1-0 'daxtl) + 14 + ) + (else + -1 + ) + ) + ) + ) + ) + +;; definition for function vehicle-type-from-level-name +;; WARN: Return type mismatch vehicle-type vs int. +(defun vehicle-type-from-level-name ((arg0 symbol)) + (the-as int (car-type-from-level-name arg0)) + ) + +;; definition for function vehicle-type-from-name +(defun vehicle-type-from-name ((arg0 string)) + (cond + ((string= arg0 "mongoose") + 0 + ) + ((string= arg0 "falcon") + 1 + ) + ((string= arg0 "wombat") + 2 + ) + ((string= arg0 "possum") + 3 + ) + ((string= arg0 "bobcat") + 4 + ) + ((string= arg0 "cougar") + 5 + ) + ((string= arg0 "wolf") + 6 + ) + ((string= arg0 "bear") + 7 + ) + ((string= arg0 "leopard") + 8 + ) + ((string= arg0 "panther") + 9 + ) + ((string= arg0 "tiger") + 10 + ) + ((string= arg0 "cheetah") + 11 + ) + ((string= arg0 "gila") + 12 + ) + ((string= arg0 "snake") + 13 + ) + ((string= arg0 "daxtermobile") + 14 + ) + (else + (the-as int #f) + ) + ) + ) + +;; definition for symbol *car-part-names*, type (array string) +(define *car-part-names* (new 'static 'boxed-array :type string + "lf-fender" + "rf-fender" + "lr-fender" + "rr-fender" + "l-door" + "r-door" + "f-bumper" + "r-bumper" + "hood" + "trunk" + "roof" + "wheel" + "antenna" + "helmet" + ) + ) + +;; definition of type car-layer-textures +(deftype car-layer-textures (structure) + ((data basic 6) + (dest basic :overlay-at (-> data 0)) + (base basic :overlay-at (-> data 1)) + (stripe basic :overlay-at (-> data 2)) + (detail basic :overlay-at (-> data 3)) + (damage basic :overlay-at (-> data 4)) + (wheel-dest basic :overlay-at (-> data 0)) + (wheel-base basic :overlay-at (-> data 1)) + (wheel-blur basic :overlay-at (-> data 2)) + (tread-dest basic :overlay-at (-> data 3)) + (tread-base basic :overlay-at (-> data 4)) + (tread-blur basic :overlay-at (-> data 5)) + ) + :pack-me + ) + +;; definition for method 3 of type car-layer-textures +(defmethod inspect ((this car-layer-textures)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-layer-textures) + (format #t "~1Tdata[6] @ #x~X~%" (-> this data)) + (format #t "~1Tdest: ~A~%" (-> this dest)) + (format #t "~1Tbase: ~A~%" (-> this base)) + (format #t "~1Tstripe: ~A~%" (-> this stripe)) + (format #t "~1Tdetail: ~A~%" (-> this detail)) + (format #t "~1Tdamage: ~A~%" (-> this damage)) + (format #t "~1Twheel-dest: ~A~%" (-> this dest)) + (format #t "~1Twheel-base: ~A~%" (-> this base)) + (format #t "~1Twheel-blur: ~A~%" (-> this stripe)) + (format #t "~1Ttread-dest: ~A~%" (-> this detail)) + (format #t "~1Ttread-base: ~A~%" (-> this damage)) + (format #t "~1Ttread-blur: ~A~%" (-> this tread-blur)) + (label cfg-4) + this + ) + +;; definition of type car-textures +(deftype car-textures (structure) + ((data car-layer-textures 14 :inline) + ) + ) + +;; definition for method 3 of type car-textures +(defmethod inspect ((this car-textures)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-textures) + (format #t "~1Tdata[14] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition of type car-rgb-color +(deftype car-rgb-color (vector4w) + ((red int32 :overlay-at (-> data 0)) + (green int32 :overlay-at (-> data 1)) + (blue int32 :overlay-at (-> data 2)) + (alpha int32 :overlay-at (-> data 3)) + ) + (:methods + (car-rgb-color-method-9 () none) + (car-rgb-color-method-10 () none) + (car-rgb-color-method-11 () none) + ) + ) + +;; definition for method 3 of type car-rgb-color +;; INFO: Used lq/sq +(defmethod inspect ((this car-rgb-color)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-rgb-color) + (format #t "~1Tdata[4] @ #x~X~%" (&-> this x)) + (format #t "~1Tx: ~D~%" (-> this x)) + (format #t "~1Ty: ~D~%" (-> this y)) + (format #t "~1Tz: ~D~%" (-> this z)) + (format #t "~1Tw: ~D~%" (-> this w)) + (format #t "~1Tdword[2] @ #x~X~%" (&-> this x)) + (format #t "~1Tquad: ~D~%" (-> this quad)) + (format #t "~1Tred: ~D~%" (-> this x)) + (format #t "~1Tgreen: ~D~%" (-> this y)) + (format #t "~1Tblue: ~D~%" (-> this z)) + (format #t "~1Talpha: ~D~%" (-> this w)) + (label cfg-4) + this + ) + +;; definition of type car-hsv-color +(deftype car-hsv-color (vector) + ((hue float :overlay-at (-> data 0)) + (saturation float :overlay-at (-> data 1)) + (value float :overlay-at (-> data 2)) + ) + (:methods + (car-hsv-color-method-9 () none) + ) + ) + +;; definition for method 3 of type car-hsv-color +;; INFO: Used lq/sq +(defmethod inspect ((this car-hsv-color)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-hsv-color) + (format #t "~1Tdata[4] @ #x~X~%" (-> this data)) + (format #t "~1Tx: ~f~%" (-> this x)) + (format #t "~1Ty: ~f~%" (-> this y)) + (format #t "~1Tz: ~f~%" (-> this z)) + (format #t "~1Tw: ~f~%" (-> this w)) + (format #t "~1Tquad: ~D~%" (-> this quad)) + (format #t "~1Thue: ~f~%" (-> this x)) + (format #t "~1Tsaturation: ~f~%" (-> this y)) + (format #t "~1Tvalue: ~f~%" (-> this z)) + (label cfg-4) + this + ) + +;; definition of type car-part-info +(deftype car-part-info (structure) + ((short-name-id uint32) + (name-id uint32) + (task uint16) + (flags uint8) + (medal uint8) + (part-id uint8) + (pad uint8) + ) + ) + +;; definition for method 3 of type car-part-info +(defmethod inspect ((this car-part-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-part-info) + (format #t "~1Tshort-name-id: ~D~%" (-> this short-name-id)) + (format #t "~1Tname-id: ~D~%" (-> this name-id)) + (format #t "~1Ttask: ~D~%" (-> this task)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tmedal: ~D~%" (-> this medal)) + (format #t "~1Tpart-id: ~D~%" (-> this part-id)) + (format #t "~1Tpad: ~D~%" (-> this pad)) + (label cfg-4) + this + ) + +;; definition of type tuning-info +(deftype tuning-info (uint32) + () + ) + +;; definition of type upgrade-info +(deftype upgrade-info (structure) + ((cost float) + (base uint8) + (max uint8) + (rookie uint8) + (pro uint8) + (cost-increment float) + ) + ) + +;; definition for method 3 of type upgrade-info +(defmethod inspect ((this upgrade-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'upgrade-info) + (format #t "~1Tcost: ~f~%" (-> this cost)) + (format #t "~1Tbase: ~D~%" (-> this base)) + (format #t "~1Tmax: ~D~%" (-> this max)) + (format #t "~1Trookie: ~D~%" (-> this rookie)) + (format #t "~1Tpro: ~D~%" (-> this pro)) + (format #t "~1Tcost-increment: ~f~%" (-> this cost-increment)) + (label cfg-4) + this + ) + +;; definition of type upgrade-info-array +(deftype upgrade-info-array (structure) + ((data upgrade-info 4 :inline) + ) + ) + +;; definition for method 3 of type upgrade-info-array +(defmethod inspect ((this upgrade-info-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'upgrade-info-array) + (format #t "~1Tdata[4] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition of type car-upgrade-info-array +(deftype car-upgrade-info-array (structure) + ((data upgrade-info-array 15 :inline) + ) + ) + +;; definition for method 3 of type car-upgrade-info-array +(defmethod inspect ((this car-upgrade-info-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-upgrade-info-array) + (format #t "~1Tdata[15] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition of type car-info +(deftype car-info (structure) + ((base-color car-rgb-color :inline) + (stripe-color car-rgb-color :inline) + (car-type int8) + (current-parts int8 11) + (tuning uint32) + (flags uint32) + ) + ) + +;; definition for method 3 of type car-info +(defmethod inspect ((this car-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-info) + (format #t "~1Tbase-color: #~%" (-> this base-color)) + (format #t "~1Tstripe-color: #~%" (-> this stripe-color)) + (format #t "~1Tcar-type: ~D~%" (-> this car-type)) + (format #t "~1Tcurrent-parts[11] @ #x~X~%" (-> this current-parts)) + (format #t "~1Ttuning: ~D~%" (-> this tuning)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (label cfg-4) + this + ) + +;; definition of type car-info-save +(deftype car-info-save (structure) + ((car-type int8) + (base-color uint32) + (stripe-color uint32) + (parts int8 11) + (tuning uint32) + (flags uint32) + ) + ) + +;; definition for method 3 of type car-info-save +(defmethod inspect ((this car-info-save)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-info-save) + (format #t "~1Tcar-type: ~D~%" (-> this car-type)) + (format #t "~1Tbase-color: ~D~%" (-> this base-color)) + (format #t "~1Tstripe-color: ~D~%" (-> this stripe-color)) + (format #t "~1Tparts[11] @ #x~X~%" (-> this parts)) + (format #t "~1Ttuning: ~D~%" (-> this tuning)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (label cfg-4) + this + ) + +;; definition of type car-info-full +(deftype car-info-full (car-info) + ((level basic) + (wheel-blur float) + (tread-texture basic) + (textures car-textures) + (first-tbp uint32) + (last-tbp uint32) + (damage int8 14) + (lights vu-lights :inline) + (shield-vu-lights vu-lights :inline) + (shield-light-group light-group :inline) + ) + (:methods + (car-info-full-method-9 () none) + (car-info-full-method-10 () none) + (car-info-full-method-11 () none) + (car-info-full-method-12 () none) + (car-info-full-method-13 () none) + (car-info-full-method-14 () none) + (car-info-full-method-15 () none) + (car-info-full-method-16 () none) + (car-info-full-method-17 () none) + (car-info-full-method-18 () none) + (car-info-full-method-19 () none) + (car-info-full-method-20 () none) + (car-info-full-method-21 () none) + ) + ) + +;; definition for method 3 of type car-info-full +(defmethod inspect ((this car-info-full)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-info-full) + (format #t "~1Tbase-color: #~%" (-> this base-color)) + (format #t "~1Tstripe-color: #~%" (-> this stripe-color)) + (format #t "~1Tcar-type: ~D~%" (-> this car-type)) + (format #t "~1Tcurrent-parts[11] @ #x~X~%" (-> this current-parts)) + (format #t "~1Ttuning: ~D~%" (-> this tuning)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tlevel: ~A~%" (-> this level)) + (format #t "~1Twheel-blur: ~f~%" (-> this wheel-blur)) + (format #t "~1Ttread-texture: ~A~%" (-> this tread-texture)) + (format #t "~1Ttextures: #~%" (-> this textures)) + (format #t "~1Tfirst-tbp: ~D~%" (-> this first-tbp)) + (format #t "~1Tlast-tbp: ~D~%" (-> this last-tbp)) + (format #t "~1Tdamage[14] @ #x~X~%" (-> this damage)) + (format #t "~1Tlights: #~%" (-> this lights)) + (format #t "~1Tshield-vu-lights: #~%" (-> this shield-vu-lights)) + (format #t "~1Tshield-light-group: #~%" (-> this shield-light-group)) + (label cfg-4) + this + ) + +;; definition of type car-info-array +(deftype car-info-array (structure) + ((data car-info 15 :inline) + ) + ) + +;; definition for method 3 of type car-info-array +(defmethod inspect ((this car-info-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'car-info-array) + (format #t "~1Tdata[15] @ #x~X~%" (-> this data)) + (label cfg-4) + this + ) + +;; definition of type car-level-array +(deftype car-level-array (basic) + ((data car-info-full 6 :inline) + (textures car-textures 6 :inline) + ) + (:methods + (car-level-array-method-9 () none) + ) + ) + +;; definition for method 3 of type car-level-array +(defmethod inspect ((this car-level-array)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tdata[6] @ #x~X~%" (-> this data)) + (format #t "~1Ttextures[6] @ #x~X~%" (-> this textures)) + (label cfg-4) + this + ) + +;; definition for symbol *car-part-translate-array*, type (array uint8) +(define *car-part-translate-array* + (new 'static 'boxed-array :type uint8 #x0 #x0 #x1 #x1 #x2 #x2 #x3 #x4 #x5 #x6 #x7 #x8 #x9 #xa) + ) + +;; definition for symbol *car-part-translate-names*, type (array string) +(define *car-part-translate-names* (new 'static 'boxed-array :type string + "f-fender" + "r-fender" + "door" + "f-bumper" + "r-bumper" + "hood" + "trunk" + "roof" + "wheel" + "antenna" + "helmet" + ) + ) + +;; definition for symbol *car-look-names*, type (array string) +(define *car-look-names* (new 'static 'boxed-array :type string + "none" + "a" + "b" + "c" + "d" + "e" + "f" + "g" + "h" + "i" + "j" + "k" + "l" + "m" + "n" + "o" + "p" + "q" + "r" + "s" + "t" + "u" + "v" + ) + ) + +;; definition for symbol *car-layer-names*, type (array string) +(define *car-layer-names* (new 'static 'boxed-array :type string "dest" "base" "stripe" "detail" "damage")) + +;; definition for symbol *car-string-name*, type string +(define *car-string-name* (new 'global 'string 40 (the-as string #f))) + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/race-ai-tuning-h_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/race-ai-tuning-h_REF.gc new file mode 100644 index 0000000000..c5c2fc8c1a --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/race-ai-tuning-h_REF.gc @@ -0,0 +1,79 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type race-ai-tuning-entry +(deftype race-ai-tuning-entry (structure) + ((player-ahead-distance float) + (ahead-speed-delta float) + (behind-speed-delta float) + ) + ) + +;; definition for method 3 of type race-ai-tuning-entry +(defmethod inspect ((this race-ai-tuning-entry)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-ai-tuning-entry) + (format #t "~1Tplayer-ahead-distance: ~f~%" (-> this player-ahead-distance)) + (format #t "~1Tahead-speed-delta: ~f~%" (-> this ahead-speed-delta)) + (format #t "~1Tbehind-speed-delta: ~f~%" (-> this behind-speed-delta)) + (label cfg-4) + this + ) + +;; definition of type race-ai-base-speed-info +(deftype race-ai-base-speed-info (structure) + ((adventure-minimum float) + (adventure-diff-mod float) + (exhibition-rookie float) + (exhibition-pro float) + ) + ) + +;; definition for method 3 of type race-ai-base-speed-info +(defmethod inspect ((this race-ai-base-speed-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-ai-base-speed-info) + (format #t "~1Tadventure-minimum: ~f~%" (-> this adventure-minimum)) + (format #t "~1Tadventure-diff-mod: ~f~%" (-> this adventure-diff-mod)) + (format #t "~1Texhibition-rookie: ~f~%" (-> this exhibition-rookie)) + (format #t "~1Texhibition-pro: ~f~%" (-> this exhibition-pro)) + (label cfg-4) + this + ) + +;; definition of type race-ai-tuning-info +(deftype race-ai-tuning-info (structure) + ((tuning-entry race-ai-tuning-entry 6 :inline) + (ahead-threshold float) + (behind-threshold float) + (base-speed race-ai-base-speed-info) + ) + ) + +;; definition for method 3 of type race-ai-tuning-info +(defmethod inspect ((this race-ai-tuning-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-ai-tuning-info) + (format #t "~1Ttuning-entry[6] @ #x~X~%" (-> this tuning-entry)) + (format #t "~1Tahead-threshold: ~f~%" (-> this ahead-threshold)) + (format #t "~1Tbehind-threshold: ~f~%" (-> this behind-threshold)) + (format #t "~1Tbase-speed: #~%" (-> this base-speed)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/race-h_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/race-h_REF.gc new file mode 100644 index 0000000000..5b686eed8a --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/race-h_REF.gc @@ -0,0 +1,121 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type racer-state +(deftype racer-state (structure) + ((position vector :inline) + (start-position vector :inline) + (last-race-mesh-position vector :inline) + (racer uint64) + (lap-distance float) + (lap float) + (prev-racer-lap float) + (next-racer-lap float) + (end-of-race-dist float) + (max-speed float) + (last-race-line race-line) + (last-slice int16) + (flags uint16) + (rank int8) + (ai-rank int8) + (lap-count int8) + (lap-quadrant int8) + ) + (:methods + (racer-state-method-9 () none) + (racer-state-method-10 () none) + (racer-state-method-11 () none) + ) + ) + +;; definition for method 3 of type racer-state +(defmethod inspect ((this racer-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'racer-state) + (format #t "~1Tposition: #~%" (-> this position)) + (format #t "~1Tstart-position: #~%" (-> this start-position)) + (format #t "~1Tlast-race-mesh-position: #~%" (-> this last-race-mesh-position)) + (format #t "~1Tracer: ~D~%" (-> this racer)) + (format #t "~1Tlap-distance: ~f~%" (-> this lap-distance)) + (format #t "~1Tlap: ~f~%" (-> this lap)) + (format #t "~1Tprev-racer-lap: ~f~%" (-> this prev-racer-lap)) + (format #t "~1Tnext-racer-lap: ~f~%" (-> this next-racer-lap)) + (format #t "~1Tend-of-race-dist: ~f~%" (-> this end-of-race-dist)) + (format #t "~1Tmax-speed: ~f~%" (-> this max-speed)) + (format #t "~1Tlast-race-line: #~%" (-> this last-race-line)) + (format #t "~1Tlast-slice: ~D~%" (-> this last-slice)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Trank: ~D~%" (-> this rank)) + (format #t "~1Tai-rank: ~D~%" (-> this ai-rank)) + (format #t "~1Tlap-count: ~D~%" (-> this lap-count)) + (format #t "~1Tlap-quadrant: ~D~%" (-> this lap-quadrant)) + (label cfg-4) + this + ) + +;; definition of type race-state +(deftype race-state (structure) + ((start-sphere sphere :inline) + (start-dir vector :inline) + (finish-sphere sphere :inline) + (finish-dir vector :inline) + (race-state uint8) + (racer-count int8) + (lap-count int8) + (start-time int32) + (min-player-lap float) + (max-player-lap float) + (ai-tuning-indices basic) + (first-place-human-id int32) + (rubberband-ref-lap float) + (mesh basic) + (race-ai-tuning basic) + (race-ai-tuning-indices basic) + (longest-race-line-dist float) + (racer-array racer-state 10 :inline) + ) + (:methods + (race-state-method-9 () none) + (race-state-method-10 () none) + (race-state-method-11 () none) + ) + ) + +;; definition for method 3 of type race-state +(defmethod inspect ((this race-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-state) + (format #t "~1Tstart-sphere: #~%" (-> this start-sphere)) + (format #t "~1Tstart-dir: #~%" (-> this start-dir)) + (format #t "~1Tfinish-sphere: #~%" (-> this finish-sphere)) + (format #t "~1Tfinish-dir: #~%" (-> this finish-dir)) + (format #t "~1Trace-state: ~D~%" (-> this race-state)) + (format #t "~1Tracer-count: ~D~%" (-> this racer-count)) + (format #t "~1Tlap-count: ~D~%" (-> this lap-count)) + (format #t "~1Tstart-time: ~D~%" (-> this start-time)) + (format #t "~1Tmin-player-lap: ~f~%" (-> this min-player-lap)) + (format #t "~1Tmax-player-lap: ~f~%" (-> this max-player-lap)) + (format #t "~1Tai-tuning-indices: ~A~%" (-> this ai-tuning-indices)) + (format #t "~1Tfirst-place-human-id: ~D~%" (-> this first-place-human-id)) + (format #t "~1Trubberband-ref-lap: ~f~%" (-> this rubberband-ref-lap)) + (format #t "~1Tmesh: ~A~%" (-> this mesh)) + (format #t "~1Trace-ai-tuning: ~A~%" (-> this race-ai-tuning)) + (format #t "~1Trace-ai-tuning-indices: ~A~%" (-> this race-ai-tuning-indices)) + (format #t "~1Tlongest-race-line-dist: ~f~%" (-> this longest-race-line-dist)) + (format #t "~1Tracer-array[10] @ #x~X~%" (-> this racer-array)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/race-line-h_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/race-line-h_REF.gc new file mode 100644 index 0000000000..1ae9956d6c --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/race-line-h_REF.gc @@ -0,0 +1,117 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type race-line-slice-mapping +(deftype race-line-slice-mapping (structure) + ((valid-entries uint16) + (index-entries uint32) + ) + ) + +;; definition for method 3 of type race-line-slice-mapping +(defmethod inspect ((this race-line-slice-mapping)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-line-slice-mapping) + (format #t "~1Tvalid-entries: ~D~%" (-> this valid-entries)) + (format #t "~1Tindex-entries: #x~X~%" (-> this index-entries)) + (label cfg-4) + this + ) + +;; definition of type race-line-query-info +(deftype race-line-query-info (structure) + ((query-position vector :inline) + (nearest-position vector :inline) + (ahead-position vector :inline) + (ahead-direction vector :inline) + (direction vector :inline) + (angle-sum-distance float) + (look-ahead-distance float) + (current-slice int32) + (current-line basic) + (total-angle-delta float) + (skip-gaps? symbol) + ) + ) + +;; definition for method 3 of type race-line-query-info +(defmethod inspect ((this race-line-query-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-line-query-info) + (format #t "~1Tquery-position: #~%" (-> this query-position)) + (format #t "~1Tnearest-position: #~%" (-> this nearest-position)) + (format #t "~1Tahead-position: #~%" (-> this ahead-position)) + (format #t "~1Tahead-direction: #~%" (-> this ahead-direction)) + (format #t "~1Tdirection: #~%" (-> this direction)) + (format #t "~1Tangle-sum-distance: ~f~%" (-> this angle-sum-distance)) + (format #t "~1Tlook-ahead-distance: ~f~%" (-> this look-ahead-distance)) + (format #t "~1Tcurrent-slice: ~D~%" (-> this current-slice)) + (format #t "~1Tcurrent-line: ~A~%" (-> this current-line)) + (format #t "~1Ttotal-angle-delta: ~f~%" (-> this total-angle-delta)) + (format #t "~1Tskip-gaps?: ~A~%" (-> this skip-gaps?)) + (label cfg-4) + this + ) + +;; definition of type race-line +(deftype race-line (structure) + ((scale vector :inline) + (offset vector :inline) + (length float) + (flags uint16) + (points-per-slice int16) + (point-count int16) + (gap-index-count int16) + (slice-count int16) + (extra-points int16) + (points uint32) + (gap-indices uint32) + (slices uint32) + (pad uint32) + ) + (:methods + (race-line-method-9 () none) + (race-line-method-10 () none) + (race-line-method-11 () none) + (race-line-method-12 () none) + (race-line-method-13 () none) + (race-line-method-14 () none) + ) + ) + +;; definition for method 3 of type race-line +(defmethod inspect ((this race-line)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-line) + (format #t "~1Tscale: #~%" (-> this scale)) + (format #t "~1Toffset: #~%" (-> this offset)) + (format #t "~1Tlength: ~f~%" (-> this length)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tpoints-per-slice: ~D~%" (-> this points-per-slice)) + (format #t "~1Tpoint-count: ~D~%" (-> this point-count)) + (format #t "~1Tgap-index-count: ~D~%" (-> this gap-index-count)) + (format #t "~1Tslice-count: ~D~%" (-> this slice-count)) + (format #t "~1Textra-points: ~D~%" (-> this extra-points)) + (format #t "~1Tpoints: #x~X~%" (-> this points)) + (format #t "~1Tgap-indices: #x~X~%" (-> this gap-indices)) + (format #t "~1Tslices: #x~X~%" (-> this slices)) + (format #t "~1Tpad: ~D~%" (-> this pad)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/race-mesh-h_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/race-mesh-h_REF.gc new file mode 100644 index 0000000000..262d5853cb --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/race-mesh-h_REF.gc @@ -0,0 +1,217 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type race-mesh-hash-search +(deftype race-mesh-hash-search (structure) + ((best-dist float) + (debug-cells-searched int32) + (debug-slices-searched int32) + (bounds bounding-box4w :inline) + (cell-quads vector 2 :inline) + (slice-quads vector 4 :inline) + (cell-bits vector16ub 2 :inline :overlay-at cell-quads) + (slice-bits vector16ub 2 :inline :overlay-at slice-quads) + ) + ) + +;; definition for method 3 of type race-mesh-hash-search +(defmethod inspect ((this race-mesh-hash-search)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-mesh-hash-search) + (format #t "~1Tbest-dist: ~f~%" (-> this best-dist)) + (format #t "~1Tdebug-cells-searched: ~D~%" (-> this debug-cells-searched)) + (format #t "~1Tdebug-slices-searched: ~D~%" (-> this debug-slices-searched)) + (format #t "~1Tbounds: #~%" (-> this bounds)) + (format #t "~1Tcell-quads[2] @ #x~X~%" (-> this cell-quads)) + (format #t "~1Tslice-quads[4] @ #x~X~%" (-> this slice-quads)) + (format #t "~1Tcell-bits[2] @ #x~X~%" (-> this cell-quads)) + (format #t "~1Tslice-bits[2] @ #x~X~%" (-> this slice-quads)) + (label cfg-4) + this + ) + +;; definition of type race-mesh-slice-query +(deftype race-mesh-slice-query (structure) + ((search-sphere sphere :inline) + (slice-range uint16 2) + (race-line race-line) + (pt-on-slice vector :inline) + (slice-corners vector 4 :inline) + (lap-dist float) + (slice-id int16) + ) + ) + +;; definition for method 3 of type race-mesh-slice-query +(defmethod inspect ((this race-mesh-slice-query)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-mesh-slice-query) + (format #t "~1Tsearch-sphere: #~%" (-> this search-sphere)) + (format #t "~1Tslice-range[2] @ #x~X~%" (-> this slice-range)) + (format #t "~1Trace-line: #~%" (-> this race-line)) + (format #t "~1Tpt-on-slice: #~%" (-> this pt-on-slice)) + (format #t "~1Tslice-corners[4] @ #x~X~%" (-> this slice-corners)) + (format #t "~1Tlap-dist: ~f~%" (-> this lap-dist)) + (format #t "~1Tslice-id: ~D~%" (-> this slice-id)) + (label cfg-4) + this + ) + +;; definition of type race-mesh-edge +(deftype race-mesh-edge (structure) + ((left vector :inline) + (right vector :inline) + (lap-dist float :overlay-at (-> left data 3)) + ) + ) + +;; definition for method 3 of type race-mesh-edge +(defmethod inspect ((this race-mesh-edge)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-mesh-edge) + (format #t "~1Tleft: ~`vector`P~%" (-> this left)) + (format #t "~1Tright: ~`vector`P~%" (-> this right)) + (format #t "~1Tlap-dist: ~f~%" (-> this left w)) + (label cfg-4) + this + ) + +;; definition of type race-mesh-slice +(deftype race-mesh-slice (structure) + ((edge-index-array uint16 2) + (start-edge int16 :overlay-at (-> edge-index-array 0)) + (end-edge int16 :overlay-at (-> edge-index-array 1)) + ) + ) + +;; definition for method 3 of type race-mesh-slice +(defmethod inspect ((this race-mesh-slice)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-mesh-slice) + (format #t "~1Tedge-index-array[2] @ #x~X~%" (-> this edge-index-array)) + (format #t "~1Tstart-edge: ~D~%" (-> this start-edge)) + (format #t "~1Tend-edge: ~D~%" (-> this end-edge)) + (label cfg-4) + this + ) + +;; definition of type race-mesh-hash-cell +(deftype race-mesh-hash-cell (structure) + ((first-slice int16) + (slice-count uint8) + (pad uint8) + ) + ) + +;; definition for method 3 of type race-mesh-hash-cell +(defmethod inspect ((this race-mesh-hash-cell)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-mesh-hash-cell) + (format #t "~1Tfirst-slice: ~D~%" (-> this first-slice)) + (format #t "~1Tslice-count: ~D~%" (-> this slice-count)) + (format #t "~1Tpad: ~D~%" (-> this pad)) + (label cfg-4) + this + ) + +;; definition of type race-mesh-hash +(deftype race-mesh-hash (structure) + ((cells-wide int8) + (cells-tall int8) + (cell-length float) + (cells (inline-array race-mesh-hash-cell)) + (slice-table (inline-array race-mesh-slice)) + (origin vector :inline) + ) + ) + +;; definition for method 3 of type race-mesh-hash +(defmethod inspect ((this race-mesh-hash)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'race-mesh-hash) + (format #t "~1Tcells-wide: ~D~%" (-> this cells-wide)) + (format #t "~1Tcells-tall: ~D~%" (-> this cells-tall)) + (format #t "~1Tcell-length: ~f~%" (-> this cell-length)) + (format #t "~1Tcells: #x~X~%" (-> this cells)) + (format #t "~1Tslice-table: #x~X~%" (-> this slice-table)) + (format #t "~1Torigin: ~`vector`P~%" (-> this origin)) + (label cfg-4) + this + ) + +;; definition of type race-mesh +(deftype race-mesh (basic) + ((version uint8) + (flags uint8) + (slice-count int16) + (edge-count int16) + (race-line-count int16) + (ai-valid-mask int16) + (pad uint8 2) + (slices (inline-array race-mesh-slice)) + (edges (inline-array race-mesh-edge)) + (hash race-mesh-hash) + (race-lines uint32) + ) + (:methods + (race-mesh-method-9 () none) + (race-mesh-method-10 () none) + (race-mesh-method-11 () none) + (race-mesh-method-12 () none) + (race-mesh-method-13 () none) + (race-mesh-method-14 () none) + (race-mesh-method-15 () none) + (race-mesh-method-16 () none) + (race-mesh-method-17 () none) + (race-mesh-method-18 () none) + (race-mesh-method-19 () none) + (race-mesh-method-20 () none) + ) + ) + +;; definition for method 3 of type race-mesh +(defmethod inspect ((this race-mesh)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tversion: ~D~%" (-> this version)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tslice-count: ~D~%" (-> this slice-count)) + (format #t "~1Tedge-count: ~D~%" (-> this edge-count)) + (format #t "~1Trace-line-count: ~D~%" (-> this race-line-count)) + (format #t "~1Tai-valid-mask: ~D~%" (-> this ai-valid-mask)) + (format #t "~1Tpad[2] @ #x~X~%" (-> this pad)) + (format #t "~1Tslices: #x~X~%" (-> this slices)) + (format #t "~1Tedges: #x~X~%" (-> this edges)) + (format #t "~1Thash: #~%" (-> this hash)) + (format #t "~1Trace-lines: #x~X~%" (-> this race-lines)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/vehicle-h_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/vehicle-h_REF.gc new file mode 100644 index 0000000000..12f7b60996 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/vehicle-h_REF.gc @@ -0,0 +1,1509 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type vehicle-handling-info +(deftype vehicle-handling-info (structure) + ((brake-factor float) + (turbo-boost-factor float) + (turbo-boost-half-gain-speed float) + (tire-steering-angle float) + (tire-steering-speed-factor float) + (tire-steering-speed-bias float) + (ackermann-factor float) + (tire-static-friction float) + (tire-static-friction-speed meters) + (tire-dynamic-friction float) + (tire-dynamic-friction-speed meters) + (tire-arcade-factor float) + (drag-force-factor float) + (rolling-resistance float) + (downforce-factor float) + (roll-control-factor float) + (jump-thrust-factor float) + (buoyancy-factor float) + (water-drag-factor float) + (air-roll-torque float) + (air-pitch-torque float) + (air-angular-damping float) + (hop-turn-torque float) + (ground-torque-scale float) + (cos-ground-effect-angle float) + (ai-steering-factor float) + (ai-throttle-factor float) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-handling-info +(defmethod inspect ((this vehicle-handling-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-handling-info) + (format #t "~1Tbrake-factor: ~f~%" (-> this brake-factor)) + (format #t "~1Tturbo-boost-factor: ~f~%" (-> this turbo-boost-factor)) + (format #t "~1Tturbo-boost-half-gain-speed: ~f~%" (-> this turbo-boost-half-gain-speed)) + (format #t "~1Ttire-steering-angle: ~f~%" (-> this tire-steering-angle)) + (format #t "~1Ttire-steering-speed-factor: ~f~%" (-> this tire-steering-speed-factor)) + (format #t "~1Ttire-steering-speed-bias: ~f~%" (-> this tire-steering-speed-bias)) + (format #t "~1Tackermann-factor: ~f~%" (-> this ackermann-factor)) + (format #t "~1Ttire-static-friction: ~f~%" (-> this tire-static-friction)) + (format #t "~1Ttire-static-friction-speed: (meters ~m)~%" (-> this tire-static-friction-speed)) + (format #t "~1Ttire-dynamic-friction: ~f~%" (-> this tire-dynamic-friction)) + (format #t "~1Ttire-dynamic-friction-speed: (meters ~m)~%" (-> this tire-dynamic-friction-speed)) + (format #t "~1Ttire-arcade-factor: ~f~%" (-> this tire-arcade-factor)) + (format #t "~1Tdrag-force-factor: ~f~%" (-> this drag-force-factor)) + (format #t "~1Trolling-resistance: ~f~%" (-> this rolling-resistance)) + (format #t "~1Tdownforce-factor: ~f~%" (-> this downforce-factor)) + (format #t "~1Troll-control-factor: ~f~%" (-> this roll-control-factor)) + (format #t "~1Tjump-thrust-factor: ~f~%" (-> this jump-thrust-factor)) + (format #t "~1Tbuoyancy-factor: ~f~%" (-> this buoyancy-factor)) + (format #t "~1Twater-drag-factor: ~f~%" (-> this water-drag-factor)) + (format #t "~1Tair-roll-torque: ~f~%" (-> this air-roll-torque)) + (format #t "~1Tair-pitch-torque: ~f~%" (-> this air-pitch-torque)) + (format #t "~1Tair-angular-damping: ~f~%" (-> this air-angular-damping)) + (format #t "~1Thop-turn-torque: ~f~%" (-> this hop-turn-torque)) + (format #t "~1Tground-torque-scale: ~f~%" (-> this ground-torque-scale)) + (format #t "~1Tcos-ground-effect-angle: ~f~%" (-> this cos-ground-effect-angle)) + (format #t "~1Tai-steering-factor: ~f~%" (-> this ai-steering-factor)) + (format #t "~1Tai-throttle-factor: ~f~%" (-> this ai-throttle-factor)) + (label cfg-4) + this + ) + +;; definition of type vehicle-engine-info +(deftype vehicle-engine-info (structure) + ((max-torque float) + (inertia float) + (drag float) + (idle-rpm float) + (clutch-min-rpm float) + (clutch-max-rpm float) + (min-rpm float) + (max-rpm float) + (peak-torque-rpm float) + (powerband-width-rpm float) + (torque-data uint8 16) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-engine-info +(defmethod inspect ((this vehicle-engine-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-engine-info) + (format #t "~1Tmax-torque: ~f~%" (-> this max-torque)) + (format #t "~1Tinertia: ~f~%" (-> this inertia)) + (format #t "~1Tdrag: ~f~%" (-> this drag)) + (format #t "~1Tidle-rpm: ~f~%" (-> this idle-rpm)) + (format #t "~1Tclutch-min-rpm: ~f~%" (-> this clutch-min-rpm)) + (format #t "~1Tclutch-max-rpm: ~f~%" (-> this clutch-max-rpm)) + (format #t "~1Tmin-rpm: ~f~%" (-> this min-rpm)) + (format #t "~1Tmax-rpm: ~f~%" (-> this max-rpm)) + (format #t "~1Tpeak-torque-rpm: ~f~%" (-> this peak-torque-rpm)) + (format #t "~1Tpowerband-width-rpm: ~f~%" (-> this powerband-width-rpm)) + (format #t "~1Ttorque-data[16] @ #x~X~%" (-> this torque-data)) + (label cfg-4) + this + ) + +;; definition of type vehicle-transmission-info +(deftype vehicle-transmission-info (structure) + ((inertia float) + (upshift-rpm float) + (downshift-rpm float) + (final-drive-ratio float) + (gear-ratio-array float 8) + (gear-count int8) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-transmission-info +(defmethod inspect ((this vehicle-transmission-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-transmission-info) + (format #t "~1Tinertia: ~f~%" (-> this inertia)) + (format #t "~1Tupshift-rpm: ~f~%" (-> this upshift-rpm)) + (format #t "~1Tdownshift-rpm: ~f~%" (-> this downshift-rpm)) + (format #t "~1Tfinal-drive-ratio: ~f~%" (-> this final-drive-ratio)) + (format #t "~1Tgear-ratio-array[8] @ #x~X~%" (-> this gear-ratio-array)) + (format #t "~1Tgear-count: ~D~%" (-> this gear-count)) + (label cfg-4) + this + ) + +;; definition of type vehicle-wheel-info +(deftype vehicle-wheel-info (structure) + ((local-pos vector :inline) + (flags vehicle-wheel-flag) + (callback function) + (inertia float) + (radius float) + (susp-arm-length float) + (steer-arm-length float) + (scale float) + (travel float) + (probe-x-offset float) + (probe-y-offset float) + (suspension-spring float) + (suspension-damping float) + (forward-grip float) + (side-grip float) + (max-brake-torque float) + (camber float) + (x-scale float) + (probe-radius float) + (width float) + (settle-pos float) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-wheel-info +(defmethod inspect ((this vehicle-wheel-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-wheel-info) + (format #t "~1Tlocal-pos: #~%" (-> this local-pos)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tcallback: ~A~%" (-> this callback)) + (format #t "~1Tinertia: ~f~%" (-> this inertia)) + (format #t "~1Tradius: ~f~%" (-> this radius)) + (format #t "~1Tsusp-arm-length: ~f~%" (-> this susp-arm-length)) + (format #t "~1Tsteer-arm-length: ~f~%" (-> this steer-arm-length)) + (format #t "~1Tscale: ~f~%" (-> this scale)) + (format #t "~1Ttravel: ~f~%" (-> this travel)) + (format #t "~1Tprobe-x-offset: ~f~%" (-> this probe-x-offset)) + (format #t "~1Tprobe-y-offset: ~f~%" (-> this probe-y-offset)) + (format #t "~1Tsuspension-spring: ~f~%" (-> this suspension-spring)) + (format #t "~1Tsuspension-damping: ~f~%" (-> this suspension-damping)) + (format #t "~1Tforward-grip: ~f~%" (-> this forward-grip)) + (format #t "~1Tside-grip: ~f~%" (-> this side-grip)) + (format #t "~1Tmax-brake-torque: ~f~%" (-> this max-brake-torque)) + (format #t "~1Tcamber: ~f~%" (-> this camber)) + (format #t "~1Tx-scale: ~f~%" (-> this x-scale)) + (format #t "~1Tprobe-radius: ~f~%" (-> this probe-radius)) + (format #t "~1Twidth: ~f~%" (-> this width)) + (format #t "~1Tsettle-pos: ~f~%" (-> this settle-pos)) + (label cfg-4) + this + ) + +;; definition of type vehicle-physics-model-info +(deftype vehicle-physics-model-info (structure) + ((front-wheel vehicle-wheel-info :inline) + (rear-wheel vehicle-wheel-info :inline) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-physics-model-info +(defmethod inspect ((this vehicle-physics-model-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-physics-model-info) + (format #t "~1Tfront-wheel: #~%" (-> this front-wheel)) + (format #t "~1Trear-wheel: #~%" (-> this rear-wheel)) + (label cfg-4) + this + ) + +;; definition of type vehicle-camera-info +(deftype vehicle-camera-info (structure) + ((string-min-height meters) + (string-max-height meters) + (string-min-length meters) + (string-max-length meters) + (min-fov float) + (max-fov float) + (head-offset float) + (foot-offset float) + (look-pos-array vector 4 :inline) + (look-front vector :inline :overlay-at (-> look-pos-array 0)) + (look-left vector :inline :overlay-at (-> look-pos-array 1)) + (look-right vector :inline :overlay-at (-> look-pos-array 2)) + (look-rear vector :inline :overlay-at (-> look-pos-array 3)) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-camera-info +(defmethod inspect ((this vehicle-camera-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-camera-info) + (format #t "~1Tstring-min-height: (meters ~m)~%" (-> this string-min-height)) + (format #t "~1Tstring-max-height: (meters ~m)~%" (-> this string-max-height)) + (format #t "~1Tstring-min-length: (meters ~m)~%" (-> this string-min-length)) + (format #t "~1Tstring-max-length: (meters ~m)~%" (-> this string-max-length)) + (format #t "~1Tmin-fov: ~f~%" (-> this min-fov)) + (format #t "~1Tmax-fov: ~f~%" (-> this max-fov)) + (format #t "~1Thead-offset: ~f~%" (-> this head-offset)) + (format #t "~1Tfoot-offset: ~f~%" (-> this foot-offset)) + (format #t "~1Tlook-pos-array[4] @ #x~X~%" (-> this look-pos-array)) + (format #t "~1Tlook-front: #~%" (-> this look-pos-array)) + (format #t "~1Tlook-left: #~%" (-> this look-left)) + (format #t "~1Tlook-right: #~%" (-> this look-right)) + (format #t "~1Tlook-rear: #~%" (-> this look-rear)) + (label cfg-4) + this + ) + +;; definition of type vehicle-sound-loop-info +(deftype vehicle-sound-loop-info (structure) + ((sound uint16) + (speed float) + (min-speed float) + (max-speed float) + (pitch-offset float) + (pitch-scale float) + (min-pitch float) + (max-pitch float) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-sound-loop-info +(defmethod inspect ((this vehicle-sound-loop-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-sound-loop-info) + (format #t "~1Tsound: ~D~%" (-> this sound)) + (format #t "~1Tspeed: ~f~%" (-> this speed)) + (format #t "~1Tmin-speed: ~f~%" (-> this min-speed)) + (format #t "~1Tmax-speed: ~f~%" (-> this max-speed)) + (format #t "~1Tpitch-offset: ~f~%" (-> this pitch-offset)) + (format #t "~1Tpitch-scale: ~f~%" (-> this pitch-scale)) + (format #t "~1Tmin-pitch: ~f~%" (-> this min-pitch)) + (format #t "~1Tmax-pitch: ~f~%" (-> this max-pitch)) + (label cfg-4) + this + ) + +;; definition of type vehicle-sound-engine-loop-info +(deftype vehicle-sound-engine-loop-info (structure) + ((sound-array uint16 3) + (base-sound uint16 :overlay-at (-> sound-array 0)) + (load-sound uint16 :overlay-at (-> sound-array 1)) + (ai-sound uint16 :overlay-at (-> sound-array 2)) + (original-rpm float) + (min-rpm float) + (max-rpm float) + (pitch-scale float) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-sound-engine-loop-info +(defmethod inspect ((this vehicle-sound-engine-loop-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-sound-engine-loop-info) + (format #t "~1Tsound-array[3] @ #x~X~%" (-> this sound-array)) + (format #t "~1Tbase-sound: ~D~%" (-> this base-sound)) + (format #t "~1Tload-sound: ~D~%" (-> this load-sound)) + (format #t "~1Tai-sound: ~D~%" (-> this ai-sound)) + (format #t "~1Toriginal-rpm: ~f~%" (-> this original-rpm)) + (format #t "~1Tmin-rpm: ~f~%" (-> this min-rpm)) + (format #t "~1Tmax-rpm: ~f~%" (-> this max-rpm)) + (format #t "~1Tpitch-scale: ~f~%" (-> this pitch-scale)) + (label cfg-4) + this + ) + +;; definition of type vehicle-sound-info +(deftype vehicle-sound-info (structure) + ((water-sound uint16) + (jump-sound uint16) + (turbo-sound uint16) + (susp-creak-sound uint16) + (susp-bottom-out-sound uint16) + (susp-speed-threshold float) + (rpm-scale float) + (engine-loop-count int8) + (engine-loop-array (inline-array vehicle-sound-engine-loop-info)) + (tire-roll-sounds vehicle-sound-loop-info 6 :inline :offset 28) + (tire-slide-sounds vehicle-sound-loop-info 2 :inline) + (tire-roll-hum-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 0)) + (tire-roll-dirt-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 1)) + (tire-roll-sand-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 2)) + (tire-roll-snow-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 3)) + (tire-roll-grass-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 4)) + (tire-roll-knobby-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-roll-sounds 5)) + (tire-slide-road-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-slide-sounds 0)) + (tire-slide-dirt-sound vehicle-sound-loop-info :inline :overlay-at (-> tire-slide-sounds 1)) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-sound-info +(defmethod inspect ((this vehicle-sound-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-sound-info) + (format #t "~1Twater-sound: ~D~%" (-> this water-sound)) + (format #t "~1Tjump-sound: ~D~%" (-> this jump-sound)) + (format #t "~1Tturbo-sound: ~D~%" (-> this turbo-sound)) + (format #t "~1Tsusp-creak-sound: ~D~%" (-> this susp-creak-sound)) + (format #t "~1Tsusp-bottom-out-sound: ~D~%" (-> this susp-bottom-out-sound)) + (format #t "~1Tsusp-speed-threshold: ~f~%" (-> this susp-speed-threshold)) + (format #t "~1Trpm-scale: ~f~%" (-> this rpm-scale)) + (format #t "~1Tengine-loop-count: ~D~%" (-> this engine-loop-count)) + (format #t "~1Tengine-loop-array: #x~X~%" (-> this engine-loop-array)) + (format #t "~1Ttire-roll-sounds[6] @ #x~X~%" (-> this tire-roll-sounds)) + (format #t "~1Ttire-slide-sounds[2] @ #x~X~%" (-> this tire-slide-sounds)) + (format #t "~1Ttire-roll-hum-sound: #~%" (-> this tire-roll-sounds)) + (format #t "~1Ttire-roll-dirt-sound: #~%" (-> this tire-roll-dirt-sound)) + (format #t "~1Ttire-roll-sand-sound: #~%" (-> this tire-roll-sand-sound)) + (format #t "~1Ttire-roll-snow-sound: #~%" (-> this tire-roll-snow-sound)) + (format #t "~1Ttire-roll-grass-sound: #~%" (-> this tire-roll-grass-sound)) + (format #t "~1Ttire-roll-knobby-sound: #~%" (-> this tire-roll-knobby-sound)) + (format #t "~1Ttire-slide-road-sound: #~%" (-> this tire-slide-sounds)) + (format #t "~1Ttire-slide-dirt-sound: #~%" (-> this tire-slide-dirt-sound)) + (label cfg-4) + this + ) + +;; definition of type vehicle-particle-info +(deftype vehicle-particle-info (structure) + ((headlight-count int8) + (taillight-count int8) + (thruster-count int8) + (thruster-flame-width meters) + (thruster-flame-length meters) + (thruster-local-pos vector) + (exhaust-local-pos vector 2 :inline) + (exhaust-local-dir vector 2 :inline) + (smoke-local-pos vector 2 :inline) + (smoke-local-vel vector 2 :inline) + (headlight-local-pos vector 3 :inline) + (taillight-local-pos vector 2 :inline) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-particle-info +(defmethod inspect ((this vehicle-particle-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-particle-info) + (format #t "~1Theadlight-count: ~D~%" (-> this headlight-count)) + (format #t "~1Ttaillight-count: ~D~%" (-> this taillight-count)) + (format #t "~1Tthruster-count: ~D~%" (-> this thruster-count)) + (format #t "~1Tthruster-flame-width: (meters ~m)~%" (-> this thruster-flame-width)) + (format #t "~1Tthruster-flame-length: (meters ~m)~%" (-> this thruster-flame-length)) + (format #t "~1Tthruster-local-pos: #x~X~%" (-> this thruster-local-pos)) + (format #t "~1Texhaust-local-pos[2] @ #x~X~%" (-> this exhaust-local-pos)) + (format #t "~1Texhaust-local-dir[2] @ #x~X~%" (-> this exhaust-local-dir)) + (format #t "~1Tsmoke-local-pos[2] @ #x~X~%" (-> this smoke-local-pos)) + (format #t "~1Tsmoke-local-vel[2] @ #x~X~%" (-> this smoke-local-vel)) + (format #t "~1Theadlight-local-pos[3] @ #x~X~%" (-> this headlight-local-pos)) + (format #t "~1Ttaillight-local-pos[2] @ #x~X~%" (-> this taillight-local-pos)) + (label cfg-4) + this + ) + +;; definition of type vehicle-section-info +(deftype vehicle-section-info (structure) + ((rbody rigid-body-object-constants) + (hinge-axis vector :inline) + (color rgbaf :inline) + (joint-local matrix :inline) + (min-angle float) + (max-angle float) + (inv-hit-points float) + (hit-points float) + (rattle-sound uint16) + (impact-sound uint16) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-section-info +(defmethod inspect ((this vehicle-section-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-section-info) + (format #t "~1Trbody: #~%" (-> this rbody)) + (format #t "~1Thinge-axis: #~%" (-> this hinge-axis)) + (format #t "~1Tcolor: #~%" (-> this color)) + (format #t "~1Tjoint-local: #~%" (-> this joint-local)) + (format #t "~1Tmin-angle: ~f~%" (-> this min-angle)) + (format #t "~1Tmax-angle: ~f~%" (-> this max-angle)) + (format #t "~1Tinv-hit-points: ~f~%" (-> this inv-hit-points)) + (format #t "~1Thit-points: ~f~%" (-> this hit-points)) + (format #t "~1Trattle-sound: ~D~%" (-> this rattle-sound)) + (format #t "~1Timpact-sound: ~D~%" (-> this impact-sound)) + (label cfg-4) + this + ) + +;; definition of type vehicle-damage-info +(deftype vehicle-damage-info (structure) + ((inv-toughness-factor float) + (hit-points float) + (inv-hit-points float) + (hit-threshold float) + (impact-damage-factor float) + (section-mask uint32) + (section-array vehicle-section-info 12 :inline) + (section-lf-fender vehicle-section-info :inline :overlay-at (-> section-array 0)) + (section-rf-fender vehicle-section-info :inline :offset 176) + (section-lr-fender vehicle-section-info :inline :offset 320) + (section-rr-fender vehicle-section-info :inline :offset 464) + (section-l-door vehicle-section-info :inline :offset 608) + (section-r-door vehicle-section-info :inline :offset 752) + (section-hood vehicle-section-info :inline :offset 1184) + (section-trunk vehicle-section-info :inline :offset 1328) + (section-f-bumper vehicle-section-info :inline :offset 896) + (section-r-bumper vehicle-section-info :inline :offset 1040) + (section-roof vehicle-section-info :inline :offset 1472) + (section-cockpit vehicle-section-info :inline :offset 1616) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-damage-info +(defmethod inspect ((this vehicle-damage-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-damage-info) + (format #t "~1Tinv-toughness-factor: ~f~%" (-> this inv-toughness-factor)) + (format #t "~1Thit-points: ~f~%" (-> this hit-points)) + (format #t "~1Tinv-hit-points: ~f~%" (-> this inv-hit-points)) + (format #t "~1Thit-threshold: ~f~%" (-> this hit-threshold)) + (format #t "~1Timpact-damage-factor: ~f~%" (-> this impact-damage-factor)) + (format #t "~1Tsection-mask: ~D~%" (-> this section-mask)) + (format #t "~1Tsection-array[12] @ #x~X~%" (-> this section-array)) + (format #t "~1Tsection-lf-fender: #~%" (-> this section-array)) + (format #t "~1Tsection-rf-fender: #~%" (-> this section-rf-fender)) + (format #t "~1Tsection-lr-fender: #~%" (-> this section-lr-fender)) + (format #t "~1Tsection-rr-fender: #~%" (-> this section-rr-fender)) + (format #t "~1Tsection-l-door: #~%" (-> this section-l-door)) + (format #t "~1Tsection-r-door: #~%" (-> this section-r-door)) + (format #t "~1Tsection-hood: #~%" (-> this section-hood)) + (format #t "~1Tsection-trunk: #~%" (-> this section-trunk)) + (format #t "~1Tsection-f-bumper: #~%" (-> this section-f-bumper)) + (format #t "~1Tsection-r-bumper: #~%" (-> this section-r-bumper)) + (format #t "~1Tsection-roof: #~%" (-> this section-roof)) + (format #t "~1Tsection-cockpit: #~%" (-> this section-cockpit)) + (label cfg-4) + this + ) + +;; definition of type vehicle-setup-info +(deftype vehicle-setup-info (structure) + ((settle-height float) + (settle-rot-x float) + (idle-settle-height float) + (idle-settle-rot-x float) + (shadow-bot-clip float) + (shadow-locus-dist float) + (look-select uint8) + (rp-node-count int8) + (color-option-count int8) + (color-option-select int8) + (unknown vector) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-setup-info +(defmethod inspect ((this vehicle-setup-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-setup-info) + (format #t "~1Tsettle-height: ~f~%" (-> this settle-height)) + (format #t "~1Tsettle-rot-x: ~f~%" (-> this settle-rot-x)) + (format #t "~1Tidle-settle-height: ~f~%" (-> this idle-settle-height)) + (format #t "~1Tidle-settle-rot-x: ~f~%" (-> this idle-settle-rot-x)) + (format #t "~1Tshadow-bot-clip: ~f~%" (-> this shadow-bot-clip)) + (format #t "~1Tshadow-locus-dist: ~f~%" (-> this shadow-locus-dist)) + (format #t "~1Tlook-select: ~D~%" (-> this look-select)) + (format #t "~1Trp-node-count: ~D~%" (-> this rp-node-count)) + (format #t "~1Tcolor-option-count: ~D~%" (-> this color-option-count)) + (format #t "~1Tcolor-option-select: ~D~%" (-> this color-option-select)) + (label cfg-4) + this + ) + +;; definition of type vehicle-pilot-info +(deftype vehicle-pilot-info (structure) + ((player-turn-anim-bias float) + (player-turn-anim-min float) + (player-turn-anim-max float) + (pilot-x-accel-factor float) + (pilot-y-accel-factor float) + (pilot-z-accel-factor float) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-pilot-info +(defmethod inspect ((this vehicle-pilot-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-pilot-info) + (format #t "~1Tplayer-turn-anim-bias: ~f~%" (-> this player-turn-anim-bias)) + (format #t "~1Tplayer-turn-anim-min: ~f~%" (-> this player-turn-anim-min)) + (format #t "~1Tplayer-turn-anim-max: ~f~%" (-> this player-turn-anim-max)) + (format #t "~1Tpilot-x-accel-factor: ~f~%" (-> this pilot-x-accel-factor)) + (format #t "~1Tpilot-y-accel-factor: ~f~%" (-> this pilot-y-accel-factor)) + (format #t "~1Tpilot-z-accel-factor: ~f~%" (-> this pilot-z-accel-factor)) + (label cfg-4) + this + ) + +;; definition of type vehicle-seat-info +(deftype vehicle-seat-info (structure) + ((data uint8 16) + (position vector :inline :overlay-at (-> data 0)) + (pos-x float :overlay-at (-> data 0)) + (pos-y float :overlay-at (-> data 4)) + (pos-z float :overlay-at (-> data 8)) + (angle int16 :overlay-at (-> data 12)) + (flags vehicle-seat-flag :overlay-at (-> data 14)) + (mask uint16 :overlay-at (-> data 14)) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-seat-info +(defmethod inspect ((this vehicle-seat-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-seat-info) + (format #t "~1Tdata[16] @ #x~X~%" (-> this position)) + (format #t "~1Tposition: #~%" (-> this position)) + (format #t "~1Tpos-x: ~f~%" (-> this position x)) + (format #t "~1Tpos-y: ~f~%" (-> this position y)) + (format #t "~1Tpos-z: ~f~%" (-> this position z)) + (format #t "~1Tangle: ~D~%" (-> this angle)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tmask: ~D~%" (-> this mask)) + (label cfg-4) + this + ) + +;; definition of type vehicle-daxter-info +(deftype vehicle-daxter-info (structure) + ((data (inline-array vector) 3) + (counts int8 3) + (chassis-seats (inline-array vector) :overlay-at (-> data 0)) + (trunk-seats (inline-array vector) :overlay-at (-> data 1)) + (roof-seats (inline-array vector) :overlay-at (-> data 2)) + (chassis-seat-count int8 :overlay-at (-> counts 0)) + (trunk-seat-count int8 :overlay-at (-> counts 1)) + (roof-seat-count int8 :overlay-at (-> counts 2)) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-daxter-info +(defmethod inspect ((this vehicle-daxter-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-daxter-info) + (format #t "~1Tdata[3] @ #x~X~%" (&-> this chassis-seats)) + (format #t "~1Tcounts[3] @ #x~X~%" (-> this counts)) + (format #t "~1Tchassis-seats: #x~X~%" (-> this chassis-seats)) + (format #t "~1Ttrunk-seats: #x~X~%" (-> this trunk-seats)) + (format #t "~1Troof-seats: #x~X~%" (-> this roof-seats)) + (format #t "~1Tchassis-seat-count: ~D~%" (-> this chassis-seat-count)) + (format #t "~1Ttrunk-seat-count: ~D~%" (-> this trunk-seat-count)) + (format #t "~1Troof-seat-count: ~D~%" (-> this roof-seat-count)) + (label cfg-4) + this + ) + +;; definition of type vehicle-rider-info +(deftype vehicle-rider-info (structure) + ((seat-count int8) + (attach-point-count int8) + (seat-array vehicle-seat-info 2 :inline) + (rider-hand-offset vector 2 :inline) + (attach-point-array (inline-array vector)) + (attach-node-array (inline-array vector)) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-rider-info +(defmethod inspect ((this vehicle-rider-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-rider-info) + (format #t "~1Tseat-count: ~D~%" (-> this seat-count)) + (format #t "~1Tattach-point-count: ~D~%" (-> this attach-point-count)) + (format #t "~1Tseat-array[2] @ #x~X~%" (-> this seat-array)) + (format #t "~1Trider-hand-offset[2] @ #x~X~%" (-> this rider-hand-offset)) + (format #t "~1Tattach-point-array: #x~X~%" (-> this attach-point-array)) + (format #t "~1Tattach-node-array: #x~X~%" (-> this attach-node-array)) + (label cfg-4) + this + ) + +;; definition of type vehicle-hardpoint-info +(deftype vehicle-hardpoint-info (structure) + ((local-pos-array (inline-array vector)) + (flag-attach vector :inline) + (antenna-attach vector :inline) + (nodes int8 7) + (left-gun int8 :overlay-at (-> nodes 0)) + (right-gun int8 :overlay-at (-> nodes 1)) + (mine-launcher int8 :overlay-at (-> nodes 2)) + (trunk int8 :overlay-at (-> nodes 3)) + (super-turbo-attach int8 3 :overlay-at (-> nodes 4)) + (shield-anim int16) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-hardpoint-info +(defmethod inspect ((this vehicle-hardpoint-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-hardpoint-info) + (format #t "~1Tlocal-pos-array: #x~X~%" (-> this local-pos-array)) + (format #t "~1Tflag-attach: #~%" (-> this flag-attach)) + (format #t "~1Tantenna-attach: #~%" (-> this antenna-attach)) + (format #t "~1Tnodes[7] @ #x~X~%" (-> this nodes)) + (format #t "~1Tshield-anim: ~D~%" (-> this shield-anim)) + (format #t "~1Tleft-gun: ~D~%" (-> this left-gun)) + (format #t "~1Tright-gun: ~D~%" (-> this right-gun)) + (format #t "~1Tmine-launcher: ~D~%" (-> this mine-launcher)) + (format #t "~1Ttrunk: ~D~%" (-> this trunk)) + (format #t "~1Tsuper-turbo-attach[3] @ #x~X~%" (-> this super-turbo-attach)) + (label cfg-4) + this + ) + +;; definition of type vehicle-explosion-info +(deftype vehicle-explosion-info (joint-exploder-static-params) + ((skel skeleton-group) + (skel-name string) + (anim int32) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-explosion-info +(defmethod inspect ((this vehicle-explosion-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tjoints: ~A~%" (-> this joints)) + (format #t "~1Tcollide-spec: ~D~%" (-> this collide-spec)) + (format #t "~1Tart-level: ~A~%" (-> this art-level)) + (format #t "~1Tcollide-sound: ~D~%" (-> this collide-sound)) + (format #t "~1Tcollide-sound-interval: ~D~%" (-> this collide-sound-interval)) + (format #t "~1Tskel: ~A~%" (-> this skel)) + (format #t "~1Tskel-name: ~A~%" (-> this skel-name)) + (format #t "~1Tanim: ~D~%" (-> this anim)) + (label cfg-4) + this + ) + +;; definition of type vehicle-particle-common-info +(deftype vehicle-particle-common-info (structure) + ((sp-system2d sparticle-system) + (sp-system3d sparticle-system) + (part-thruster sparticle-launcher) + (part-thruster-x sp-field-init-spec) + (part-spec2 sp-field-init-spec) + (part-quat quaternion) + (part-vel vector) + (pad uint32 2) + (headlight-glow-template sprite-glow-data) + (taillight-glow-template sprite-glow-data) + (thruster-glow-template sprite-glow-data) + (pad2 uint32 6) + (thrust-tex-id uint32) + (dark-thrust-tex-id uint32) + (pad3 uint32 9) + (rgb rgbaf :inline) + (lights vu-lights) + (pad4 uint32 2) + ) + :pack-me + (:methods + (vehicle-particle-common-info-method-9 () none) + ) + ) + +;; definition for method 3 of type vehicle-particle-common-info +(defmethod inspect ((this vehicle-particle-common-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-particle-common-info) + (format #t "~1Theadlight-glow-template: #~%" (-> this headlight-glow-template)) + (format #t "~1Ttaillight-glow-template: #~%" (-> this taillight-glow-template)) + (format #t "~1Tthruster-glow-template: #~%" (-> this thruster-glow-template)) + (format #t "~1Tthrust-tex-id: ~D~%" (-> this thrust-tex-id)) + (format #t "~1Tdark-thrust-tex-id: ~D~%" (-> this dark-thrust-tex-id)) + (format #t "~1Trgb: #~%" (-> this rgb)) + (format #t "~1Tlights: #~%" (-> this lights)) + (label cfg-4) + this + ) + +;; definition of type vehicle-shield-info +(deftype vehicle-shield-info (structure) + ((inner ellipsoid :inline) + (offset vector :inline) + (outer-multiple float) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-shield-info +(defmethod inspect ((this vehicle-shield-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-shield-info) + (format #t "~1Tinner: #~%" (-> this inner)) + (format #t "~1Toffset: #~%" (-> this offset)) + (format #t "~1Touter-multiple: ~f~%" (-> this outer-multiple)) + (label cfg-4) + this + ) + +;; definition of type rigid-body-vehicle-constants +(deftype rigid-body-vehicle-constants (rigid-body-object-constants) + ((flags uint32) + (vehicle-type uint8) + (engine vehicle-engine-info :inline) + (transmission vehicle-transmission-info :inline) + (handling vehicle-handling-info :inline) + (pilot vehicle-pilot-info :inline) + (camera vehicle-camera-info :inline) + (sound vehicle-sound-info :inline) + (particles vehicle-particle-info :inline) + (damage vehicle-damage-info :inline) + (physics-model vehicle-physics-model-info :inline) + (setup vehicle-setup-info) + (rider vehicle-rider-info :inline) + (daxter vehicle-daxter-info) + (hardpoint vehicle-hardpoint-info :inline) + (shield vehicle-shield-info :inline) + (explosion vehicle-explosion-info) + (explosion-part int32) + (debris debris-static-params) + (name-text text-id) + (helmet-offset vector) + (particle-common vehicle-particle-common-info) + ) + (:methods + (rigid-body-vehicle-constants-method-10 () none) + ) + ) + +;; definition for method 3 of type rigid-body-vehicle-constants +(defmethod inspect ((this rigid-body-vehicle-constants)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'rigid-body-vehicle-constants) + (format #t "~1Tinfo: #~%" (-> this info)) + (format #t "~1Tmax-time-step: ~f~%" (-> this info max-time-step)) + (format #t "~1Tmass: ~f~%" (-> this info mass)) + (format #t "~1Tinv-mass: ~f~%" (-> this info inv-mass)) + (format #t "~1Tcm-joint-x: (meters ~m)~%" (-> this info cm-offset-joint x)) + (format #t "~1Tcm-joint-y: (meters ~m)~%" (-> this info cm-offset-joint y)) + (format #t "~1Tcm-joint-z: (meters ~m)~%" (-> this info cm-offset-joint z)) + (format #t "~1Tlinear-damping: ~f~%" (-> this info linear-damping)) + (format #t "~1Tangular-damping: ~f~%" (-> this info angular-damping)) + (format #t "~1Tbounce-factor: ~f~%" (-> this info bounce-factor)) + (format #t "~1Tfriction-factor: ~f~%" (-> this info friction-factor)) + (format #t "~1Tinertial-tensor-x: (meters ~m)~%" (-> this inertial-tensor-x)) + (format #t "~1Tinertial-tensor-y: (meters ~m)~%" (-> this inertial-tensor-y)) + (format #t "~1Tinertial-tensor-z: (meters ~m)~%" (-> this inertial-tensor-z)) + (format #t "~1Tgravity: (meters ~m)~%" (-> this info gravity)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tvehicle-type: ~D~%" (-> this vehicle-type)) + (format #t "~1Tengine: #~%" (-> this engine)) + (format #t "~1Ttransmission: #~%" (-> this transmission)) + (format #t "~1Thandling: #~%" (-> this handling)) + (format #t "~1Tpilot: #~%" (-> this pilot)) + (format #t "~1Tcamera: #~%" (-> this camera)) + (format #t "~1Tsound: #~%" (-> this sound)) + (format #t "~1Tparticles: #~%" (-> this particles)) + (format #t "~1Tdamage: #~%" (-> this damage)) + (format #t "~1Tphysics-model: #~%" (-> this physics-model)) + (format #t "~1Tsetup: #~%" (-> this setup)) + (format #t "~1Trider: #~%" (-> this rider)) + (format #t "~1Tdaxter: #~%" (-> this daxter)) + (format #t "~1Thardpoint: #~%" (-> this hardpoint)) + (format #t "~1Tshield: #~%" (-> this shield)) + (format #t "~1Texplosion: ~A~%" (-> this explosion)) + (format #t "~1Texplosion-part: ~D~%" (-> this explosion-part)) + (format #t "~1Tdebris: ~A~%" (-> this debris)) + (format #t "~1Tname-text: ~D~%" (-> this name-text)) + (format #t "~1Thelmet-offset: #~%" (-> this helmet-offset)) + (format #t "~1Tparticle-common: #~%" (-> this particle-common)) + (label cfg-4) + this + ) + +;; definition of type vehicle-section +(deftype vehicle-section (structure) + ((vel vector :inline) + (info vehicle-section-info) + (node-list basic) + (draw basic) + (car-info car-info-full) + (debris uint64) + (damage float) + (angle float) + (d-angle float) + (node-index int8) + (parent-node-index int8) + (flags uint8) + (car-part int8) + ) + (:methods + (vehicle-section-method-9 () none) + (vehicle-section-method-10 () none) + (vehicle-section-method-11 () none) + (vehicle-section-method-12 () none) + (vehicle-section-method-13 () none) + (vehicle-section-method-14 () none) + (vehicle-section-method-15 () none) + (vehicle-section-method-16 () none) + (vehicle-section-method-17 () none) + (vehicle-section-method-18 () none) + (vehicle-section-method-19 () none) + ) + ) + +;; definition for method 3 of type vehicle-section +(defmethod inspect ((this vehicle-section)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-section) + (format #t "~1Tvel: #~%" (-> this vel)) + (format #t "~1Tinfo: #~%" (-> this info)) + (format #t "~1Tnode-list: ~A~%" (-> this node-list)) + (format #t "~1Tdraw: ~A~%" (-> this draw)) + (format #t "~1Tcar-info: #~%" (-> this car-info)) + (format #t "~1Tdebris: ~D~%" (-> this debris)) + (format #t "~1Tdamage: ~f~%" (-> this damage)) + (format #t "~1Tangle: ~f~%" (-> this angle)) + (format #t "~1Td-angle: ~f~%" (-> this d-angle)) + (format #t "~1Tnode-index: ~D~%" (-> this node-index)) + (format #t "~1Tparent-node-index: ~D~%" (-> this parent-node-index)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tcar-part: ~D~%" (-> this car-part)) + (label cfg-4) + this + ) + +;; definition of type vehicle-controls +(deftype vehicle-controls (structure) + ((dataf float 5) + (dataw uint32 5 :overlay-at (-> dataf 0)) + (steering float :overlay-at (-> dataf 0)) + (throttle float :overlay-at (-> dataf 1)) + (brake float :overlay-at (-> dataf 2)) + (lean-z float :overlay-at (-> dataf 3)) + (handbrake float :overlay-at (-> dataf 4)) + (flags uint8) + (prev-flags uint8) + (pad0 uint8 2) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-controls +(defmethod inspect ((this vehicle-controls)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-controls) + (format #t "~1Tdataf[5] @ #x~X~%" (-> this dataf)) + (format #t "~1Tdataw[5] @ #x~X~%" (-> this dataf)) + (format #t "~1Tsteering: ~f~%" (-> this steering)) + (format #t "~1Tthrottle: ~f~%" (-> this throttle)) + (format #t "~1Tbrake: ~f~%" (-> this brake)) + (format #t "~1Tlean-z: ~f~%" (-> this lean-z)) + (format #t "~1Thandbrake: ~f~%" (-> this handbrake)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tprev-flags: ~D~%" (-> this prev-flags)) + (format #t "~1Tpad0[2] @ #x~X~%" (-> this pad0)) + (label cfg-4) + this + ) + +;; definition of type vehicle-particle +(deftype vehicle-particle (structure) + ((birth-accum uint32 2) + (launcher basic) + ) + ) + +;; definition for method 3 of type vehicle-particle +(defmethod inspect ((this vehicle-particle)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-particle) + (format #t "~1Tbirth-accum[2] @ #x~X~%" (-> this birth-accum)) + (format #t "~1Tlauncher: ~A~%" (-> this launcher)) + (label cfg-4) + this + ) + +;; definition of type vehicle +(deftype vehicle (rigid-body-object) + ((info rigid-body-vehicle-constants :override) + (car-info car-info-full :overlay-at perf) + (v-flags vehicle-flag :overlay-at flags) + (pad1 uint32 2) + (damage-matrix matrix 2 :inline) + (damage-direction vector :inline) + (camera-pos vector :inline) + (pad2 uint32 2) + (control-hook (function vehicle vehicle-controls)) + (control-mask vehicle-controls) + (impact-callback basic) + (controls vehicle-controls :inline) + (prev-controls vehicle-controls :inline) + (impact rigid-body-impact :inline) + (target-acceleration vector :inline) + (impact-local-pos vector :inline) + (lin-acceleration vector :inline) + (max-impact-impulse float) + (sum-impact-impulse float) + (underside-y float) + (side-x float) + (health float) + (damage-factor float) + (pad3 uint32) + (speed-factor float) + (pad4 uint32 6) + (behavior uint64) + (cam-view int8) + (pad5 uint32) + (cam-speed-interp float) + (camera-dist float) + (pad6 uint32 3) + (impact-proc uint64) + (net-player uint64) + (pad7 uint32) + (impact-time uint32) + (prev-impact-time uint32) + (pad8 uint32 3) + (offscreen-time uint32) + (pad9 uint32 3) + (physics-enabled-time uint32) + (pad10 uint32 7) + (water-height float) + (pad11 uint32 236) + (pred net-predictor-sphcol :inline) + (next-reliable-send-time int32) + (player-id int8) + (killed-by int8) + (killed-with int8) + (pad12 uint32 2) + (last-warp-time int32) + (last-sent-vehicle-control-flags uint8) + ) + (:methods + (vehicle-method-89 () none) + (vehicle-method-90 () none) + (vehicle-method-91 () none) + (vehicle-method-92 () none) + (vehicle-method-93 () none) + (vehicle-method-94 () none) + (vehicle-method-95 () none) + (vehicle-method-96 () none) + (vehicle-method-97 () none) + (vehicle-method-98 () none) + (vehicle-method-99 () none) + (vehicle-method-100 () none) + (vehicle-method-101 () none) + (vehicle-method-102 () none) + (vehicle-method-103 () none) + (vehicle-method-104 () none) + (vehicle-method-105 () none) + (vehicle-method-106 () none) + (vehicle-method-107 () none) + (vehicle-method-108 () none) + (vehicle-method-109 () none) + (vehicle-method-110 () none) + (vehicle-method-111 () none) + (vehicle-method-112 () none) + (vehicle-method-113 () none) + (vehicle-method-114 () none) + (vehicle-method-115 (_type_) none) + (vehicle-method-116 () none) + (vehicle-method-117 () none) + (vehicle-method-118 () none) + (vehicle-method-119 () none) + (vehicle-method-120 () none) + (vehicle-method-121 () none) + (vehicle-method-122 () none) + (vehicle-method-123 () none) + (vehicle-method-124 () none) + (vehicle-method-125 () none) + (vehicle-method-126 () none) + (vehicle-method-127 () none) + (vehicle-method-128 () none) + (vehicle-method-129 () none) + (vehicle-method-130 () none) + (vehicle-method-131 () none) + (vehicle-method-132 () none) + (vehicle-method-133 () none) + (vehicle-method-134 () none) + (vehicle-method-135 () none) + (vehicle-method-136 () none) + (vehicle-method-137 () none) + (vehicle-method-138 () none) + (vehicle-method-139 () none) + (vehicle-method-140 () none) + (vehicle-method-141 () none) + (vehicle-method-142 () none) + (vehicle-method-143 () none) + (vehicle-method-144 () none) + (vehicle-method-145 () none) + (vehicle-method-146 () none) + (vehicle-method-147 () none) + (vehicle-method-148 () none) + (vehicle-method-149 () none) + (vehicle-method-150 () none) + (vehicle-method-151 () none) + (vehicle-method-152 () none) + (vehicle-method-153 () none) + (vehicle-method-154 () none) + (vehicle-method-155 () none) + (vehicle-method-156 () none) + (vehicle-method-157 () none) + (vehicle-method-158 () none) + (vehicle-method-159 () none) + (vehicle-method-160 () none) + (vehicle-method-161 () none) + (vehicle-method-162 () none) + (vehicle-method-163 () none) + (vehicle-method-164 () none) + (vehicle-method-165 () none) + (vehicle-method-166 () none) + (vehicle-method-167 () none) + (vehicle-method-168 () none) + (vehicle-method-169 () none) + (vehicle-method-170 () none) + (vehicle-method-171 () none) + (vehicle-method-172 () none) + (vehicle-method-173 () none) + (vehicle-method-174 () none) + (vehicle-method-175 () none) + (vehicle-method-176 () none) + (vehicle-method-177 () none) + (vehicle-method-178 () none) + (vehicle-method-179 () none) + (vehicle-method-180 () none) + (vehicle-method-181 () none) + (vehicle-method-182 () none) + (vehicle-method-183 () none) + (vehicle-method-184 () none) + (vehicle-method-185 () none) + (vehicle-method-186 () none) + (vehicle-method-187 () none) + (vehicle-method-188 () none) + (vehicle-method-189 () none) + (vehicle-method-190 () none) + (vehicle-method-191 () none) + (vehicle-method-192 () none) + (vehicle-method-193 () none) + (vehicle-method-194 () none) + (vehicle-method-195 () none) + (vehicle-method-196 () none) + (vehicle-method-197 () none) + (vehicle-method-198 () none) + (vehicle-method-199 () none) + (vehicle-method-200 () none) + (vehicle-method-201 () none) + (vehicle-method-202 () none) + (vehicle-method-203 () none) + ) + ) + +;; definition for method 3 of type vehicle +(defmethod inspect ((this vehicle)) + (when (not this) + (set! this this) + (goto cfg-110) + ) + (let ((t9-0 (method-of-type rigid-body-object inspect))) + (t9-0 this) + ) + (format #t "~2Tcar-info: #~%" (-> this pad1 0)) + (format #t "~2Tflags: #x~X : (vehicle-flag " (-> this v-flags)) + (let ((s5-0 (-> this v-flags))) + (if (= (logand (vehicle-flag disable-weapons) s5-0) (shl #x80000 32)) + (format #t "disable-weapons ") + ) + (if (= (logand (vehicle-flag lights-update) s5-0) (vehicle-flag lights-update)) + (format #t "lights-update ") + ) + (if (= (logand (vehicle-flag turbo-toggle) s5-0) (shl 8 32)) + (format #t "turbo-toggle ") + ) + (if (= (logand s5-0 (vehicle-flag dead)) (vehicle-flag dead)) + (format #t "dead ") + ) + (if (= (logand (vehicle-flag wheel-fire) s5-0) (shl #x4000 32)) + (format #t "wheel-fire ") + ) + (if (= (logand (vehicle-flag ai-off-nav-mesh) s5-0) (shl 2048 32)) + (format #t "ai-off-nav-mesh ") + ) + (if (= (logand s5-0 (vehicle-flag turbo-boost)) (vehicle-flag turbo-boost)) + (format #t "turbo-boost ") + ) + (if (= (logand s5-0 (vehicle-flag suppress-physics)) (vehicle-flag suppress-physics)) + (format #t "suppress-physics ") + ) + (if (= (logand (vehicle-flag fragile-death) s5-0) (shl 2 32)) + (format #t "fragile-death ") + ) + (if (= (logand s5-0 (vehicle-flag damaged)) (vehicle-flag damaged)) + (format #t "damaged ") + ) + (if (= (logand (vehicle-flag turbo-pad) s5-0) (shl #x8000 16)) + (format #t "turbo-pad ") + ) + (if (= (logand (vehicle-flag camera-look-mode) s5-0) (vehicle-flag camera-look-mode)) + (format #t "camera-look-mode ") + ) + (if (= (logand s5-0 (vehicle-flag player-grabbed)) (vehicle-flag player-grabbed)) + (format #t "player-grabbed ") + ) + (if (= (logand s5-0 (vehicle-flag disturbed)) (vehicle-flag disturbed)) + (format #t "disturbed ") + ) + (if (= (logand s5-0 (vehicle-flag enable-collision)) (vehicle-flag enable-collision)) + (format #t "enable-collision ") + ) + (if (= (logand (vehicle-flag suppress-look) s5-0) (shl #x40000 32)) + (format #t "suppress-look ") + ) + (if (= (logand (vehicle-flag lights-on) s5-0) (vehicle-flag lights-on)) + (format #t "lights-on ") + ) + (if (= (logand (vehicle-flag reverse-gear) s5-0) (vehicle-flag reverse-gear)) + (format #t "reverse-gear ") + ) + (if (= (logand (vehicle-flag start-boost) s5-0) (shl 32 32)) + (format #t "start-boost ") + ) + (if (= (logand s5-0 (vehicle-flag ai-driving)) (vehicle-flag ai-driving)) + (format #t "ai-driving ") + ) + (if (= (logand (vehicle-flag start-boost-latch) s5-0) (shl 16 32)) + (format #t "start-boost-latch ") + ) + (if (= (logand (vehicle-flag dark-eco-boost-triggered) s5-0) (shl 1024 32)) + (format #t "dark-eco-boost-triggered ") + ) + (if (= (logand s5-0 (vehicle-flag riding)) (vehicle-flag riding)) + (format #t "riding ") + ) + (if (= (logand s5-0 (vehicle-flag nav-spheres)) (vehicle-flag nav-spheres)) + (format #t "nav-spheres ") + ) + (if (= (logand (vehicle-flag particles) s5-0) (vehicle-flag particles)) + (format #t "particles ") + ) + (if (= (logand (vehicle-flag temp) s5-0) (shl 512 32)) + (format #t "temp ") + ) + (if (= (logand s5-0 (vehicle-flag player-driving)) (vehicle-flag player-driving)) + (format #t "player-driving ") + ) + (if (= (logand (vehicle-flag ignore-damage) s5-0) (vehicle-flag ignore-damage)) + (format #t "ignore-damage ") + ) + (if (= (logand s5-0 (vehicle-flag ignition)) (vehicle-flag ignition)) + (format #t "ignition ") + ) + (if (= (logand (vehicle-flag oil-slick) s5-0) (vehicle-flag oil-slick)) + (format #t "oil-slick ") + ) + (if (= (logand (vehicle-flag ignore-impulse) s5-0) (vehicle-flag ignore-impulse)) + (format #t "ignore-impulse ") + ) + (if (= (logand s5-0 (vehicle-flag on-ground)) (vehicle-flag on-ground)) + (format #t "on-ground ") + ) + (if (= (logand (vehicle-flag superhero) s5-0) (shl #x100000 32)) + (format #t "superhero ") + ) + (if (= (logand (vehicle-flag no-color-mod) s5-0) (shl #x20000 32)) + (format #t "no-color-mod ") + ) + (if (= (logand (vehicle-flag ghost) s5-0) (shl 8192 32)) + (format #t "ghost ") + ) + (if (= (logand (vehicle-flag shield) s5-0) (shl 64 32)) + (format #t "shield ") + ) + (if (= (logand (vehicle-flag sounds) s5-0) (vehicle-flag sounds)) + (format #t "sounds ") + ) + (if (= (logand (vehicle-flag joints) s5-0) (vehicle-flag joints)) + (format #t "joints ") + ) + (if (= (logand (vehicle-flag lights-dead) s5-0) (vehicle-flag lights-dead)) + (format #t "lights-dead ") + ) + (if (= (logand (vehicle-flag sinking) s5-0) (shl #x10000 32)) + (format #t "sinking ") + ) + (if (= (logand (vehicle-flag highspeed-collision) s5-0) (vehicle-flag highspeed-collision)) + (format #t "highspeed-collision ") + ) + (if (= (logand s5-0 (vehicle-flag remote-control)) (vehicle-flag remote-control)) + (format #t "remote-control ") + ) + (if (= (logand s5-0 (vehicle-flag in-air)) (vehicle-flag in-air)) + (format #t "in-air ") + ) + (if (= (logand (vehicle-flag fragile) s5-0) (shl 1 32)) + (format #t "fragile ") + ) + (if (= (logand s5-0 (vehicle-flag player-owned)) (vehicle-flag player-owned)) + (format #t "player-owned ") + ) + (if (= (logand (vehicle-flag draw-marks) s5-0) (shl 256 32)) + (format #t "draw-marks ") + ) + (if (= (logand (vehicle-flag camera) s5-0) (vehicle-flag camera)) + (format #t "camera ") + ) + (if (= (logand (vehicle-flag stuck) s5-0) (shl #x8000 32)) + (format #t "stuck ") + ) + (if (= (logand (vehicle-flag ignore-powerups) s5-0) (shl 4 32)) + (format #t "ignore-powerups ") + ) + (if (= (logand (vehicle-flag overturned) s5-0) (vehicle-flag overturned)) + (format #t "overturned ") + ) + (if (= (logand (vehicle-flag oversteer) s5-0) (shl 4096 32)) + (format #t "oversteer ") + ) + (if (= (logand (vehicle-flag camera-inside-view) s5-0) (vehicle-flag camera-inside-view)) + (format #t "camera-inside-view ") + ) + (if (= (logand (vehicle-flag respawn-invul) s5-0) (shl 128 32)) + (format #t "respawn-invul ") + ) + ) + (format #t ")~%") + (format #t "~2Tdamage-matrix[2] @ #x~X~%" (-> this damage-matrix)) + (format #t "~2Tdamage-direction: #~%" (-> this damage-direction)) + (format #t "~2Tcamera-pos: #~%" (-> this camera-pos)) + (format #t "~2Tcontrol-hook: ~A~%" (-> this control-hook)) + (format #t "~2Tcontrol-mask: #~%" (-> this control-mask)) + (format #t "~2Timpact-callback: ~A~%" (-> this impact-callback)) + (format #t "~2Tcontrols: #~%" (-> this controls)) + (format #t "~2Tprev-controls: #~%" (-> this prev-controls)) + (format #t "~2Timpact: #~%" (-> this impact)) + (format #t "~2Ttarget-acceleration: #~%" (-> this target-acceleration)) + (format #t "~2Timpact-local-pos: #~%" (-> this impact-local-pos)) + (format #t "~2Tlin-acceleration: #~%" (-> this lin-acceleration)) + (format #t "~2Tmax-impact-impulse: ~f~%" (-> this max-impact-impulse)) + (format #t "~2Tsum-impact-impulse: ~f~%" (-> this sum-impact-impulse)) + (format #t "~2Tunderside-y: ~f~%" (-> this underside-y)) + (format #t "~2Tside-x: ~f~%" (-> this side-x)) + (format #t "~2Thealth: ~f~%" (-> this health)) + (format #t "~2Tdamage-factor: ~f~%" (-> this damage-factor)) + (format #t "~2Tspeed-factor: ~f~%" (-> this speed-factor)) + (format #t "~2Tbehavior: ~D~%" (-> this behavior)) + (format #t "~2Tcam-view: ~D~%" (-> this cam-view)) + (format #t "~2Tcam-speed-interp: ~f~%" (-> this cam-speed-interp)) + (format #t "~2Tcamera-dist: ~f~%" (-> this camera-dist)) + (format #t "~2Timpact-proc: ~D~%" (-> this impact-proc)) + (format #t "~2Tnet-player: ~D~%" (-> this net-player)) + (format #t "~2Timpact-time: ~D~%" (-> this impact-time)) + (format #t "~2Tprev-impact-time: ~D~%" (-> this prev-impact-time)) + (format #t "~2Toffscreen-time: ~D~%" (-> this offscreen-time)) + (format #t "~2Tphysics-enabled-time: ~D~%" (-> this physics-enabled-time)) + (format #t "~2Twater-height: ~f~%" (-> this water-height)) + (format #t "~2Tpred: #~%" (-> this pred)) + (format #t "~2Tnext-reliable-send-time: ~D~%" (-> this next-reliable-send-time)) + (format #t "~2Tplayer-id: ~D~%" (-> this player-id)) + (format #t "~2Tkilled-by: ~D~%" (-> this killed-by)) + (format #t "~2Tkilled-with: ~D~%" (-> this killed-with)) + (format #t "~2Tlast-warp-time: ~D~%" (-> this last-warp-time)) + (format #t "~2Tlast-sent-vehicle-control-flags: ~D~%" (-> this last-sent-vehicle-control-flags)) + (label cfg-110) + this + ) + +;; definition for function vehicle-init-remote +;; WARN: Return type mismatch int vs none. +(defbehavior vehicle-init-remote vehicle ((arg0 int)) + (process-nettable-method-34 self -1 (new 'static 'rgba :r #xff :g #xff)) + (process-nettable-method-35 self arg0) + (process-nettable-method-36 self) + 0 + (none) + ) + +;; definition for method 41 of type vehicle +(defmethod process-nettable-method-41 ((this vehicle) (arg0 int)) + (ppointer->process (process-spawn vehicle :init vehicle-init-remote arg0 :name "vehicle")) + ) + +;; definition for method 37 of type vehicle +;; WARN: Return type mismatch int vs none. +(defmethod process-nettable-method-37 ((this vehicle) (arg0 net-process-class-info)) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'weapon-acquired) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'drone-change-target) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'seismic-discharge) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'tractor-fire) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'make-drone) + (+! (-> arg0 msg-count) 1) + (set! (-> arg0 msg-map (-> arg0 msg-count)) 'weapon-trigger) + (+! (-> arg0 msg-count) 1) + 0 + (none) + ) + +;; definition for symbol *msg-map-vehicle*, type (array symbol) +(define *msg-map-vehicle* (new 'static 'boxed-array :type symbol :length 0 :allocated-length 64)) + +;; definition for symbol *net-process-class-info-vehicle*, type net-process-class-info +(define *net-process-class-info-vehicle* (new 'static 'net-process-class-info)) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-vehicle* msg-map) *msg-map-vehicle*) + +;; failed to figure out what this is: +(write-msg-map-rec vehicle *net-process-class-info-vehicle*) + +;; failed to figure out what this is: +(set! (-> *net-process-class-info-vehicle* owner-type) vehicle) + +;; failed to figure out what this is: +(net-process-class-register *net-process-class-info-vehicle*) + +;; definition for method 40 of type vehicle +(defmethod process-nettable-method-40 ((this vehicle)) + *net-process-class-info-vehicle* + ) + +;; definition for function vehicle-get-flag-attach-point +(defun vehicle-get-flag-attach-point ((arg0 vehicle)) + (-> arg0 info hardpoint flag-attach) + ) + +;; definition of type vehicle-draw-thruster-params +(deftype vehicle-draw-thruster-params (structure) + ((quat quaternion :inline) + (trans vector :inline) + (thrust-rgb rgbaf :inline) + (glow-rgb rgbaf :inline) + (tex-id uint32) + (thrust float) + (width float) + (length float) + (fog-fade float) + ) + ) + +;; definition for method 3 of type vehicle-draw-thruster-params +(defmethod inspect ((this vehicle-draw-thruster-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-draw-thruster-params) + (format #t "~1Tquat: #~%" (-> this quat)) + (format #t "~1Ttrans: #~%" (-> this trans)) + (format #t "~1Tthrust-rgb: #~%" (-> this thrust-rgb)) + (format #t "~1Tglow-rgb: #~%" (-> this glow-rgb)) + (format #t "~1Ttex-id: ~D~%" (-> this tex-id)) + (format #t "~1Tthrust: ~f~%" (-> this thrust)) + (format #t "~1Twidth: ~f~%" (-> this width)) + (format #t "~1Tlength: ~f~%" (-> this length)) + (format #t "~1Tfog-fade: ~f~%" (-> this fog-fade)) + (label cfg-4) + this + ) + +;; definition for function meters-per-sec->mph +(defun meters-per-sec->mph ((arg0 float)) + (* 0.00031568037 arg0) + ) + +;; definition of type debug-vehicle-work +(deftype debug-vehicle-work (basic) + ((impact-time time-frame) + (impact rigid-body-impact :inline) + (prim-sphere1 sphere :inline) + (prim-sphere2 sphere :inline) + ) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/vehicle-part_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/vehicle-part_REF.gc new file mode 100644 index 0000000000..50ad7a5400 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/vehicle-part_REF.gc @@ -0,0 +1,1159 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpart 243 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-laser-pointer) + (:num 1.0) + (:scale-x (meters 0.075) (meters 0.05)) + (:scale-y (meters 40)) + (:r 255.0) + (:g 0.0) + (:b :copy g) + (:a 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 right-multiply-quat)) + ) + ) + +;; failed to figure out what this is: +(defpart 244 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.2) (meters 0.15)) + (:rot-x (degrees 1.125)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0 128.0) + (:b :copy g) + (:a 128.0) + (:rotvel-z (degrees 0.3)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 245 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5) (meters 0.25)) + (:rot-x (degrees 1.125)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g 0.0) + (:b :copy g) + (:a 48.0 16.0) + (:rotvel-z (degrees 0.3)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 246 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.2) (meters 0.025)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g 32.0) + (:b :copy g) + (:a 128.0) + (:rotvel-z (degrees 0.3)) + (:fade-g -1.0666667) + (:fade-b -1.0666667) + (:fade-a -8.533334) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + ) + ) + +;; definition for function sparticle-vehicle-direction-light +(defun sparticle-vehicle-direction-light ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((a1-1 (new 'stack-no-clear 'quaternion)) + (s5-0 (new 'stack-no-clear 'matrix)) + ) + (let* ((v1-0 a1-1) + (a0-1 arg2) + (f0-0 (-> a0-1 conerot x)) + (f1-0 (-> a0-1 conerot y)) + (f2-0 (-> a0-1 conerot z)) + ) + (set! (-> v1-0 x) f0-0) + (set! (-> v1-0 y) f1-0) + (set! (-> v1-0 z) f2-0) + (set! (-> v1-0 w) (sqrtf (- (- (- 1.0 (square f2-0)) (square f1-0)) (square f0-0)))) + ) + (quaternion->matrix s5-0 a1-1) + (calc-particle-directional-color + (&-> arg2 rotate-x) + (-> *vehicle-particle-common-info* lights) + (-> s5-0 uvec) + ) + ) + (set! (-> arg2 rotate-x) (* 64.0 (-> arg2 rotate-x))) + (set! (-> arg2 rotate-y) (* 64.0 (-> arg2 rotate-y))) + (set! (-> arg2 rotate-z) (* 64.0 (-> arg2 rotate-z))) + (set! (-> arg2 coneradius) (* 128.0 (-> arg2 coneradius))) + #t + ) + +;; definition for function sparticle-sparks-birth +;; WARN: Return type mismatch int vs none. +(defun sparticle-sparks-birth ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (birth-func-texture-group (the-as int arg0) arg1 arg2) + (let ((v1-1 (-> *particle-birth-work* vel-range))) + (+! (-> arg1 vel-sxvel x) (-> v1-1 0 x)) + (+! (-> arg1 vel-sxvel y) (-> v1-1 0 y)) + (+! (-> arg1 vel-sxvel z) (-> v1-1 0 z)) + ) + (let* ((v1-4 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-5 (the-as number (logior #x3f800000 v1-4))) + (f1-4 (+ -1.0 (the-as float v1-5))) + (f0-8 (-> arg2 launchrot w)) + (f0-9 (if (< 0.99 f1-4) + (+ 2457.6 f0-8) + (+ f0-8 (* 204.8 f1-4)) + ) + ) + ) + (set! (-> arg2 launchrot w) f0-9) + (set! (-> arg2 conerot w) f0-9) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(defpart 247 + :init-specs ((:texture (gen-01 level-default-sprite)) + (:birth-func 'sparticle-sparks-birth) + (:num 0.5) + (:x (meters 0) (meters 1)) + (:scale-x (meters 0.3) (meters 0.6)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.3) (meters 0.6)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-x (degrees -2) (degrees 4)) + (:rotvel-y (degrees -1) (degrees 2)) + (:rotvel-z (degrees -2) (degrees 4)) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 + 20 + 1 + 0 + #x407d00 + #x407e00 + #x407f00 + #x40ac00 + #x407d00 + #x407e00 + #x407f00 + #x40ac00 + #x40ad00 + ) + ) + (:func 'sparticle-vehicle-direction-light) + (:conerot-x (degrees 0) (degrees 60)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 248 + :init-specs ((:texture (gen-01 level-default-sprite)) + (:birth-func 'sparticle-sparks-birth) + (:num 0.5) + (:x (meters 0) (meters 1)) + (:scale-x (meters 0.05) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.05) (meters 0.2)) + (:r 32.0 32.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -3.0000002) (degrees 6.0000005)) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 20 1 0 #x407d00 #x407e00 #x407f00 #x40ac00)) + (:conerot-x (degrees 0) (degrees 60)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 249 + :init-specs ((:texture (motion-blur-part level-default-sprite)) + (:num 5.0 2.0) + (:scale-x (meters 1.5)) + (:rot-x 4) + (:scale-y (meters 0.025) (meters 0.01)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 64.0 64.0) + (:omega (degrees 0.03375) (degrees 0.0225)) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-r -0.85 -0.85) + (:fade-g -1.7 -1.7) + (:fade-b -8.0) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.96) + (:timer (seconds 0.167) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-part-fire-trail-wheel + :id 42 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 250 :flags (sp6)) (sp-item 251 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 252 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 3)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0) + (:b 0.0) + (:a 10.0) + (:omega (degrees 9011.25)) + (:fade-a -0.4) + (:timer (seconds 0.25)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 250 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 2.0) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1) (meters 1)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters -0.0033333334) (meters -0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 253) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 253 + :init-specs ((:fade-a -2.55 -2.55)) + ) + +;; failed to figure out what this is: +(defpart 251 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.5) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-part-fire-trail-panels + :id 43 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 254 :flags (sp6)) (sp-item 255 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 254 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 2.0) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1) (meters 1)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters -0.0033333334) (meters -0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 253) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 255 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.5) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-part-fire-trail-bits + :id 44 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 256 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 256 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-part-fire-trail-chasis + :id 45 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 257 :flags (sp6)) (sp-item 258 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 259 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 6)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0) + (:b 0.0) + (:a 10.0) + (:omega (degrees 9011.25)) + (:fade-a -0.4) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 1.0) + ) + ) + +;; failed to figure out what this is: +(defpart 257 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 5.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 1)) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 2) (meters 2)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters -0.006666667) (meters -0.013333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.001)) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 260) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 260 + :init-specs ((:fade-a -2.55 -0.85)) + ) + +;; failed to figure out what this is: +(defpart 258 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:y (meters 0) (meters 1)) + (:scale-x (meters 2) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 2.56 2.56) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 0.085)) + (:next-launcher 261) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 261 + :init-specs ((:fade-a -0.128 -0.128)) + ) + +;; failed to figure out what this is: +(defpart 262 + :init-specs ((:texture (blue-thrust level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.4)) + (:scale-y (meters 3)) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 128.0 64.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 right-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 263 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-set-vel) + (:num 1.0) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 60.0) + (:g 60.0) + (:b 85.0) + (:a 16.0) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335) + (:accel-y (meters 0.00016666666) (meters 0.00006666667)) + (:friction 0.96 0.01) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:conerot-y (degrees 0) (degrees 10)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 264 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 50.0 50.0) + (:vel-y (meters 0)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.22222222) + (:accel-y (meters 0.00006666667) (meters 0.00006666667)) + (:friction 0.99) + (:timer (seconds 1.5)) + (:flags (sp-cpuinfo-flag-2)) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + (:conerot-radius (meters 0.1)) + ) + ) + +;; failed to figure out what this is: +(defpart 265 + :init-specs ((:texture (flame02 level-default-sprite)) + (:birth-func 'birth-func-add-vel) + (:num 3.0) + (:x (meters -0.2) (meters 0.4)) + (:y (meters 0) (meters 0.7)) + (:scale-x (meters 0.6) (meters 0.3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.6) (meters 0.3)) + (:r 200.0) + (:g 100.0) + (:b 64.0) + (:a 32.0) + (:vel-y (meters 0)) + (:scalevel-x (meters -0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y (meters -0.0033333334)) + (:fade-a -0.128 -0.128) + (:accel-y (meters 0.00033333333) (meters 0.00066666666)) + (:timer (seconds 0.835)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 266 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 50.0 50.0) + (:vel-y (meters 0.0033333334)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.53333336) + (:accel-y (meters 0.00016666666) (meters 0.0005)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2)) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + (:conerot-radius (meters 0.1)) + ) + ) + +;; failed to figure out what this is: +(defpart 267 + :init-specs ((:texture (flame02 level-default-sprite)) + (:birth-func 'birth-func-add-vel) + (:num 2.0) + (:x (meters -0.2) (meters 0.4)) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 0.5) (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.5) (meters 0.1)) + (:r 200.0) + (:g 100.0) + (:b 64.0) + (:a 32.0) + (:vel-y (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-x (meters -0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y (meters -0.0033333334)) + (:fade-a -0.128 -0.128) + (:accel-y (meters 0.00066666666)) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 268 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 50.0 50.0) + (:vel-y (meters 0.0033333334)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.53333336) + (:accel-y (meters 0.00016666666) (meters 0.0005)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2)) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-y (degrees 0) (degrees 360)) + (:conerot-radius (meters 0.1)) + ) + ) + +;; failed to figure out what this is: +(defpart 269 + :init-specs ((:texture (flame02 level-default-sprite)) + (:birth-func 'birth-func-add-vel) + (:num 1.0) + (:x (meters -0.1) (meters 0.2)) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 0.2) (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.2) (meters 0.1)) + (:r 200.0) + (:g 100.0) + (:b 64.0) + (:a 64.0 64.0) + (:vel-y (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-x (meters -0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y (meters -0.0033333334)) + (:fade-a -0.42666668) + (:accel-y (meters 0.00066666666)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-explosion + :id 46 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :parts ((sp-item 270 :flags (sp5) :period (seconds 3) :length (seconds 0.017)) + (sp-item 271 :flags (sp5) :period (seconds 3) :length (seconds 0.017)) + (sp-item 272 :period (seconds 3) :length (seconds 0.05)) + (sp-item 273 :fade-after (meters 60) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 274 :fade-after (meters 60) :falloff-to (meters 60) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 275 :fade-after (meters 200) :falloff-to (meters 200) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 276 :fade-after (meters 150) :falloff-to (meters 150) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +;; failed to figure out what this is: +(defpart 271 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 24.0) + (:scalevel-x (meters 0.10666667)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -4.266667) + (:fade-b -4.266667) + (:fade-a 0.0) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:next-time (seconds 0.25)) + (:next-launcher 277) + ) + ) + +;; failed to figure out what this is: +(defpart 277 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.85333335) + (:fade-g -1.7066667) + (:fade-b -1.7066667) + (:fade-a -0.64) + ) + ) + +;; failed to figure out what this is: +(defpart 276 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 2.0 0.2) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 3600) :store) + (:scale-y (meters 0.8) (meters 0.2)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.085)) + (:next-launcher 278) + (:conerot-x '*sp-temp*) + ) + ) + +;; failed to figure out what this is: +(defpart 275 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0 0.2) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:vel-y (meters 0.02) (meters 0.01)) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2)) + (:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #x400a00 #x401000)) + (:next-time (seconds 0.085)) + (:next-launcher 278) + (:conerot-x (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpart 278 + :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.017) (seconds 0.065)) (:next-launcher 279)) + ) + +;; failed to figure out what this is: +(defpart 279 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.44) + (:fade-g -2.36) + (:fade-b -2.64) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 280) + ) + ) + +;; failed to figure out what this is: +(defpart 280 + :init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -1.2944444) + (:fade-g -0.7111111) + (:fade-b -0.094444446) + (:fade-a -0.06545454 -0.06545454) + (:next-time (seconds 0.5) (seconds 0.097)) + (:next-launcher 281) + ) + ) + +;; failed to figure out what this is: +(defpart 281 + :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.1125)) + ) + +;; failed to figure out what this is: +(defpart 270 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 5)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 96.0) + (:scalevel-x (meters 0.5)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -1.28) + (:fade-b -5.1) + (:fade-a 0.0) + (:timer (seconds 0.217)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:next-time (seconds 0.1)) + (:next-launcher 282) + ) + ) + +;; failed to figure out what this is: +(defpart 282 + :init-specs ((:scalevel-x (meters -0.2857143)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -3.6571429) + (:fade-b 0.0) + (:fade-a -2.7428572) + ) + ) + +;; failed to figure out what this is: +(defpart 274 + :init-specs ((:texture (specs level-default-sprite)) + (:num 8.0 2.0) + (:x (meters 0.25)) + (:scale-x (meters 1) (meters 0.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 16.0 48.0) + (:vel-y (meters 0.083333336) (meters 0.083333336)) + (:scalevel-x (meters 0.006666667) (meters 0.0016666667)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.18) + (:fade-b -2.12) + (:accel-y (meters -0.00016666666) (meters -0.00033333333)) + (:friction 0.87) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 283) + (:conerot-x (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpart 283 + :init-specs ((:scalevel-x (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g 0.02) + (:fade-b 0.23555556) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 284) + ) + ) + +;; failed to figure out what this is: +(defpart 284 + :init-specs ((:fade-r -0.5543478) (:fade-g -0.5543478) (:fade-a -0.13913043)) + ) + +;; failed to figure out what this is: +(defpart 272 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:num 2.0 1.0) + (:x (meters 0) (meters 0.6)) + (:scale-x (meters 2.5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0 20.0) + (:g 70.0 20.0) + (:b 70.0 20.0) + (:a 0.0 40.0) + (:vel-y (meters 0) (meters 0.1)) + (:scalevel-x (meters 0.033333335) (meters 0.02)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 3.3) + (:fade-g 3.12) + (:fade-b 1.18) + (:fade-a 1.76) + (:friction 0.88) + (:timer (seconds 2.367)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 285) + (:conerot-x (degrees -1440) (degrees 2880)) + ) + ) + +;; failed to figure out what this is: +(defpart 285 + :init-specs ((:scalevel-x (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.53333336) + (:fade-g -1.9666667) + (:fade-b -2.2) + (:fade-a -0.41666666) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 286) + ) + ) + +;; failed to figure out what this is: +(defpart 286 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.38833332) + (:fade-g -0.21333334) + (:fade-b -0.028333334) + (:fade-a -0.38833332) + ) + ) + +;; failed to figure out what this is: +(defpart 273 + :init-specs ((:texture (motion-blur-part level-default-sprite)) + (:num 4.0 2.0) + (:scale-x (meters 0.2) (meters 0.5)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.2) (meters 0.1)) + (:r 128.0 128.0) + (:g 96.0) + (:b 64.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.13333334) (meters 0.02)) + (:fade-g 1.6) + (:fade-b 3.2) + (:fade-a -1.6) + (:timer (seconds 0.3)) + (:flags (sp-cpuinfo-flag-2)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-engine-start + :id 47 + :duration (seconds 0.535) + :linger-duration (seconds 1) + :flags (sp0 sp4 sp6) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :parts ((sp-item 287 :flags (sp6) :period (seconds 1) :length (seconds 0.017)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.535)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.335)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.235)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.135)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.067)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.05)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.035)) + (sp-item 288 :flags (sp6) :period (seconds 1) :length (seconds 0.017)) + (sp-item 289 :flags (sp6) :period (seconds 1) :length (seconds 0.035)) + (sp-item 290 :period (seconds 1) :length (seconds 0.017)) + ) + ) + +;; failed to figure out what this is: +(defpart 290 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0) + (:scalevel-x (meters 0.1)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -6.4) + (:fade-b -12.75) + (:fade-a -1.6) + (:timer (seconds 0.067)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpart 289 + :init-specs ((:texture (motion-blur-part level-default-sprite)) + (:num 3.0 3.0) + (:scale-x (meters 1.5)) + (:rot-x 4) + (:scale-y (meters 0.025) (meters 0.01)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 64.0 64.0) + (:omega (degrees 0.03375) (degrees 0.0225)) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-r -0.85 -0.85) + (:fade-g -1.7 -1.7) + (:fade-b -8.0) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.96) + (:timer (seconds 0.167) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees -20) (degrees 40)) + (:conerot-y (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpart 287 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:num 16.0) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 196.0) + (:g 160.0) + (:b 96.0) + (:a 64.0 64.0) + (:vel-y (meters 0.013333334) (meters 0.013333334)) + (:scalevel-x (meters 0.006666667)) + (:rotvel-z (degrees -0.6) (degrees 1.2)) + (:scalevel-y :copy scalevel-x) + (:fade-r -2.0) + (:fade-g -1.0) + (:fade-b 1.0) + (:fade-a -0.21333334 -0.85333335) + (:accel-y (meters 0.00033333333) (meters 0.0005)) + (:friction 0.92 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.085)) + (:next-launcher 291) + (:conerot-x (degrees -30) (degrees 30)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 291 + :init-specs ((:fade-r 0.0 -0.85333335) (:fade-g :copy fade-r) (:fade-b :copy fade-g)) + ) + +;; failed to figure out what this is: +(defpart 288 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 196.0) + (:g 160.0) + (:b 96.0) + (:a 32.0 32.0) + (:vel-y (meters 0.006666667) (meters 0.013333334)) + (:scalevel-x (meters 0.0016666667)) + (:rotvel-z (degrees -0.6) (degrees 1.2)) + (:scalevel-y :copy scalevel-x) + (:fade-r -2.0) + (:fade-g -1.0) + (:fade-b 1.0) + (:fade-a -0.21333334 -0.85333335) + (:accel-y (meters 0.00033333333) (meters 0.0005)) + (:friction 0.92 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:next-time (seconds 0.085)) + (:next-launcher 291) + (:conerot-x (degrees -10) (degrees 20)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-forcefield-burst + :id 48 + :duration (seconds 0.135) + :linger-duration (seconds 0.135) + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 292 :flags (is-3d sp6) :period (seconds 0.135) :length (seconds 0.135))) + ) + +;; failed to figure out what this is: +(defpart 292 + :init-specs ((:texture (laser-hit2-add level-default-sprite)) + (:num 2.0) + (:scale-x (meters 1) (meters 2)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 90)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 64.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.16666667) (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.28) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + ) + ) diff --git a/test/decompiler/reference/jakx/engine/vehicle/wcar-skel-template_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/wcar-skel-template_REF.gc new file mode 100644 index 0000000000..8882c29573 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/wcar-skel-template_REF.gc @@ -0,0 +1,54 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defskelgroup skel-car-part-temp falcon-hood-a 1 5 + ((2 (meters 20)) (3 (meters 40)) (4 (meters 999999))) + :bounds (static-spherem 0 0 0 2.8) + ) + +;; failed to figure out what this is: +(defskelgroup skel-car-part2-temp-l falcon-door-a 1 5 + ((2 (meters 20)) (3 (meters 40)) (4 (meters 999999))) + :bounds (static-spherem 0 0 0 3.2) + ) + +;; failed to figure out what this is: +(defskelgroup skel-car-part2-temp-r falcon-door-a 6 10 + ((7 (meters 20)) (8 (meters 40)) (9 (meters 999999))) + :bounds (static-spherem 0 0 0 3.2) + ) + +;; definition for symbol *car-part-temp-string*, type string +(define *car-part-temp-string* "123456789012345678901234567890") + +;; definition for function get-car-skel-part +(defun get-car-skel-part ((arg0 level) (arg1 string) (arg2 art-group)) + (let ((gp-0 (the-as art-group #f))) + (let ((s2-0 *car-part-temp-string*) + (s1-0 0) + ) + (b! #t cfg-4 :delay (nop!)) + (label cfg-1) + (format (clear s2-0) "~S-~C" arg1 (+ s1-0 97)) + (b! (not ((method-of-object arg0 level-method-21))) cfg-3 :delay (empty-form)) + (format 0 "~S~%" s2-0) + (set! (-> arg2 data 0) (the-as art-element s2-0)) + (set! gp-0 arg2) + (b! #t cfg-6 :delay (nop!)) + (label cfg-3) + (+! s1-0 1) + (label cfg-4) + (b! (< s1-0 5) cfg-1) + ) + (label cfg-6) + gp-0 + ) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/engine/vehicle/wvehicle-h_REF.gc b/test/decompiler/reference/jakx/engine/vehicle/wvehicle-h_REF.gc new file mode 100644 index 0000000000..ab13279da7 --- /dev/null +++ b/test/decompiler/reference/jakx/engine/vehicle/wvehicle-h_REF.gc @@ -0,0 +1,674 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type wvehicle-sound-loop-state +(deftype wvehicle-sound-loop-state (structure) + ((id sound-id) + (vol float) + (pitch float) + ) + ) + +;; definition for method 3 of type wvehicle-sound-loop-state +(defmethod inspect ((this wvehicle-sound-loop-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'wvehicle-sound-loop-state) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tvol: ~f~%" (-> this vol)) + (format #t "~1Tpitch: ~f~%" (-> this pitch)) + (label cfg-4) + this + ) + +;; definition of type vehicle-wheel-state +(deftype vehicle-wheel-state (structure) + ((info vehicle-wheel-info) + (flags uint8) + (prev-flags uint8) + (handle uint64) + (probe-local-pos vector :inline) + (probe-local-dir vector :inline) + (local-axis vector :inline) + (surface-pos vector :inline) + (ground-pos vector :inline) + (ground-normal vector :inline) + (trans vector :inline) + (quat quaternion :inline) + (trail-pos vector 2 :inline) + (surface rigid-body-surface) + (pos float) + (pos2 float) + (inertia float) + (steer-angle float) + (angle float) + (rev float) + (x-scale float) + (torque float) + (braking-torque float) + (up-force float) + (drive-diff float) + (side-vel float) + (up-vel float) + (forward-vel float) + (forward-slip-vel float) + (friction-coef float) + (sink-depth float) + (sin-susp-ang float) + (cos-susp-ang float) + (part-birth-accum sparticle-launch-control 4) + (tread-time uint32) + (tread-tracker uint64) + ) + :pack-me + ) + +;; definition for method 3 of type vehicle-wheel-state +(defmethod inspect ((this vehicle-wheel-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-wheel-state) + (format #t "~1Tinfo: #~%" (-> this info)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tprev-flags: ~D~%" (-> this prev-flags)) + (format #t "~1Thandle: ~D~%" (-> this handle)) + (format #t "~1Tprobe-local-pos: #~%" (-> this probe-local-pos)) + (format #t "~1Tprobe-local-dir: #~%" (-> this probe-local-dir)) + (format #t "~1Tlocal-axis: #~%" (-> this local-axis)) + (format #t "~1Tsurface-pos: #~%" (-> this surface-pos)) + (format #t "~1Tground-pos: #~%" (-> this ground-pos)) + (format #t "~1Tground-normal: #~%" (-> this ground-normal)) + (format #t "~1Ttrans: #~%" (-> this trans)) + (format #t "~1Tquat: #~%" (-> this quat)) + (format #t "~1Ttrail-pos[2] @ #x~X~%" (-> this trail-pos)) + (format #t "~1Tsurface: #~%" (-> this surface)) + (format #t "~1Tpos: ~f~%" (-> this pos)) + (format #t "~1Tpos2: ~f~%" (-> this pos2)) + (format #t "~1Tinertia: ~f~%" (-> this inertia)) + (format #t "~1Tsteer-angle: ~f~%" (-> this steer-angle)) + (format #t "~1Tangle: ~f~%" (-> this angle)) + (format #t "~1Trev: ~f~%" (-> this rev)) + (format #t "~1Tx-scale: ~f~%" (-> this x-scale)) + (format #t "~1Ttorque: ~f~%" (-> this torque)) + (format #t "~1Tbraking-torque: ~f~%" (-> this braking-torque)) + (format #t "~1Tup-force: ~f~%" (-> this up-force)) + (format #t "~1Tdrive-diff: ~f~%" (-> this drive-diff)) + (format #t "~1Tside-vel: ~f~%" (-> this side-vel)) + (format #t "~1Tup-vel: ~f~%" (-> this up-vel)) + (format #t "~1Tforward-vel: ~f~%" (-> this forward-vel)) + (format #t "~1Tforward-slip-vel: ~f~%" (-> this forward-slip-vel)) + (format #t "~1Tfriction-coef: ~f~%" (-> this friction-coef)) + (format #t "~1Tsink-depth: ~f~%" (-> this sink-depth)) + (format #t "~1Tsin-susp-ang: ~f~%" (-> this sin-susp-ang)) + (format #t "~1Tcos-susp-ang: ~f~%" (-> this cos-susp-ang)) + (format #t "~1Tpart-birth-accum[4] @ #x~X~%" (-> this part-birth-accum)) + (format #t "~1Ttread-time: ~D~%" (-> this tread-time)) + (format #t "~1Ttread-tracker: ~D~%" (-> this tread-tracker)) + (label cfg-4) + this + ) + +;; definition of type wvehicle-net-extra +(deftype wvehicle-net-extra (structure) + ((desired-steering float) + (desired-throttle float) + (desired-wheel-rev float) + ) + :pack-me + ) + +;; definition for method 3 of type wvehicle-net-extra +(defmethod inspect ((this wvehicle-net-extra)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'wvehicle-net-extra) + (format #t "~1Tdesired-steering: ~f~%" (-> this desired-steering)) + (format #t "~1Tdesired-throttle: ~f~%" (-> this desired-throttle)) + (format #t "~1Tdesired-wheel-rev: ~f~%" (-> this desired-wheel-rev)) + (label cfg-4) + this + ) + +;; definition of type wvehicle-ai-destination +(deftype wvehicle-ai-destination (structure) + ((final-position vector :inline) + (position vector :inline) + (velocity vector :inline) + (nav-location nav-location :inline) + (handle uint64) + ) + ) + +;; definition for method 3 of type wvehicle-ai-destination +(defmethod inspect ((this wvehicle-ai-destination)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'wvehicle-ai-destination) + (format #t "~1Tfinal-position: #~%" (-> this final-position)) + (format #t "~1Tposition: #~%" (-> this position)) + (format #t "~1Tvelocity: #~%" (-> this velocity)) + (format #t "~1Tnav-location: #~%" (-> this nav-location)) + (format #t "~1Thandle: ~D~%" (-> this handle)) + (label cfg-4) + this + ) + +;; definition of type wvehicle-ai-state +(deftype wvehicle-ai-state (structure) + ((destination wvehicle-ai-destination :inline) + (nav-location nav-location :inline) + (current-travel vector :inline) + (previous-steering-error float) + (no-physics-speed float) + (blocked-timer float) + (reverse-timer float) + (flags uint32) + (desired-speed float) + (weapon-timer uint64) + (weapon-aggression float) + (mode uint8) + ) + ) + +;; definition for method 3 of type wvehicle-ai-state +(defmethod inspect ((this wvehicle-ai-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'wvehicle-ai-state) + (format #t "~1Tdestination: #~%" (-> this destination)) + (format #t "~1Tnav-location: #~%" (-> this nav-location)) + (format #t "~1Tcurrent-travel: #~%" (-> this current-travel)) + (format #t "~1Tprevious-steering-error: ~f~%" (-> this previous-steering-error)) + (format #t "~1Tno-physics-speed: ~f~%" (-> this no-physics-speed)) + (format #t "~1Tblocked-timer: ~f~%" (-> this blocked-timer)) + (format #t "~1Treverse-timer: ~f~%" (-> this reverse-timer)) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Tdesired-speed: ~f~%" (-> this desired-speed)) + (format #t "~1Tweapon-timer: ~D~%" (-> this weapon-timer)) + (format #t "~1Tweapon-aggression: ~f~%" (-> this weapon-aggression)) + (format #t "~1Tmode: ~D~%" (-> this mode)) + (label cfg-4) + this + ) + +;; definition of type wvehicle-engine-loop-state +(deftype wvehicle-engine-loop-state (structure) + ((id uint32) + (index int8) + ) + ) + +;; definition for method 3 of type wvehicle-engine-loop-state +(defmethod inspect ((this wvehicle-engine-loop-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'wvehicle-engine-loop-state) + (format #t "~1Tid: ~D~%" (-> this id)) + (format #t "~1Tindex: ~D~%" (-> this index)) + (label cfg-4) + this + ) + +;; definition of type wvehicle-engine-mix-state +(deftype wvehicle-engine-mix-state (structure) + ((loops wvehicle-engine-loop-state 2 :inline) + ) + ) + +;; definition for method 3 of type wvehicle-engine-mix-state +(defmethod inspect ((this wvehicle-engine-mix-state)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'wvehicle-engine-mix-state) + (format #t "~1Tloops[2] @ #x~X~%" (-> this loops)) + (label cfg-4) + this + ) + +;; definition of type v-wpn-turbo-lightning-info +(deftype v-wpn-turbo-lightning-info (structure) + ((pt-start vector :inline) + (pt-end vector :inline) + (next-start vector :inline) + (next-end vector :inline) + (next-recomp-time uint64) + ) + ) + +;; definition for method 3 of type v-wpn-turbo-lightning-info +(defmethod inspect ((this v-wpn-turbo-lightning-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'v-wpn-turbo-lightning-info) + (format #t "~1Tpt-start: #~%" (-> this pt-start)) + (format #t "~1Tpt-end: #~%" (-> this pt-end)) + (format #t "~1Tnext-start: #~%" (-> this next-start)) + (format #t "~1Tnext-end: #~%" (-> this next-end)) + (format #t "~1Tnext-recomp-time: ~D~%" (-> this next-recomp-time)) + (label cfg-4) + this + ) + +;; definition of type wvehicle-weapon-sync-blob +(deftype wvehicle-weapon-sync-blob (structure) + ((data int8 4) + (wpn-left-type int8 :overlay-at (-> data 0)) + (wpn-right-type int8 :overlay-at (-> data 1)) + (wpn-left-powerup int8 :overlay-at (-> data 2)) + (wpn-right-powerup int8 :overlay-at (-> data 3)) + (blob int32 :overlay-at (-> data 0)) + ) + :pack-me + ) + +;; definition for method 3 of type wvehicle-weapon-sync-blob +(defmethod inspect ((this wvehicle-weapon-sync-blob)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'wvehicle-weapon-sync-blob) + (format #t "~1Tdata[4] @ #x~X~%" (-> this data)) + (format #t "~1Twpn-left-type: ~D~%" (-> this wpn-left-type)) + (format #t "~1Twpn-right-type: ~D~%" (-> this wpn-right-type)) + (format #t "~1Twpn-left-powerup: ~D~%" (-> this wpn-left-powerup)) + (format #t "~1Twpn-right-powerup: ~D~%" (-> this wpn-right-powerup)) + (format #t "~1Tblob: ~D~%" (-> this blob)) + (label cfg-4) + this + ) + +;; definition of type wvehicle +(deftype wvehicle (vehicle) + ((net-extra wvehicle-net-extra :inline) + (antenna uint64) + (fire-tracker uint64) + (race race-control :inline) + (ai wvehicle-ai-state :inline) + (engine-rev float) + (engine-inertia float) + (engine-torque float) + (engine-max-torque float) + (engine-rpm float) + (engine-load float) + (sound-engine-rpm float) + (sound-engine-load float) + (sound-engine-envelope float) + (wheel-rev float) + (wheel-inertia float) + (wheel-torque float) + (wheel-braking-torque float) + (wheel-ground-torque float) + (clutch-grab float) + (gear-ratio float) + (final-drive-ratio float) + (total-gear-ratio float) + (inv-total-gear-ratio float) + (avg-drive-wheel-radius float) + (drive-wheel-inertia float) + (clutch-inertia float) + (idle-throttle float) + (wheelbase float) + (f-track-width float) + (r-track-width float) + (susp-spring-control float) + (jump-control float) + (shortcut-speed-factor float) + (path-deviation float) + (turbo-supply float :overlay-at (-> pad4 0)) + (turbo-ready float) + (slide-factor float) + (slide-time uint32) + (max-speed float) + (shift-state uint8) + (gear-select int8) + (next-gear-select int8) + (shift-time uint32) + (wheel vehicle-wheel-state 4 :inline) + (gravity-dir vector :inline) + (surface-velocity vector :inline) + (tire-roll-loop-state wvehicle-sound-loop-state 6 :inline) + (tire-slide-loop-state wvehicle-sound-loop-state 2 :inline) + (engine-mix-state-array wvehicle-engine-mix-state 2 :inline) + (min-load-engine-mix-state wvehicle-engine-mix-state :inline :overlay-at (-> engine-mix-state-array 0)) + (max-load-engine-mix-state wvehicle-engine-mix-state :inline :overlay-at (-> engine-mix-state-array 1)) + (damage-sound-id sound-id) + (water-sound-id sound-id) + (wheel-fire-sound-id uint32) + (oil-sound-id uint32) + (turbo-sound-id sound-id) + (turbo-sound2-id uint32) + (car-fire-loop uint32) + (hang-time-sound-id uint32) + (overturned-time uint32) + (engine-steady-time uint32) + (splash-time uint32) + (knobby-time uint32) + (susp-creak-time uint32) + (ground-time uint32) + (jump-time uint32) + (no-slide-time uint32) + (slide-distance float) + (power-slide-hud uint64) + (hang-time-hud uint64) + (hang-time float) + (next-slide-sound-play-distance float) + (attached-array handle 16) + (eng-pitch-offset float) + (eng-pitch-variance float) + (eng-pitch-variance-seek float) + (eng-vol-variance float) + (eng-vol-variance-seek float) + (turbo-pitch float) + (health-pickup-multiplier float) + (jmod-steering-wheel joint-mod-rotate-local :inline) + (jmod-frame joint-mod-set-local 2 :inline) + (jmod-axles joint-mod-trans-rot-local 4 :inline) + (water-sound-envelope float) + (pad13 uint32 5) + (wpn-current-target handle) + (wpn-current-target-acquired handle) + (wpn-left handle) + (wpn-right handle) + (wpn-shield handle) + (wpn-drone handle) + (wpn-oil handle) + (wpn-turbo handle) + (wpn-bulldog-gun handle) + (wpn-drawables handle 2) + (wpn-drawable-left handle :overlay-at (-> wpn-drawables 0)) + (wpn-drawable-right handle :overlay-at (-> wpn-drawables 1)) + (wpn-spin-done-left int32) + (wpn-spin-done-right int32) + (prev-wpn-sync wvehicle-weapon-sync-blob :inline) + (turbo-suppressor-particle basic) + (dark-seeking-me basic) + (dark-suck-sound-pending int8) + (vehicle-exhaust-subsampler uint32 2) + (wheel-launcher uint32 4) + (wheel-fire-launcher uint32 4) + (hack-armed-right basic) + (hack-armed-left basic) + (shake-amount float) + (whoosh-sound-id uint32) + (sink-sound-id uint32) + ) + (:methods + (wvehicle-method-204 () none) + (wvehicle-method-205 () none) + (wvehicle-method-206 () none) + (wvehicle-method-207 () none) + (wvehicle-method-208 () none) + (wvehicle-method-209 () none) + (wvehicle-method-210 () none) + (wvehicle-method-211 () none) + (wvehicle-method-212 () none) + (wvehicle-method-213 () none) + (wvehicle-method-214 () none) + (wvehicle-method-215 () none) + (wvehicle-method-216 () none) + (wvehicle-method-217 () none) + (wvehicle-method-218 () none) + (wvehicle-method-219 () none) + (wvehicle-method-220 () none) + (wvehicle-method-221 () none) + (wvehicle-method-222 () none) + (wvehicle-method-223 () none) + (wvehicle-method-224 () none) + (wvehicle-method-225 () none) + (wvehicle-method-226 () none) + (wvehicle-method-227 () none) + (wvehicle-method-228 () none) + (wvehicle-method-229 () none) + (wvehicle-method-230 () none) + (wvehicle-method-231 () none) + (wvehicle-method-232 () none) + (wvehicle-method-233 () none) + (wvehicle-method-234 () none) + (wvehicle-method-235 () none) + (wvehicle-method-236 () none) + (wvehicle-method-237 () none) + (wvehicle-method-238 () none) + (wvehicle-method-239 () none) + (wvehicle-method-240 () none) + (wvehicle-method-241 () none) + (wvehicle-method-242 () none) + (wvehicle-method-243 () none) + (wvehicle-method-244 () none) + (wvehicle-method-245 () none) + (wvehicle-method-246 () none) + (wvehicle-method-247 () none) + (wvehicle-method-248 () none) + (wvehicle-method-249 () none) + (wvehicle-method-250 () none) + (wvehicle-method-251 () none) + (wvehicle-method-252 () none) + (wvehicle-method-253 () none) + (wvehicle-method-254 () none) + (wvehicle-method-255 () none) + (wvehicle-method-256 () none) + (wvehicle-method-257 () none) + (wvehicle-method-258 () none) + (wvehicle-method-259 () none) + (wvehicle-method-260 () none) + (wvehicle-method-261 () none) + (wvehicle-method-262 () none) + (wvehicle-method-263 () none) + (wvehicle-method-264 () none) + (wvehicle-method-265 () none) + (wvehicle-method-266 () none) + (wvehicle-method-267 () none) + (wvehicle-method-268 () none) + (wvehicle-method-269 () none) + (wvehicle-method-270 () none) + (wvehicle-method-271 () none) + ) + ) + +;; definition for method 3 of type wvehicle +(defmethod inspect ((this wvehicle)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type vehicle inspect))) + (t9-0 this) + ) + (format #t "~2Tnet-extra: #~%" (-> this net-extra)) + (format #t "~2Tantenna: ~D~%" (-> this antenna)) + (format #t "~2Tfire-tracker: ~D~%" (-> this fire-tracker)) + (format #t "~2Trace: #~%" (-> this race)) + (format #t "~2Tai: #~%" (-> this ai)) + (format #t "~2Tengine-rev: ~f~%" (-> this engine-rev)) + (format #t "~2Tengine-inertia: ~f~%" (-> this engine-inertia)) + (format #t "~2Tengine-torque: ~f~%" (-> this engine-torque)) + (format #t "~2Tengine-max-torque: ~f~%" (-> this engine-max-torque)) + (format #t "~2Tengine-rpm: ~f~%" (-> this engine-rpm)) + (format #t "~2Tengine-load: ~f~%" (-> this engine-load)) + (format #t "~2Tsound-engine-rpm: ~f~%" (-> this sound-engine-rpm)) + (format #t "~2Tsound-engine-load: ~f~%" (-> this sound-engine-load)) + (format #t "~2Tsound-engine-envelope: ~f~%" (-> this sound-engine-envelope)) + (format #t "~2Twheel-rev: ~f~%" (-> this wheel-rev)) + (format #t "~2Twheel-inertia: ~f~%" (-> this wheel-inertia)) + (format #t "~2Twheel-torque: ~f~%" (-> this wheel-torque)) + (format #t "~2Twheel-braking-torque: ~f~%" (-> this wheel-braking-torque)) + (format #t "~2Twheel-ground-torque: ~f~%" (-> this wheel-ground-torque)) + (format #t "~2Tclutch-grab: ~f~%" (-> this clutch-grab)) + (format #t "~2Tgear-ratio: ~f~%" (-> this gear-ratio)) + (format #t "~2Tfinal-drive-ratio: ~f~%" (-> this final-drive-ratio)) + (format #t "~2Ttotal-gear-ratio: ~f~%" (-> this total-gear-ratio)) + (format #t "~2Tinv-total-gear-ratio: ~f~%" (-> this inv-total-gear-ratio)) + (format #t "~2Tavg-drive-wheel-radius: ~f~%" (-> this avg-drive-wheel-radius)) + (format #t "~2Tdrive-wheel-inertia: ~f~%" (-> this drive-wheel-inertia)) + (format #t "~2Tclutch-inertia: ~f~%" (-> this clutch-inertia)) + (format #t "~2Tidle-throttle: ~f~%" (-> this idle-throttle)) + (format #t "~2Twheelbase: ~f~%" (-> this wheelbase)) + (format #t "~2Tf-track-width: ~f~%" (-> this f-track-width)) + (format #t "~2Tr-track-width: ~f~%" (-> this r-track-width)) + (format #t "~2Tsusp-spring-control: ~f~%" (-> this susp-spring-control)) + (format #t "~2Tjump-control: ~f~%" (-> this jump-control)) + (format #t "~2Tshortcut-speed-factor: ~f~%" (-> this shortcut-speed-factor)) + (format #t "~2Tpath-deviation: ~f~%" (-> this path-deviation)) + (format #t "~2Tturbo-supply: ~f~%" (-> this turbo-supply)) + (format #t "~2Tturbo-ready: ~f~%" (-> this turbo-ready)) + (format #t "~2Tslide-factor: ~f~%" (-> this slide-factor)) + (format #t "~2Tslide-time: ~D~%" (-> this slide-time)) + (format #t "~2Tmax-speed: ~f~%" (-> this max-speed)) + (format #t "~2Tshift-state: ~D~%" (-> this shift-state)) + (format #t "~2Tgear-select: ~D~%" (-> this gear-select)) + (format #t "~2Tnext-gear-select: ~D~%" (-> this next-gear-select)) + (format #t "~2Tshift-time: ~D~%" (-> this shift-time)) + (format #t "~2Twheel[4] @ #x~X~%" (-> this wheel)) + (format #t "~2Tgravity-dir: #~%" (-> this gravity-dir)) + (format #t "~2Tsurface-velocity: #~%" (-> this surface-velocity)) + (format #t "~2Ttire-roll-loop-state[6] @ #x~X~%" (-> this tire-roll-loop-state)) + (format #t "~2Ttire-slide-loop-state[2] @ #x~X~%" (-> this tire-slide-loop-state)) + (format #t "~2Tengine-mix-state-array[2] @ #x~X~%" (-> this engine-mix-state-array)) + (format + #t + "~2Tmin-load-engine-mix-state: #~%" + (-> this engine-mix-state-array) + ) + (format + #t + "~2Tmax-load-engine-mix-state: #~%" + (-> this max-load-engine-mix-state) + ) + (format #t "~2Tdamage-sound-id: ~D~%" (-> this damage-sound-id)) + (format #t "~2Twater-sound-id: ~D~%" (-> this water-sound-id)) + (format #t "~2Twheel-fire-sound-id: ~D~%" (-> this wheel-fire-sound-id)) + (format #t "~2Toil-sound-id: ~D~%" (-> this oil-sound-id)) + (format #t "~2Tturbo-sound-id: ~D~%" (-> this turbo-sound-id)) + (format #t "~2Tturbo-sound2-id: ~D~%" (-> this turbo-sound2-id)) + (format #t "~2Tcar-fire-loop: ~D~%" (-> this car-fire-loop)) + (format #t "~2Thang-time-sound-id: ~D~%" (-> this hang-time-sound-id)) + (format #t "~2Toverturned-time: ~D~%" (-> this overturned-time)) + (format #t "~2Tengine-steady-time: ~D~%" (-> this engine-steady-time)) + (format #t "~2Tsplash-time: ~D~%" (-> this splash-time)) + (format #t "~2Tknobby-time: ~D~%" (-> this knobby-time)) + (format #t "~2Tsusp-creak-time: ~D~%" (-> this susp-creak-time)) + (format #t "~2Tground-time: ~D~%" (-> this ground-time)) + (format #t "~2Tjump-time: ~D~%" (-> this jump-time)) + (format #t "~2Tno-slide-time: ~D~%" (-> this no-slide-time)) + (format #t "~2Tslide-distance: ~f~%" (-> this slide-distance)) + (format #t "~2Tpower-slide-hud: ~D~%" (-> this power-slide-hud)) + (format #t "~2Thang-time-hud: ~D~%" (-> this hang-time-hud)) + (format #t "~2Thang-time: ~f~%" (-> this hang-time)) + (format #t "~2Tnext-slide-sound-play-distance: ~f~%" (-> this next-slide-sound-play-distance)) + (format #t "~2Tattached-array[16] @ #x~X~%" (-> this attached-array)) + (format #t "~2Teng-pitch-offset: ~f~%" (-> this eng-pitch-offset)) + (format #t "~2Teng-pitch-variance: ~f~%" (-> this eng-pitch-variance)) + (format #t "~2Teng-pitch-variance-seek: ~f~%" (-> this eng-pitch-variance-seek)) + (format #t "~2Teng-vol-variance: ~f~%" (-> this eng-vol-variance)) + (format #t "~2Teng-vol-variance-seek: ~f~%" (-> this eng-vol-variance-seek)) + (format #t "~2Tturbo-pitch: ~f~%" (-> this turbo-pitch)) + (format #t "~2Thealth-pickup-multiplier: ~f~%" (-> this health-pickup-multiplier)) + (format #t "~2Tjmod-steering-wheel: #~%" (-> this jmod-steering-wheel)) + (format #t "~2Tjmod-frame[2] @ #x~X~%" (-> this jmod-frame)) + (format #t "~2Tjmod-axles[4] @ #x~X~%" (-> this jmod-axles)) + (format #t "~2Twater-sound-envelope: ~f~%" (-> this water-sound-envelope)) + (format #t "~2Twpn-current-target: ~D~%" (-> this wpn-current-target)) + (format #t "~2Twpn-current-target-acquired: ~D~%" (-> this wpn-current-target-acquired)) + (format #t "~2Twpn-left: ~D~%" (-> this wpn-left)) + (format #t "~2Twpn-right: ~D~%" (-> this wpn-right)) + (format #t "~2Twpn-shield: ~D~%" (-> this wpn-shield)) + (format #t "~2Twpn-drone: ~D~%" (-> this wpn-drone)) + (format #t "~2Twpn-oil: ~D~%" (-> this wpn-oil)) + (format #t "~2Twpn-turbo: ~D~%" (-> this wpn-turbo)) + (format #t "~2Twpn-bulldog-gun: ~D~%" (-> this wpn-bulldog-gun)) + (format #t "~2Twpn-drawables[2] @ #x~X~%" (-> this wpn-drawables)) + (format #t "~2Twpn-drawable-left: ~D~%" (-> this wpn-drawable-left)) + (format #t "~2Twpn-drawable-right: ~D~%" (-> this wpn-drawable-right)) + (format #t "~2Twpn-spin-done-left: ~D~%" (-> this wpn-spin-done-left)) + (format #t "~2Twpn-spin-done-right: ~D~%" (-> this wpn-spin-done-right)) + (format #t "~2Tprev-wpn-sync: #~%" (-> this prev-wpn-sync)) + (format #t "~2Tturbo-suppressor-particle: ~A~%" (-> this turbo-suppressor-particle)) + (format #t "~2Tdark-seeking-me: ~A~%" (-> this dark-seeking-me)) + (format #t "~2Tdark-suck-sound-pending: ~D~%" (-> this dark-suck-sound-pending)) + (format #t "~2Tvehicle-exhaust-subsampler[2] @ #x~X~%" (-> this vehicle-exhaust-subsampler)) + (format #t "~2Twheel-launcher[4] @ #x~X~%" (-> this wheel-launcher)) + (format #t "~2Twheel-fire-launcher[4] @ #x~X~%" (-> this wheel-fire-launcher)) + (format #t "~2Thack-armed-right: ~A~%" (-> this hack-armed-right)) + (format #t "~2Thack-armed-left: ~A~%" (-> this hack-armed-left)) + (format #t "~2Tshake-amount: ~f~%" (-> this shake-amount)) + (format #t "~2Twhoosh-sound-id: ~D~%" (-> this whoosh-sound-id)) + (format #t "~2Tsink-sound-id: ~D~%" (-> this sink-sound-id)) + (label cfg-4) + this + ) + +;; definition for function rpm->radians-per-sec +;; WARN: Return type mismatch float vs degrees. +(defun rpm->radians-per-sec ((arg0 float)) + (the-as degrees (* 0.10471976 arg0)) + ) + +;; definition for function radians-per-sec->rpm +(defun radians-per-sec->rpm ((arg0 degrees)) + (* 9.549297 arg0) + ) + +;; definition of type vehicle-antenna-init-params +(deftype vehicle-antenna-init-params (structure) + ((pos vector :inline) + (tilt float) + (vehicle basic) + (skel basic) + (level basic) + ) + ) + +;; definition for method 3 of type vehicle-antenna-init-params +(defmethod inspect ((this vehicle-antenna-init-params)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vehicle-antenna-init-params) + (format #t "~1Tpos: #~%" (-> this pos)) + (format #t "~1Ttilt: ~f~%" (-> this tilt)) + (format #t "~1Tvehicle: ~A~%" (-> this vehicle)) + (format #t "~1Tskel: ~A~%" (-> this skel)) + (format #t "~1Tlevel: ~A~%" (-> this level)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(defskelgroup skel-vehicle-explosion vehicle-explosion vehicle-explosion-lod0-jg vehicle-explosion-idle-ja + ((vehicle-explosion-lod0-mg (meters 999999))) + :bounds (static-spherem 0 0 0 50) + :texture-level 18 + ) + +;; definition for function vehicle-shielded? +;; WARN: Return type mismatch object vs symbol. +(defun vehicle-shielded? ((arg0 wvehicle)) + (the-as + symbol + (or (logtest? (vehicle-flag ignore-damage) (-> arg0 v-flags)) (handle->process (-> arg0 wpn-shield))) + ) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/levels/common/common-part_REF.gc b/test/decompiler/reference/jakx/levels/common/common-part_REF.gc new file mode 100644 index 0000000000..c7c7fd3d1a --- /dev/null +++ b/test/decompiler/reference/jakx/levels/common/common-part_REF.gc @@ -0,0 +1,324 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function spt-birth-func-brightness-cliffs-fence-dust +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-cliffs-fence-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 51) 90)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; definition for function spt-birth-func-brightness-cliffs-fence-splinters +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-cliffs-fence-splinters ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 101) 70)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-snow-icebreak-a + :id 423 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1682 :flags (sp3 sp6)) (sp-item 1683 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1682 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 30.0) + (:x (meters 0) (meters 3)) + (:y (meters 0) (meters 20)) + (:scale-x (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1683 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 30.0) + (:x (meters 0) (meters 3)) + (:y (meters 0) (meters 20)) + (:scale-x (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.016666668) (meters 0.016666668)) + (:scalevel-x (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 2)) + (:flags (glow left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-snow-icebreak-b + :id 424 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1684 :flags (sp3 sp6)) (sp-item 1685 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1684 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 30.0) + (:x (meters 0) (meters 3)) + (:y (meters 0) (meters 10)) + (:scale-x (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1685 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 15.0) + (:x (meters 0) (meters 3)) + (:y (meters 0) (meters 10)) + (:scale-x (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.016666668) (meters 0.016666668)) + (:scalevel-x (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 2)) + (:flags (glow left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-snow-icebreak-c + :id 425 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1686 :flags (sp3 sp6)) (sp-item 1687 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1686 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 30.0) + (:x (meters 0) (meters 3)) + (:y (meters 0) (meters 5)) + (:scale-x (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1687 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 10.0) + (:x (meters 0) (meters 3)) + (:y (meters 0) (meters 5)) + (:scale-x (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.016666668) (meters 0.016666668)) + (:scalevel-x (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 2)) + (:flags (glow left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-cliffs-fence-dust + :id 426 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1688 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + (sp-item 1689 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + ) + ) + +;; failed to figure out what this is: +(defpart 1688 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-cliffs-fence-dust) + (:num 10.0) + (:x (meters -20) (meters 40)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-z (meters -0.05) (meters 0.1)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters -0.00066666666)) + (:friction 0.9) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1689 + :init-specs ((:texture (woodchip level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-cliffs-fence-splinters) + (:num 70.0) + (:x (meters -20) (meters 40)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 0.3) (meters 1.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:timer (seconds 2)) + (:flags (glow)) + (:conerot-x (degrees -45) (degrees 90)) + (:conerot-z (degrees -45) (degrees 90)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-cliffs-fence-dust-small + :id 427 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1690 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + (sp-item 1691 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + ) + ) + +;; failed to figure out what this is: +(defpart 1690 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-cliffs-fence-dust) + (:num 10.0) + (:x (meters -10) (meters 20)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-z (meters -0.05) (meters 0.1)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters -0.00066666666)) + (:friction 0.9) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1691 + :init-specs ((:texture (woodchip level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-cliffs-fence-splinters) + (:num 70.0) + (:x (meters -10) (meters 20)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 0.3) (meters 1.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:timer (seconds 2)) + (:flags (glow)) + (:conerot-x (degrees -45) (degrees 90)) + (:conerot-z (degrees -45) (degrees 90)) + (:rotate-y (degrees 0)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/common/ctf-part_REF.gc b/test/decompiler/reference/jakx/levels/common/ctf-part_REF.gc new file mode 100644 index 0000000000..ae1c91ab32 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/common/ctf-part_REF.gc @@ -0,0 +1,286 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-ctf-captured-flag-lightning + :id 327 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1144 :flags (sp5 sp6)) (sp-item 1145 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1144 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5) (meters 1.5)) + (:rot-x (degrees 11.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40.96) + ) + ) + +;; failed to figure out what this is: +(defpart 1145 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0 1.0) + (:scale-x (meters 0.1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0.0225)) + (:vel-y (meters 0.06666667)) + (:fade-a -2.56) + (:friction 0.97) + (:timer (seconds 0.167)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-ctf-captured-flag-lightning-from-ball + :id 328 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1144 :flags (sp5 sp6)) (sp-item 1145 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpartgroup group-ctf-flag-returned + :id 329 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1146 :flags (sp3 sp6)) (sp-item 1147 :flags (sp6) :period (seconds 10) :length (seconds 1))) + ) + +;; failed to figure out what this is: +(defpart 1146 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 100.0) + (:scale-x (meters 0.5) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0.225)) + (:vel-y (meters 0.06666667)) + (:fade-a -0.42666668) + (:friction 0.96 0.01) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1147 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters 4) (meters 1)) + (:scale-x (meters 0.1) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters -0.001)) + (:scalevel-y :copy scalevel-x) + (:fade-a 3.2 3.2) + (:accel-y (meters -0.001)) + (:friction 0.85 0.05) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:next-time (seconds 0.067)) + (:next-launcher 1148) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1148 + :init-specs ((:fade-a -0.42666668 -0.42666668)) + ) + +;; failed to figure out what this is: +(defpartgroup group-ctf-flag-scored + :id 330 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1149 :flags (sp3 sp6)) (sp-item 1150 :flags (sp3)) (sp-item 1151 :flags (is-3d sp3))) + ) + +;; failed to figure out what this is: +(defpart 1149 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 200.0) + (:scale-x (meters 0.5) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-z (meters 0.06666667) (meters 0.13333334)) + (:fade-a -0.21333334 -0.21333334) + (:friction 0.96 0.01) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 30)) + (:conerot-y (degrees 0) (degrees 30)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1150 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 40.0) + (:y (meters 3)) + (:scale-x (meters 20)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1) (meters 10)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:scalevel-x (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y (meters 0) (meters -0.00066666666)) + (:fade-a -0.053333335 -0.053333335) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1151 + :init-specs ((:texture (shockwave level-default-sprite)) + (:num 2.0) + (:y (meters 1)) + (:scale-x (meters 0.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 1)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.85333335) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-ctf-flag-grabbed + :id 331 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1152 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1152 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 200.0) + (:scale-x (meters 0.5) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-z (meters 0.13333334) (meters 0.13333334)) + (:fade-a -0.21333334 -0.21333334) + (:friction 0.96 0.01) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 30)) + (:conerot-y (degrees 0) (degrees 30)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-flag-grabbed-vehicle + :id 332 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1153 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1153 + :init-specs ((:texture (ripples level-default-sprite)) + (:num 0.1) + (:scale-x (meters 30)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters -0.1)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.42666668) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-ctf-carried-flag + :id 333 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1154 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1154 + :init-specs ((:texture (laser-hit2-add level-default-sprite)) + (:num 0.4) + (:y (meters 0)) + (:scale-x (meters 2)) + (:rot-x (degrees 45)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0) (meters 0.02)) + (:scalevel-y :copy scalevel-x) + (:fade-a 1.7) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 right-multiply-quat)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 1155) + ) + ) + +;; failed to figure out what this is: +(defpart 1155 + :init-specs ((:fade-a -1.7)) + ) diff --git a/test/decompiler/reference/jakx/levels/common/menu2-part_REF.gc b/test/decompiler/reference/jakx/levels/common/menu2-part_REF.gc new file mode 100644 index 0000000000..0d7d226f35 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/common/menu2-part_REF.gc @@ -0,0 +1,358 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-jakx-fire + :id 53 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 333 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 333 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 80.0) + (:g 80.0) + (:b 80.0) + (:a 64.0) + (:fade-a -2.56) + (:timer (seconds 0.085)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-jakx-fire-thin + :id 54 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 334 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 334 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 80.0) + (:g 80.0) + (:b 80.0) + (:a 64.0) + (:fade-a -4.266667) + (:timer (seconds 0.05)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-jakx-huge-explosion + :id 55 + :duration (seconds 5) + :flags (sp0 sp5) + :bounds (static-bspherem 0 0 0 15) + :parts ((sp-item 335 :period (seconds 30) :length (seconds 0.5)) + (sp-item 336 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 337 :period (seconds 30) :length (seconds 0.035)) + (sp-item 338 :period (seconds 30) :length (seconds 0.035)) + (sp-item 339 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 340 :period (seconds 30) :length (seconds 0.667)) + ) + ) + +;; failed to figure out what this is: +(defpart 336 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:fade-a -0.21333334) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 339 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 6)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 6767.9995)) + (:scalevel-x (meters -0.083333336)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 335 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 3.0) + (:x (meters 0.2)) + (:scale-x (meters 0.7) (meters 0.3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 60.0 20.0) + (:b 10.0 10.0) + (:a 128.0) + (:vel-y (meters 0.01) (meters 0.01)) + (:scalevel-x (meters 0.00066666666)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.42666668) + (:friction 0.9) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 337 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 100.0) + (:scale-x (meters 0.2)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0.1575)) + (:vel-y (meters 0.006666667) (meters 0.026666667)) + (:scalevel-x (meters -0.001)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.28444445 -0.28444445) + (:fade-b -0.42666668) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.92 0.02) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 338 + :init-specs ((:texture (sparkbit level-default-sprite)) + (:num 40.0) + (:scale-x (meters 0.1) (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.006666667) (meters 0.026666667)) + (:scalevel-x (meters -0.00033333333)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.13333334) + (:fade-b -0.05) + (:fade-a -0.21333334 -0.21333334) + (:friction 0.96) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 341 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 10.0) + (:scale-x (meters 6) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 160.0) + (:b 40.0) + (:a 128.0) + (:vel-y (meters 0.033333335) (meters 0.16666667)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.114285715) + (:fade-b -0.042857144) + (:fade-a -0.18285714 -0.18285714) + (:friction 0.93) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 340 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 4.0) + (:x (meters 0.2)) + (:y (meters 0) (meters 0.01)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.00066666666) (meters 0.006666667)) + (:friction 0.95) + (:timer (seconds 1)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-jakxexplo-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-jakxexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-jakxexplo-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.2 2.2 3.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.20000005 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-jakxexplo-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.2 2.2 3.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.20000005 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-jakxexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.05 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.6 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -0.6153846 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-jakxexplo-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.5 1.0 1.1 2.1)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.625 0.5000002 0.9999999 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-jakxexplo-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.5 1.0 1.1 2.1)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.625 0.5000002 0.9999999 1.0)) + ) + ) + ) + +;; definition for symbol *part-jakx-explosion-texture-curve-settings*, type particle-curve-settings +(define *part-jakx-explosion-texture-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.7) + :lifetime-offset (seconds 0.2) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 340 init-specs 16 initial-valuef) + (the-as float *part-jakx-explosion-texture-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* color-start) *range-jakxexplo-color*) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* alpha-start) *range-jakxexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* scale-x-start) *range-jakxexplo-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* scale-y-start) *range-jakxexplo-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* a-scalar) *curve-jakxexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* scale-x-scalar) *curve-jakxexplo-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-jakx-explosion-texture-curve-settings* scale-y-scalar) *curve-jakxexplo-scale-y*) diff --git a/test/decompiler/reference/jakx/levels/common/net-enemy-h_REF.gc b/test/decompiler/reference/jakx/levels/common/net-enemy-h_REF.gc index 370edcdbd4..749f17a233 100644 --- a/test/decompiler/reference/jakx/levels/common/net-enemy-h_REF.gc +++ b/test/decompiler/reference/jakx/levels/common/net-enemy-h_REF.gc @@ -256,3 +256,7 @@ ;; failed to figure out what this is: (clear! *net-enemy-list*) + + + + diff --git a/test/decompiler/reference/jakx/levels/common/race-part_REF.gc b/test/decompiler/reference/jakx/levels/common/race-part_REF.gc new file mode 100644 index 0000000000..68beb9ecb1 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/common/race-part_REF.gc @@ -0,0 +1,3254 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-spawn-red-eco + :id 179 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 603 :flags (sp3) :binding 600) + (sp-item 600 :flags (sp2 sp3) :binding 601) + (sp-item 601 :falloff-to (meters 400) :flags (sp2)) + (sp-item 603 :flags (sp3) :binding 602) + (sp-item 602 :flags (sp2 sp3) :binding 601) + (sp-item 601 :falloff-to (meters 400) :flags (sp2)) + (sp-item 604 :period (seconds 10) :length (seconds 0.035) :offset 100) + ) + ) + +;; failed to figure out what this is: +(defpart 603 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:y (meters -3)) + (:scale-x (meters 2.1)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters 0.046666667)) + (:timer (seconds 0.667)) + (:flags ()) + ) + ) + +;; failed to figure out what this is: +(defpart 600 + :init-specs ((:texture (radial-gradient-red level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 605) + ) + ) + +;; failed to figure out what this is: +(defpart 602 + :init-specs ((:texture (radial-gradient-red level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 180)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 605) + ) + ) + +;; failed to figure out what this is: +(defpart 605 + :init-specs ((:fade-a -2.56)) + ) + +;; failed to figure out what this is: +(defpart 601 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters -0.1) (meters 0.2)) + (:y (meters -0.1) (meters 0.2)) + (:z (meters -0.1) (meters 0.2)) + (:scale-x (meters 0.3)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 0.0 64.0) + (:b 0.0) + (:a 128.0) + (:vel-y (meters -0.001) (meters -0.006666667)) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 604 + :init-specs ((:texture (radial-gradient-red level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:rot-x (degrees 67.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.2)) + (:scalevel-y (meters 0.2)) + (:timer (seconds 0.835)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 12288.0) + (:next-time (seconds 0.167)) + (:next-launcher 606) + ) + ) + +;; failed to figure out what this is: +(defpart 606 + :init-specs ((:scalevel-x (meters -0.033333335)) + (:scalevel-y (meters 0.033333335)) + (:next-time (seconds 0.167)) + (:next-launcher 607) + ) + ) + +;; failed to figure out what this is: +(defpart 607 + :init-specs ((:fade-a -0.64)) + ) + +;; failed to figure out what this is: +(defpartgroup group-spawn-blue-eco + :id 180 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 611 :flags (sp3) :binding 608) + (sp-item 608 :flags (sp2 sp3) :binding 609) + (sp-item 609 :falloff-to (meters 400) :flags (sp2)) + (sp-item 611 :flags (sp3) :binding 610) + (sp-item 610 :flags (sp2 sp3) :binding 609) + (sp-item 609 :falloff-to (meters 400) :flags (sp2)) + (sp-item 612 :period (seconds 10) :length (seconds 0.035) :offset 100) + ) + ) + +;; failed to figure out what this is: +(defpart 611 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:y (meters -3)) + (:scale-x (meters 2.1)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters 0.046666667)) + (:timer (seconds 0.667)) + (:flags ()) + ) + ) + +;; failed to figure out what this is: +(defpart 608 + :init-specs ((:texture (radial-gradient-blue level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 613) + ) + ) + +;; failed to figure out what this is: +(defpart 610 + :init-specs ((:texture (radial-gradient-blue level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 180)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 613) + ) + ) + +;; failed to figure out what this is: +(defpart 613 + :init-specs ((:fade-a -2.56)) + ) + +;; failed to figure out what this is: +(defpart 609 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters -0.1) (meters 0.2)) + (:y (meters -0.1) (meters 0.2)) + (:z (meters -0.1) (meters 0.2)) + (:scale-x (meters 0.3)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0 64.0) + (:b 255.0) + (:a 128.0) + (:vel-y (meters -0.001) (meters -0.006666667)) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 612 + :init-specs ((:texture (radial-gradient-blue level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:rot-x (degrees 67.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.2)) + (:scalevel-y (meters 0.2)) + (:timer (seconds 0.835)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 12288.0) + (:next-time (seconds 0.167)) + (:next-launcher 614) + ) + ) + +;; failed to figure out what this is: +(defpart 614 + :init-specs ((:scalevel-x (meters -0.033333335)) + (:scalevel-y (meters 0.033333335)) + (:next-time (seconds 0.167)) + (:next-launcher 615) + ) + ) + +;; failed to figure out what this is: +(defpart 615 + :init-specs ((:fade-a -0.64)) + ) + +;; failed to figure out what this is: +(defpartgroup group-spawn-yellow-eco + :id 181 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 619 :flags (sp3) :binding 616) + (sp-item 616 :flags (sp2 sp3) :binding 617) + (sp-item 617 :falloff-to (meters 400) :flags (sp2)) + (sp-item 619 :flags (sp3) :binding 618) + (sp-item 618 :flags (sp2 sp3) :binding 617) + (sp-item 617 :falloff-to (meters 400) :flags (sp2)) + (sp-item 620 :period (seconds 10) :length (seconds 0.035) :offset 100) + ) + ) + +;; failed to figure out what this is: +(defpart 619 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:y (meters -3)) + (:scale-x (meters 2.1)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters 0.046666667)) + (:timer (seconds 0.667)) + (:flags ()) + ) + ) + +;; failed to figure out what this is: +(defpart 616 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 621) + ) + ) + +;; failed to figure out what this is: +(defpart 618 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 180)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 621) + ) + ) + +;; failed to figure out what this is: +(defpart 621 + :init-specs ((:fade-a -2.56)) + ) + +;; failed to figure out what this is: +(defpart 617 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters -0.1) (meters 0.2)) + (:y (meters -0.1) (meters 0.2)) + (:z (meters -0.1) (meters 0.2)) + (:scale-x (meters 0.3)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0 128.0) + (:b 0.0) + (:a 128.0) + (:vel-y (meters -0.001) (meters -0.006666667)) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 620 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:rot-x (degrees 67.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.2)) + (:scalevel-y (meters 0.2)) + (:timer (seconds 0.835)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 12288.0) + (:next-time (seconds 0.167)) + (:next-launcher 622) + ) + ) + +;; failed to figure out what this is: +(defpart 622 + :init-specs ((:scalevel-x (meters -0.033333335)) + (:scalevel-y (meters 0.033333335)) + (:next-time (seconds 0.167)) + (:next-launcher 623) + ) + ) + +;; failed to figure out what this is: +(defpart 623 + :init-specs ((:fade-a -0.64)) + ) + +;; failed to figure out what this is: +(defpartgroup group-spawn-green-eco + :id 182 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 627 :flags (sp3) :binding 624) + (sp-item 624 :flags (sp2 sp3) :binding 625) + (sp-item 625 :falloff-to (meters 400) :flags (sp2)) + (sp-item 627 :flags (sp3) :binding 626) + (sp-item 626 :flags (sp2 sp3) :binding 625) + (sp-item 625 :falloff-to (meters 400) :flags (sp2)) + (sp-item 628 :period (seconds 10) :length (seconds 0.035) :offset 100) + ) + ) + +;; failed to figure out what this is: +(defpart 627 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:y (meters -3)) + (:scale-x (meters 2.1)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters 0.046666667)) + (:timer (seconds 0.667)) + (:flags ()) + ) + ) + +;; failed to figure out what this is: +(defpart 624 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 128.0) + (:b 64.0) + (:a 128.0) + (:omega (degrees 0)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 629) + ) + ) + +;; failed to figure out what this is: +(defpart 626 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:z (meters 1)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 128.0) + (:b 64.0) + (:a 128.0) + (:omega (degrees 180)) + (:vel-x (meters -0.21333334)) + (:vel-z (meters 0.026666667)) + (:accel-z (meters -0.00083333335)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:next-time (seconds 0.335)) + (:next-launcher 629) + ) + ) + +;; failed to figure out what this is: +(defpart 629 + :init-specs ((:fade-a -2.56)) + ) + +;; failed to figure out what this is: +(defpart 625 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters -0.1) (meters 0.2)) + (:y (meters -0.1) (meters 0.2)) + (:z (meters -0.1) (meters 0.2)) + (:scale-x (meters 0.3)) + (:scale-y :copy scale-x) + (:r 0.0 64.0) + (:g 255.0) + (:b 0.0 64.0) + (:a 128.0) + (:vel-y (meters -0.001) (meters -0.006666667)) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 628 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:rot-x (degrees 67.5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 128.0) + (:b 64.0) + (:a 128.0) + (:scalevel-x (meters 0.2)) + (:scalevel-y (meters 0.2)) + (:timer (seconds 1.667)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 12288.0) + (:next-time (seconds 0.167)) + (:next-launcher 630) + ) + ) + +;; failed to figure out what this is: +(defpart 630 + :init-specs ((:scalevel-x (meters -0.033333335)) + (:scalevel-y (meters 0.033333335)) + (:next-time (seconds 0.167)) + (:next-launcher 631) + ) + ) + +;; failed to figure out what this is: +(defpart 631 + :init-specs ((:fade-a -0.64)) + ) + +;; failed to figure out what this is: +(defpartgroup group-powerup-respawn + :id 183 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 632 :flags (sp3 sp6)) (sp-item 633 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 632 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:y (meters 1)) + (:scale-x (meters 10)) + (:rot-x (degrees 225)) + (:scale-y (meters 16)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:scalevel-x (meters -0.05)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.64) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + ) + ) + +;; failed to figure out what this is: +(defpart 633 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 1)) + (:scale-x (meters 8)) + (:rot-x (degrees 225)) + (:scale-y (meters 4)) + (:r 0.0) + (:g 32.0) + (:b 255.0) + (:a 128.0) + (:scalevel-x (meters -0.093333334)) + (:scalevel-y (meters 0.5)) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:next-time (seconds 0.167)) + (:next-launcher 634) + ) + ) + +;; failed to figure out what this is: +(defpart 634 + :init-specs ((:scalevel-x (meters -0.033333335)) + (:scalevel-y (meters 0.06666667)) + (:next-time (seconds 0.167)) + (:next-launcher 635) + ) + ) + +;; failed to figure out what this is: +(defpart 635 + :init-specs ((:scalevel-x (meters -0.013333334)) (:scalevel-y (meters 0.033333335)) (:fade-a -2.56)) + ) + +;; failed to figure out what this is: +(defpart 636 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:y (meters 1)) + (:scale-x (meters 1) (meters 1)) + (:scale-y :copy scale-x) + (:r 32.0 64.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-z (meters 0.033333335)) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-r -1.28) + (:fade-g -1.28) + (:fade-b -1.28) + (:fade-a -5.12 -5.12) + (:timer (seconds 0.085)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rod-of-god + :id 184 + :flags (sp0) + :bounds (static-bspherem 0 300 0 640) + :parts ((sp-item 637 :fade-after (meters 80) :falloff-to (meters 160)) + (sp-item 638 :flags (sp5)) + (sp-item 639 :flags (sp5)) + ) + ) + +;; failed to figure out what this is: +(defpart 637 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 8.0) + (:x (meters 0) (meters 2.7)) + (:y (meters 0) (meters 32)) + (:scale-x (meters 0.25)) + (:scale-y (meters 0.25) (meters 0.1)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters 0.0016666667) (meters 0.0016666667)) + (:fade-a 0.4) + (:timer (seconds 0.535)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:next-time (seconds 0.267)) + (:next-launcher 640) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 640 + :init-specs ((:fade-a -0.4)) + ) + +;; failed to figure out what this is: +(defpart 638 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters -0.25)) + (:scale-x (meters 18)) + (:rot-x (degrees 135)) + (:scale-y (meters 18)) + (:r 128.0) + (:g 128.0) + (:b 0.0 64.0) + (:a 32.0) + (:omega (degrees 4511.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 20480.0) + ) + ) + +;; failed to figure out what this is: +(defpart 639 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters -0.25)) + (:scale-x (meters 9)) + (:rot-x (degrees 135)) + (:scale-y (meters 9)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:omega (degrees 4511.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc)) + (:userdata 20480.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-invisible-collision-shield + :id 185 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 641 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 641 + :init-specs ((:texture (laser-hit2-add level-default-sprite)) + (:num 2.0) + (:scale-x (meters 1) (meters 2)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 90)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 64.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.1) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.28) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-wrong-way-lightning-spawn + :id 186 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 642 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 642 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:y (meters -3)) + (:scale-x (meters 3) (meters 1)) + (:rot-x (degrees 45)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-wrong-way-lightning-vehicle + :id 187 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 643 :flags (sp5 sp6)) (sp-item 644 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 643 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:y (meters 1)) + (:scale-x (meters 2) (meters 1)) + (:rot-x (degrees 45)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 644 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0 1.0) + (:y (meters 1)) + (:scale-x (meters 0.05) (meters 0.05)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:friction 0.9) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + (:conerot-x (degrees 10) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-starting-linebot-projection + :id 188 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 645 :flags (is-3d sp5 sp6)) + (sp-item 646 :flags (is-3d sp5 sp6)) + (sp-item 647 :flags (is-3d sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 645 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 2)) + (:y (meters 0.3)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 2)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 8)) + (:r 20.0) + (:g 64.0) + (:b 20.0) + (:a 40.0 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 90)) + (:rotate-y (degrees -90)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 646 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 2)) + (:y (meters 0.3)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 2)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 8)) + (:r 20.0) + (:g 64.0) + (:b 20.0) + (:a 40.0 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees -45)) + (:rotate-y (degrees -90)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 647 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 2)) + (:y (meters 0.3)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 2)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 8)) + (:r 20.0) + (:g 64.0) + (:b 20.0) + (:a 40.0 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 45)) + (:rotate-y (degrees -90)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-starting-linebot-projection-red + :id 189 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 648 :flags (is-3d sp5 sp6)) + (sp-item 649 :flags (is-3d sp5 sp6)) + (sp-item 650 :flags (is-3d sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 648 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 2)) + (:y (meters 0.3)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 2)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 8)) + (:r 64.0) + (:g 20.0) + (:b 20.0) + (:a 40.0 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 90)) + (:rotate-y (degrees -90)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 649 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 2)) + (:y (meters 0.3)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 2)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 8)) + (:r 64.0) + (:g 20.0) + (:b 20.0) + (:a 40.0 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees -45)) + (:rotate-y (degrees -90)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 650 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 2)) + (:y (meters 0.3)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 2)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 8)) + (:r 64.0) + (:g 20.0) + (:b 20.0) + (:a 40.0 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 45)) + (:rotate-y (degrees -90)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-this-way-projection + :id 190 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 651 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 651 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 5.0) + (:y (meters -8)) + (:scale-x (meters 40) (meters 2)) + (:rot-z (degrees 90)) + (:scale-y (meters 10)) + (:r 128.0) + (:g 40.0) + (:b 40.0) + (:a 0.0 15.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-finish-banner + :id 191 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 652 :flags (is-3d sp5 sp6)) + (sp-item 653 :flags (is-3d sp5 sp6)) + (sp-item 654 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 50) + (sp-item 655 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 100) + (sp-item 656 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 150) + (sp-item 657 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 150) + (sp-item 658 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 100) + (sp-item 659 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 50) + ) + ) + +;; failed to figure out what this is: +(defpart 652 + :init-specs ((:texture (banner-end-checker level-default-sprite)) + (:num 1.0) + (:z (meters -5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 90)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 653 + :init-specs ((:texture (banner-end-checker level-default-sprite)) + (:num 1.0) + (:z (meters 5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 90)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 654 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:z (meters 32)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 90)) + (:scale-y (meters 5)) + (:r 80.0) + (:g 128.0) + (:b 64.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 655 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:z (meters 24)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 90)) + (:scale-y (meters 5)) + (:r 80.0) + (:g 128.0) + (:b 64.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 656 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:z (meters 16)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 90)) + (:scale-y (meters 5)) + (:r 80.0) + (:g 128.0) + (:b 64.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 657 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:z (meters -16)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees -90)) + (:scale-y (meters 5)) + (:r 80.0) + (:g 128.0) + (:b 64.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 658 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:z (meters -24)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees -90)) + (:scale-y (meters 5)) + (:r 80.0) + (:g 128.0) + (:b 64.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 659 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:z (meters -32)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees -90)) + (:scale-y (meters 5)) + (:r 80.0) + (:g 128.0) + (:b 64.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-start-banner-ready + :id 192 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 660 :flags (is-3d sp5 sp6)) + (sp-item 661 :flags (is-3d sp5 sp6)) + (sp-item 662 :flags (is-3d sp5 sp6)) + (sp-item 663 :flags (is-3d sp5 sp6)) + (sp-item 664 :flags (is-3d sp5 sp6)) + (sp-item 665 :flags (is-3d sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-start-banner-3 + :id 193 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 666 :flags (is-3d sp5 sp6)) + (sp-item 667 :flags (is-3d sp5 sp6)) + (sp-item 661 :flags (is-3d sp5 sp6)) + (sp-item 662 :flags (is-3d sp5 sp6)) + (sp-item 663 :flags (is-3d sp5 sp6)) + (sp-item 664 :flags (is-3d sp5 sp6)) + (sp-item 668 :flags (is-3d sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-start-banner-2 + :id 194 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 669 :flags (is-3d sp5 sp6)) + (sp-item 667 :flags (is-3d sp5 sp6)) + (sp-item 670 :flags (is-3d sp5 sp6)) + (sp-item 662 :flags (is-3d sp5 sp6)) + (sp-item 663 :flags (is-3d sp5 sp6)) + (sp-item 671 :flags (is-3d sp5 sp6)) + (sp-item 668 :flags (is-3d sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-start-banner-1 + :id 195 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 672 :flags (is-3d sp5 sp6)) + (sp-item 667 :flags (is-3d sp5 sp6)) + (sp-item 670 :flags (is-3d sp5 sp6)) + (sp-item 673 :flags (is-3d sp5 sp6)) + (sp-item 674 :flags (is-3d sp5 sp6)) + (sp-item 671 :flags (is-3d sp5 sp6)) + (sp-item 668 :flags (is-3d sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-start-banner-go + :id 196 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 675 :flags (is-3d sp5 sp6) :period (seconds 2) :length (seconds 0.667)) + (sp-item 676 :flags (is-3d sp5 sp6) :period (seconds 2) :length (seconds 0.667) :offset 200) + (sp-item 677 :flags (is-3d sp5 sp6) :period (seconds 2) :length (seconds 0.667) :offset 400) + (sp-item 678 :flags (is-3d sp5 sp6) :period (seconds 2) :length (seconds 0.667)) + (sp-item 679 :flags (is-3d sp5 sp6) :period (seconds 2) :length (seconds 0.667) :offset 200) + (sp-item 680 :flags (is-3d sp5 sp6) :period (seconds 2) :length (seconds 0.667) :offset 400) + (sp-item 681 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.5) :offset 100) + (sp-item 682 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.5) :offset 150) + (sp-item 683 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.5) :offset 200) + (sp-item 684 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.5) :offset 200) + (sp-item 685 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.5) :offset 150) + (sp-item 686 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.5) :offset 100) + (sp-item 687 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 50) + (sp-item 688 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 100) + (sp-item 689 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 150) + (sp-item 690 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 150) + (sp-item 691 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 100) + (sp-item 692 :flags (is-3d sp5 sp6) :period (seconds 0.667) :length (seconds 0.167) :offset 50) + ) + ) + +;; failed to figure out what this is: +(defpart 693 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:scale-x (meters 70)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 8)) + (:r 128.0) + (:g 10.0) + (:b 20.0) + (:a 40.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 694 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:scale-x (meters 70)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 8)) + (:r 10.0) + (:g 128.0) + (:b 10.0) + (:a 40.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 666 + :init-specs ((:texture (banner-3 level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 6)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 70.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 669 + :init-specs ((:texture (banner-2 level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 6)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 70.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 672 + :init-specs ((:texture (banner-1 level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 6)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 70.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 675 + :init-specs ((:texture (banner-go-arrow1 level-default-sprite)) + (:num 1.0) + (:x (meters 5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 676 + :init-specs ((:texture (banner-go-arrow2 level-default-sprite)) + (:num 1.0) + (:x (meters 5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 677 + :init-specs ((:texture (banner-go-arrow3 level-default-sprite)) + (:num 1.0) + (:x (meters 5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 678 + :init-specs ((:texture (banner-go-arrow1 level-default-sprite)) + (:num 1.0) + (:x (meters -5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees -180)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 679 + :init-specs ((:texture (banner-go-arrow2 level-default-sprite)) + (:num 1.0) + (:x (meters -5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees -180)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 680 + :init-specs ((:texture (banner-go-arrow3 level-default-sprite)) + (:num 1.0) + (:x (meters -5)) + (:scale-x (meters 10)) + (:rot-x (degrees 90)) + (:rot-y (degrees -180)) + (:scale-y (meters 7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 660 + :init-specs ((:texture (gen-05 level-default-sprite)) + (:num 1.0) + (:x (meters 32)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 100.0) + (:a 100.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 661 + :init-specs ((:texture (gen-05 level-default-sprite)) + (:num 1.0) + (:x (meters 24)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 100.0) + (:a 100.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 662 + :init-specs ((:texture (gen-05 level-default-sprite)) + (:num 1.0) + (:x (meters 16)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 100.0) + (:a 100.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 663 + :init-specs ((:texture (gen-05 level-default-sprite)) + (:num 1.0) + (:x (meters -16)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 100.0) + (:a 100.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 664 + :init-specs ((:texture (gen-05 level-default-sprite)) + (:num 1.0) + (:x (meters -24)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 100.0) + (:a 100.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 665 + :init-specs ((:texture (gen-05 level-default-sprite)) + (:num 1.0) + (:x (meters -32)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 100.0) + (:a 100.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 667 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters 32)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 40.0) + (:b 0.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 670 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters 24)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 80.0) + (:b 0.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 673 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters 16)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 200.0) + (:g 255.0) + (:b 40.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 674 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters -16)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 200.0) + (:g 255.0) + (:b 40.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 671 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters -24)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 80.0) + (:b 0.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 668 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:x (meters -32)) + (:scale-x (meters 4)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 40.0) + (:b 0.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 681 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters 32)) + (:scale-x (meters 3)) + (:rot-x (degrees 90)) + (:rot-y (degrees 180)) + (:scale-y (meters 3)) + (:r 255.0) + (:g 20.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-4)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 682 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters 24)) + (:scale-x (meters 3)) + (:rot-x (degrees 90)) + (:rot-y (degrees 180)) + (:scale-y (meters 3)) + (:r 255.0) + (:g 20.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-4)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 683 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters 16)) + (:scale-x (meters 3)) + (:rot-x (degrees 90)) + (:rot-y (degrees 180)) + (:scale-y (meters 3)) + (:r 255.0) + (:g 20.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-4)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 684 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters -16)) + (:scale-x (meters 3)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 3)) + (:r 255.0) + (:g 20.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-4)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 685 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters -24)) + (:scale-x (meters 3)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 3)) + (:r 255.0) + (:g 20.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-4)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 686 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters -32)) + (:scale-x (meters 3)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 3)) + (:r 255.0) + (:g 20.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-4)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 687 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters 32)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 180)) + (:scale-y (meters 5)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 688 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters 24)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 180)) + (:scale-y (meters 5)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 689 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters 16)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 180)) + (:scale-y (meters 5)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 690 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters -16)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 5)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 691 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters -24)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 5)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 692 + :init-specs ((:texture (arrow level-default-sprite)) + (:num 1.0) + (:x (meters -32)) + (:scale-x (meters 5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:scale-y (meters 5)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-signal-red-light-3 + :id 197 + :bounds (static-bspherem 0 0 0 1) + :parts ((sp-item 695 :flags (sp5))) + ) + +;; failed to figure out what this is: +(defpart 695 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 3) (meters 0.5)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 0.0) + (:b 0.0) + (:a 64.0) + (:omega (degrees 22509)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-signal-red-light-2 + :id 198 + :bounds (static-bspherem 0 0 0 1) + :parts ((sp-item 696 :flags (sp5))) + ) + +;; failed to figure out what this is: +(defpart 696 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 4) (meters 0.5)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 0.0) + (:b 0.0) + (:a 64.0) + (:omega (degrees 22509)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-signal-red-light-1 + :id 199 + :bounds (static-bspherem 0 0 0 1) + :parts ((sp-item 697 :flags (sp5))) + ) + +;; failed to figure out what this is: +(defpart 697 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 6) (meters 0.5)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 0.0) + (:b 0.0) + (:a 64.0) + (:omega (degrees 22509)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-race-signal-green-light + :id 200 + :bounds (static-bspherem 0 0 0 1) + :parts ((sp-item 698 :flags (sp5))) + ) + +;; failed to figure out what this is: +(defpart 698 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 8) (meters 1)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 128.0) + (:b 0.0) + (:a 96.0) + (:omega (degrees 22509)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-super-pellet + :id 201 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 702 :period (seconds 1) :length (seconds 0.035)) + (sp-item 703 :period (seconds 1) :length (seconds 0.035)) + (sp-item 704 :flags (sp3) :binding 699) + (sp-item 699 :falloff-to (meters 300) :flags (sp2) :binding 700) + (sp-item 705 :flags (sp3) :binding 701) + (sp-item 701 :falloff-to (meters 300) :flags (sp2)) + ) + ) + +;; failed to figure out what this is: +(defpart 702 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 2.0) + (:scale-x (meters 20) (meters 0.5)) + (:rot-x (degrees 22.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 180.0) + (:b 200.0) + (:a 10.0 4.0) + (:omega (degrees 22511.25)) + (:scalevel-x (meters -0.13333334)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 703 + :init-specs ((:texture (water-radiate level-default-sprite)) + (:num 50.0) + (:scale-x (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-x (meters 0.1) (meters 0.033333335)) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y (meters 0.016666668) (meters 0.016666668)) + (:fade-r -0.26666668) + (:fade-g -0.06666667) + (:friction 0.97) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:next-time (seconds 0.667)) + (:next-launcher 706) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 706 + :init-specs ((:scalevel-y (meters 0.0033333334) (meters 0.0033333334)) (:fade-a -0.42666668)) + ) + +;; failed to figure out what this is: +(defpart 705 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:scale-y (meters 0.1)) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:timer (seconds -0.005)) + (:flags ()) + ) + ) + +;; failed to figure out what this is: +(defpart 701 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.2) + (:x (meters 0) (meters 16)) + (:y (meters 0) (meters 16)) + (:z (meters 0)) + (:scale-x (meters 3) (meters 3)) + (:scale-y (meters 3) (meters 3)) + (:r 20.0) + (:g 40.0) + (:b 120.0) + (:a 50.0) + (:omega (degrees 0) (degrees 360)) + (:vel-x (meters -0.013333334) 1 (meters 0.026666667)) + (:vel-y (meters -0.00074074074) (meters 0.0014814815)) + (:vel-z (meters 0.006)) + (:rotvel-z (degrees -0.3) 1 (degrees 0.6)) + (:accel-z (meters -0.000033333334)) + (:timer (seconds 2.667) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + ) + ) + +;; failed to figure out what this is: +(defpart 704 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:scale-y (meters 0.1)) + (:r 255.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-14)) + ) + ) + +;; failed to figure out what this is: +(defpart 699 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 0.06) + (:x (meters 0) (meters 16)) + (:y (meters 0) (meters 16)) + (:z (meters 0)) + (:scale-x (meters 0.4) (meters 0.4)) + (:scale-y (meters 0.4) (meters 0.4)) + (:r 80.0) + (:g 80.0) + (:b 80.0) + (:a 128.0) + (:omega (degrees 0) (degrees 360)) + (:vel-x (meters -0.10666667) 1 (meters 0.21333334)) + (:vel-y (meters -0.00074074074) (meters 0.0014814815)) + (:vel-z (meters 0.006666667)) + (:rotvel-z (degrees -1.2) 1 (degrees 2.4)) + (:accel-z (meters -0.000033333334)) + (:timer (seconds 2.667) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 ready-to-launch)) + ) + ) + +;; failed to figure out what this is: +(defpart 700 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:num 0.2) + (:scale-x (meters 2) (meters 2)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 64.0) + (:b 64.0) + (:a 0.0) + (:scalevel-x (meters -0.0033333334)) + (:scalevel-y (meters 0.006666667)) + (:fade-a 0.16) + (:accel-y (meters 0.001)) + (:friction 0.98 0.01) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.5)) + (:next-launcher 707) + ) + ) + +;; failed to figure out what this is: +(defpart 707 + :init-specs ((:fade-a -0.035555556 -0.035555556)) + ) + +;; failed to figure out what this is: +(defpartgroup group-green-pellet + :id 202 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 708 :flags (sp5))) + ) + +;; failed to figure out what this is: +(defpart 708 + :init-specs ((:texture (laser-hit level-default-sprite)) + (:num 0.3) + (:scale-x (meters 9) (meters 1)) + (:rot-x (degrees 22.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 80.0) + (:b 0.0) + (:a 0.0) + (:omega (degrees 9011.25)) + (:scalevel-x (meters -0.006666667) 1 (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 3.0) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:next-time (seconds 0.167)) + (:next-launcher 709) + ) + ) + +;; failed to figure out what this is: +(defpart 709 + :init-specs ((:fade-a -3.0)) + ) + +;; failed to figure out what this is: +(defpartgroup group-blue-pellet + :id 203 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 710) + (sp-item 711 :flags (sp5 sp6)) + (sp-item 712 :flags (sp5 sp6)) + (sp-item 713 :flags (sp5 sp6)) + (sp-item 714 :flags (sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 710 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:scale-x (meters 10)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 10.0 30.0) + (:b 100.0) + (:a 0.0 20.0) + (:scalevel-x (meters -0.006666667) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a 3.0) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:next-time (seconds 0.167)) + (:next-launcher 715) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 715 + :init-specs ((:fade-a -3.0)) + ) + +;; failed to figure out what this is: +(defpart 711 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 1.0) + (:x (meters 0.6)) + (:y (meters 3.5)) + (:scale-x (meters 2) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 80.0) + (:b 100.0) + (:a 220.0 4.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 712 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 1.0) + (:x (meters -0.4)) + (:y (meters 3.5)) + (:scale-x (meters 2) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 80.0) + (:b 100.0) + (:a 220.0 4.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 713 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 1.0) + (:x (meters 0.5)) + (:y (meters -3.5)) + (:scale-x (meters 2) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 80.0) + (:b 100.0) + (:a 220.0 4.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 714 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 1.0) + (:x (meters -0.6)) + (:y (meters -3.5)) + (:scale-x (meters 2) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 80.0) + (:b 100.0) + (:a 220.0 4.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-light-pellet + :id 204 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 716) (sp-item 717) (sp-item 718) (sp-item 719 :flags (sp5)) (sp-item 720 :flags (sp5))) + ) + +;; failed to figure out what this is: +(defpart 716 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.02) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 180.0) + (:b 200.0) + (:a 0.0) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:fade-a 0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + (:next-time (seconds 1)) + (:next-launcher 721) + ) + ) + +;; failed to figure out what this is: +(defpart 721 + :init-specs ((:fade-a -0.21333334)) + ) + +;; failed to figure out what this is: +(defpart 717 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 0.2) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-x 4) + (:scale-y (meters 0.2) (meters 0.2)) + (:r 80.0) + (:g 20.0) + (:b 10.0) + (:a 64.0) + (:vel-x (meters 0.02)) + (:rotvel-z (degrees -2.4) 1 (degrees 4.8)) + (:accel-x (meters -0.00033333333)) + (:friction 0.9) + (:timer (seconds 1.835)) + (:flags (sp-cpuinfo-flag-4)) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 718 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 0.2) + (:scale-x (meters 0.8) (meters 0.2)) + (:scale-y (meters 0.8) (meters 0.2)) + (:r 100.0) + (:g 128.0) + (:b 140.0) + (:a 32.0) + (:vel-z (meters 0.023333333)) + (:rotvel-z (degrees -0.6) 1 (degrees 1.2)) + (:accel-z (meters -0.00033333333)) + (:friction 0.9) + (:timer (seconds 1.835)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 719 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 1.5)) + (:scale-x (meters 1.5)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 60.0) + (:b 80.0) + (:a 70.0 4.0) + (:omega (degrees 22511.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 720 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters -1.5)) + (:scale-x (meters 1.5)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 60.0) + (:b 80.0) + (:a 70.0 4.0) + (:omega (degrees 22511.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-yellow-pellet + :id 205 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 722)) + ) + +;; failed to figure out what this is: +(defpart 722 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.3) + (:scale-x (meters 8) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 140.0) + (:b 0.0) + (:a 0.0 20.0) + (:scalevel-x (meters -0.006666667) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a 3.0) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:next-time (seconds 0.167)) + (:next-launcher 723) + ) + ) + +;; failed to figure out what this is: +(defpart 723 + :init-specs ((:fade-a -3.0)) + ) + +;; failed to figure out what this is: +(defpartgroup group-red-pellet + :id 206 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 724)) + ) + +;; failed to figure out what this is: +(defpart 724 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.3) + (:scale-x (meters 10) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 0.0 1 40.0) + (:b 0.0) + (:a 0.0 20.0) + (:scalevel-x (meters -0.006666667) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a 3.0) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:next-time (seconds 0.167)) + (:next-launcher 725) + ) + ) + +;; failed to figure out what this is: +(defpart 725 + :init-specs ((:fade-a -3.0)) + ) + +;; failed to figure out what this is: +(defpartgroup group-dark-pellet + :id 207 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 727 :flags (sp5)) + (sp-item 728 :flags (sp3) :binding 726) + (sp-item 726 :flags (sp2)) + (sp-item 729 :falloff-to (meters 300)) + ) + ) + +;; failed to figure out what this is: +(defpart 727 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 20) (meters 0.5)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 40.0) + (:g 0.0) + (:b 255.0) + (:a 50.0 4.0) + (:omega (degrees 22511.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 728 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:scale-y (meters 0.1)) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-14)) + ) + ) + +;; failed to figure out what this is: +(defpart 726 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 0.4) + (:x (meters 0) (meters 16)) + (:y (meters 0) (meters 16)) + (:z (meters 0.5)) + (:scale-x (meters 8) (meters 1)) + (:scale-y (meters 4) (meters 1)) + (:r 80.0) + (:g 10.0) + (:b 255.0) + (:a 6.0 6.0) + (:omega (degrees 0) (degrees 360)) + (:vel-x (meters -0.026666667) 1 (meters 0.053333335)) + (:vel-y (meters -0.00074074074) (meters 0.0014814815)) + (:vel-z (meters 0.0053333333)) + (:rotvel-z (degrees -1.2) 1 (degrees 2.4)) + (:accel-z (meters -0.000033333334)) + (:timer (seconds 2.667) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + ) + ) + +;; failed to figure out what this is: +(defpart 729 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 0.5) + (:x (meters 6) (meters 1)) + (:scale-x (meters 1) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:fade-a 0.85) + (:accel-x (meters -0.00066666666)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-pellet-collect-super + :id 208 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 730 :flags (sp6)) (sp-item 731 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 730 + :init-specs ((:texture (laser-hit2-add level-default-sprite)) + (:num 0.8) + (:scale-x (meters 6) (meters 4)) + (:rot-x (degrees 45)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0) + (:g 0.0 100.0) + (:b 255.0) + (:a 0.0) + (:scalevel-x (meters -0.013333334) (meters -0.026666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 1.7) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 right-multiply-quat)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 732) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 732 + :init-specs ((:fade-a -1.7)) + ) + +;; failed to figure out what this is: +(defpart 731 + :init-specs ((:texture (radial-gradient-blue level-default-sprite)) + (:num 2.0) + (:x (meters 2) (meters 1)) + (:scale-x (meters 0)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0.1125)) + (:scalevel-x (meters 0.0016666667) (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-b 1.024) + (:fade-a 1.024) + (:accel-x (meters -0.001)) + (:timer (seconds 0.417)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-part-super-turbo-charges) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-func-part-super-turbo-charges +(defun spt-func-part-super-turbo-charges ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (sparticle-motion-blur arg0 arg1 (-> arg2 launchrot)) + (spt-func-relative-pos arg0 arg1 (the-as sprite-vec-data-3d arg2)) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-pellet-collect-yellow + :id 209 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 734 :flags (sp3)) (sp-item 735 :flags (sp3) :binding 733) (sp-item 733 :flags (sp2))) + ) + +;; failed to figure out what this is: +(defpart 734 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 20)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 140.0) + (:b 0.0) + (:a 80.0) + (:omega (degrees 2261.25)) + (:scalevel-x (meters -0.13333334)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 735 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:scale-y (meters 0.1)) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-14)) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 733 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 0.8) + (:x (meters 0) (meters 16)) + (:y (meters 0) (meters 16)) + (:z (meters 5)) + (:scale-x (meters 0.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 255.0) + (:omega (degrees 0) (degrees 360)) + (:vel-x (meters -0.026666667) 1 (meters 0.053333335)) + (:vel-y (meters -0.00074074074) (meters 0.0014814815)) + (:vel-z (meters 0.0053333333)) + (:scalevel-x (meters -0.001)) + (:scalevel-y :copy scalevel-x) + (:accel-z (meters -0.00026666667)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch)) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-pellet-collect-red + :id 210 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 736 :flags (sp3)) (sp-item 737 :period (seconds 5) :length (seconds 0.5))) + ) + +;; failed to figure out what this is: +(defpart 736 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 20)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 0.0) + (:b 0.0) + (:a 80.0) + (:omega (degrees 2261.25)) + (:scalevel-x (meters -0.13333334)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 737 + :init-specs ((:texture (radial-gradient-red level-default-sprite)) + (:num 3.0) + (:scale-x (meters 0.3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:omega (degrees 0.0675)) + (:accel-x (meters 0.0046666665)) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-part-red-pellet-charges) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-func-part-red-pellet-charges +(defun spt-func-part-red-pellet-charges ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (sparticle-motion-blur arg0 arg1 (-> arg2 launchrot)) + (spt-func-relative-pos arg0 arg1 (the-as sprite-vec-data-3d arg2)) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-pellet-collect-dark + :id 211 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 738 :flags (sp3)) (sp-item 739 :period (seconds 10) :length (seconds 0.5))) + ) + +;; failed to figure out what this is: +(defpart 738 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 20)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 40.0) + (:g 0.0) + (:b 255.0) + (:a 130.0) + (:omega (degrees 2261.25)) + (:scalevel-x (meters -0.13333334)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 739 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 2.0) + (:x (meters 6) (meters 1)) + (:scale-x (meters 0.5) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:fade-a 1.7) + (:accel-x (meters -0.0013333333)) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-pellet-collect-green + :id 212 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 740 :flags (sp3)) (sp-item 741 :period (seconds 10) :length (seconds 5))) + ) + +;; failed to figure out what this is: +(defpart 740 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 40)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 64.0) + (:b 0.0) + (:a 130.0) + (:omega (degrees 2261.25)) + (:scalevel-x (meters -0.2)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 741 + :init-specs ((:texture (cross level-default-sprite)) + (:num 1.0) + (:x (meters 4) (meters 1)) + (:scale-x (meters 0.1) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 32.0) + (:g 128.0) + (:b 32.0) + (:a 0.0) + (:scalevel-x (meters -0.001)) + (:scalevel-y :copy scalevel-x) + (:fade-a 3.2 3.2) + (:accel-y (meters -0.001)) + (:friction 0.85 0.05) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.067)) + (:next-launcher 742) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 742 + :init-specs ((:fade-a -0.42666668 -0.42666668)) + ) + +;; failed to figure out what this is: +(defpartgroup group-pellet-collect-blue + :id 213 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 743 :flags (sp3)) (sp-item 744 :period (seconds 5) :length (seconds 0.335))) + ) + +;; failed to figure out what this is: +(defpart 743 + :init-specs ((:texture (glow level-default-sprite)) + (:num 2.0) + (:scale-x (meters 20)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 255.0) + (:a 100.0) + (:omega (degrees 2261.25)) + (:scalevel-x (meters -0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.3333334) + (:timer (seconds 0.25)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 744 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 5.0) + (:x (meters 7) (meters 1)) + (:scale-x (meters 0.6)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 100.0) + (:b 255.0) + (:a 0.0) + (:omega (degrees 0.1125)) + (:fade-a 1.7) + (:accel-x (meters -0.005)) + (:timer (seconds 0.25)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'spt-func-part-pellet-collect-blue-blurs) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-func-part-pellet-collect-blue-blurs +(defun spt-func-part-pellet-collect-blue-blurs ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (sparticle-motion-blur arg0 arg1 (-> arg2 launchrot)) + (spt-func-relative-pos arg0 arg1 (the-as sprite-vec-data-3d arg2)) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-pellet-collect-light + :id 214 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 745 :flags (sp3)) (sp-item 746 :period (seconds 10) :length (seconds 0.167))) + ) + +;; failed to figure out what this is: +(defpart 745 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 40)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 40.0) + (:omega (degrees 2261.25)) + (:scalevel-x (meters -0.53333336)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 746 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 3.0) + (:x (meters 6) (meters 1)) + (:scale-x (meters 0.3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:omega (degrees 0.1125)) + (:vel-x (meters -0.07333333)) + (:fade-a 1.7) + (:friction 1.02) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'spt-func-part-pellet-collect-light-blurs) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-func-part-pellet-collect-light-blurs +(defun spt-func-part-pellet-collect-light-blurs ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (sparticle-motion-blur arg0 arg1 (-> arg2 launchrot)) + (spt-func-relative-pos arg0 arg1 (the-as sprite-vec-data-3d arg2)) + (none) + ) + +;; definition for function spt-birth-func-brightness-collectoid-dust +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-collectoid-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 51) 100)) + (s3-0 (+ (logand 0 (rand-uint31-gen *random-generator*)) 150)) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 101) 50)) + (v1-7 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 101) 50)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-7))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-collectoid + :id 215 + :flags (sp0) + :bounds (static-bspherem 0 0 0 10) + :parts ((sp-item 747 :flags (sp3)) (sp-item 748 :flags (sp3))) + ) + +;; failed to figure out what this is: +(defpart 747 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 128.0) + (:b 255.0) + (:a 255.0) + (:scalevel-x (meters -0.1)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.167)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 749 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 60.0) + (:scale-x (meters 0.2)) + (:rot-x 4) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0 128.0) + (:b :copy g) + (:a 128.0) + (:omega (degrees 0.1125)) + (:vel-y (meters 0.06666667) (meters 0.2)) + (:accel-y (meters 0)) + (:friction 0.9) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.167)) + (:next-launcher 750) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 750 + :init-specs ((:scalevel-x (meters -0.00016666666)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.17066666 -0.17066666) + (:accel-y (meters -0.00033333333) (meters -0.00066666666)) + (:friction 0.92 0.07) + ) + ) + +;; failed to figure out what this is: +(defpart 748 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-collectoid-dust) + (:num 10.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:scalevel-x (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters 0)) + (:friction 0.8) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-collectoid-collect + :id 216 + :flags (sp0 sp4 sp14) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 751 :flags (sp3 sp6)) (sp-item 752 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 751 + :init-specs ((:texture (laser-hit level-default-sprite)) + (:num 2.0) + (:scale-x (meters 10)) + (:rot-x (degrees 45)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 130.0) + (:b 130.0) + (:a 130.0) + (:scalevel-x (meters -0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.43333334) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 753 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-collectoid-dust) + (:num 1.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 754 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:scalevel-x (meters -0.013333334)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 755 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-inherit-size) + (:num 1.0) + (:scale-x (meters 0.00024414062) (meters 0.00012207031)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:fade-a -0.36571428 -0.36571428) + (:accel-y (meters 0) (meters -0.00033333333)) + (:timer (seconds 1.167)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 752 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 60.0) + (:scale-x (meters 0.5) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 0.0 1 128.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:omega (degrees 0.1125) (degrees 0.1125)) + (:vel-z (meters 0.16666667)) + (:accel-y (meters -0.00066666666)) + (:friction 0.95 0.02) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-y (degrees 0) (degrees 30)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +0 diff --git a/test/decompiler/reference/jakx/levels/common/wvehicle-hud-h_REF.gc b/test/decompiler/reference/jakx/levels/common/wvehicle-hud-h_REF.gc new file mode 100644 index 0000000000..2ca84ee2b9 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/common/wvehicle-hud-h_REF.gc @@ -0,0 +1,243 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type fx-struct +(deftype fx-struct (structure) + ((offset-x int32) + (offset-y int32) + (scale-x basic) + (scale-y basic) + (alpha basic) + (angle basic) + (total-time uint32) + ) + ) + +;; definition for method 3 of type fx-struct +(defmethod inspect ((this fx-struct)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'fx-struct) + (format #t "~1Toffset-x: ~D~%" (-> this offset-x)) + (format #t "~1Toffset-y: ~D~%" (-> this offset-y)) + (format #t "~1Tscale-x: ~A~%" (-> this scale-x)) + (format #t "~1Tscale-y: ~A~%" (-> this scale-y)) + (format #t "~1Talpha: ~A~%" (-> this alpha)) + (format #t "~1Tangle: ~A~%" (-> this angle)) + (format #t "~1Ttotal-time: ~D~%" (-> this total-time)) + (label cfg-4) + this + ) + +;; definition of type hud-vehicle +(deftype hud-vehicle (hud) + ((weapon-texture texture 49) + (gun-texture basic :overlay-at (-> weapon-texture 0)) + (missile-texture basic :overlay-at (-> weapon-texture 1)) + (grenade-texture basic :overlay-at (-> weapon-texture 2)) + (taserram-texture basic :overlay-at (-> weapon-texture 3)) + (mine-texture basic :overlay-at (-> weapon-texture 4)) + (shield-texture basic :overlay-at (-> weapon-texture 5)) + (target-texture basic 2) + (slot-roulette-active? symbol 2) + (button-out? symbol 2) + (weapon-picked? symbol 2) + (slot-roulette-start-time uint32 2) + (roulette-counter uint32 2) + (weapon-color uint8 2) + (selected-weapon uint8 2) + (powerup-level int32) + (last-light-level int8) + (light-bar-part-right-init basic) + (light-bar-part-right-filled basic) + (light-bar-part-left-init basic) + (light-bar-part-left-filled basic) + (current-light-eco float) + (current-green-eco float) + (current-blue-eco float) + (slot-weapon-color uint16 2) + (incoming? basic) + (light-eco-level float) + (light-eco-level-fx-start-time uint32) + (split-screen-offset-left-x float) + (split-screen-offset-right-x float) + (split-screen-offset-y float) + (hud-right-ammo-counter-1 hud-sprite :inline :overlay-at (-> sprites 0)) + (hud-right-ammo-counter-2 hud-sprite :inline :offset 3120) + (hud-right-light-underlay hud-sprite :inline :offset 3184) + (hud-right-light-ctrl-1 hud-sprite :inline :offset 3248) + (hud-right-light-ctrl-2 hud-sprite :inline :offset 3312) + (hud-right-light-ctrl-3 hud-sprite :inline :offset 3376) + (hud-right-light-bar hud-sprite :inline :offset 3440) + (hud-right-turbo-underlay hud-sprite :inline :offset 3504) + (hud-right-turbo-ctrl-1 hud-sprite :inline :offset 3568) + (hud-right-turbo-ctrl-2 hud-sprite :inline :offset 3632) + (hud-right-turbo-bar hud-sprite :inline :offset 3696) + (hud-right-display-weapon-field hud-sprite :inline :offset 3760) + (hud-right-upper-left hud-sprite :inline :offset 3824) + (hud-right-upper-right hud-sprite :inline :overlay-at (-> sprites 16)) + (hud-right-lower-right hud-sprite :inline :offset 3952) + (hud-right-lower-left hud-sprite :inline :offset 4016) + (hud-right-ammo-counter-overlay hud-sprite :inline :offset 4080) + (hud-right-ammo-counter-overlay-2 hud-sprite :inline :offset 4144) + (hud-right-weapon-icon-shadow hud-sprite :inline :offset 4208) + (hud-right-weapon-icon hud-sprite :inline :offset 4272) + (hud-right-display-shine hud-sprite :inline :offset 4336) + (hud-left-ammo-counter-1 hud-sprite :inline :offset 4400) + (hud-left-ammo-counter-2 hud-sprite :inline :offset 4464) + (hud-left-light-underlay hud-sprite :inline :offset 4528) + (hud-left-light-ctrl-1 hud-sprite :inline :offset 4592) + (hud-left-light-ctrl-2 hud-sprite :inline :offset 4656) + (hud-left-light-ctrl-3 hud-sprite :inline :overlay-at (-> sprites 32)) + (hud-left-light-bar hud-sprite :inline :offset 4784) + (hud-left-health-underlay hud-sprite :inline :offset 4848) + (hud-left-health-ctrl-1 hud-sprite :inline :offset 4912) + (hud-left-health-ctrl-2 hud-sprite :inline :offset 4976) + (hud-left-health-bar hud-sprite :inline :offset 5040) + (hud-left-display-weapon-field hud-sprite :inline :offset 5104) + (hud-left-upper-left hud-sprite :inline :offset 5168) + (hud-left-upper-right hud-sprite :inline :offset 5232) + (hud-left-lower-left hud-sprite :inline :offset 5296) + (hud-left-lower-right hud-sprite :inline :offset 5360) + (hud-left-ammo-counter-overlay hud-sprite :inline :offset 5424) + (hud-left-ammo-counter-overlay-2 hud-sprite :inline :offset 5488) + (hud-left-weapon-icon-shadow hud-sprite :inline :overlay-at (-> sprites 48)) + (hud-left-weapon-icon hud-sprite :inline :offset 5616) + (hud-left-display-shine hud-sprite :inline :offset 5680) + (hud-turbo-disabled hud-sprite :inline :offset 5744) + ) + (:methods + (hud-vehicle-method-30 () none) + (hud-vehicle-method-31 () none) + (hud-vehicle-method-32 () none) + (hud-vehicle-method-33 () none) + (hud-vehicle-method-34 () none) + (hud-vehicle-method-35 () none) + (hud-vehicle-method-36 () none) + (hud-vehicle-method-37 () none) + (hud-vehicle-method-38 () none) + (hud-vehicle-method-39 () none) + ) + ) + +;; definition for method 3 of type hud-vehicle +(defmethod inspect ((this hud-vehicle)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type hud inspect))) + (t9-0 this) + ) + (format #t "~2Tweapon-texture[49] @ #x~X~%" (-> this weapon-texture)) + (format #t "~2Tgun-texture: ~A~%" (-> this gun-texture)) + (format #t "~2Tmissile-texture: ~A~%" (-> this missile-texture)) + (format #t "~2Tgrenade-texture: ~A~%" (-> this grenade-texture)) + (format #t "~2Ttaserram-texture: ~A~%" (-> this taserram-texture)) + (format #t "~2Tmine-texture: ~A~%" (-> this mine-texture)) + (format #t "~2Tshield-texture: ~A~%" (-> this shield-texture)) + (format #t "~2Ttarget-texture[2] @ #x~X~%" (-> this target-texture)) + (format #t "~2Tslot-roulette-active?[2] @ #x~X~%" (-> this slot-roulette-active?)) + (format #t "~2Tbutton-out?[2] @ #x~X~%" (-> this button-out?)) + (format #t "~2Tweapon-picked?[2] @ #x~X~%" (-> this weapon-picked?)) + (format #t "~2Tslot-roulette-start-time[2] @ #x~X~%" (-> this slot-roulette-start-time)) + (format #t "~2Troulette-counter[2] @ #x~X~%" (-> this roulette-counter)) + (format #t "~2Tweapon-color[2] @ #x~X~%" (-> this weapon-color)) + (format #t "~2Tselected-weapon[2] @ #x~X~%" (-> this selected-weapon)) + (format #t "~2Tpowerup-level: ~D~%" (-> this powerup-level)) + (format #t "~2Tlast-light-level: ~D~%" (-> this last-light-level)) + (format #t "~2Tlight-bar-part-right-init: ~A~%" (-> this light-bar-part-right-init)) + (format #t "~2Tlight-bar-part-right-filled: ~A~%" (-> this light-bar-part-right-filled)) + (format #t "~2Tlight-bar-part-left-init: ~A~%" (-> this light-bar-part-left-init)) + (format #t "~2Tlight-bar-part-left-filled: ~A~%" (-> this light-bar-part-left-filled)) + (format #t "~2Tcurrent-light-eco: ~f~%" (-> this current-light-eco)) + (format #t "~2Tcurrent-green-eco: ~f~%" (-> this current-green-eco)) + (format #t "~2Tcurrent-blue-eco: ~f~%" (-> this current-blue-eco)) + (format #t "~2Tslot-weapon-color[2] @ #x~X~%" (-> this slot-weapon-color)) + (format #t "~2Tincoming?: ~A~%" (-> this incoming?)) + (format #t "~2Tlight-eco-level: ~f~%" (-> this light-eco-level)) + (format #t "~2Tlight-eco-level-fx-start-time: ~D~%" (-> this light-eco-level-fx-start-time)) + (format #t "~2Tsplit-screen-offset-left-x: ~f~%" (-> this split-screen-offset-left-x)) + (format #t "~2Tsplit-screen-offset-right-x: ~f~%" (-> this split-screen-offset-right-x)) + (format #t "~2Tsplit-screen-offset-y: ~f~%" (-> this split-screen-offset-y)) + (format #t "~2Thud-right-ammo-counter-1: #~%" (-> this sprites)) + (format #t "~2Thud-right-ammo-counter-2: #~%" (-> this hud-right-ammo-counter-2)) + (format #t "~2Thud-right-light-underlay: #~%" (-> this hud-right-light-underlay)) + (format #t "~2Thud-right-light-ctrl-1: #~%" (-> this hud-right-light-ctrl-1)) + (format #t "~2Thud-right-light-ctrl-2: #~%" (-> this hud-right-light-ctrl-2)) + (format #t "~2Thud-right-light-ctrl-3: #~%" (-> this hud-right-light-ctrl-3)) + (format #t "~2Thud-right-light-bar: #~%" (-> this hud-right-light-bar)) + (format #t "~2Thud-right-turbo-underlay: #~%" (-> this hud-right-turbo-underlay)) + (format #t "~2Thud-right-turbo-ctrl-1: #~%" (-> this hud-right-turbo-ctrl-1)) + (format #t "~2Thud-right-turbo-ctrl-2: #~%" (-> this hud-right-turbo-ctrl-2)) + (format #t "~2Thud-right-turbo-bar: #~%" (-> this hud-right-turbo-bar)) + (format + #t + "~2Thud-right-display-weapon-field: #~%" + (-> this hud-right-display-weapon-field) + ) + (format #t "~2Thud-right-upper-left: #~%" (-> this hud-right-upper-left)) + (format #t "~2Thud-right-upper-right: #~%" (-> this hud-right-upper-right)) + (format #t "~2Thud-right-lower-right: #~%" (-> this hud-right-lower-right)) + (format #t "~2Thud-right-lower-left: #~%" (-> this hud-right-lower-left)) + (format + #t + "~2Thud-right-ammo-counter-overlay: #~%" + (-> this hud-right-ammo-counter-overlay) + ) + (format + #t + "~2Thud-right-ammo-counter-overlay-2: #~%" + (-> this hud-right-ammo-counter-overlay-2) + ) + (format #t "~2Thud-right-weapon-icon-shadow: #~%" (-> this hud-right-weapon-icon-shadow)) + (format #t "~2Thud-right-weapon-icon: #~%" (-> this hud-right-weapon-icon)) + (format #t "~2Thud-right-display-shine: #~%" (-> this hud-right-display-shine)) + (format #t "~2Thud-left-ammo-counter-1: #~%" (-> this hud-left-ammo-counter-1)) + (format #t "~2Thud-left-ammo-counter-2: #~%" (-> this hud-left-ammo-counter-2)) + (format #t "~2Thud-left-light-underlay: #~%" (-> this hud-left-light-underlay)) + (format #t "~2Thud-left-light-ctrl-1: #~%" (-> this hud-left-light-ctrl-1)) + (format #t "~2Thud-left-light-ctrl-2: #~%" (-> this hud-left-light-ctrl-2)) + (format #t "~2Thud-left-light-ctrl-3: #~%" (-> this hud-left-light-ctrl-3)) + (format #t "~2Thud-left-light-bar: #~%" (-> this hud-left-light-bar)) + (format #t "~2Thud-left-health-underlay: #~%" (-> this hud-left-health-underlay)) + (format #t "~2Thud-left-health-ctrl-1: #~%" (-> this hud-left-health-ctrl-1)) + (format #t "~2Thud-left-health-ctrl-2: #~%" (-> this hud-left-health-ctrl-2)) + (format #t "~2Thud-left-health-bar: #~%" (-> this hud-left-health-bar)) + (format #t "~2Thud-left-display-weapon-field: #~%" (-> this hud-left-display-weapon-field)) + (format #t "~2Thud-left-upper-left: #~%" (-> this hud-left-upper-left)) + (format #t "~2Thud-left-upper-right: #~%" (-> this hud-left-upper-right)) + (format #t "~2Thud-left-lower-left: #~%" (-> this hud-left-lower-left)) + (format #t "~2Thud-left-lower-right: #~%" (-> this hud-left-lower-right)) + (format #t "~2Thud-left-ammo-counter-overlay: #~%" (-> this hud-left-ammo-counter-overlay)) + (format + #t + "~2Thud-left-ammo-counter-overlay-2: #~%" + (-> this hud-left-ammo-counter-overlay-2) + ) + (format #t "~2Thud-left-weapon-icon-shadow: #~%" (-> this hud-left-weapon-icon-shadow)) + (format #t "~2Thud-left-weapon-icon: #~%" (-> this hud-left-weapon-icon)) + (format #t "~2Thud-left-display-shine: #~%" (-> this hud-left-display-shine)) + (format #t "~2Thud-turbo-disabled: #~%" (-> this hud-turbo-disabled)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +(if #t + (set! *default-fast-curve* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 2.0 3.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jakx/levels/desert/desert-ocean_REF.gc b/test/decompiler/reference/jakx/levels/desert/desert-ocean_REF.gc new file mode 100644 index 0000000000..b05d82b24f --- /dev/null +++ b/test/decompiler/reference/jakx/levels/desert/desert-ocean_REF.gc @@ -0,0 +1,10556 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *ocean-colors-desert*, type ocean-colors +(define *ocean-colors-desert* + (new 'static 'ocean-colors :colors (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x2d :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x31 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x32 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x22 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x23 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x26 :g #x34 :b #x30 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x33 :b #x31 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x1d :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x35 :b #x32 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2c :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2b :b #x2c :a #x80) + (new 'static 'rgba :r #x19 :g #x28 :b #x24 :a #x80) + (new 'static 'rgba :r #x1d :g #x2c :b #x26 :a #x80) + (new 'static 'rgba :r #x1e :g #x2d :b #x29 :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1b :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2d :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2c :b #x2a :a #x80) + (new 'static 'rgba :r #x21 :g #x2a :b #x20 :a #x80) + (new 'static 'rgba :r #x23 :g #x2a :b #x1e :a #x80) + (new 'static 'rgba :r #x23 :g #x2a :b #x1f :a #x80) + (new 'static 'rgba :r #x23 :g #x2c :b #x22 :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1d :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x33 :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x19 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x2d :b #x29 :a #x80) + (new 'static 'rgba :r #x26 :g #x2a :b #x1b :a #x80) + (new 'static 'rgba :r #x2a :g #x2b :b #x1a :a #x80) + (new 'static 'rgba :r #x2b :g #x2c :b #x1b :a #x80) + (new 'static 'rgba :r #x2b :g #x2c :b #x1b :a #x80) + (new 'static 'rgba :r #x25 :g #x2c :b #x21 :a #x80) + (new 'static 'rgba :r #x20 :g #x30 :b #x2d :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x19 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1c :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1b :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x20 :g #x2d :b #x27 :a #x80) + (new 'static 'rgba :r #x2d :g #x2b :b #x17 :a #x80) + (new 'static 'rgba :r #x31 :g #x2c :b #x16 :a #x80) + (new 'static 'rgba :r #x32 :g #x2d :b #x17 :a #x80) + (new 'static 'rgba :r #x32 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x2e :g #x2d :b #x1a :a #x80) + (new 'static 'rgba :r #x25 :g #x2e :b #x24 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x32 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x2e :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x2d :b #x24 :a #x80) + (new 'static 'rgba :r #x32 :g #x2c :b #x15 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x13 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2e :b #x16 :a #x80) + (new 'static 'rgba :r #x2b :g #x2d :b #x1d :a #x80) + (new 'static 'rgba :r #x22 :g #x31 :b #x2d :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x24 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1f :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x21 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x2a :g #x2e :b #x20 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x2f :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x24 :g #x2e :b #x25 :a #x80) + (new 'static 'rgba :r #x1d :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x1a :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2c :a #x80) + (new 'static 'rgba :r #x25 :g #x2f :b #x28 :a #x80) + (new 'static 'rgba :r #x2e :g #x2e :b #x1c :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2e :b #x14 :a #x80) + (new 'static 'rgba :r #x33 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x28 :g #x2c :b #x1f :a #x80) + (new 'static 'rgba :r #x20 :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x19 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x21 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x26 :g #x2f :b #x26 :a #x80) + (new 'static 'rgba :r #x30 :g #x2e :b #x1a :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x2d :g #x2c :b #x1b :a #x80) + (new 'static 'rgba :r #x22 :g #x2f :b #x2a :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x2d :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1b :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2c :a #x80) + (new 'static 'rgba :r #x26 :g #x30 :b #x28 :a #x80) + (new 'static 'rgba :r #x31 :g #x2e :b #x19 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x2f :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x23 :g #x2d :b #x26 :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x22 :g #x33 :b #x31 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x2f :b #x29 :a #x80) + (new 'static 'rgba :r #x30 :g #x2e :b #x1a :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x15 :a #x80) + (new 'static 'rgba :r #x29 :g #x2c :b #x1d :a #x80) + (new 'static 'rgba :r #x20 :g #x30 :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x1f :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x35 :g #x40 :b #x3a :a #x80) + (new 'static 'rgba :r #x2f :g #x3d :b #x37 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x36 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x23 :g #x2f :b #x28 :a #x80) + (new 'static 'rgba :r #x2d :g #x2d :b #x1c :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x32 :g #x2d :b #x17 :a #x80) + (new 'static 'rgba :r #x24 :g #x2e :b #x27 :a #x80) + (new 'static 'rgba :r #x1c :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x31 :b #x30 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x2f :b #x2d :a #x80) + (new 'static 'rgba :r #x1e :g #x2f :b #x2b :a #x80) + (new 'static 'rgba :r #x22 :g #x2f :b #x28 :a #x80) + (new 'static 'rgba :r #x2d :g #x2e :b #x1e :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x36 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x34 :g #x2d :b #x15 :a #x80) + (new 'static 'rgba :r #x2d :g #x2d :b #x1b :a #x80) + (new 'static 'rgba :r #x23 :g #x30 :b #x2a :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x1a :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x33 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x32 :a #x80) + (new 'static 'rgba :r #x1d :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x1c :g #x2e :b #x2d :a #x80) + (new 'static 'rgba :r #x20 :g #x2f :b #x2a :a #x80) + (new 'static 'rgba :r #x2a :g #x2e :b #x1f :a #x80) + (new 'static 'rgba :r #x31 :g #x2e :b #x19 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x15 :a #x80) + (new 'static 'rgba :r #x35 :g #x2d :b #x14 :a #x80) + (new 'static 'rgba :r #x33 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x2f :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x24 :g #x2c :b #x21 :a #x80) + (new 'static 'rgba :r #x1a :g #x2a :b #x29 :a #x80) + (new 'static 'rgba :r #x1c :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1d :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x36 :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x32 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x1c :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x21 :g #x2f :b #x29 :a #x80) + (new 'static 'rgba :r #x2b :g #x2d :b #x1d :a #x80) + (new 'static 'rgba :r #x31 :g #x2d :b #x18 :a #x80) + (new 'static 'rgba :r #x33 :g #x2d :b #x16 :a #x80) + (new 'static 'rgba :r #x30 :g #x2d :b #x19 :a #x80) + (new 'static 'rgba :r #x27 :g #x2d :b #x20 :a #x80) + (new 'static 'rgba :r #x22 :g #x31 :b #x2d :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x35 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x37 :g #x42 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x35 :g #x3f :b #x3c :a #x80) + (new 'static 'rgba :r #x1b :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x22 :g #x2d :b #x24 :a #x80) + (new 'static 'rgba :r #x2a :g #x2d :b #x1d :a #x80) + (new 'static 'rgba :r #x30 :g #x2c :b #x17 :a #x80) + (new 'static 'rgba :r #x2e :g #x2c :b #x18 :a #x80) + (new 'static 'rgba :r #x24 :g #x2b :b #x20 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x2f :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x30 :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x36 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x31 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x32 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x21 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x30 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x35 :g #x42 :b #x3d :a #x80) + (new 'static 'rgba :r #x2a :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x38 :g #x42 :b #x3e :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x2e :a #x80) + (new 'static 'rgba :r #x2d :g #x35 :b #x2b :a #x80) + (new 'static 'rgba :r #x2a :g #x2c :b #x1c :a #x80) + (new 'static 'rgba :r #x2d :g #x2c :b #x19 :a #x80) + (new 'static 'rgba :r #x2e :g #x32 :b #x25 :a #x80) + (new 'static 'rgba :r #x21 :g #x32 :b #x30 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x31 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x20 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2f :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x32 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2d :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3d :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x30 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x36 :g #x41 :b #x3d :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x2e :b #x2d :a #x80) + (new 'static 'rgba :r #x2d :g #x36 :b #x2c :a #x80) + (new 'static 'rgba :r #x2e :g #x33 :b #x25 :a #x80) + (new 'static 'rgba :r #x2e :g #x35 :b #x2a :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x1d :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x39 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x2f :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x30 :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x2a :g #x3d :b #x39 :a #x80) + (new 'static 'rgba :r #x2a :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3c :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x32 :a #x80) + (new 'static 'rgba :r #x25 :g #x33 :b #x2e :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x33 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x1a :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x28 :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x33 :g #x42 :b #x3d :a #x80) + (new 'static 'rgba :r #x2d :g #x3f :b #x3a :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x38 :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1a :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x36 :g #x43 :b #x3d :a #x80) + (new 'static 'rgba :r #x2e :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3b :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x1c :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2e :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x34 :g #x42 :b #x3c :a #x80) + (new 'static 'rgba :r #x2e :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x2e :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x1e :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x33 :g #x41 :b #x3c :a #x80) + (new 'static 'rgba :r #x2c :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x36 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2e :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x21 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x31 :b #x30 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x30 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x29 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x3b :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3b :a #x80) + (new 'static 'rgba :r #x1f :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x33 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1d :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x16 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x1b :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x2d :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x34 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x21 :g #x3a :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x3a :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x3b :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x1b :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2f :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x19 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x21 :g #x3a :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x1f :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x3b :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x35 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x23 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2f :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x27 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x32 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x24 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1d :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x33 :g #x3f :b #x3b :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3e :a #x80) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x26 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x25 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2e :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x3a :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x31 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x1d :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x20 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x21 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x23 :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x20 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x34 :g #x40 :b #x3c :a #x80) + (new 'static 'rgba :r #x2b :g #x3c :b #x3a :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1f :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3d :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x23 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x20 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x1e :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x22 :g #x34 :b #x34 :a #x80) + (new 'static 'rgba :r #x27 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x3a :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x39 :b #x3d :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x30 :g #x3d :b #x3a :a #x80) + (new 'static 'rgba :r #x2c :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1f :g #x38 :b #x3c :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x25 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x27 :g #x36 :b #x34 :a #x80) + (new 'static 'rgba :r #x1f :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x23 :g #x39 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x24 :g #x39 :b #x3b :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x39 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x33 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x37 :b #x35 :a #x80) + (new 'static 'rgba :r #x32 :g #x3e :b #x39 :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x37 :g #x40 :b #x3b :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x2c :g #x3b :b #x37 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1e :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x1d :g #x37 :b #x3c :a #x80) + (new 'static 'rgba :r #x21 :g #x38 :b #x3d :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x3a :a #x80) + (new 'static 'rgba :r #x25 :g #x35 :b #x33 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xb :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x21 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x36 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x2c :g #x3a :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x34 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x24 :g #x34 :b #x33 :a #x80) + (new 'static 'rgba :r #x2a :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x1c :g #x34 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1d :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x1d :g #x36 :b #x3b :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3b :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x3b :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x39 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x3a :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x37 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #xc :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x22 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x2b :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x32 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x33 :g #x3e :b #x3a :a #x80) + (new 'static 'rgba :r #x29 :g #x3a :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x28 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x22 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1b :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1c :g #x35 :b #x3a :a #x80) + (new 'static 'rgba :r #x1f :g #x37 :b #x3b :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x20 :g #x32 :b #x31 :a #x80) + (new 'static 'rgba :r #x1a :g #x2f :b #x2e :a #x80) + (new 'static 'rgba :r #x1e :g #x32 :b #x32 :a #x80) + (new 'static 'rgba :r #x21 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x35 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x2d :g #x3b :b #x39 :a #x80) + (new 'static 'rgba :r #x28 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x35 :b #x34 :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x24 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x3b :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x3a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x39 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x27 :a #x80) + (new 'static 'rgba :r #x19 :g #x2d :b #x2d :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x22 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x2f :g #x3c :b #x38 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xd :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2c :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1b :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x39 :a #x80) + (new 'static 'rgba :r #x1b :g #x34 :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x39 :a #x80) + (new 'static 'rgba :r #x29 :g #x38 :b #x38 :a #x80) + (new 'static 'rgba :r #x1e :g #x30 :b #x30 :a #x80) + (new 'static 'rgba :r #x2b :g #x38 :b #x35 :a #x80) + (new 'static 'rgba :r #x23 :g #x33 :b #x32 :a #x80) + (new 'static 'rgba :r #x1d :g #x30 :b #x2f :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x2d :g #x3a :b #x37 :a #x80) + (new 'static 'rgba :r #x25 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x35 :a #x80) + (new 'static 'rgba :r #x24 :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x26 :g #x38 :b #x36 :a #x80) + (new 'static 'rgba :r #x2e :g #x3b :b #x38 :a #x80) + (new 'static 'rgba :r #x26 :g #x39 :b #x38 :a #x80) + (new 'static 'rgba :r #x1f :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x20 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x36 :a #x80) + (new 'static 'rgba :r #x10 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x32 :b #x39 :a #x80) + (new 'static 'rgba :r #x19 :g #x32 :b #x38 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x32 :b #x38 :a #x80) + (new 'static 'rgba :r #x1d :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x22 :g #x36 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x37 :a #x80) + (new 'static 'rgba :r #x26 :g #x37 :b #x36 :a #x80) + (new 'static 'rgba :r #x25 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x27 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x23 :g #x36 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x22 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x2b :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x29 :g #x39 :b #x37 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x2a :g #x39 :b #x36 :a #x80) + (new 'static 'rgba :r #x24 :g #x38 :b #x37 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x32 :b #x38 :a #x80) + (new 'static 'rgba :r #x18 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x1c :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x1f :g #x35 :b #x38 :a #x80) + (new 'static 'rgba :r #x23 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x21 :g #x37 :b #x38 :a #x80) + (new 'static 'rgba :r #x1a :g #x33 :b #x36 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x34 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x34 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x33 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x36 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #xe :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x11 :g #x2d :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x37 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x37 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x34 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xe :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2b :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #xf :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba :r #x10 :g #x2c :b #x32 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +;; definition for symbol *ocean-near-indices-desert*, type ocean-near-indices +(define *ocean-near-indices-desert* + (new 'static 'ocean-near-indices + :data (new 'static 'inline-array ocean-near-index 400 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xffff #xffff #xffff #x2) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x3 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x16 #x0 #x0 #x0 #x4) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xb + #x6 + #x6 + #xc + #x17 + #xffff + #xffff + #x18 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x19 #x9 #x1a #x0 #xffff #xffff #xffff #x27) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x28 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x9 #x29 #xffff #x2a) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x1b #x0 #x0 #xffff #xffff #x2b #x2c) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x6 #x7 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x2d #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x2e) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #x6 #x1c #x6 #x2a #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x11 #x0 #x0 #x0 #x2a #x2b #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xd #x0 #x1d #x1e #x1f #x9 #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x5 + #x6 + #x7 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x2f) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x11 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #xf #x9 #x0 #x20 #xffff #xffff #x0 #x30 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x10 #x11 #x12 #x0 #xffff #x21 #x22 #x0 #xffff #xffff #x31 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x32 #x6 #x6 #x11) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x23 #x6 #x0 #x33 #x34 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x11 #x0 #x0 #x0 #x35 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x8 #x9 #xa #x0 #x13 #xffff #x14 #x0 #x24 #xffff #x25 #x0 #x0 #x36 #x37) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x15 #x0 #x0 #x0 #x26 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xffff #x0 #x0 #x0 #x4b #x0 #x0 #x0 #x58 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x59 + #xffff + #xffff + #xffff + #x58 + #x65 + #x66 + #x67 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x38 + #xffff + #x4c + #x4d + #x44 + #x5a + #x5b + #x0 + #x0 + #x68 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x39 + #xffff + #xffff + #xffff + #x4e + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x8 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x3a + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x2c + #x6 + #x2e + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x3c + #x11 + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x1a + #x0 + #x0 + #x8 + #xffff + #xffff + #x5c + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x2e + #x9 + #x9 + #x10 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x1b + #x0 + #x0 + #x0 + #xffff + #x3a + #x9 + #x9 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x3d + #xffff + #x8 + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x3e + #x6 + #x6 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x3f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x40 #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8 #xffff #x5d #x69 #x56 #xffff #x47) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x41 #x42 #xffff #x0 #x0 #x4f #x42 #x0 #x0 #x0 #x5e #x9 #x9 #x6a #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x43 #x44 #x0 #x50 #x51 #x0 #x0 #x37 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x45 + #x52 + #xffff + #xffff + #xe + #x34 + #xffff + #x5f + #x60 + #x6b + #x6c + #x6d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x46 + #xffff + #xffff + #x0 + #x53 + #x54 + #xffff + #x0 + #x0 + #x61 + #xffff + #x0 + #x0 + #x63 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x47 + #x48 + #x0 + #x0 + #xffff + #xffff + #xffff + #x3a + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x55 #x0 #x0 #x0 #x57 #x62 #x0 #x0 #xffff #x5d #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x8 + #x9 + #x0 + #x8 + #x56 + #xffff + #x0 + #x63 + #xffff + #xffff + #x0 + #x6e + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x49 + #x4a + #x0 + #x0 + #xffff + #x57 + #x11 + #x0 + #xffff + #xffff + #x64 + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x7f #x0 #x0 #x7f #x34) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x6f + #x6 + #x0 + #x8 + #xffff + #xffff + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x70 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x71 + #x6 + #x72 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x56 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x73 #x74 #x0 #x7a #x7b #x0 #x0 #xe #x0 #x0 #x0 #x85 #x86 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x75 #x76 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xf) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x77 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x80 + #xffff + #xffff + #x50 + #xffff + #xffff + #xffff + #x5d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5f #x78 #x0 #x0 #x7c #x0 #x0 #x0 #x81 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x79 #xffff #x0 #x0 #x7d #x42 #x0 #x0 #x0 #x82 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #xffff #x31 #x0 #xffff #x25 #x7e #x0 #x83 #x84 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8a #x9 #x9 #x9 #x1f) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x62 + #x0 + #x89 + #xffff + #xffff + #xffff + #x1f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x8 + #x6 + #x1f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x87 + #x6 + #x11 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #x5 #x11 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x6 #x6 #x0 #x0 #xffff #xffff #x0 #x0 #x8b #xffff #x0 #x0 #x3b #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x72 + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x47 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x88 + #x6 + #x72 + #x10 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x2d #x0 #x0 #x0 #x5 #x11 #x0 #x0 #xffff #x45 #x0 #x0 #xffff #xffff #x8d #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x9 #x9 #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8c #x48 #x0 #x0 #xffff #x45 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x8e #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x8a #x1f) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x8f + #x6 + #x6 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x90 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x91 + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x47 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x9 #x9 #x92 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x46 #xffff #x0 #x0 #x46 #xffff #x0 #x0 #x94 #x52 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x93 + #x0 + #xffff + #xffff + #xe + #x0 + #xffff + #xffff + #x95 + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x4c + #x96 + #x0 + #xffff + #x95 + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + #xffff + #x97 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x4 #x0 #x0 #x99 #xffff #x0 #x0 #x46 #xffff #x0 #x0 #x53 #x9a) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x98 #x0 #x0 #xffff #x98 #x0 #x0 #xffff #x98 #x0 #x0 #x4c #x74 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x9b #x0 #x0 #x0 #x4 #x0 #x0 #x34 #xffff #x0 #x3d #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x9f + #xa0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #x66 + #x66 + #x9e + #x44 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x95 #x0 #x0 #x0 #x9c #x0 #x0 #x0 #x44 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xa4 + #x9a + #xffff + #x0 + #x0 + #x9b + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xa2 + #xffff + #xffff + #xffff + #xa5 + #xffff + #xffff + #x5f + #xa6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5a #xa1 #x0 #x0 #xa3 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xa7 #x54 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xa8 + #x0 + #xffff + #xffff + #xaa + #x0 + #xffff + #xffff + #x9c + #x0 + #xffff + #xab + #x44 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xa9 #x0 #x0 #x80 #xffff #x0 #x8 #x34 #xffff #x0 #xac #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x6 + #x11 + #x0 + #x0 + #xffff + #x47 + #x48 + #x0 + #xffff + #xffff + #x45 + #x0 + #xffff + #xffff + #x47 + #xad + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xae #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x54 + #xffff + #xffff + #xffff + #xb0 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #xb5 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #xb6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #xaf #x0 #x0 #xb1 #x44 #x0 #x0 #x81 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xb4 + #xffff + #xffff + #x0 + #xb7 + #x42 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #xb2 + #xffff + #xffff + #xffff + #xe + #xffff + #xffff + #xffff + #xb8 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xb9 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #x54 + #xffff + #xffff + #x0 + #xbe + #xbf + #xffff + #x0 + #x0 + #x58 + #xc0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x54 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x45 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xc1 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xba #xbb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #xffff #xffff #xb6 #xbc #x6c #x83 #xbd #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xc2 #x65 #xc3 #xffff #x0 #x0 #xc5 #xc6 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xc9 + #xca + #xcb + #xffff + #x0 + #x0 + #x58 + #xce + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x65 + #x54 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x3e + #xc4 + #x0 + #xffff + #xffff + #x19 + #xc7 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xc8 + #x0 + #x0 + #x0 + #xffff + #x2 + #xcc + #x6 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xcd #x0 #x0 #x0 #xffff #xcf #xc4 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x1d #xd3 #x0 #x0 #xd5 #xffff #x0 #x0 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x9 + #x10 + #x11 + #x0 + #xffff + #xffff + #x19 + #xd6 + #xffff + #xffff + #xffff + #x19 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xd6 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xd0 #xd1 #x66 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xd4 + #x54 + #xffff + #xffff + #x0 + #xbe + #xbf + #xffff + #x0 + #x0 + #x58 + #xd9 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x6c + #xda + #xdb + #xdb + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdc + #x52 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x73 + #xdd + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xde + #xdb + #xdb + #xdb + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #xdf + #x6c + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x25 + #xe0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xd2 + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xd7 + #xd8 + #x0 + #xe1 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xffff #xffff #x0 #x0 #xe6 #xffff #x0 #x0 #xee #x9a #x0 #x0 #x0 #x54) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x19 + #xe2 + #x0 + #x0 + #xffff + #x57 + #x11 + #x0 + #xffff + #xffff + #xef + #x0 + #xffff + #xffff + #x45 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x8a #x0 #x0 #x0 #x34) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xe7 + #x9 + #xe8 + #xc4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x3a #x9 #xf0 #xf1 #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xf3 #x7 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xbe #x54 #xffff #x0 #x0 #xbe #x54 #x0 #x0 #x0 #xbe #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x54 + #xffff + #xffff + #x0 + #xf4 + #xd1 + #xbf + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xf5 + #x6c + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x6c + #x6c + #x6c + #xf6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xdb + #xdb + #xdb + #xf7 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xe9 + #x66 + #x9f + #xea + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x4c #xe3 #xbd #x0 #xea #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #xeb #xec #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xe4 + #xcb + #xffff + #xffff + #x0 + #x75 + #xed + #xffff + #x0 + #x0 + #x75 + #xffff + #x0 + #x0 + #x0 + #xf8 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x66 + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #xcb + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xf5 + #xf9 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x25 #xe5 #x0 #x5f #xe5 #x0 #x0 #xf2 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x104 #x0 #x0 #x0 #x58 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x10d + #xffff + #xffff + #xffff + #x116 + #x117 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x19 + #xfa + #xffff + #xffff + #xffff + #x105 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #xe + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x1 #xffff #x0 #x0 #x30 #xffff #x0 #x0 #x46 #xffff #x0 #x0 #x46 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x19 + #xe8 + #xc4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x6 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x2d + #x0 + #x0 + #x75 + #xffff + #xf3 + #x11 + #x0 + #xffff + #xffff + #x10e + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xfb + #xffff + #xffff + #xffff + #x0 + #x106 + #xffff + #xffff + #x0 + #x75 + #xffff + #xffff + #x0 + #x0 + #x9b + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x2 + #x118 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xfc + #x56 + #xffff + #xffff + #x107 + #x42 + #xffff + #xffff + #x0 + #x10f + #x110 + #x6c + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xfd #x0 #x0 #x0 #xffff #x108 #x0 #x0 #x111 #x44 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xfe #xdb #xdb #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xe1 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xff #xdb #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x100 #x101 #x66 #xffff #x0 #x0 #x0 #x109 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x6c + #xbb + #xcb + #xffff + #x0 + #x0 + #x58 + #xdb + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #x100 + #x112 + #x113 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x66 + #x66 + #x114 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x10a + #x6c + #x6c + #x6c + #xe5 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x10b + #x6c + #x6c + #x10c + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x9d #x102 #x103 #x0 #x44 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x62 #x0 #x115 #xffff #x47 #x0 #x46 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x55 #x0 #x0 #x0 #x98 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x119 #x6c #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xcb #xffff #xffff #x11a #x58 #x120 #x121 #x44 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x124 + #xffff + #x0 + #x0 + #xb3 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x122 + #xffff + #x0 + #x0 + #xb3 + #xffff + #x0 + #x0 + #xb3 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x11b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xc4 + #x0 + #x0 + #x0 + #xffff + #x2 + #x9 + #x1a + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x123 + #x72 + #x9 + #x9 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xf0 + #x7 + #x0 + #x0 + #xffff + #x5 + #xc4 + #x0 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x129 #x9 #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x9 #x9 #x9 #x3b) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xb #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x36 + #x11c + #x36 + #x11d + #x0 + #x0 + #x0 + #x0 + #x6 + #x6 + #x6 + #x6 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x6 #x6 #x6 #xffff #xffff #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x125 + #x9 + #x126 + #x127 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x128 #x0 #x0 #xffff #xffff #x12a #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x2c #xc4 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x11e #x66 #x11f #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xe7 #x2e) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #xb3 + #xffff + #x0 + #x0 + #x12d + #xffff + #x0 + #x8a + #xffff + #xffff + #x3b + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #xe + #x0 + #xffff + #xffff + #x19 + #x12e + #xffff + #xffff + #xffff + #x130 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x123 + #x12b + #xffff + #x0 + #x46 + #xffff + #xffff + #x0 + #x12f + #xffff + #xffff + #x11 + #x0 + #xd1 + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x67 + #xc6 + #x66 + #x42 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x67 + #x131 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #x66 + #xcb + #xffff + #x44 + #x0 + #x75 + #x52 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x2b + #x9 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x12c + #x6 + #x7 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x129 + #x9 + #x88 + #xc4 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x3a #x9 #xc7 #xc4 #xffff #xffff #xffff #x2) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x88 #x6 #x6 #x6) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #x6 #x6 #x6) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x6 #xc4 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x28 + #xffff + #x0 + #x3d + #xffff + #xffff + #x3d + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x132 + #x2e + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x133 + #x0 + #x0 + #x0 + #x85 + #x11 + #x0 + #x0 + #xffff + #x2b + #xe8 + #xc4 + #xffff + #xffff + #xffff + #x19 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xf4 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xf0 #xf1 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x110 #x6c #x6c #x6c #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x13b #x9 #x9 #x9) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x6c #x134 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x13c #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x135 #x34 #x0 #x0 #x75 #x139 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x120 + #xffff + #xffff + #xffff + #x0 + #x52 + #xffff + #xffff + #x0 + #x46 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x19 + #x6a + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x136 + #x137 + #x9 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xf0 + #x138 + #x0 + #x0 + #xffff + #x19 + #x13a + #x0 + #xffff + #xffff + #x85 + #xc4 + #xffff + #xffff + #xffff + #x13d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x13e #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x141 #x0 #x0 #x0 #x46) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xfd + #x0 + #x0 + #xffff + #xffff + #xffff + #x140 + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x80 + #x142 + #x6 + #x3d + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x13f + #xffff + #xffff + #xffff + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x104 #x0 #x0 #x0 #x144 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + #x0 + #x59 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x143 + #xffff + #xffff + #xffff + #x98 + #xffff + #xffff + #xffff + #x146 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xc4 #x0 #x0 #x0 #x147 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x58 #xf8 #xffff #x0 #x0 #x0 #x148 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x54 + #xffff + #xffff + #xffff + #x116 + #x54 + #xffff + #xffff + #x0 + #x14a + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x95 #x0 #x0 #x0 #x31 #x0 #x0 #x0 #x149 #x0 #x0 #x0 #xffff #x14b #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x52 #xffff #x0 #x0 #x14e #xffff #x0 #x0 #x0 #xffff #x0 #x0 #x0 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #x14f + #xffff + #xffff + #xffff + #x151 + #x4c + #x66 + #x9e + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x66 #x66 #x66 #xffff #x0 #x0 #x0 #x150 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #x110 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x14c + #x14d + #x0 + #xffff + #xffff + #x35 + #x0 + #xffff + #xffff + #x152 + #xc4 + #xffff + #xffff + #xffff + #x153 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x1 + #xffff + #x0 + #x154 + #x155 + #xffff + #x0 + #xac + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x157 + #xffff + #xffff + #x159 + #x26 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x14f #x0 #x0 #x0 #x156 #x0 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x135 + #xffff + #xffff + #x0 + #x155 + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x158 + #xffff + #xffff + #xffff + #x5d + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x135 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x73 + #xffff + #xffff + #x5a + #x15b + #xffff + #x4c + #x15d + #x0 + #xffff + #x14f + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x67 #x6c #x65 #x66 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + #x0 + #xdb + #xdb + #x52 + #x0 + #x0 + #x0 + #x46 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x15a + #x0 + #xffff + #xb1 + #x103 + #x0 + #x4c + #x15e + #x0 + #x0 + #x160 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x123 #x3f #x0 #x135 #x155 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x15c + #xffff + #xffff + #xffff + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x31 + #xffff + #xffff + #x5f + #x7e + #xffff + #xffff + #x15f + #x0 + #xffff + #x161 + #x103 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x162 #x0 #x0 #x0 #x34 #x0 #x0 #x0 #x169 #x0 #x0 #x0 #x116) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x16c + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x5d + #x0 + #x0 + #xffff + #x45 + #x0 + #x0 + #xffff + #xffff + #x16a + #x0 + #xffff + #xffff + #x16d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5f + #xffff + #xffff + #xffff + #x165 + #xffff + #xffff + #x5f + #x26 + #xffff + #xffff + #x165 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x26 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x99 #x0 #x0 #x135 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x13f + #x163 + #xffff + #xffff + #x166 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x167 + #xffff + #xffff + #x16b + #x44 + #xffff + #xffff + #x5d + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x73 #x67 #xbb #x66 #x168 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x66 #x67 #x6c #x66 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x164 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x16e + #xffff + #xffff + #xffff + #x0 + #x145 + #xffff + #xffff + #x0 + #x0 + #x175 + #xffff + #x0 + #x0 + #x58 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xe + #x0 + #xffff + #xffff + #xffff + #x171 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x0 + #xf1 + #x0 + #x0 + #x0 + #xffff + #x19 + #x9 + #x9 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x135 + #xffff + #x0 + #x172 + #x155 + #xffff + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x16f + #x0 + #xffff + #x173 + #x44 + #x0 + #xffff + #xb6 + #x0 + #x0 + #x4c + #x51 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x170 #xffff #x0 #x0 #x174 #xffff #x0 #x0 #x176 #xffff #x0 #x0 #x0 #xf8) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x5d + #x0 + #xffff + #xffff + #x177 + #x0 + #xffff + #x4c + #x178 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x135 + #xffff + #x0 + #x135 + #x155 + #xffff + #x181 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9f + #x6c + #x66 + #x179 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x73 + #x179 + #xffff + #x17c + #xbd + #x0 + #x25 + #x17f + #x0 + #x0 + #x182 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x17a #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xf8 + #xffff + #xffff + #xffff + #x0 + #xf8 + #xffff + #xffff + #x0 + #x0 + #xf8 + #x42 + #x0 + #x0 + #x0 + #xf4 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xbf + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x17d + #x17e + #xffff + #x180 + #x103 + #x0 + #x43 + #x103 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x50 #x17b #x0 #x0 #xbd #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x99 #x0 #x0 #x0 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x183 + #x155 + #x185 + #x155 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x14f + #xffff + #xffff + #xffff + #x186 + #xffff + #xffff + #x5f + #x188 + #xffff + #x5a + #x17a + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xff + #x54 + #xffff + #xffff + #x0 + #x187 + #xffff + #xffff + #x0 + #xff + #xbf + #xffff + #x0 + #x0 + #x7d + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #xb6 + #xffff + #xffff + #xffff + #x189 + #xffff + #xffff + #x16b + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x184 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xffff #x0 #x0 #x0 #x52 #x0 #x0 #x0 #x14e #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #xffff + #x5a + #x139 + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xcb + #xffff + #xffff + #xffff + #x18c + #xdb + #x6c + #xc6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x66 + #x54 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5f #x17f #x0 #x0 #xb6 #x0 #x0 #x0 #x45 #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x135 + #xffff + #x0 + #x0 + #x18b + #xffff + #x0 + #x0 + #x18d + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x18a + #x0 + #xffff + #x161 + #x103 + #x0 + #x173 + #x103 + #x0 + #x0 + #x95 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x145 #xffff #xffff #x0 #x0 #x120 #x117 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x66 + #xffff + #x4c + #x67 + #x0 + #xdb + #x190 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5a #x18e #x0 #x0 #x18e #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xf4 #x65 #xffff #x0 #x0 #x0 #x52 #x0 #x0 #x0 #x122 #x0 #x0 #x0 #xb3) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x5f + #xffff + #xffff + #xffff + #xb6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xb6 #x0 #x0 #x0 #x9c #x0 #x0 #x0 #x191 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x18f #x0 #x0 #x0 #xff #x0 #x0 #x0 #x192 #x0 #x0 #x0 #x193) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #x50 + #x17b + #xffff + #xffff + #x31 + #x0 + #xffff + #xab + #x44 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x51 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x144 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x135) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x5d + #xffff + #xffff + #xffff + #x45 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x195 #x0 #x0 #x0 #x85 #xc4 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #xffff #x0 #x0 #x0 #xffff #x0 #x0 #x0 #xffff #x0 #x0 #x192 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x31 #x0 #x0 #x5f #x194 #x0 #x0 #xe #x0 #x0 #x0 #x19 #x196 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x170 #x0 #x0 #x0 #x34 #x0 #x0 #x89 #xffff #x0 #x0 #xac #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x197 + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + #xffff + #x85 + #xc4 + #x0 + #xffff + #xffff + #x19a + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x193 + #xffff + #x0 + #x198 + #xffff + #xffff + #x99 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x98 + #x0 + #x0 + #xffff + #x199 + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + #xffff + #x5d + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x162 #x9 #x0 #x0 #xffff #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x19e #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x19f + #xffff + #x0 + #x135 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x4c + #x19b + #xffff + #xffff + #x95 + #x0 + #xffff + #xffff + #xaf + #x0 + #xffff + #x157 + #x103 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x135 #xf #x0 #x1a0 #x56 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x0 + #x19c + #x0 + #x135 + #x90 + #xffff + #x3b + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x43 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xdb + #x18f + #xffff + #x73 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xcb + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #x73 + #x17b + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x19d #x0 #x0 #x5f #x26 #x0 #x0 #x17b #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x59 #xffff #x0 #x0 #x18c #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1a1 #x0 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xb3 + #xffff + #xffff + #x0 + #x46 + #xffff + #xffff + #x0 + #x34 + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x67 + #x1b2 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x1a7 + #xdb + #xf5 + #x17a + #x0 + #x0 + #x103 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x157 #x103 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x135 + #x155 + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #x5f + #x6c + #x121 + #xffff + #x1ad + #x0 + #x0 + #xffff + #x85 + #xc4 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x1a8 + #xffff + #xffff + #xffff + #xff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x10a + #x1a9 + #x65 + #x66 + #x5d + #x0 + #x0 + #x0 + #x5d + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x43 + #xbd + #xcb + #x4c + #x1aa + #x0 + #xff + #x85 + #xc4 + #x135 + #x0 + #xed + #x2b + #x56 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xff #x1a2 #x17f #x0 #x0 #x0 #x0 #x1ae #x1af #x0 #x0 #xffff #x1b3 #x1b4 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x1a3 + #x52 + #xffff + #xffff + #x0 + #x1ab + #xffff + #xffff + #x0 + #x1b0 + #xffff + #xffff + #x0 + #x1b5 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x1b1 + #xffff + #x4c + #x1b6 + #x103 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x4c + #x66 + #x164 + #xdb + #x190 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1a4 #x1a5 #x1a6 #x0 #x1ac #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x89 + #xffff + #xffff + #xffff + #xb3 + #xffff + #xffff + #xffff + #x1c0 + #xffff + #xffff + #xffff + #x58 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #xb6 + #xffff + #xffff + #x4c + #x1c5 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x25 #x134 #x0 #x0 #x51 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x135 #x0 #x0 #x0 #x1c1 #x0 #x0 #x192 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x170 + #xffff + #xffff + #xffff + #x34 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x151 + #x0 + #xffff + #x173 + #x103 + #x0 + #xffff + #x19 + #x1c2 + #x0 + #xffff + #xffff + #x1c6 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x65 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xcb + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x130 + #x1b7 + #x0 + #x0 + #xffff + #x19 + #x1bb + #x0 + #xffff + #xffff + #x4c + #x1c3 + #xffff + #xffff + #xe + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x1b8 #x42 #xffff #x0 #x0 #x18d #xbb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x25 #x1b9 #x0 #x0 #x1bc #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x1ba + #xffff + #xffff + #x1bd + #x90 + #xffff + #xffff + #x65 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x9f + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x1ad + #x0 + #x0 + #xffff + #x1be + #x1bf + #x0 + #x4c + #x1c4 + #x0 + #x0 + #x1c7 + #x1bf + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x154) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x123 #x28 #x1cd #x0 #x34 #xffff #xffff #x1d3) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x52 + #xffff + #xffff + #x0 + #x14e + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x1a1 + #x0 + #xffff + #x5a + #x188 + #x0 + #x4c + #x1ce + #x0 + #x0 + #x1d4 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xff #xbf #x0 #x0 #x0 #xff #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x1c9 + #xffff + #xffff + #xffff + #x7d + #x54 + #xffff + #xffff + #x0 + #x187 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x98 + #x0 + #xffff + #xffff + #x1ca + #x0 + #xffff + #x73 + #x1cf + #x0 + #xffff + #x1d5 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #xff #xdb #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x54 + #xffff + #x19 + #x92 + #x1cb + #xffff + #xffff + #x19d + #x187 + #xffff + #xffff + #x1d0 + #xff + #x110 + #x54 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x5d #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x192 + #xffff + #xffff + #xffff + #x1cc + #xffff + #xffff + #xffff + #x187 + #xffff + #x1d1 + #xdc + #x1a3 + #x6c + #x26 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x1c8 #x190 #x0 #x173 #x103 #x0 #x0 #x1d2 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x1d6 #x0 #x0 #x0 #x1db #x0 #x0 #x1d7 #xffff #x0 #x0 #x193 #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xe + #xffff + #xffff + #xffff + #xe + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1df #x0 #x0 #x0 #x199 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1e0 #x3b #x0 #x0 #xac #xffff) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x1d7 + #xffff + #xffff + #x1dc + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xb6 + #xffff + #xffff + #xffff + #x1dd + #xffff + #xffff + #x173 + #x103 + #xffff + #xffff + #x11a + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xff + #xffff + #xffff + #x0 + #x0 + #x52 + #xffff + #x0 + #x0 + #x187 + #xffff + #x0 + #x0 + #x1e1 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x4c + #xffff + #xffff + #xffff + #x1de + #xffff + #xffff + #xffff + #x19d + #xffff + #xffff + #xffff + #x199 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x1d8 #x1d9 #x0 #x0 #xf4 #x1ac #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1da #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x1e0 + #x1e2 + #xffff + #x0 + #xb3 + #xffff + #xffff + #x0 + #xb3 + #xffff + #xffff + #x0 + #xb3 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x5d #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0 #xe #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #x0 + #x46 + #xffff + #x0 + #x0 + #x39 + #xffff + #x0 + #x0 + #x1c0 + #xffff + #x0 + #x0 + #xff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x16b + #x103 + #x0 + #xffff + #x15a + #x0 + #x0 + #x16b + #x103 + #x0 + #x0 + #x1c5 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x52 #x0 #x0 #x0 #x116 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x42 + #xffff + #xffff + #xffff + #xf4 + #x65 + #xffff + #xffff + #x0 + #x0 + #xe6 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x19 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x164 + #x1ec + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x9 + #x92 + #x0 + #x1e3 + #xffff + #xffff + #x3a + #xffff + #x9d + #x1e8 + #x66 + #x1e8 + #x103 + #x1ed + #x0 + #xff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x1e4 + #x1e5 + #x62 + #x1e6 + #xffff + #xffff + #xffff + #xffff + #x73 + #x1e9 + #x42 + #xffff + #xbd + #x0 + #x1ee + #x66 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xc4 #x0 #x0 #x0 #x5d #x0 #x1e7 #x0 #x19 #x1ea #x1eb #x0 #xffff #x4c #x1ef #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #xff #x1f0 #xffff #x0 #x0 #x16e #xffff #x0 #x0 #x0 #x120 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x5a + #x1f4 + #x66 + #x67 + #x18e + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1ad #x0 #x0 #x0 #x17f #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x162) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x162 #x9 #xf0 #xc4 #xffff #xffff #xffff #x3c) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x1f1 #x0 #x0 #x0 #x14e #x0 #x0 #x0 #x0 #xc4 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x145 + #xffff + #xffff + #xffff + #x0 + #x145 + #x54 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x73 + #x1f6 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x4c + #x1d4 + #xffff + #x4c + #x1d4 + #x0 + #x5a + #x17a + #x0 + #x0 + #xbd + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x7d #x42 #x0 #x0 #x0 #x1f3 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xc6 + #xffff + #xffff + #xffff + #x0 + #xf8 + #xffff + #xffff + #x0 + #x0 + #x18f + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x5a + #x139 + #xffff + #x25 + #x1f5 + #x0 + #x1f7 + #x51 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x9d #x1f2 #x0 #x0 #x103 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xdb #x190 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x46 #x0 #x0 #x0 #x174 #x0 #x0 #x0 #x18c #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x4c + #x1fb + #xffff + #x4c + #x1d4 + #x18c + #xdb + #x190 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x98 #x0 #x0 #x0 #x1fa #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x1f8 #x120 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x6c #x139 #x1a6 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xbf + #xffff + #xffff + #xffff + #xff + #x113 + #xc6 + #x66 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x9d + #x66 + #x1fc + #x139 + #x103 + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #xffff #x73 #x66 #x9f #x164 #x1a6 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1f9 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + ) + ) + ) + +;; definition for symbol *ocean-trans-indices-desert*, type ocean-trans-indices +(define *ocean-trans-indices-desert* + (new 'static 'ocean-trans-indices :data (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x1fd :child 1) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent 3 :child 2) + (new 'static 'ocean-trans-index :parent #x1fe :child 3) + (new 'static 'ocean-trans-index :child 4) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 5) + (new 'static 'ocean-trans-index :parent #x1ff :child 6) + (new 'static 'ocean-trans-index :parent #x1fe :child 7) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index :parent #x200 :child 9) + (new 'static 'ocean-trans-index :parent 26 :child 10) + (new 'static 'ocean-trans-index :child 11) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 13) + (new 'static 'ocean-trans-index :parent #x1fd :child 14) + (new 'static 'ocean-trans-index :child 15) + (new 'static 'ocean-trans-index :parent #x1fd :child 16) + (new 'static 'ocean-trans-index :parent 31 :child 17) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x201 :child 18) + (new 'static 'ocean-trans-index :parent #x201 :child 19) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 21) + (new 'static 'ocean-trans-index :child 22) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x202 :child 23) + (new 'static 'ocean-trans-index :parent #xec :child 24) + (new 'static 'ocean-trans-index :child 25) + (new 'static 'ocean-trans-index :parent 15 :child 26) + (new 'static 'ocean-trans-index :child 27) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x203 :child 28) + (new 'static 'ocean-trans-index :child 29) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child 30) + (new 'static 'ocean-trans-index :parent #x204 :child 31) + (new 'static 'ocean-trans-index :parent #x205 :child 32) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x206 :child 33) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 42 :child 34) + (new 'static 'ocean-trans-index :parent #x201 :child 35) + (new 'static 'ocean-trans-index :parent #x207 :child 36) + (new 'static 'ocean-trans-index :parent #x208 :child 37) + (new 'static 'ocean-trans-index :parent #x209 :child 38) + (new 'static 'ocean-trans-index :parent #x20a :child 39) + (new 'static 'ocean-trans-index :parent #x20b :child 40) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 41) + (new 'static 'ocean-trans-index :parent 34 :child 42) + (new 'static 'ocean-trans-index :child 43) + (new 'static 'ocean-trans-index :parent #x20d :child 44) + (new 'static 'ocean-trans-index :parent #x116 :child 45) + (new 'static 'ocean-trans-index :parent #x1ac :child 46) + (new 'static 'ocean-trans-index :parent #x20e :child 47) + (new 'static 'ocean-trans-index :parent #x20f :child 48) + (new 'static 'ocean-trans-index :parent #x210 :child 49) + (new 'static 'ocean-trans-index :parent 72 :child 50) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x211 :child 51) + (new 'static 'ocean-trans-index :parent #x212 :child 52) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 53) + (new 'static 'ocean-trans-index :parent #x213 :child 54) + (new 'static 'ocean-trans-index :parent 31 :child 55) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 56) + (new 'static 'ocean-trans-index :parent 31 :child 57) + (new 'static 'ocean-trans-index :parent #x1ac :child 58) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 59) + (new 'static 'ocean-trans-index :parent #x214 :child 60) + (new 'static 'ocean-trans-index :child 61) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child 62) + (new 'static 'ocean-trans-index :parent 68 :child 63) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 64) + (new 'static 'ocean-trans-index :child 65) + (new 'static 'ocean-trans-index :parent #x215 :child 66) + (new 'static 'ocean-trans-index :parent #x216 :child 67) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 68) + (new 'static 'ocean-trans-index :child 69) + (new 'static 'ocean-trans-index :parent #x217 :child 70) + (new 'static 'ocean-trans-index :parent #x216 :child 71) + (new 'static 'ocean-trans-index :parent 42 :child 72) + (new 'static 'ocean-trans-index :parent #x201 :child 73) + (new 'static 'ocean-trans-index :parent #xec :child 74) + (new 'static 'ocean-trans-index :child 75) + (new 'static 'ocean-trans-index :parent 72 :child 76) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 77) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child 78) + (new 'static 'ocean-trans-index :parent 34 :child 79) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x218 :child 80) + (new 'static 'ocean-trans-index :child 81) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 65 :child 82) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x191 :child 83) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 84) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 100 :child 85) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x219 :child 86) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21a :child 87) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x1e7 :child 88) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child 89) + (new 'static 'ocean-trans-index :parent 54 :child 90) + (new 'static 'ocean-trans-index :child 91) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x21c :child 92) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21d :child 93) + (new 'static 'ocean-trans-index :child 94) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 95) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 56 :child 96) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x21e :child 97) + (new 'static 'ocean-trans-index :parent #x212 :child 98) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 99) + (new 'static 'ocean-trans-index :parent #x206 :child 100) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21f :child #x65) + (new 'static 'ocean-trans-index :parent #x1ac :child #x66) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x220 :child #x67) + (new 'static 'ocean-trans-index :parent #x221 :child #x68) + (new 'static 'ocean-trans-index :child #x69) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x222 :child #x6a) + (new 'static 'ocean-trans-index :parent #x10d :child #x6b) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x223 :child #x6c) + (new 'static 'ocean-trans-index :child #x6d) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x6e) + (new 'static 'ocean-trans-index :parent #x224 :child #x6f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x70) + (new 'static 'ocean-trans-index :parent #x225 :child #x71) + (new 'static 'ocean-trans-index :parent #x107 :child #x72) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x1c3 :child #x73) + (new 'static 'ocean-trans-index :parent #x20a :child #x74) + (new 'static 'ocean-trans-index :parent 72 :child #x75) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x1e7 :child #x76) + (new 'static 'ocean-trans-index :parent #x226 :child #x77) + (new 'static 'ocean-trans-index :child #x78) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x79) + (new 'static 'ocean-trans-index :parent #x227 :child #x7a) + (new 'static 'ocean-trans-index :parent #x228 :child #x7b) + (new 'static 'ocean-trans-index :parent #x107 :child #x7c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x229 :child #x7d) + (new 'static 'ocean-trans-index :parent #x228 :child #x7e) + (new 'static 'ocean-trans-index :parent #x228 :child #x7f) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x229 :child #x80) + (new 'static 'ocean-trans-index :parent #x22a :child #x81) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x82 :child #x82) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x212 :child #x83) + (new 'static 'ocean-trans-index :child #x84) + (new 'static 'ocean-trans-index :parent #x209 :child #x85) + (new 'static 'ocean-trans-index :parent 3 :child #x86) + (new 'static 'ocean-trans-index :child #x87) + (new 'static 'ocean-trans-index :parent #x116 :child #x88) + (new 'static 'ocean-trans-index :parent #x22b :child #x89) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x229 :child #x8a) + (new 'static 'ocean-trans-index :parent #x228 :child #x8b) + (new 'static 'ocean-trans-index :parent #x22c :child #x8c) + (new 'static 'ocean-trans-index :parent #xe4 :child #x8d) + (new 'static 'ocean-trans-index :child #x8e) + (new 'static 'ocean-trans-index :child #x8f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x22d :child #x90) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child #x91) + (new 'static 'ocean-trans-index :parent #x107 :child #x92) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x22e :child #x93) + (new 'static 'ocean-trans-index :parent #x1ac :child #x94) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x95) + (new 'static 'ocean-trans-index :parent #x100 :child #x96) + (new 'static 'ocean-trans-index :parent #x22f :child #x97) + (new 'static 'ocean-trans-index :parent 4 :child #x98) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child #x99) + (new 'static 'ocean-trans-index :parent #x201 :child #x9a) + (new 'static 'ocean-trans-index :parent #x212 :child #x9b) + (new 'static 'ocean-trans-index :parent #x230 :child #x9c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x191 :child #x9d) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x231 :child #x9e) + (new 'static 'ocean-trans-index :parent #x232 :child #x9f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xa0) + (new 'static 'ocean-trans-index :child #xa1) + (new 'static 'ocean-trans-index :child #xa2) + (new 'static 'ocean-trans-index :parent #x116 :child #xa3) + (new 'static 'ocean-trans-index :parent #xbd :child #xa4) + (new 'static 'ocean-trans-index :parent 54 :child #xa5) + (new 'static 'ocean-trans-index :parent 54 :child #xa6) + (new 'static 'ocean-trans-index :parent #xd9 :child #xa7) + (new 'static 'ocean-trans-index :parent #xd9 :child #xa8) + (new 'static 'ocean-trans-index :child #xa9) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x233 :child #xaa) + (new 'static 'ocean-trans-index :child #xab) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xac) + (new 'static 'ocean-trans-index :parent #x234 :child #xad) + (new 'static 'ocean-trans-index :parent 4 :child #xae) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x191 :child #xaf) + (new 'static 'ocean-trans-index :parent 4 :child #xb0) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 42 :child #xb1) + (new 'static 'ocean-trans-index :parent #x235 :child #xb2) + (new 'static 'ocean-trans-index :parent #x209 :child #xb3) + (new 'static 'ocean-trans-index :parent #x20a :child #xb4) + (new 'static 'ocean-trans-index :child #xb5) + (new 'static 'ocean-trans-index :child #xb6) + (new 'static 'ocean-trans-index :parent 3 :child #xb7) + (new 'static 'ocean-trans-index :parent 3 :child #xb8) + (new 'static 'ocean-trans-index :parent 3 :child #xb9) + (new 'static 'ocean-trans-index :parent 3 :child #xba) + (new 'static 'ocean-trans-index :parent 26 :child #xbb) + (new 'static 'ocean-trans-index :child #xbc) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xbd) + (new 'static 'ocean-trans-index :child #xbe) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xbf) + (new 'static 'ocean-trans-index :parent #x236 :child #xc0) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x237 :child #xc1) + (new 'static 'ocean-trans-index :parent #x238 :child #xc2) + (new 'static 'ocean-trans-index :parent #x228 :child #xc3) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child #xc4) + (new 'static 'ocean-trans-index :parent #x225 :child #xc5) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x239 :child #xc6) + (new 'static 'ocean-trans-index :parent #x201 :child #xc7) + (new 'static 'ocean-trans-index :parent #x209 :child #xc8) + (new 'static 'ocean-trans-index :parent #x1fe :child #xc9) + (new 'static 'ocean-trans-index :child #xca) + (new 'static 'ocean-trans-index :child #xcb) + (new 'static 'ocean-trans-index :child #xcc) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x23a :child #xcd) + (new 'static 'ocean-trans-index :parent 34 :child #xce) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x23b :child #xcf) + (new 'static 'ocean-trans-index :child #xd0) + (new 'static 'ocean-trans-index :child #xd1) + (new 'static 'ocean-trans-index :child #xd2) + (new 'static 'ocean-trans-index :child #xd3) + (new 'static 'ocean-trans-index :parent #xdf :child #xd4) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x20c :child #xd5) + (new 'static 'ocean-trans-index :parent #x201 :child #xd6) + (new 'static 'ocean-trans-index :parent #x23c :child #xd7) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xd8) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x146 :child #xd9) + (new 'static 'ocean-trans-index :parent #x23d :child #xda) + (new 'static 'ocean-trans-index :parent #x23e :child #xdb) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x221 :child #xdc) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xdd) + (new 'static 'ocean-trans-index :parent #x100 :child #xde) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x223 :child #xdf) + (new 'static 'ocean-trans-index :child #xe0) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #xe1) + (new 'static 'ocean-trans-index :parent #xdf :child #xe2) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 72 :child #xe3) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #xe4) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x23f :child #xe5) + (new 'static 'ocean-trans-index :parent #x116 :child #xe6) + (new 'static 'ocean-trans-index :parent #x240 :child #xe7) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x241 :child #xe8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x236 :child #xe9) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x22e :child #xea) + (new 'static 'ocean-trans-index :child #xeb) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x242 :child #xec) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x221 :child #xed) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x206 :child #xee) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x243 :child #xef) + (new 'static 'ocean-trans-index :child #xf0) + (new 'static 'ocean-trans-index :parent #x244 :child #xf1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 68 :child #xf2) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #xf3) + (new 'static 'ocean-trans-index :parent #x245 :child #xf4) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x246 :child #xf5) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #xf6) + (new 'static 'ocean-trans-index :parent #x247 :child #xf7) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 38 :child #xf8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 84) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x248 :child #xf9) + (new 'static 'ocean-trans-index :child #xfa) + (new 'static 'ocean-trans-index :parent 15 :child #xfb) + (new 'static 'ocean-trans-index :parent #x249 :child #xfc) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #xda :child #xfd) + (new 'static 'ocean-trans-index :child #xfe) + (new 'static 'ocean-trans-index :child #xff) + (new 'static 'ocean-trans-index :child #x100) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x24a :child #x101) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x207 :child #x102) + (new 'static 'ocean-trans-index :parent #x20a :child #x103) + (new 'static 'ocean-trans-index :parent #x141 :child #x104) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x24b :child #x105) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x124 :child #x106) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 56 :child #x107) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x24c :child #x108) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x109) + (new 'static 'ocean-trans-index :parent #x228 :child #x10a) + (new 'static 'ocean-trans-index :parent 68 :child #x10b) + (new 'static 'ocean-trans-index :child #x10c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x24d :child #x10d) + (new 'static 'ocean-trans-index :parent #x10d :child #x10e) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x24e :child #x10f) + (new 'static 'ocean-trans-index :child #x110) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x111) + (new 'static 'ocean-trans-index :parent #x24f :child #x112) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x250 :child #x113) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x251 :child #x114) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x252 :child #x115) + (new 'static 'ocean-trans-index :child #x116) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x117) + (new 'static 'ocean-trans-index :parent #x10d :child #x118) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x253 :child #x119) + (new 'static 'ocean-trans-index :parent #x204 :child #x11a) + (new 'static 'ocean-trans-index :parent #x107 :child #x11b) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :child #x11c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #x11d) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 68 :child #x11e) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x11e :child #x11f) + (new 'static 'ocean-trans-index :parent #xc9 :child #x120) + (new 'static 'ocean-trans-index :child #x121) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x122) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21f :child #x123) + (new 'static 'ocean-trans-index :child #x124) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x125) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x246 :child #x126) + (new 'static 'ocean-trans-index :child #x127) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x128) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x254 :child #x129) + (new 'static 'ocean-trans-index :child #x12a) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #x12b) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x1ac :child #x12c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #xd5 :child #x12d) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x255 :child #x12e) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x12f) + (new 'static 'ocean-trans-index :parent #x256 :child #x130) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 100 :child #x131) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x137 :child #x132) + (new 'static 'ocean-trans-index :child #x133) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 97 :child #x134) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent 56 :child #x135) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x136) + (new 'static 'ocean-trans-index :parent #x257 :child #x137) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x138) + (new 'static 'ocean-trans-index :parent #x258 :child #x139) + (new 'static 'ocean-trans-index :parent #x10d :child #x13a) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x22e :child #x13b) + (new 'static 'ocean-trans-index :parent #x1ac :child #x13c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x116 :child #x13d) + (new 'static 'ocean-trans-index :child #x13e) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x259 :child #x13f) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21b :child #x140) + (new 'static 'ocean-trans-index :parent #xbc :child #x141) + (new 'static 'ocean-trans-index :child #x142) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x25a :child #x143) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x25b :child #x144) + (new 'static 'ocean-trans-index :parent #x25c :child #x145) + (new 'static 'ocean-trans-index :parent #xd9 :child #x146) + (new 'static 'ocean-trans-index :parent #x103 :child #x147) + (new 'static 'ocean-trans-index :parent 72 :child #x148) + (new 'static 'ocean-trans-index :parent #x25d :child #x149) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x253 :child #x14a) + (new 'static 'ocean-trans-index :parent #xd9 :child #x14b) + (new 'static 'ocean-trans-index :child #x14c) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x206 :child #x14d) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x21d :child #x14e) + (new 'static 'ocean-trans-index :child #x14f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x150) + (new 'static 'ocean-trans-index :parent #x23e :child #x151) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x25e :child #x152) + (new 'static 'ocean-trans-index :parent #x25f :child #x153) + (new 'static 'ocean-trans-index :parent #x212 :child #x154) + (new 'static 'ocean-trans-index :parent #x116 :child #x155) + (new 'static 'ocean-trans-index :child #x156) + (new 'static 'ocean-trans-index :parent #x242 :child #x157) + (new 'static 'ocean-trans-index :parent #x229 :child #x158) + (new 'static 'ocean-trans-index :parent #x260 :child #x159) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x15a) + (new 'static 'ocean-trans-index :parent #x261 :child #x15b) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x25d :child #x15c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x109) + (new 'static 'ocean-trans-index :parent 68 :child #x15d) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x15e) + (new 'static 'ocean-trans-index :parent #xdf :child #x15f) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x262 :child #x160) + (new 'static 'ocean-trans-index :child #x161) + (new 'static 'ocean-trans-index :parent #x263 :child #x162) + (new 'static 'ocean-trans-index :child #x163) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x264 :child #x164) + (new 'static 'ocean-trans-index :parent #x1ac :child #x165) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #xd5 :child #x166) + (new 'static 'ocean-trans-index :parent #x254 :child #x167) + (new 'static 'ocean-trans-index :child #x168) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 15 :child #x169) + (new 'static 'ocean-trans-index :parent #x249 :child #x16a) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x248 :child #x16b) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x20f :child #x16c) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x221 :child #x16d) + (new 'static 'ocean-trans-index :child #x100) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x16e) + (new 'static 'ocean-trans-index :child #x16f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x265 :child #x170) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :child #x171) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 4 :child #x172) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x131 :child #x109) + (new 'static 'ocean-trans-index :parent #x260 :child #x173) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x174) + (new 'static 'ocean-trans-index :parent #x266 :child #x175) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x267 :child #x176) + (new 'static 'ocean-trans-index :parent #x268 :child #x177) + (new 'static 'ocean-trans-index :parent #x269 :child #x178) + (new 'static 'ocean-trans-index :parent 72 :child #x179) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent 65 :child #x17a) + (new 'static 'ocean-trans-index :parent #x8b :child #x17b) + (new 'static 'ocean-trans-index :child #x17c) + (new 'static 'ocean-trans-index :parent #x1fe :child #x17d) + (new 'static 'ocean-trans-index :child #x17e) + (new 'static 'ocean-trans-index :parent #x26a :child #x17f) + (new 'static 'ocean-trans-index :parent #x229 :child #x180) + (new 'static 'ocean-trans-index :parent 68 :child #x181) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x182) + (new 'static 'ocean-trans-index :parent #x266 :child #x183) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x24e :child #x184) + (new 'static 'ocean-trans-index :child #x185) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x186) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x187) + (new 'static 'ocean-trans-index :parent #x26b :child #x188) + (new 'static 'ocean-trans-index :child #x189) + (new 'static 'ocean-trans-index :child #x18a) + (new 'static 'ocean-trans-index :child #x18b) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child #x15e) + (new 'static 'ocean-trans-index :parent #x244 :child #x18c) + (new 'static 'ocean-trans-index :parent #x8b :child #x18d) + (new 'static 'ocean-trans-index :parent #x1ac :child #x18e) + (new 'static 'ocean-trans-index :child #x18f) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +;; definition for symbol *ocean-mid-indices-desert*, type ocean-mid-indices +(define *ocean-mid-indices-desert* (new 'static 'ocean-mid-indices :data (new 'static 'array uint16 36 + #x26c + #x26d + #x26e + #x26f + #x270 + #x271 + #x272 + #xffff + #xffff + #xffff + #xffff + #x273 + #x274 + #x275 + #x276 + #x277 + #x278 + #x279 + #x27a + #x27b + #x27c + #xffff + #xffff + #x27d + #x27e + #x27f + #x280 + #x281 + #x282 + #x0 + #x283 + #x284 + #x285 + #x286 + #x0 + #x0 + ) + ) + ) + +;; definition for symbol *ocean-mid-masks-desert*, type ocean-mid-masks +(define *ocean-mid-masks-desert* + (new 'static 'ocean-mid-masks + :data (new 'static 'inline-array ocean-mid-mask 648 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #xf #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xc0 #xc0 #xe8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xfc #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xc #x1c)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe8 #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xfc #xfc #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xbf #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #xe #xf #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x80 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x80 #xf8 #xfc #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc1 #xe1 #xe1 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3c #x7f #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xfc #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xe0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x1 #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x1f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x78 #x7c #x7c #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x80 #xfc #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x1 #x3 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x1f #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #xf #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #x3f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xc0 #xc0 #xe0 #xe0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x1 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x7f #x7f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #x3 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #xf #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf8 #xf8 #xf8 #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x3 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfc #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x40 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x73 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc1 #xe3 #xe3 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xfc #xe0 #xe0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x1 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x1f #x1f #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #xb #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x80 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x1c #x1c #xc #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x80 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xbf #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe0 #xe0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf8 #xf8 #xf8 #xfc #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x3 #x1 #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #x98 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xc #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #x3 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe0 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xfc #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x7f #x7f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xb8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x1 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xfe #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x2f #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x3 #x1 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe6 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #xf #xf #x7 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x7f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xe8 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x7f #xff #xff #x7f #x3f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #x88 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xfc #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe1 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x1 #x3 #xf #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x98 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xe0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #xf #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x4 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xc2 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xc0 #xc0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x7f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe1 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #xf #xf #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x58 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf8 #xf8 #xf8 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf2 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xf0 #xf8 #xf8 #xf8 #xf8 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x80 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x3f #x3f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfc #xfc #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x3f #x1f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x20 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #x1f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x7 #x7 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf3 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #x1f #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x1f #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x23 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xff #x3 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x3 #x1 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xfc #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #x1f #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x20 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xfc #xf8 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x27 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x3 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf0 #xf0 #xe0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xe8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #x1f #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xfc #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x3 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf8 #xf8 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfc #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x83 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x4 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfe #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #xf #xf #xf #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #x8 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3f #x3f #x3f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3f #x1f #x1f #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xfc #xf8 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x3f #x3f #x1f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x2 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #xf #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe3 #xe1 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #xf #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x1f #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x40 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x80 #xc0 #xc0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x7 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3f #x3f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xf8 #xf8 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x1 #x3 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xb #x1f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe8 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf #xf #x7 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x2 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #x1f #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xfc #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xfc #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x8 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x1f #x1f #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1 #x3 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x88 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x43 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x7 #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xc0 #xc0 #xc0 #xe8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #xf #xf #xf #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfe #xff #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x7 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x7 #x7 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x7 #x7 #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x1f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xe2 #xe0 #xc0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x3f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xe0 #xc0 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x1 #x1 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3f #x3f #x7f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x3 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xc0 #xc0 #xc0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x3f #x7f #x7f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #xb #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x40 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfc #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x1f #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xf #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x3 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x1 #x1 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #xf #xf #xf #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #xf #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xfe #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #xf #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xf0 #xf8 #xf8 #xf8 #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x7 #x7 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x1 #x1 #x3 #x3 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xfe #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x1 #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #xf #x1f #x3f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x88 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf8 #xc0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #xf #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7f #x7f #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #x1f #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x7f #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1f #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xf2 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xe0 #xe2 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x1 #x3 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #x7 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xf8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xfc #xf8 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x3 #xf #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x3 #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #xf #x1f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x1f #x7f #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xf8 #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xb #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xfc #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x80 #x80 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x1f #x1f #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x80 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x80 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #x1f #x1f #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x83 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfc #xf8 #xe0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xf #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1f #xf #xf #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #xff #xff #x7f #x7f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xf8 #xfc #xfc #xf8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x1f #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xe #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xe0 #xe0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe0 #xe0 #xe0 #xe0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xf #x1f #x3f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x7f #x7f #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xf8 #xfc #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x7f #x7f #xff #xff #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x3 #x3 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xe8 #xf8 #xf8 #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xf #xf #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #xf #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3 #x1 #x1 #x1 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x1f #xf #xf #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x60 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x1f #xf #xf #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfc #xf8 #xf8 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #x1f #x7f #x7f #x7f #x7f #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xff #xff #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #x63 #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xb #x3 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x3 #xf #xf #x3f #x7f #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x3 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #xf #xf #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x1f #x1f #xf #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x1 #x1 #x1 #x1 #x1 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #xc0 #xc0 #xe8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xe0 #xc0 #xc0 #xc0 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xff #xff #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7f #x7f #x7f #x3 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xc #x1c #x18 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xff #xff #xfe #xfe #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xf6 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3 #x3 #x1 #x1 #x3 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x7f #x7f #x3f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x3 #x3 #x3 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #xc0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xe0 #xe0 #xf8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x3 #x3 #xf7 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x8 #x78 #x7c #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xf8 #xf8 #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x8 #x1c #x8 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xf7 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xe3 #xe3 #xc1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x80 #xc0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3 #x3 #x3 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x7c #x78 #x78 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x60 #x40 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #xc0 #xc0 #xe0 #xe0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #xf #xe #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfe #xff #xff #xfe #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x7f #x7f #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xc0 #xc0 #x80 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xfe #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x7f #x7f #xf #xf #xf #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3 #x3 #x1 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf8 #xf8 #xe8 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #x7 #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf6 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf4 #xf4 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf1 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xfb #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf1 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf4 #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf6 #xf2 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf3 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfc #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xf6 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfe #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfc #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #xf7 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf0 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfc #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfc #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf7 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf4 #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf6 #xf0 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xfc #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfc #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xfc #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf1 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf8 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf3 #xf3 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf3 #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf3 #xf3 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xff #xff #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf3 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf1 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf3 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfc #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf3 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xf7 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf7 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xf1 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfc #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf1 #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf1 #xf1 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfc #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf6 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf2 #xf6 #xf6 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xf2 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xfc #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfc #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xff #xff #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xfb #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xff #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf7 #xf2 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x80 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x6 #xfe #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xc0 #xfc #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1f #x7f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x7 #xcf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf0 #xf0 #xf0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #x3 #x1 #x1 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x10 #x80 #x80 #x80 #xc0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf8 #xf0 #xe1 #xe7 #x47 #xf #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xfe #xfc #xfc)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x8f #x0 #x0 #x0 #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf9 #x0 #x0 #x7 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x1 #x0 #x0 #x0 #x1 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xf1 #xf1 #xf1 #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x8f #x87 #x87 #xc3 #xe3 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #xf #xf #xf #xf #x1 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #x20 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7e #x3e #x3e #x7e #x7e #x1e #xe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x80 #x80 #x80 #x80 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x7f #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x7f #x3f #x3f #x3f #x1c #x4 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x10 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x6 #x6 #x3 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xc0 #x80 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x7 #x7 #x3 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +;; definition for symbol *ocean-map-desert*, type ocean-map +(define *ocean-map-desert* + (new 'static 'ocean-map + :start-corner (new 'static 'vector :data (new 'static 'array float 4 -1048576.0 36864.0 -1048576.0 1.0)) + :far-color (new 'static 'vector :data (new 'static 'array float 4 20.078432 47.184315 52.705883 112.94118)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *ocean-map-desert* ocean-colors) *ocean-colors-desert*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-desert* ocean-mid-masks) *ocean-mid-masks-desert*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-desert* ocean-mid-indices) *ocean-mid-indices-desert*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-desert* ocean-trans-indices) *ocean-trans-indices-desert*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-desert* ocean-near-indices) *ocean-near-indices-desert*) + + + + diff --git a/test/decompiler/reference/jakx/levels/desert/desert-part_REF.gc b/test/decompiler/reference/jakx/levels/desert/desert-part_REF.gc new file mode 100644 index 0000000000..8a93e2733a --- /dev/null +++ b/test/decompiler/reference/jakx/levels/desert/desert-part_REF.gc @@ -0,0 +1,2693 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-volcano-smoke-all + :id 484 + :flags (sp0 sp4 sp11) + :bounds (static-bspherem 0 0 0 1000) + :parts ((sp-item 1549 :fade-after (meters 10000) :falloff-to (meters 10000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1549 + :init-specs ((:texture (common-white common)) + (:num 0.001 0.05) + (:x (meters -10) (meters 20)) + (:y (meters -30)) + (:z (meters -10) (meters 20)) + (:scale-x (meters 40) (meters 10)) + (:rot-z (degrees 160) (degrees 40)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 10.0) + (:a 0.0) + (:vel-y (meters 0.1)) + (:scalevel-x (meters 0.006666667) (meters 0.033333335)) + (:rotvel-z (degrees -0.033333335) (degrees 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.13333334 0.26666668) + (:accel-x (meters 0.00016666666)) + (:friction 0.997) + (:timer (seconds 166.67)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 1)) + (:next-launcher 1550) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1550 + :init-specs ((:scalevel-x (meters 0.026666667) (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.0) + (:next-time (seconds 2)) + (:next-launcher 1551) + ) + ) + +;; failed to figure out what this is: +(defpart 1551 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.14222223) + (:fade-g 0.031111112) + (:fade-b 0.13111112) + (:next-time (seconds 2)) + (:next-launcher 1552) + ) + ) + +;; failed to figure out what this is: +(defpart 1552 + :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.006 -0.0024)) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-hanging-fire + :id 485 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 40) + :parts ((sp-item 1553 :fade-after (meters 300) :falloff-to (meters 400) :flags (sp6)) + (sp-item 1554 :fade-after (meters 300) :falloff-to (meters 400) :flags (sp6)) + (sp-item 1555 :fade-after (meters 100) :falloff-to (meters 200)) + (sp-item 1556 :falloff-to (meters 60) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1553 + :init-specs ((:texture (flame01 level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 2.0 2.0) + (:y (meters 0)) + (:scale-x (meters 1)) + (:rot-z (degrees -20) (degrees 40)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.01) (meters 0.01)) + (:accel-y (meters 0.001) (meters 0.00033333333)) + (:timer (seconds 0.005)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 70) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-color-desert-hanging-fire-flame* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-alpha-desert-hanging-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 96.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 159.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-hanging-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 4.0 6.0 7.0 8.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-hanging-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 2.0 4.0 5.0 6.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *r-curve-desert-hanging-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 1.0 1.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.6 0.0 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *g-curve-desert-hanging-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 -1.0 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *b-curve-desert-hanging-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -5.0000005 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-alpha-desert-hanging-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 3.3333335 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-hanging-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.6 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.5 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -4.999999 -0.75000006 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-hanging-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.4 0.5 0.8)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.4 0.5 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-desert-hanging-fire-flame-curve-settings*, type particle-curve-settings +(define *part-desert-hanging-fire-flame-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.3) + :lifetime-offset (seconds 0.2) + :flags (particle-curve-flags pcf1) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1553 init-specs 15 initial-valuef) + (the-as float *part-desert-hanging-fire-flame-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* color-start) + *range-color-desert-hanging-fire-flame* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* alpha-start) + *range-alpha-desert-hanging-fire-flame* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* scale-x-start) + *range-scale-desert-hanging-fire-flame-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* scale-y-start) + *range-scale-desert-hanging-fire-flame-y* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* r-scalar) *r-curve-desert-hanging-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* g-scalar) *g-curve-desert-hanging-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* b-scalar) *b-curve-desert-hanging-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* a-scalar) *curve-alpha-desert-hanging-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* scale-x-scalar) *curve-desert-hanging-fire-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-desert-hanging-fire-flame-curve-settings* scale-y-scalar) *curve-desert-hanging-fire-flame-y*) + +;; failed to figure out what this is: +(defpart 1554 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:y (meters 1)) + (:scale-x (meters 12) (meters 6)) + (:rot-x (degrees 6.7500005)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 32.0) + (:a 16.0 8.0) + (:omega (degrees 9011.25)) + (:timer (seconds 0.167) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:userdata 2048.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1556 + :init-specs ((:num 0.3) + (:x (meters -1) (meters 2)) + (:y (meters 2)) + (:z (meters -1) (meters 2)) + (:rot-x 8) + (:r 8192.0) + (:g 4096.0) + (:b 4096.0) + (:vel-y (meters 0.0033333334)) + (:fade-b -6.826667) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (distort)) + (:next-time (seconds 0.5)) + (:next-launcher 1557) + ) + ) + +;; failed to figure out what this is: +(defpart 1557 + :init-specs ((:fade-b 6.826667)) + ) + +;; failed to figure out what this is: +(defpart 1555 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.01 0.2) + (:y (meters 0)) + (:scale-x (meters 0.5) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 8.0) + (:a 255.0) + (:vel-y (meters 0.026666667) (meters 0.04)) + (:fade-g -0.16666667) + (:fade-b -5.0) + (:fade-a -1.7) + (:friction 0.96 0.03) + (:timer (seconds 1) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees 30) (degrees 30)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-bowl-fire + :id 486 + :flags (sp0 sp4 sp11) + :bounds (static-bspherem 0 0 0 40) + :parts ((sp-item 1558 :fade-after (meters 500) :falloff-to (meters 600) :flags (sp6)) + (sp-item 1559 :fade-after (meters 500) :falloff-to (meters 600) :flags (sp6)) + (sp-item 1560 :fade-after (meters 100) :falloff-to (meters 200)) + (sp-item 1561 :falloff-to (meters 60) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1558 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 1.0 1.0) + (:y (meters 0)) + (:scale-x (meters 1)) + (:rot-z (degrees -20) (degrees 40)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters -0.006666667) (meters 0.0033333334)) + (:accel-y (meters 0.001) (meters 0.00033333333)) + (:timer (seconds 0.005)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees -90) (degrees 180)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-color-desert-bowl-fire-flame* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-alpha-desert-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 96.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 159.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-bowl-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 5.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-bowl-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *r-curve-desert-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 1.0 1.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.6 0.0 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *g-curve-desert-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 -1.0 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *b-curve-desert-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -5.0000005 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-alpha-desert-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 3.3333335 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-bowl-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.6 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.3 0.6 0.5 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.6 -1.0 -0.75000006 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-bowl-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.4 0.5 0.6)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.4 0.5 0.3333334 1.0)) + ) + ) + ) + +;; definition for symbol *part-desert-bowl-fire-flame-curve-settings*, type particle-curve-settings +(define *part-desert-bowl-fire-flame-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.3) + :lifetime-offset (seconds 0.4) + :flags (particle-curve-flags pcf1) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1558 init-specs 15 initial-valuef) + (the-as float *part-desert-bowl-fire-flame-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* color-start) *range-color-desert-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* alpha-start) *range-alpha-desert-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* scale-x-start) *range-scale-desert-bowl-fire-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* scale-y-start) *range-scale-desert-bowl-fire-flame-y*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* r-scalar) *r-curve-desert-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* g-scalar) *g-curve-desert-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* b-scalar) *b-curve-desert-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* a-scalar) *curve-alpha-desert-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* scale-x-scalar) *curve-desert-bowl-fire-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bowl-fire-flame-curve-settings* scale-y-scalar) *curve-desert-bowl-fire-flame-y*) + +;; failed to figure out what this is: +(defpart 1559 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:y (meters 2)) + (:scale-x (meters 20) (meters 6)) + (:rot-x (degrees 6.7500005)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 24.0 8.0) + (:omega (degrees 11261.25)) + (:timer (seconds 0.167) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:userdata 2048.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1561 + :init-specs ((:num 0.3) + (:x (meters -1) (meters 2)) + (:y (meters 2)) + (:z (meters -1) (meters 2)) + (:rot-x 8) + (:r 8192.0) + (:g 4096.0) + (:b 4096.0) + (:vel-y (meters 0.0033333334)) + (:fade-b -6.826667) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (distort)) + (:next-time (seconds 0.5)) + (:next-launcher 1562) + ) + ) + +;; failed to figure out what this is: +(defpart 1562 + :init-specs ((:fade-b 6.826667)) + ) + +;; failed to figure out what this is: +(defpart 1560 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.005 0.08) + (:y (meters 2)) + (:scale-x (meters 0.5) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 8.0) + (:a 255.0) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-g -0.16666667) + (:fade-b -5.0) + (:fade-a -1.7) + (:friction 0.99 0.02) + (:timer (seconds 1) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3598.0002)) + (:conerot-radius (meters 1) (meters 2)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-dust-devil + :id 487 + :flags (sp0 sp4) + :bounds (static-bspherem 0 -2 0 100) + :parts ((sp-item 1566 :flags (sp3) :binding 1563) + (sp-item 1563 :flags (sp2 sp3) :binding 1564) + (sp-item 1564 :flags (sp2)) + (sp-item 1566 :flags (sp3) :binding 1563) + (sp-item 1563 :flags (sp2 sp3) :binding 1565) + (sp-item 1565 :flags (sp2)) + ) + ) + +;; failed to figure out what this is: +(defpart 1566 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:scale-x (meters 0.01)) + (:scale-y :copy scale-x) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + ) + ) + +;; failed to figure out what this is: +(defpart 1563 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:x (meters 0)) + (:z (meters 5)) + (:scale-x (meters 0.01)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:a 32.0) + (:vel-x (meters 0.0044444446)) + (:vel-z (meters -0.0013333333)) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch sp-cpuinfo-flag-14)) + ) + ) + +;; failed to figure out what this is: +(defpart 1564 + :init-specs ((:texture (common-white common)) + (:num 0.1) + (:scale-x (meters 0.2) (meters 0.5)) + (:scale-y (meters 3)) + (:r 170.0) + (:g 150.0) + (:b 120.0) + (:a 0.0) + (:vel-y (meters 0.015) (meters 0.0033333334)) + (:scalevel-x (meters 0.01) (meters 0.0033333334)) + (:scalevel-y (meters 0.0016666667)) + (:fade-a 0.88 0.48) + (:timer (seconds 16.667)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:userdata :data (new 'static 'boxed-array :type int32 20 1 0 0 0 0)) + (:func 'sparticle-texture-animate) + (:next-time (seconds 0.167)) + (:next-launcher 1567) + ) + ) + +;; failed to figure out what this is: +(defpart 1567 + :init-specs ((:fade-a 0.007191011) (:next-time (seconds 13.335)) (:next-launcher 1568)) + ) + +;; failed to figure out what this is: +(defpart 1568 + :init-specs ((:fade-a -0.51)) + ) + +;; failed to figure out what this is: +(defpart 1565 + :init-specs ((:texture (common-white common)) + (:num 0.1) + (:scale-x (meters 1) (meters 2)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 170.0) + (:g 150.0) + (:b 120.0) + (:a 0.0) + (:scalevel-x (meters 0.033333335)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.4) + (:friction 0.99) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 0.167)) + (:next-launcher 1569) + (:conerot-x (degrees -10) (degrees 20)) + (:rotate-x (degrees 30)) + (:rotate-z (degrees -20) (degrees 40)) + ) + ) + +;; failed to figure out what this is: +(defpart 1569 + :init-specs ((:scalevel-x (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.02) + (:next-time (seconds 1.667)) + (:next-launcher 1570) + ) + ) + +;; failed to figure out what this is: +(defpart 1570 + :init-specs ((:fade-a -0.08)) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-small-bowl-fire + :id 488 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 40) + :parts ((sp-item 1571 :fade-after (meters 500) :falloff-to (meters 600) :flags (sp6)) + (sp-item 1572 :fade-after (meters 500) :falloff-to (meters 600) :flags (sp6)) + (sp-item 1573 :fade-after (meters 100) :falloff-to (meters 200)) + (sp-item 1574 :falloff-to (meters 60) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1571 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 1.0 1.0) + (:y (meters 0)) + (:scale-x (meters 1)) + (:rot-z (degrees -20) (degrees 40)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters -0.006666667) (meters 0.0033333334)) + (:accel-y (meters 0.001) (meters 0.00033333333)) + (:timer (seconds 0.005)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees -90) (degrees 180)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-color-desert-small-bowl-fire-flame* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-alpha-desert-small-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 96.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 159.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-small-bowl-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 5.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-small-bowl-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *r-curve-desert-small-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 1.0 1.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.6 0.0 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *g-curve-desert-small-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 -1.0 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *b-curve-desert-small-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -5.0000005 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-alpha-desert-small-bowl-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 3.3333335 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-small-bowl-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.6 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.3 0.6 0.5 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.6 -1.0 -0.75000006 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-small-bowl-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.4 0.5 0.6)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.4 0.5 0.3333334 1.0)) + ) + ) + ) + +;; definition for symbol *part-desert-small-bowl-fire-flame-curve-settings*, type particle-curve-settings +(define *part-desert-small-bowl-fire-flame-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.3) + :lifetime-offset (seconds 0.4) + :flags (particle-curve-flags pcf1) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1571 init-specs 15 initial-valuef) + (the-as float *part-desert-small-bowl-fire-flame-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* color-start) + *range-color-desert-small-bowl-fire-flame* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* alpha-start) + *range-alpha-desert-small-bowl-fire-flame* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* scale-x-start) + *range-scale-desert-small-bowl-fire-flame-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* scale-y-start) + *range-scale-desert-small-bowl-fire-flame-y* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* r-scalar) *r-curve-desert-small-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* g-scalar) *g-curve-desert-small-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* b-scalar) *b-curve-desert-small-bowl-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* a-scalar) + *curve-alpha-desert-small-bowl-fire-flame* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* scale-x-scalar) + *curve-desert-small-bowl-fire-flame-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-small-bowl-fire-flame-curve-settings* scale-y-scalar) + *curve-desert-small-bowl-fire-flame-y* + ) + +;; failed to figure out what this is: +(defpart 1572 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:y (meters 2)) + (:scale-x (meters 20) (meters 6)) + (:rot-x (degrees 6.7500005)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 24.0 8.0) + (:omega (degrees 11261.25)) + (:timer (seconds 0.167) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:userdata 2048.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1574 + :init-specs ((:num 0.3) + (:x (meters -1) (meters 2)) + (:y (meters 2)) + (:z (meters -1) (meters 2)) + (:rot-x 8) + (:r 8192.0) + (:g 4096.0) + (:b 4096.0) + (:vel-y (meters 0.0033333334)) + (:fade-b -6.826667) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (distort)) + (:next-time (seconds 0.5)) + (:next-launcher 1575) + ) + ) + +;; failed to figure out what this is: +(defpart 1575 + :init-specs ((:fade-b 6.826667)) + ) + +;; failed to figure out what this is: +(defpart 1573 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.005 0.08) + (:y (meters 2)) + (:scale-x (meters 0.5) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 8.0) + (:a 255.0) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-g -0.16666667) + (:fade-b -5.0) + (:fade-a -1.7) + (:friction 0.99 0.02) + (:timer (seconds 1) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3598.0002)) + (:conerot-radius (meters 1) (meters 2)) + ) + ) + +;; definition for symbol *scenecamera-fog-update?*, type symbol +(define *scenecamera-fog-update?* #f) + +;; definition for function scenecamera-fog-update +;; WARN: Return type mismatch object vs none. +(defun scenecamera-fog-update () + (with-pp + (let ((f30-0 (ja-aframe-num 0))) + (if (and (< 0.0 f30-0) (< f30-0 2.0)) + (set! *scenecamera-fog-update?* #f) + ) + (when (and (< 268.0 f30-0) + (and (< f30-0 278.0) + (logtest? (logior (-> *cpad-list* cpads 1 button0-rel 0) (-> *cpad-list* cpads 1 button0-rel 1)) + (pad-buttons l2) + ) + (logtest? (logior (-> *cpad-list* cpads 1 button0-rel 0) (-> *cpad-list* cpads 1 button0-rel 1)) + (pad-buttons r1) + ) + (logtest? (logior (-> *cpad-list* cpads 1 button0-rel 0) (-> *cpad-list* cpads 1 button0-rel 1)) + (pad-buttons triangle) + ) + (logtest? (logior (-> *cpad-list* cpads 1 button0-rel 0) (-> *cpad-list* cpads 1 button0-rel 1)) + (pad-buttons left) + ) + (= (-> *setting-control* user-current audio-language) 5) + ) + ) + (set! *scenecamera-fog-update?* #t) + (setting-control-method-14 *setting-control* 'blur-a 300 'blur-a 'abs 0.9 0) + (set! (-> *display* force-sync) (the-as uint 120)) + ) + (if (and (< 1088.0 f30-0) (and (< f30-0 1090.0) *scenecamera-fog-update?*)) + (send-event pp 'anim-mode 'still) + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-palace-fire-beacon + :id 489 + :flags (sp0 sp1 sp4) + :bounds (static-bspherem 0 0 0 1000) + :parts ((sp-item 1577 :flags (is-3d sp6) :period (seconds 6) :length (seconds 0.067) :binding 1576) + (sp-item 1576 :flags (is-3d sp2) :period (seconds 6) :length (seconds 1) :offset 25) + ) + ) + +;; failed to figure out what this is: +(defpart 1577 + :init-specs ((:texture (new 'static 'texture-id :index #x8 :page #x21)) + (:num 1.0) + (:x (meters -20) (meters 40)) + (:y (meters 3)) + (:z (meters -20)) + (:scale-x (meters 10) (meters 10)) + (:scale-y (meters 1) (meters 3)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:vel-y (meters 0.001)) + (:vel-z (meters 0.06666667) (meters 0.016666668)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y (meters 0.026666667) (meters 0.013333334)) + (:fade-a 0.064) + (:accel-z (meters -0.0005) (meters -0.00006666667)) + (:friction 0.99) + (:timer (seconds 6.667)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:next-time (seconds 2.5)) + (:next-launcher 1578) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1578 + :init-specs ((:fade-a -0.1024 -0.1024)) + ) + +;; failed to figure out what this is: +(defpart 1576 + :init-specs ((:texture (new 'static 'texture-id :index #x7 :page #x21)) + (:num 0.1) + (:x (meters -20) (meters 40)) + (:scale-x (meters 20)) + (:scale-y (meters 20)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:vel-z (meters -0.000033333334)) + (:fade-a 0.42666668) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:func 'sparticle-turn-to-vel) + (:next-time (seconds 0.5)) + (:next-launcher 1579) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1579 + :init-specs ((:scalevel-y (meters 0.033333335)) (:fade-a 0.0) (:next-time (seconds 1)) (:next-launcher 1580)) + ) + +;; failed to figure out what this is: +(defpart 1580 + :init-specs ((:accel-z (meters -0.001)) (:next-time (seconds 0.335)) (:next-launcher 1581)) + ) + +;; failed to figure out what this is: +(defpart 1581 + :init-specs ((:fade-a -0.32 -0.32)) + ) + +;; failed to figure out what this is: +(defpartgroup group-part-water-rocks-splash + :id 490 + :duration (seconds 5) + :flags (sp0 sp9) + :bounds (static-bspherem 0 0 0 600) + :parts ((sp-item 1582 :fade-after (meters 300) :falloff-to (meters 300) :period (seconds 60) :length (seconds 0.2)) + (sp-item 1583 :fade-after (meters 300) :falloff-to (meters 300) :flags (is-3d) :period (seconds 60) :length (seconds 0.035) :offset 150) + (sp-item 1584 :fade-after (meters 300) :falloff-to (meters 300) :period (seconds 60) :length (seconds 0.2) :offset 20) + ) + ) + +;; failed to figure out what this is: +(defpart 1585 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-desert-beacon-set-accel) + (:num 0.1) + (:x (meters -10) (meters 20)) + (:y (meters 10)) + (:z (meters -10) (meters 20)) + (:scale-x (meters 20) (meters 4)) + (:rot-z (degrees 160) (degrees 40)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 10.0) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.016666668)) + (:rotvel-z (degrees -0.033333335) (degrees 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.13333334 0.13333334) + (:accel-x (meters 0.0016666667)) + (:accel-y (meters 0.0026666666)) + (:friction 0.98) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 2)) + (:next-launcher 1586) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1586 + :init-specs ((:fade-r -0.21333334) + (:fade-g 0.046666667) + (:fade-b 0.19666667) + (:fade-a -0.06666667) + (:accel-y (meters 0.0013333333)) + (:next-time (seconds 2)) + (:next-launcher 1587) + ) + ) + +;; failed to figure out what this is: +(defpart 1587 + :init-specs ((:fade-g 0.0) (:fade-b 0.0) (:accel-y (meters 0.00066666666))) + ) + +;; definition for function birth-func-desert-beacon-set-accel +;; INFO: Used lq/sq +;; WARN: Return type mismatch vector vs none. +(defun birth-func-desert-beacon-set-accel ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> (math-camera-matrix) rvec quad)) + (set! (-> s5-0 y) 0.0) + (vector-normalize! s5-0 6.826667) + (set! (-> s5-0 y) (-> arg1 acc y)) + (set! (-> arg1 acc x) (-> s5-0 x)) + (set! (-> arg1 acc y) (-> s5-0 y)) + (set! (-> arg1 acc z) (-> s5-0 z)) + ) + (-> arg1 acc) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-totem-head-fire + :id 491 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 40) + :parts ((sp-item 1588 :fade-after (meters 500) :falloff-to (meters 600) :flags (sp6)) + (sp-item 1589 :fade-after (meters 500) :falloff-to (meters 600) :flags (sp6)) + (sp-item 1590 :fade-after (meters 300) :falloff-to (meters 400)) + (sp-item 1591 :falloff-to (meters 200) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1582 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-curve) + (:num 3.0) + (:y (meters -3)) + (:scale-x (meters 1)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:vel-z (meters 0.016666668) (meters 0.016666668)) + (:accel-y (meters -0.0011666666)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wrsplash-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 90.0 130.0 110.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wrsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 127.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wrsplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 2.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 6.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wrsplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.9 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 30.0 40.0 41.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 26.666668 99.99998 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-wrsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.1 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 -1.1111112 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-wrsplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 3.0 4.0 5.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-wrsplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.2 -0.3 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 2.5 4.0 4.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.5 14.999999 0.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-water-rocks-splash-curve-settings*, type particle-curve-settings +(define *part-water-rocks-splash-curve-settings* + (new 'static 'particle-curve-settings :lifetime-base (seconds 1.5) :lifetime-offset (seconds 1)) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1582 init-specs 16 initial-valuef) + (the-as float *part-water-rocks-splash-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* color-start) *range-wrsplash-color*) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* alpha-start) *range-wrsplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* scale-x-start) *range-wrsplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* scale-y-start) *range-wrsplash-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* a-scalar) *curve-wrsplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* scale-x-scalar) *curve-wrsplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-water-rocks-splash-curve-settings* scale-y-scalar) #f) + +;; failed to figure out what this is: +(defpart 1583 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 1.0) + (:x (meters 0) (meters 4)) + (:y (meters 1.5)) + (:scale-x (meters 5) (meters 3)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y (meters 5) (meters 3)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:scalevel-x (meters 0.033333335) (meters 0.016666668)) + (:scalevel-y (meters 0.033333335) (meters 0.016666668)) + (:fade-a -0.21333334) + (:timer (seconds 8)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:rotate-y (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpart 1584 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 3.0) + (:x (meters 0) (meters 1)) + (:y (meters 5)) + (:scale-x (meters 2) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:scalevel-x (meters 0.01) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.064 -0.064) + (:accel-y (meters -0.0011666666)) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-14 glow)) + (:func 'check-drop-group-center) + (:conerot-x (degrees -15) (degrees 30)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1590 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.005 0.08) + (:x (meters 0) (meters 10)) + (:y (meters 8)) + (:scale-x (meters 1) (meters 1)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 8.0) + (:a 255.0) + (:vel-y (meters 0.1) (meters 0.06666667)) + (:fade-g -0.16666667) + (:fade-b -5.0) + (:fade-a -1.7) + (:friction 0.99 0.02) + (:timer (seconds 1) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3598.0002)) + (:conerot-radius (meters 1) (meters 2)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-firepit-fire + :id 492 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 1592 :fade-after (meters 800) :falloff-to (meters 1000) :flags (sp6)) + (sp-item 1593 :fade-after (meters 800) :falloff-to (meters 1000) :flags (sp6)) + (sp-item 1594 :fade-after (meters 300) :falloff-to (meters 400)) + (sp-item 1595 :falloff-to (meters 200) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1592 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 2.0 1.0) + (:x (meters 0) (meters 3)) + (:y (meters 1)) + (:scale-x (meters 1)) + (:rot-z (degrees -20) (degrees 40)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters -0.006666667) (meters 0.0033333334)) + (:accel-y (meters 0.0026666666) (meters 0.0016666667)) + (:timer (seconds 0.005)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees -90) (degrees 180)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-color-firepit-fire-flame* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-alpha-firepit-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 96.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 159.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-firepit-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 10.0 15.0 16.0 17.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 5.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-firepit-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 10.0 15.0 16.0 17.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 5.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *r-curve-firepit-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 1.0 1.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.6 0.0 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *g-curve-firepit-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 -1.0 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *b-curve-firepit-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -5.0000005 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-alpha-firepit-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 3.3333335 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-firepit-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.6 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.3 0.6 0.5 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.6 -1.0 -0.75000006 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-firepit-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.4 0.5 0.6)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.4 0.5 0.3333334 1.0)) + ) + ) + ) + +;; definition for symbol *part-firepit-fire-flame-curve-settings*, type particle-curve-settings +(define *part-firepit-fire-flame-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.3) + :lifetime-offset (seconds 0.4) + :flags (particle-curve-flags pcf1) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1592 init-specs 16 initial-valuef) + (the-as float *part-firepit-fire-flame-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* color-start) *range-color-firepit-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* alpha-start) *range-alpha-firepit-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* scale-x-start) *range-scale-firepit-fire-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* scale-y-start) *range-scale-firepit-fire-flame-y*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* r-scalar) *r-curve-firepit-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* g-scalar) *g-curve-firepit-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* b-scalar) *b-curve-firepit-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* a-scalar) *curve-alpha-firepit-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* scale-x-scalar) *curve-firepit-fire-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-firepit-fire-flame-curve-settings* scale-y-scalar) *curve-firepit-fire-flame-y*) + +;; failed to figure out what this is: +(defpart 1593 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:y (meters 8)) + (:scale-x (meters 40) (meters 6)) + (:rot-x (degrees 22.5)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 24.0 8.0) + (:omega (degrees 18011.25)) + (:timer (seconds 0.167) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:userdata 2048.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1595 + :init-specs ((:num 1.0) + (:x (meters -5) (meters 10)) + (:y (meters 10)) + (:z (meters -5) (meters 10)) + (:rot-x 8) + (:r 16384.0) + (:g 8192.0) + (:b 8192.0) + (:vel-y (meters 0.0033333334)) + (:fade-b -10.922667) + (:accel-y (meters 0.0033333334)) + (:timer (seconds 1)) + (:flags (distort)) + (:next-time (seconds 0.5)) + (:next-launcher 1596) + ) + ) + +;; failed to figure out what this is: +(defpart 1596 + :init-specs ((:fade-b 10.922667)) + ) + +;; failed to figure out what this is: +(defpart 1594 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.005 0.08) + (:x (meters 0) (meters 8)) + (:y (meters 8)) + (:scale-x (meters 1) (meters 1)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 8.0) + (:a 255.0) + (:vel-y (meters 0.1) (meters 0.06666667)) + (:fade-g -0.16666667) + (:fade-b -5.0) + (:fade-a -1.7) + (:friction 0.99 0.02) + (:timer (seconds 1) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3598.0002)) + (:conerot-radius (meters 1) (meters 2)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-stronghold-torchfire + :id 493 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1597 :fade-after (meters 100) :falloff-to (meters 200) :flags (sp6)) + (sp-item 1598 :fade-after (meters 100) :falloff-to (meters 200) :flags (sp6)) + (sp-item 1599 :fade-after (meters 50) :falloff-to (meters 100) :flags (sp6)) + (sp-item 1600 :fade-after (meters 50) :falloff-to (meters 100) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1597 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 1.0 1.0) + (:y (meters 0)) + (:z (meters 0.5)) + (:scale-x (meters 2.5) (meters 2)) + (:rot-z (degrees -20) (degrees 40)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 64.0) + (:b 200.0) + (:a 0.0) + (:vel-y (meters 0.02) (meters 0.0033333334)) + (:scalevel-x (meters -0.016666668)) + (:accel-y (meters 0.00066666666) (meters 0.00066666666)) + (:friction 0.999) + (:timer (seconds 0.005)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees -10) (degrees 20)) + (:conerot-z (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *stronghold-range-color-flame* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *stronghold-range-alpha-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 96.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 159.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *stronghold-range-scale-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 3.0 5.0 6.0 7.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *stronghold-range-scale-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 4.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *r-stronghold-curve-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 1.0 1.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.6 0.0 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *g-stronghold-curve-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 -1.0 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *b-stronghold-curve-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -5.0000005 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *stronghold-curve-alpha-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.01 0.01 1.0 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 3.3000002 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *stronghold-curve-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.6 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.3 0.6 0.5 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.6 -1.0 -0.75000006 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *stronghold-curve-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.4 0.5 0.6)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.4 0.5 0.3333334 1.0)) + ) + ) + ) + +;; definition for symbol *part-stronghold-torchfire-flame-curve-settings*, type particle-curve-settings +(define *part-stronghold-torchfire-flame-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.3) + :lifetime-offset (seconds 0.2) + :flags (particle-curve-flags pcf1) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1597 init-specs 18 initial-valuef) + (the-as float *part-stronghold-torchfire-flame-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* color-start) *stronghold-range-color-flame*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* alpha-start) *stronghold-range-alpha-flame*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* scale-x-start) *stronghold-range-scale-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* scale-y-start) *stronghold-range-scale-flame-y*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* r-scalar) *r-stronghold-curve-flame*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* g-scalar) *g-stronghold-curve-flame*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* b-scalar) *b-stronghold-curve-flame*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* a-scalar) *stronghold-curve-alpha-flame*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* scale-x-scalar) *stronghold-curve-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-stronghold-torchfire-flame-curve-settings* scale-y-scalar) *stronghold-curve-flame-y*) + +;; failed to figure out what this is: +(defpart 1598 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 1.0 1.0) + (:y (meters 0)) + (:z (meters 0.1)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 10.0 20.0) + (:g 10.0 20.0) + (:b 200.0) + (:a 64.0) + (:vel-y (meters 0.016666668)) + (:scalevel-x (meters -0.00033333333)) + (:fade-a -0.64) + (:accel-y (meters 0.0013333333) (meters 0.0013333333)) + (:friction 0.999) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1599 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:y (meters 2)) + (:z (meters 0)) + (:scale-x (meters 12) (meters 6)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 32.0) + (:a 8.0 4.0) + (:omega (degrees 11261.25)) + (:timer (seconds 0.167) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 2048.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1600 + :init-specs ((:texture (common-white common)) + (:num 0.01 0.05) + (:scale-x (meters 0.1) (meters 0.1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 8.0) + (:a 64.0 64.0) + (:omega (degrees 0.045)) + (:vel-y (meters 0.06666667) (meters 0.016666668)) + (:fade-g -0.43333334) + (:fade-b -0.8) + (:fade-a -0.42666668 -0.42666668) + (:accel-y (meters 0.0026666666)) + (:friction 0.95) + (:timer (seconds 2) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-bollard-fire + :id 494 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 40) + :parts ((sp-item 1601 :fade-after (meters 500) :falloff-to (meters 600) :flags (sp6)) + (sp-item 1602 :flags (sp6)) + (sp-item 1603 :fade-after (meters 100) :falloff-to (meters 200)) + (sp-item 1604 :falloff-to (meters 60) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1601 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 1.0 1.0) + (:x (meters 0) (meters 0.5)) + (:y (meters 0.8)) + (:scale-x (meters 1)) + (:rot-z (degrees -20) (degrees 40)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters -0.006666667) (meters 0.0033333334)) + (:accel-y (meters 0.001) (meters 0.00033333333)) + (:timer (seconds 0.005)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 0) (degrees 70)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-color-desert-bollard-fire-flame* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-alpha-desert-bollard-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 96.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 159.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-bollard-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 7.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-desert-bollard-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 12.0 13.0 14.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *r-curve-desert-bollard-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 1.0 1.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.6 0.0 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *g-curve-desert-bollard-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 -1.0 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *b-curve-desert-bollard-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -5.0000005 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-alpha-desert-bollard-fire-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 3.3333335 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-bollard-fire-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.6 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.3 0.6 0.5 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.6 -1.0 -0.75000006 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-desert-bollard-fire-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.4 0.5 0.6)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.4 0.5 0.3333334 1.0)) + ) + ) + ) + +;; definition for symbol *part-desert-bollard-fire-flame-curve-settings*, type particle-curve-settings +(define *part-desert-bollard-fire-flame-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.3) + :lifetime-offset (seconds 0.4) + :flags (particle-curve-flags pcf1) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1601 init-specs 16 initial-valuef) + (the-as float *part-desert-bollard-fire-flame-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* color-start) + *range-color-desert-bollard-fire-flame* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* alpha-start) + *range-alpha-desert-bollard-fire-flame* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* scale-x-start) + *range-scale-desert-bollard-fire-flame-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* scale-y-start) + *range-scale-desert-bollard-fire-flame-y* + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* r-scalar) *r-curve-desert-bollard-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* g-scalar) *g-curve-desert-bollard-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* b-scalar) *b-curve-desert-bollard-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* a-scalar) *curve-alpha-desert-bollard-fire-flame*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* scale-x-scalar) *curve-desert-bollard-fire-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-desert-bollard-fire-flame-curve-settings* scale-y-scalar) *curve-desert-bollard-fire-flame-y*) + +;; failed to figure out what this is: +(defpart 1602 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:y (meters 2)) + (:scale-x (meters 20) (meters 6)) + (:rot-x (degrees 6.7500005)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 24.0 8.0) + (:omega (degrees 22511.25)) + (:timer (seconds 0.167) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:userdata 2048.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1604 + :init-specs ((:num 0.3) + (:x (meters -1) (meters 2)) + (:y (meters 2)) + (:z (meters -1) (meters 2)) + (:rot-x 8) + (:r 8192.0) + (:g 4096.0) + (:b 4096.0) + (:vel-y (meters 0.0033333334)) + (:fade-b -6.826667) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (distort)) + (:next-time (seconds 0.5)) + (:next-launcher 1605) + ) + ) + +;; failed to figure out what this is: +(defpart 1605 + :init-specs ((:fade-b 6.826667)) + ) + +;; failed to figure out what this is: +(defpart 1603 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.005 0.08) + (:y (meters 2)) + (:scale-x (meters 0.5) (meters 0.2)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 8.0) + (:a 255.0) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-g -0.16666667) + (:fade-b -5.0) + (:fade-a -1.7) + (:friction 0.99 0.02) + (:timer (seconds 1) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3598.0002)) + (:conerot-radius (meters 1) (meters 2)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-waterfall-mist-fall + :id 495 + :flags (sp0 sp4) + :bounds (static-bspherem 0 -60 0 80) + :parts ((sp-item 1606 :falloff-to (meters 400) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1606 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 0.2 0.1) + (:x (meters -5) (meters 20)) + (:y (meters 10)) + (:z (meters 10)) + (:scale-x (meters 5) (meters 10)) + (:scale-y :copy scale-x) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 0.0) + (:vel-y (meters -0.046666667) (meters -0.013333334)) + (:vel-z (meters 0.0033333334)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.021333333 0.042666666) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 0 #x407800)) + (:next-time (seconds 2.5)) + (:next-launcher 1607) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1607 + :init-specs ((:fade-a -0.08533333 -0.08533333)) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-waterfall-splash + :id 496 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 80) + :parts ((sp-item 1608 :falloff-to (meters 600) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1608 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 0.0 3.0) + (:y (meters 3)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 200.0 50.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.01)) + (:scalevel-x (meters 0.026666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.10666667) + (:accel-y (meters -0.0016666667)) + (:friction 0.98 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x405d00)) + (:conerot-x (degrees 90) (degrees 30)) + (:conerot-y (degrees -60) (degrees 120)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-waterfall-mist-up + :id 497 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1609 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1610 :falloff-to (meters 400) :flags (is-3d sp6)) + (sp-item 1611 :falloff-to (meters 400) :flags (is-3d sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1609 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.1 0.1) + (:x (meters 10) (meters 5)) + (:z (meters -5) (meters 50)) + (:scale-x (meters 5) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0.026666667) (meters 0.016666668)) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.021333333 0.042666666) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 2.5)) + (:next-launcher 1607) + (:rotate-y (degrees -40)) + ) + ) + +;; failed to figure out what this is: +(defpart 1610 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-texture-group) + (:num 0.2) + (:x (meters -10)) + (:y (meters 5)) + (:scale-x (meters 10) (meters 10)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 200.0 50.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-a 1.28 1.28) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 0 0 0 #x405d00 #x406300)) + (:next-time (seconds 0.167)) + (:next-launcher 1612) + ) + ) + +;; failed to figure out what this is: +(defpart 1611 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-texture-group) + (:num 0.2) + (:x (meters -3)) + (:y (meters 5)) + (:z (meters -10)) + (:scale-x (meters 10) (meters 10)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 200.0 50.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-a 1.28 1.28) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 0 0 0 #x405d00 #x406300)) + (:next-time (seconds 0.167)) + (:next-launcher 1612) + ) + ) + +;; failed to figure out what this is: +(defpart 1612 + :init-specs ((:fade-a -0.10666667 -0.10666667)) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-waterfall-mist-rainbow + :id 498 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 80) + :parts ((sp-item 1613 :fade-after (meters 100) :flags (sp6) :hour-mask #b111110000000000001111111) + (sp-item 1614 :falloff-to (meters 400) :flags (is-3d sp6)) + (sp-item 1615 :falloff-to (meters 400) :flags (is-3d sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1613 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 0.1) + (:x (meters 0)) + (:y (meters 0)) + (:z (meters -20)) + (:scale-x (meters 60)) + (:scale-y :copy scale-x) + (:r 180.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:fade-a 0.0 0.6666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.5)) + (:next-launcher 1616) + ) + ) + +;; failed to figure out what this is: +(defpart 1616 + :init-specs ((:fade-a -0.42666668 -0.42666668)) + ) + +;; failed to figure out what this is: +(defpart 1614 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-texture-group) + (:num 0.2) + (:x (meters -5)) + (:y (meters -1)) + (:z (meters 5)) + (:scale-x (meters 10) (meters 10)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 200.0 50.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-a 1.28 1.28) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 0 0 0 #x405d00 #x406300)) + (:next-time (seconds 0.167)) + (:next-launcher 1612) + ) + ) + +;; failed to figure out what this is: +(defpart 1615 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-texture-group) + (:num 0.2) + (:x (meters -15)) + (:y (meters -1)) + (:z (meters -15)) + (:scale-x (meters 10) (meters 10)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 200.0 50.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-a 1.28 1.28) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 0 0 0 #x405d00 #x406300)) + (:next-time (seconds 0.167)) + (:next-launcher 1612) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-desert-water-rocks-splash + :id 499 + :duration (seconds 1) + :linger-duration (seconds 6) + :flags (sp0 sp9) + :bounds (static-bspherem 0 0 0 600) + :parts ((sp-item 1617 :fade-after (meters 300) :falloff-to (meters 300) :period (seconds 60) :length (seconds 0.2)) + (sp-item 1618 :fade-after (meters 300) :falloff-to (meters 300) :flags (is-3d) :period (seconds 60) :length (seconds 0.035) :offset 150) + (sp-item 1619 :fade-after (meters 300) :falloff-to (meters 300) :period (seconds 60) :length (seconds 0.2) :offset 20) + ) + ) + +;; failed to figure out what this is: +(defpart 1617 + :init-specs ((:texture (common-white common)) + (:birth-func 'birth-func-curve) + (:num 3.0) + (:y (meters -3)) + (:scale-x (meters 1)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:vel-z (meters 0.016666668) (meters 0.016666668)) + (:accel-y (meters -0.0011666666)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-dessplash-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 90.0 130.0 110.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-dessplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 127.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-dessplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 2.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 6.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-dessplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.9 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 30.0 40.0 41.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 26.666668 99.99998 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-dessplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.1 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 -1.1111112 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-dessplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 3.0 4.0 5.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-dessplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.2 -0.3 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 2.5 4.0 4.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.5 14.999999 0.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-desert-water-rocks-splash-curve-settings*, type particle-curve-settings +(define *part-desert-water-rocks-splash-curve-settings* + (new 'static 'particle-curve-settings :lifetime-base (seconds 1.5) :lifetime-offset (seconds 1)) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1617 init-specs 16 initial-valuef) + (the-as float *part-desert-water-rocks-splash-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* color-start) *range-dessplash-color*) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* alpha-start) *range-dessplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* scale-x-start) *range-dessplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* scale-y-start) *range-dessplash-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* a-scalar) *curve-dessplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* scale-x-scalar) *curve-dessplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-desert-water-rocks-splash-curve-settings* scale-y-scalar) #f) + +;; failed to figure out what this is: +(defpart 1618 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 1.0) + (:x (meters 0) (meters 4)) + (:y (meters 1.5)) + (:scale-x (meters 5) (meters 3)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y (meters 5) (meters 3)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:scalevel-x (meters 0.033333335) (meters 0.016666668)) + (:scalevel-y (meters 0.033333335) (meters 0.016666668)) + (:fade-a -0.21333334) + (:timer (seconds 8)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:rotate-y (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpart 1619 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 3.0) + (:x (meters 0) (meters 1)) + (:y (meters 5)) + (:scale-x (meters 2) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:scalevel-x (meters 0.01) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.064 -0.064) + (:accel-y (meters -0.0011666666)) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-14 glow)) + (:func 'check-drop-group-center) + (:conerot-x (degrees -15) (degrees 30)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/desert/wvehicle/wcar_REF.gc b/test/decompiler/reference/jakx/levels/desert/wvehicle/wcar_REF.gc new file mode 100644 index 0000000000..94c65226bf --- /dev/null +++ b/test/decompiler/reference/jakx/levels/desert/wvehicle/wcar_REF.gc @@ -0,0 +1,9550 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *wcar-explosion-info*, type vehicle-explosion-info +(define *wcar-explosion-info* + (new 'static 'vehicle-explosion-info + :joints (new 'static 'boxed-array :type joint-exploder-static-joint-params + (new 'static 'joint-exploder-static-joint-params :joint-index 3 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 4 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 5 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 6 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 7 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 8 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 9 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 10 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 11 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 12 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 13 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 14 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 15 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 16 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 17 :parent-joint-index -1) + (new 'static 'joint-exploder-static-joint-params :joint-index 18 :parent-joint-index -1) + ) + :collide-spec (collide-spec backgnd) + :art-level 'cars + :skel #f + :skel-name "skel-vehicle-explosion" + :anim 2 + ) + ) + +;; definition for symbol *v-mongoose-constants*, type rigid-body-vehicle-constants +(define *v-mongoose-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-mongoose-constants* + :flags #xf + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 550.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 550.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 5500.0 + :downshift-rpm 3000.0 + :final-drive-ratio 3.3048 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 82899.766 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.47 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.3 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7819706 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1 #x1 #xa) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x277 #x278 #x279) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2 #x6 #xb) + :original-rpm 3000.0 + :min-rpm 2000.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3 #x7 #xc) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4 #x8 #xd) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x5 #x9 #xe) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 1261.568 -16433.152 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 409.6 1638.4 -17612.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -409.6 1638.4 -17612.8 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 -2048.0 15564.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -2048.0 15564.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 -1638.4 -18227.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -1638.4 -18227.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xbb3 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2048.0 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2048.0 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2867.2 -1638.4 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 0.7) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -1638.4 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 0.7) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 2.7) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.7) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -14563.556 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1.8) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3072.0 -1638.4 15073.28 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6963.2 + :scale 1.0 + :travel 5324.8 + :probe-y-offset -1228.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 0.9 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7809 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 8806.4 -1638.4 -7782.4 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length -4382.72 + :steer-arm-length 1638.4 + :scale 1.2 + :travel 6553.6 + :probe-y-offset 6371.5557 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7628 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 8123.187 + :settle-rot-x 778.25824 + :idle-settle-height 8123.187 + :idle-settle-rot-x 778.25824 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 27 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 81.92 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 81.92 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000000029903406 + 0.000000000000000000000007862878 + 0.000000000000000000002066044 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 3 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 6430.72 -5447.68 (the-as float #x444))) + ) + :trunk-seats (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 0.0 9912.32 -9830.4 (the-as float #x1fbbc))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6348.8 -9830.4 (the-as float #x2fb06))) + (new 'static 'vector :data (new 'static 'array float 4 -7372.8 -286.72 819.2 (the-as float #x4fb06))) + ) + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -6553.6 1.0)) + :nodes (new 'static 'array int8 7 33 36 17 41 37 32 35) + :shield-anim 5 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -6963.2 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-mongoose-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-mongoose-constants* debris) #f) + +;; definition for symbol *v-falcon-constants*, type rigid-body-vehicle-constants +(define *v-falcon-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 2662.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-falcon-constants* + :flags #xf + :vehicle-type #x1 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.0294 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 73688.68 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.36 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 6144.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xf #xf #x18) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x10 #x14 #x19) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x11 #x15 #x1a) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x12 #x16 #x1b) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x13 #x17 #x1c) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 3 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1228.8 1638.4 -16793.6 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 4915.2 1433.6 -19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4915.2 1433.6 -19660.8 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 3686.4 -409.6 19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3686.4 -409.6 19660.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 -1638.4 -18227.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 -1638.4 -18227.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3c + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 1638.4 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.5) (meters 7)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 1638.4 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.5) (meters 7)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 -4096.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -1699.84 17408.0 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6553.6 + :steer-arm-length 1433.6 + :scale 1.0 + :travel 5324.8 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.6 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5424 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2457.6 -204.8 -12083.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 8192.0 + :steer-arm-length 1638.4 + :scale 1.114 + :travel 6553.6 + :probe-x-offset -1228.8 + :probe-y-offset -1638.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.4 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6637.568 + :settle-rot-x 189.27162 + :idle-settle-height 4592.435 + :idle-settle-rot-x -241.2635 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000000000048172363 + 0.0000000000000000000001274669 + 0.00000000000000000003348188 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 4 5) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 3686.4 -16588.8 0.0)) + ) + :trunk-seats (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 8888.32 -8396.8 (the-as float #x111c7))) + (new 'static 'vector :data (new 'static 'array float 4 -6266.88 6758.4 -10076.16 (the-as float #x20222))) + (new 'static 'vector :data (new 'static 'array float 4 -6266.88 8724.48 -19496.96 (the-as float #x4f99a))) + (new 'static 'vector :data (new 'static 'array float 4 -4096.0 10035.2 -13926.4 (the-as float #x8fdde))) + ) + :roof-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 7127.04 1638.4 (the-as float #x10f8e4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6266.88 -409.6 (the-as float #x200aaa))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8601.6 -1556.48 (the-as float #x40fdde))) + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 5447.68 -12451.84 (the-as float #x40000))) + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 6062.08 -16588.8 (the-as float #x80000))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 409.6 1.0)) + :nodes (new 'static 'array int8 7 40 39 35 34 38 36 37) + :shield-anim 8 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3276.8 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-falcon-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-falcon-constants* debris) #f) + +;; definition for symbol *v-wombat-constants*, type rigid-body-vehicle-constants +(define *v-wombat-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-wombat-constants* + :flags #xf + :vehicle-type #x2 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.2840326 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 117441.34 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.8343816 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1d #x1d #x26) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1e #x22 #x27) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x1f #x23 #x28) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x20 #x24 #x29) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x21 #x25 #x2a) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 4513.792 -14061.568 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5795.84 3817.472 -17301.504 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5795.84 3817.472 -17301.504 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 -3686.4 18841.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 -3686.4 18841.6 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 2457.6 -14336.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 2457.6 -14336.0 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.3) (meters 0.8) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 819.2 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.3) (meters 0.8) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 2048.0 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 2048.0 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 819.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 4096.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -3276.8 17408.0 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 7782.4 + :steer-arm-length 1638.4 + :scale 1.0 + :travel 5324.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7834 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 737.28 901.12 -12083.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 10240.0 + :steer-arm-length 819.2 + :scale 1.2 + :travel 6963.2 + :probe-x-offset -819.2 + :probe-y-offset -3686.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7598 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 7817.216 + :settle-rot-x 221.83937 + :idle-settle-height 7817.216 + :idle-settle-rot-x 221.83937 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000020528607 + 0.0000000000000000005425129 + 0.00000000000000014236636 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 2 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -3194.88 6512.64 -7372.8 (the-as float #xfd28))) + ) + :trunk-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10444.8 -14131.2 (the-as float #x10ccc))) + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10158.08 -18432.0 (the-as float #x2038e))) + ) + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 8437.76 -2048.0 (the-as float #x40666))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6635.52 1843.2 (the-as float #x809f4))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 4915.2 819.2 1.0)) + :nodes (new 'static 'array int8 7 21 25 24 38 42 41 43) + :shield-anim 11 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -6553.6 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-wombat-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-wombat-constants* debris) #f) + +;; definition for symbol *v-possum-constants*, type rigid-body-vehicle-constants +(define *v-possum-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 12.0 + :inv-mass 0.083333336 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 4096.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 6) (meters 4) (meters 10.1)) + :gravity 245760.0 + ) + :name '*v-possum-constants* + :flags #xf + :vehicle-type #x3 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 600.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 600.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.7944422 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 99786.75 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.45 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4.5) + :string-min-length (meters 5) + :string-max-length (meters 10) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.6666666 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2b #x2b #x36) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2c #x31 #x37) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2d #x32 #x38) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2e #x33 #x39) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x2f #x34 #x3a) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x30 #x35 #x3b) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.5) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 4710.4 -14929.92 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 6635.5205 8017.9204 -11612.16 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6635.5205 8017.9204 -11612.16 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 -3276.8 21708.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 -3276.8 21708.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3481.6 1843.2 -19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3481.6 1843.2 -19660.8 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xb33 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1228.8 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1228.8 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 819.2 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 2.5) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 819.2 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 2.5) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1638.4 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2.5) (meters 0.9) (meters 2.9)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -14563.556 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2.5) (meters 0.7) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5170.1763 -4147.2 17418.24 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6082.56 + :steer-arm-length 2211.84 + :scale 1.35 + :travel 7168.0 + :suspension-spring 0.9 + :suspension-damping 0.5 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7845 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3428.352 -1382.4 -10506.24 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6635.5205 + :steer-arm-length 2211.84 + :scale 1.35 + :travel 7168.0 + :probe-y-offset -2211.84 + :suspension-spring 0.9 + :suspension-damping 0.5 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7988 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 9488.384 + :settle-rot-x -167.64473 + :idle-settle-height 9488.384 + :idle-settle-rot-x -167.64473 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 23 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 491.52 737.28 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 491.52 737.28 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000003327095 + 0.000000000000000008789052 + 0.0000000000000023057262 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 5 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -4710.4 7045.12 -7372.8 (the-as float #xfdde))) + ) + :trunk-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 9216.0 -7372.8 (the-as float #x1fd28))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10895.36 -4915.2 (the-as float #x2fdde))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9338.88 -6144.0 (the-as float #x4fd28))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9830.4 -7782.4 (the-as float #x8fb06))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8601.6 -6307.84 (the-as float #x1002d8))) + ) + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 409.6 1.0)) + :nodes (new 'static 'array int8 7 19 21 26 27 3 3 3) + :shield-anim 14 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -8192.0 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-possum-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-possum-constants* debris) #f) + +;; definition for symbol *v-bobcat-constants*, type rigid-body-vehicle-constants +(define *v-bobcat-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 5.0 + :inv-mass 0.2 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 3686.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 7.5)) + :gravity 245760.0 + ) + :name '*v-bobcat-constants* + :flags #xf + :vehicle-type #x4 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 2.7259 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4004.9778 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.675 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.5 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3c #x3c #x45) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3d #x41 #x46) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3e #x42 #x47) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3f #x43 #x48) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x40 #x44 #x49) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 4 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 3) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1228.8 819.2 -7782.4 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 -1638.4 14745.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 -1638.4 14745.6 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 3891.2 -7782.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 3891.2 -7782.4 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xd3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 2048.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 0.7) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 1228.8 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 -819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 -819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 2867.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.7) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 4710.4 -1622.016 12185.6 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 5734.4 + :scale 0.9 + :travel 5324.8 + :probe-y-offset -819.2 + :suspension-spring 0.9 + :suspension-damping 0.6 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 0.75 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.6567 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3932.16 -696.32 -6144.0 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 5324.8 + :steer-arm-length 1638.4 + :scale 1.08 + :travel 6963.2 + :probe-y-offset -1638.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 0.75 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.788 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 7153.664 + :settle-rot-x 1068.255 + :idle-settle-height 7153.664 + :idle-settle-rot-x 1068.255 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 28 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000000019527441 + 0.0000000000000000000005131893 + 0.00000000000000000013477788 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 7782.4 -3276.8 (the-as float #xdc72))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 9912.32 -2048.0 (the-as float #x1fd28))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9707.52 -983.04 (the-as float #x20222))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 7987.2 -1843.2 1.0)) + :nodes (new 'static 'array int8 7 44 45 20 0 35 37 38) + :shield-anim 20 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5734.4 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-bobcat-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-bobcat-constants* debris) #f) + +;; definition for symbol *v-cougar-constants*, type rigid-body-vehicle-constants +(define *v-cougar-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2457.6 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 7) (meters 5) (meters 7.5)) + :gravity 245760.0 + ) + :name '*v-cougar-constants* + :flags #xf + :vehicle-type #x5 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 600.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 600.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 2.9694974 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4551.1113 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.55 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.6666666 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6c #x6c #x77) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6d #x72 #x78) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6e #x73 #x79) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x6f #x74 #x7a) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x70 #x75 #x7b) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x71 #x76 #x7c) + :original-rpm 5500.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 4 + :thruster-flame-width (meters 1.7) + :thruster-flame-length (meters 4) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 2867.2 6553.6 -11468.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2662.4 3891.2 23756.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2662.4 3891.2 23756.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 6758.4 -15155.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 6758.4 -15155.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xdff + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 2457.6 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 2457.6 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 3686.4 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1.2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -3686.4 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1.2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.8) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 1.8) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1638.4 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5231.7393 -1228.8 16588.8 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 5813.0435 + :steer-arm-length 1228.8 + :scale 1.04 + :travel 5324.8 + :probe-y-offset -819.2 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.4645 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3633.152 -749.568 -6553.6 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6539.674 + :steer-arm-length 2048.0 + :scale 1.12 + :travel 6144.0 + :probe-y-offset -1228.8 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.4198 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4549.0176 + :settle-rot-x 16.18375 + :idle-settle-height 4549.0176 + :idle-settle-rot-x 16.18375 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 29 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x107d2))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -122.88 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -122.88 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000000000012042458 + 0.000000000000000000000031659118 + 0.000000000000000000008317323 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 12001.28 -3604.48 0.0)) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 11468.8 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 42 43 18 0 33 34 35) + :shield-anim 32 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-cougar-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-cougar-constants* debris) #f) + +;; definition for symbol *v-wolf-constants*, type rigid-body-vehicle-constants +(define *v-wolf-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 7.5)) + :gravity 245760.0 + ) + :name '*v-wolf-constants* + :flags #xf + :vehicle-type #x6 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 650.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 650.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.033825 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4004.9778 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.55 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.5461216 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x5e #x5e #x67) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x5f #x63 #x68) + :original-rpm 2000.0 + :min-rpm 1001.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x60 #x64 #x69) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x61 #x65 #x6a) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x62 #x66 #x6b) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 4096.0 6553.6 -11468.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 4915.2 0.0 13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4915.2 0.0 13926.4 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3276.8 -9420.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3276.8 -9420.8 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xdf0 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 0.0 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 819.2 0.0 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1228.8 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 -3686.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5816.32 -1638.4 12943.36 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 4915.2 + :steer-arm-length 1638.4 + :scale 1.05 + :travel 5324.8 + :probe-y-offset -2048.0 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5592 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 4464.64 -749.568 -7987.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6553.6 + :steer-arm-length 2048.0 + :scale 1.14 + :travel 6963.2 + :probe-y-offset -2048.0 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.5579 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6698.189 + :settle-rot-x 9.6483555 + :idle-settle-height 6698.189 + :idle-settle-rot-x 9.6483555 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 30 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x104fa))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 -204.8 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 -204.8 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000000019527441 + 0.0000000000000000000005131893 + 0.00000000000000000013477788 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 3) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10854.4 -4505.6 (the-as float #xf8e4))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10854.4 -4505.6 (the-as float #x1f8e4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10076.16 3276.8 (the-as float #x409f4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10076.16 3276.8 (the-as float #x809f4))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 10240.0 -2662.4 1.0)) + :nodes (new 'static 'array int8 7 44 45 20 0 35 36 37) + :shield-anim 23 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5734.4 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-wolf-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-wolf-constants* debris) #f) + +;; definition for symbol *v-bear-constants*, type rigid-body-vehicle-constants +(define *v-bear-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 16.0 + :inv-mass 0.0625 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2048.0 3481.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 7.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-bear-constants* + :flags #xf + :vehicle-type #x7 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 4.2342324 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x9f #x9f #xaa) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa1 #xa6 #xac) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa2 #xa7 #xad) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa3 #xa8 #xae) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xa4 #xa9 #xaf) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 8601.6 -12288.0 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 6144.0 -1228.8 17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6144.0 -1228.8 17203.2 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3481.6 5734.4 -12697.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3481.6 5734.4 -12697.6 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2867.2 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2867.2 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -4096.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 2.5) (meters 1)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -1228.8 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 8192.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 5160.96 -491.52 17612.8 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 6963.2 + :steer-arm-length 2048.0 + :scale 1.5 + :travel 5324.8 + :probe-y-offset -2457.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7834 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2129.92 -1105.92 -11223.04 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 10240.0 + :steer-arm-length 2048.0 + :scale 1.5 + :travel 6963.2 + :probe-y-offset -1638.4 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7598 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 7817.216 + :settle-rot-x 221.83937 + :idle-settle-height 7817.216 + :idle-settle-rot-x 221.83937 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 0.000000000000000000539138 0.00000000000000014236636 0.00000000000003733745 0.0) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 5 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10772.48 -4505.6 (the-as float #x71c))) + ) + :trunk-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 11919.36 -6307.84 (the-as float #x1fdde))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 12533.76 -6471.68 (the-as float #x2ff4a))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 11059.2 -7208.96 (the-as float #x4fa50))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 11837.44 -8028.16 (the-as float #x802d8))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 10772.48 -10649.6 (the-as float #x10fb06))) + ) + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 21 23 28 29 25 26 27) + :shield-anim 39 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -6553.6 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-bear-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-bear-constants* debris) #f) + +;; definition for symbol *v-leopard-constants*, type rigid-body-vehicle-constants +(define *v-leopard-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 12.0 + :inv-mass 0.083333336 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-leopard-constants* + :flags #xf + :vehicle-type #x8 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.995916 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.55 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5.5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x8e #x8e #x99) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x90 #x95 #x9b) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x91 #x96 #x9c) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x92 #x97 #x9d) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x93 #x98 #x9e) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 9011.2 -16384.0 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2932.736 11792.384 -15380.48 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2932.736 11792.384 -15380.48 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3686.4 4096.0 13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3686.4 4096.0 13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 6963.2 -819.2 19660.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6963.2 -819.2 19660.8 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 2457.6 -14336.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 2457.6 -14336.0 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xd3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 2457.6 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 2867.2 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 1228.8 -409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 -409.6 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -3276.8 5734.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 6144.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 4997.12 -1228.8 16588.8 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6553.6 + :steer-arm-length 1638.4 + :scale 1.2 + :travel 6144.0 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7904 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3645.44 204.8 -10854.4 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 7782.4 + :steer-arm-length 1638.4 + :scale 1.45 + :travel 6963.2 + :probe-y-offset -1228.8 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7645 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6406.144 + :settle-rot-x -55.96046 + :idle-settle-height 6406.144 + :idle-settle-rot-x -55.96046 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 30 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x1071c))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000000000012042458 + 0.000000000000000000000031659118 + 0.000000000000000000008317323 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 13803.52 -6963.2 (the-as float #xfbbc))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 14745.6 -5324.8 (the-as float #x1ff4a))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 14827.52 -4915.2 (the-as float #x2fdde))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 12288.0 -5734.4 1.0)) + :nodes (new 'static 'array int8 7 42 43 46 0 34 35 36) + :shield-anim 29 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5734.4 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-leopard-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-leopard-constants* debris) #f) + +;; definition for symbol *v-panther-constants*, type rigid-body-vehicle-constants +(define *v-panther-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 16.0 + :inv-mass 0.0625 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 3276.8 3072.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 8.5) (meters 5) (meters 12)) + :gravity 245760.0 + ) + :name '*v-panther-constants* + :flags #xf + :vehicle-type #x9 + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.9205766 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 3640.889 + :tire-steering-speed-factor 65245.184 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.52 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.768868 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x7d #x7d #x88) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x7f #x84 #x8a) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x80 #x85 #x8b) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x81 #x86 #x8c) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x82 #x87 #x8d) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 2867.2 10444.8 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3686.4 10240.0 -12288.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3686.4 10240.0 -12288.0 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2252.8 3686.4 16384.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2252.8 3686.4 16384.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 6144.0 -11468.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 6144.0 -11468.8 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xdf0 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 1228.8 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.9) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.9) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.2) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 -4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.5) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3481.6 3276.8 14796.801 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 9748.48 + :steer-arm-length 2048.0 + :scale 1.2112501 + :travel 7372.8 + :probe-y-offset -2457.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7798 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3133.44 6922.24 -10514.433 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 9922.561 + :steer-arm-length 3686.4 + :scale 1.3806635 + :travel 8192.0 + :probe-x-offset -2867.2 + :probe-y-offset -5324.8 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7642 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4532.634 + :settle-rot-x -278.80106 + :idle-settle-height 4532.634 + :idle-settle-rot-x -278.80106 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 30 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10666))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 983.04 -450.56 901.12 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -983.04 -450.56 901.12 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.0000000000000000000000019527441 + 0.0000000000000000000005131893 + 0.00000000000000000013477788 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 12779.52 -7208.96 (the-as float #x71c))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -4587.52 8273.92 3276.8 (the-as float #x1fe94))) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 12779.52 -7208.96 (the-as float #x2071c))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 3481.6 12288.0 -6144.0 1.0)) + :nodes (new 'static 'array int8 7 45 46 20 0 35 36 37) + :shield-anim 26 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-panther-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-panther-constants* debris) #f) + +;; definition for symbol *v-tiger-constants*, type rigid-body-vehicle-constants +(define *v-tiger-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 614.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-tiger-constants* + :flags #xf + :vehicle-type #xa + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 650.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 650.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.2511978 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 92110.85 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.27 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 -1228.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.6509434 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4a #x4a #x57) + :original-rpm 1039.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4c #x52 #x59) + :original-rpm 2000.0 + :min-rpm 1040.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4d #x53 #x5a) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4e #x54 #x5b) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x4f #x55 #x5c) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 6500.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 4505.6 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 3891.2 -2048.0 18432.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3891.2 -2048.0 18432.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 4710.4 1638.4 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4710.4 1638.4 -17203.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 4096.0 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 1.5) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 4096.0 3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 1.5) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 2048.0 -819.2 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -2048.0 -819.2 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -819.2 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -2048.0 1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 8192.0 1228.8 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1) (meters 1)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 7516.16 -2088.96 16179.2 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :steer-arm-length 4096.0 + :scale 1.08 + :travel 5324.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 0.75 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7977 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 6553.6 2539.52 -15093.76 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :steer-arm-length 4096.0 + :scale 1.18 + :travel 6963.2 + :probe-y-offset -4096.0 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.05 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7427 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6538.445 + :settle-rot-x 131.0538 + :idle-settle-height 6538.445 + :idle-settle-rot-x 131.0538 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 25 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000000029702246 + 0.000000000000000000000007862878 + 0.000000000000000000002066044 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 7495.68 -8601.6 (the-as float #xf82e))) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 34 35 30 16 11 12 13) + :shield-anim 17 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5324.8 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-tiger-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-tiger-constants* debris) #f) + +;; definition for symbol *v-cheetah-constants*, type rigid-body-vehicle-constants +(define *v-cheetah-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 5324.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-cheetah-constants* + :flags #xf + :vehicle-type #xb + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.0386183 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.8343816 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb0 #xb0 #xbb) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb2 #xb7 #xbd) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb3 #xb8 #xbe) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb4 #xb9 #xbf) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xb5 #xba #xc0) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 4423.68 8847.36 -13107.2 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 5324.8 -819.2 18432.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5324.8 -819.2 18432.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3072.0 3276.8 -14336.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3072.0 3276.8 -14336.0 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf3f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 -2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 -2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 2.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 -1638.4 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.8) (meters 3) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 1.5) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2.5) (meters 0.8) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -1638.4 17530.88 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 7864.32 + :steer-arm-length 1638.4 + :scale 0.9260999 + :travel 5324.8 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5212 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -163.84 -7536.64 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 9830.4 + :steer-arm-length 2048.0 + :scale 1.125 + :travel 6963.2 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.1 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.6327 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4646.5024 + :settle-rot-x -105.476555 + :idle-settle-height 4646.5024 + :idle-settle-rot-x -105.476555 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 24 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x104fa))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -40.96 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -40.96 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000007811381 + 0.000000000000000000002066044 + 0.0000000000000000005425129 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 5) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 8396.8 -6144.0 (the-as float #xfbbc))) + ) + :trunk-seats #f + :roof-seats (new 'static 'inline-array vector 5 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10731.52 -4096.0 (the-as float #x1ff4a))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8396.8 -6553.6 (the-as float #x2fb06))) + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 11141.12 -6553.6 (the-as float #x4fb06))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 8396.8 -6553.6 (the-as float #x809f4))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 9871.36 -7372.8 (the-as float #x100000))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -204.8 1.0)) + :nodes (new 'static 'array int8 7 38 39 37 0 40 41 42) + :shield-anim 35 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-cheetah-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-cheetah-constants* debris) #f) + +;; definition for symbol *v-gila-constants*, type rigid-body-vehicle-constants +(define *v-gila-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 16.0 + :inv-mass 0.0625 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 3276.8 2867.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-gila-constants* + :flags #xf + :vehicle-type #xc + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 650.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 650.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 2.9888606 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 117441.34 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.572327 + :engine-loop-count 6 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 6 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc1 #xc1 #xcc) + :original-rpm 1000.0 + :min-rpm 100.0 + :max-rpm 1999.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc2 #xc2 #xcd) + :original-rpm 2000.0 + :min-rpm 1023.0 + :max-rpm 2999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc3 #xc8 #xce) + :original-rpm 3000.0 + :min-rpm 2001.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc4 #xc9 #xcf) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc5 #xca #xd0) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5499.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xc6 #xcb #xd1) + :original-rpm 5500.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 0.9) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -17203.2 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 6144.0 -2048.0 18432.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -6144.0 -2048.0 18432.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 4915.2 2457.6 -16793.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4915.2 2457.6 -16793.6 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xe7f + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 4096.0 -3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -4096.0 -3686.4 -1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 2730.6667 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1.5) (meters 3.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -2730.6667 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 0.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 0.0 3276.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.5) (meters 2) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 2867.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 2) (meters 1.2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.8) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -2048.0 2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 1.5) (meters 5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 3379.2002 -1556.48 15687.68 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 6758.4004 + :steer-arm-length 1843.2 + :scale 1.1 + :travel 5324.8 + :probe-y-offset -1228.8 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.785 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 1847.296 0.0 -11468.8 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 8560.64 + :steer-arm-length 1638.4 + :scale 1.21 + :travel 6963.2 + :probe-y-offset -819.2 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.7604 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 6470.451 + :settle-rot-x -326.78796 + :idle-settle-height 6470.451 + :idle-settle-rot-x -326.78796 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 23 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10b60))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -40.96 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -40.96 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.00000000000000000003327095 + 0.000000000000000008789052 + 0.0000000000000023057262 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 0.0 10403.84 -14131.2 (the-as float #xf778))) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 10240.0 -7782.4 1.0)) + :nodes (new 'static 'array int8 7 20 22 26 27 0 24 25) + :shield-anim 41 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -5324.8 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-gila-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-gila-constants* debris) #f) + +;; definition for symbol *v-snake-constants*, type rigid-body-vehicle-constants +(define *v-snake-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 3276.8 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 8)) + :gravity 245760.0 + ) + :name '*v-snake-constants* + :flags #xf + :vehicle-type #xd + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.127298 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 4369.067 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.42 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 4) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 6144.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.7856394 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd2 #xd2 #xdd) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd4 #xd9 #xdf) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd5 #xda #xe0) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd6 #xdb #xe1) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xd7 #xdc #xe2) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 4) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 4505.6 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -15974.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -15974.4 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 819.2 9011.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 819.2 9011.2 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3276.8 3276.8 -14131.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3276.8 3276.8 -14131.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xd70 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -409.6 1228.8 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 409.6 819.2 1228.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 1) (meters 1.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.5) (meters 1)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 0.6) (meters 0.7) (meters 1.2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -819.2 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 2) (meters 0.7) (meters 2.2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 1843.2 901.12 7864.32 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 5939.2 + :steer-arm-length 1638.4 + :scale 0.9 + :travel 5324.8 + :probe-y-offset -2048.0 + :suspension-spring 0.9 + :suspension-damping 0.6 + :forward-grip 0.9 + :side-grip 1.0 + :max-brake-torque 1.0 + :camber 546.13336 + :x-scale 0.8 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7903 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 1351.68 1638.4 -12083.2 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3 vwf5) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 7782.4 + :steer-arm-length 1638.4 + :scale 1.15 + :travel 6553.6 + :probe-y-offset -2457.6 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :camber 1820.4445 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.7566 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 5521.408 + :settle-rot-x 221.5663 + :idle-settle-height 5521.408 + :idle-settle-rot-x 221.5663 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 8 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 -2252.8 819.2 -720.896 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 122.88 819.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 122.88 819.2 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 (new 'static 'vector)) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 0 0) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 7741.44 -12451.84 (the-as float #xf1c8))) + ) + :trunk-seats #f + :roof-seats #f + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -6963.2 1.0)) + :nodes (new 'static 'array int8 7 19 20 3 3 3 3 3) + :shield-anim 5 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -4096.0 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-snake-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-snake-constants* debris) #f) + +;; definition for symbol *v-daxtermobile-constants*, type rigid-body-vehicle-constants +(define *v-daxtermobile-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 8.0 + :inv-mass 0.125 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 1638.4 5324.8 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10)) + :gravity 245760.0 + ) + :name '*v-daxtermobile-constants* + :flags #xf + :vehicle-type #xe + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 1000.0 + :min-rpm 750.0 + :max-rpm 4500.0 + :peak-torque-rpm 2200.0 + :powerband-width-rpm 2000.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 3500.0 + :downshift-rpm 1000.0 + :final-drive-ratio 3.0386183 + :gear-ratio-array (new 'static 'array float 8 -4.0 4.0 1.78 1.0 0.0 0.0 0.0 0.0) + :gear-count 4 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 327680.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 78294.23 + :tire-steering-speed-bias 2048.0 + :ackermann-factor 0.435 + :tire-static-friction 1.0452001 + :tire-static-friction-speed (meters 3) + :tire-dynamic-friction 0.41808003 + :tire-dynamic-friction-speed (meters 6) + :drag-force-factor 0.1 + :rolling-resistance 0.3 + :downforce-factor 1.5 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :hop-turn-torque 491520.0 + :ground-torque-scale 0.6 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 5) + :string-min-length (meters 5) + :string-max-length (meters 12) + :min-fov 16930.133 + :max-fov 21845.334 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 0.0 5120.0 5324.8 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 40960.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 40960.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.8343816 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe3 #xe3 #xee) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 0.5 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe5 #xea #xf0) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe6 #xeb #xf1) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe7 #xec #xf2) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #xe8 #xed #xf3) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 1 + :thruster-flame-width (meters 1.4) + :thruster-flame-length (meters 6) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 4657.152 -10240.0 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 5734.4 3891.2 -17203.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -5734.4 3891.2 -17203.2 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 3481.6 819.2 20480.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3481.6 819.2 20480.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 2867.2 2662.4 -10649.6 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -2867.2 2662.4 -10649.6 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 40.0 + :inv-hit-points 0.025 + :hit-threshold 65536.0 + :impact-damage-factor 1.0 + :section-mask #xf4c + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 1228.8 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.2) (meters 0.9) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 -1228.8 819.2 819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 1.2) (meters 0.9) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x109 + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2867.2 -2048.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5) (meters 1) (meters 2)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 2048.0 -4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 2) (meters 3)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x110 + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -4915.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5) (meters 1) (meters 2.5)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :max-angle 910.2222 + :inv-hit-points 0.1 + :hit-points 10.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 -409.6 -819.2 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 3) (meters 0.5) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 1.0 0.0 0.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + :min-angle -910.2222 + :inv-hit-points 0.2 + :hit-points 5.0 + :rattle-sound #x10a + :impact-sound #x11c + ) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 2498.56 -1638.4 17530.88 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 7864.32 + :steer-arm-length 1638.4 + :scale 0.9260999 + :travel 5324.8 + :probe-y-offset -409.6 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 3276.8 + :settle-pos 0.5212 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -163.84 -7536.64 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 9830.4 + :steer-arm-length 2048.0 + :scale 1.125 + :travel 6963.2 + :suspension-spring 0.75 + :suspension-damping 0.6 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :x-scale 1.0 + :probe-radius 1024.0 + :width 4096.0 + :settle-pos 0.6327 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 4646.5024 + :settle-rot-x -105.476555 + :idle-settle-height 4646.5024 + :idle-settle-rot-x -105.476555 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :rp-node-count 24 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :attach-point-count 12 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1146.88 819.2 -40.96 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1146.88 819.2 -40.96 1.0)) + ) + :attach-point-array (new 'static 'inline-array vector 48 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :attach-node-array (new 'static 'inline-array vector 1 + (new 'static 'vector + :data (new 'static 'array float 4 + 0.000000000000000000000007811381 + 0.000000000000000000002066044 + 0.0000000000000000005425129 + 0.0 + ) + ) + ) + ) + :daxter (new 'static 'vehicle-daxter-info + :counts (new 'static 'array int8 3 1 2 2) + :chassis-seats (new 'static 'inline-array vector 1 + (new 'static 'vector :data (new 'static 'array float 4 -3194.88 6512.64 -7372.8 (the-as float #xfd28))) + ) + :trunk-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10444.8 -14131.2 (the-as float #x10ccc))) + (new 'static 'vector :data (new 'static 'array float 4 -4505.6 10158.08 -18432.0 (the-as float #x2038e))) + ) + :roof-seats (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 8437.76 -2048.0 (the-as float #x40666))) + (new 'static 'vector :data (new 'static 'array float 4 0.0 6635.52 1843.2 (the-as float #x809f4))) + ) + ) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -8192.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 6144.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 38 39 35 40 41 0 0) + :shield-anim 37 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 -20480.0 -3686.4 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-daxtermobile-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-daxtermobile-constants* debris) #f) + +;; definition for symbol *v-drone-constants*, type rigid-body-vehicle-constants +(define *v-drone-constants* + (new 'static 'rigid-body-vehicle-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 1.0 + :inv-mass 1.0 + :bounce-factor 0.2 + :friction-factor 0.75 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 409.6 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 5.5) (meters 3) (meters 10.5)) + :gravity 245760.0 + ) + :name '*v-drone-constants* + :flags #xf + :vehicle-type #xf + :engine (new 'static 'vehicle-engine-info + :max-torque 251658240.0 + :inertia 4096.0 + :drag 0.2 + :idle-rpm 750.0 + :clutch-min-rpm 900.0 + :clutch-max-rpm 5500.0 + :min-rpm 750.0 + :max-rpm 7500.0 + :peak-torque-rpm 3700.0 + :powerband-width-rpm 3900.0 + ) + :transmission (new 'static 'vehicle-transmission-info + :inertia 8192.0 + :upshift-rpm 5500.0 + :downshift-rpm 3000.0 + :final-drive-ratio 4.0 + :gear-ratio-array (new 'static 'array float 8 -2.9 4.0 2.66 1.78 1.3 1.0 0.0 0.0) + :gear-count 6 + ) + :handling (new 'static 'vehicle-handling-info + :brake-factor 4194304000.0 + :turbo-boost-factor 4.0 + :turbo-boost-half-gain-speed 204800.0 + :tire-steering-angle 5097.2446 + :tire-steering-speed-factor 46055.426 + :tire-steering-speed-bias 20480.0 + :ackermann-factor 0.27 + :tire-static-friction 1.2193999 + :tire-static-friction-speed (meters 2) + :tire-dynamic-friction 0.60969996 + :tire-dynamic-friction-speed (meters 4) + :drag-force-factor 0.05 + :rolling-resistance 0.3 + :downforce-factor 1.0 + :roll-control-factor 1.0 + :jump-thrust-factor 1.0 + :buoyancy-factor 0.03 + :water-drag-factor 0.25 + :air-roll-torque 1.0 + :air-pitch-torque 1.0 + :air-angular-damping 0.02 + :ground-torque-scale 0.3 + :cos-ground-effect-angle 0.42261827 + :ai-steering-factor 1.0 + :ai-throttle-factor 1.0 + ) + :pilot (new 'static 'vehicle-pilot-info + :player-turn-anim-min -1.0 + :player-turn-anim-max 1.0 + :pilot-x-accel-factor 1.0 + :pilot-y-accel-factor 1.0 + :pilot-z-accel-factor 1.0 + ) + :camera (new 'static 'vehicle-camera-info + :string-min-height (meters 4.5) + :string-max-height (meters 3) + :string-min-length (meters 5) + :string-max-length (meters 14) + :min-fov 16930.133 + :max-fov 19296.71 + :head-offset 8192.0 + :foot-offset 4096.0 + :look-pos-array (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 -2048.0 6144.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -20480.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 20480.0 19251.2 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 19251.2 20480.0 1.0)) + ) + ) + :sound (new 'static 'vehicle-sound-info + :water-sound #x113 + :jump-sound #x114 + :turbo-sound #x10e + :susp-creak-sound #x105 + :susp-bottom-out-sound #x10d + :susp-speed-threshold 61440.0 + :rpm-scale 1.0 + :engine-loop-count 5 + :engine-loop-array (new 'static 'inline-array vehicle-sound-engine-loop-info 5 + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3c #x3c #x45) + :original-rpm 1420.0 + :min-rpm 100.0 + :max-rpm 2800.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3d #x41 #x46) + :original-rpm 3000.0 + :min-rpm 1500.0 + :max-rpm 3999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3e #x42 #x47) + :original-rpm 4000.0 + :min-rpm 3001.0 + :max-rpm 4999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x3f #x43 #x48) + :original-rpm 5000.0 + :min-rpm 4001.0 + :max-rpm 5999.0 + :pitch-scale 1.0 + ) + (new 'static 'vehicle-sound-engine-loop-info + :sound-array (new 'static 'array uint16 3 #x40 #x44 #x49) + :original-rpm 6000.0 + :min-rpm 5001.0 + :max-rpm 7600.0 + :pitch-scale 1.0 + ) + ) + :tire-roll-sounds (new 'static 'inline-array vehicle-sound-loop-info 6 + (new 'static 'vehicle-sound-loop-info + :sound #x116 + :speed 40960.0 + :min-speed 20480.0 + :max-speed 61440.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x115 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x104 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x118 + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x11a + :speed 40960.0 + :max-speed 40960.0 + :pitch-offset -0.5 + :pitch-scale 0.25 + :min-pitch -2.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x106 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 40960.0 + :pitch-scale 0.125 + :min-pitch -0.2 + :max-pitch 0.2 + ) + ) + :tire-slide-sounds (new 'static 'inline-array vehicle-sound-loop-info 2 + (new 'static 'vehicle-sound-loop-info + :sound #x10b + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + (new 'static 'vehicle-sound-loop-info + :sound #x107 + :speed 40960.0 + :min-speed 8192.0 + :max-speed 16384.0 + :pitch-offset -0.0625 + :pitch-scale 0.0625 + :min-pitch -10.0 + :max-pitch 10.0 + ) + ) + ) + :particles (new 'static 'vehicle-particle-info + :headlight-count 2 + :taillight-count 2 + :thruster-count 2 + :thruster-flame-width (meters 0.6) + :thruster-flame-length (meters 2) + :thruster-local-pos (new 'static 'vector :data (new 'static 'array float 4 1638.4 4505.6 -15564.8 1.0)) + :exhaust-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -15974.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -15974.4 1.0)) + ) + :exhaust-local-dir (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 -1.0 1.0)) + ) + :smoke-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1638.4 4096.0 -13926.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1638.4 4096.0 -13926.4 1.0)) + ) + :smoke-local-vel (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 12288.0 0.0 0.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -12288.0 0.0 0.0 1.0)) + ) + :headlight-local-pos (new 'static 'inline-array vector 3 + (new 'static 'vector :data (new 'static 'array float 4 4096.0 2457.6 20480.0 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -4096.0 2457.6 20480.0 1.0)) + (new 'static 'vector) + ) + :taillight-local-pos (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 3276.8 0.0 -19251.2 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -3276.8 0.0 -19251.2 1.0)) + ) + ) + :damage (new 'static 'vehicle-damage-info + :inv-toughness-factor 1.0 + :hit-points 10.0 + :inv-hit-points 0.1 + :hit-threshold 8192.0 + :impact-damage-factor 1.0 + :section-mask #x800 + :section-array (new 'static 'inline-array vehicle-section-info 12 + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info) + (new 'static 'vehicle-section-info + :rbody (new 'static 'rigid-body-object-constants + :info (new 'static 'rigid-body-info + :max-time-step 0.033333335 + :mass 2.0 + :inv-mass 0.5 + :bounce-factor 0.5 + :friction-factor 0.1 + :cm-offset-joint (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :inertial-tensor-box (new 'static 'array meters 3 (meters 4) (meters 4) (meters 4)) + :gravity 163840.0 + ) + ) + :hinge-axis (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 1.0)) + :color (new 'static 'rgbaf :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + :physics-model (new 'static 'vehicle-physics-model-info + :front-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -983.04004 19415.041 1.0)) + :flags (vehicle-wheel-flag vwf1 vwf3 vwf4) + :inertia 6144000.0 + :radius 4096.0 + :susp-arm-length 11968.512 + :steer-arm-length 1966.0801 + :scale 1.2 + :travel 6389.7603 + :probe-y-offset -4915.2 + :suspension-spring 0.9 + :suspension-damping 0.4 + :forward-grip 1.0 + :side-grip 1.0 + :max-brake-torque 1.0 + :camber 546.13336 + :x-scale 1.0 + :probe-radius 1638.4 + :width 3276.8 + :settle-pos 0.795 + ) + :rear-wheel (new 'static 'vehicle-wheel-info + :local-pos (new 'static 'vector :data (new 'static 'array float 4 0.0 -983.04004 -18112.512 1.0)) + :flags (vehicle-wheel-flag vwf0 vwf1 vwf2 vwf3 vwf5) + :inertia 10240000.0 + :radius 4096.0 + :susp-arm-length 10813.44 + :steer-arm-length 1966.0801 + :scale 1.5 + :travel 8355.841 + :probe-y-offset -4915.2 + :suspension-spring 0.75 + :suspension-damping 0.4 + :forward-grip 1.5 + :side-grip 1.1 + :max-brake-torque 1.0 + :camber 1820.4445 + :x-scale 1.0 + :probe-radius 1638.4 + :width 3276.8 + :settle-pos 0.746 + ) + ) + :setup (new 'static 'vehicle-setup-info + :settle-height 9641.984 + :settle-rot-x 321.67252 + :idle-settle-height 9641.984 + :idle-settle-rot-x 321.67252 + :shadow-bot-clip -61440.0 + :shadow-locus-dist 204800.0 + :color-option-count 1 + :unknown (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + :rider (new 'static 'vehicle-rider-info + :seat-count 1 + :seat-array (new 'static 'inline-array vehicle-seat-info 2 + (new 'static 'vehicle-seat-info + :position (new 'static 'vector :data (new 'static 'array float 4 -2252.8 819.2 -720.896 (the-as float #x10000))) + ) + (new 'static 'vehicle-seat-info) + ) + :rider-hand-offset (new 'static 'inline-array vector 2 + (new 'static 'vector :data (new 'static 'array float 4 1310.72 409.6 -614.4 1.0)) + (new 'static 'vector :data (new 'static 'array float 4 -1310.72 409.6 -409.6 1.0)) + ) + :attach-point-array #f + :attach-node-array #f + ) + :daxter (new 'static 'vehicle-daxter-info :chassis-seats #f :trunk-seats #f :roof-seats #f) + :hardpoint (new 'static 'vehicle-hardpoint-info + :local-pos-array (new 'static 'inline-array vector 7 + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + (new 'static 'vector) + ) + :flag-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -4096.0 1.0)) + :antenna-attach (new 'static 'vector :data (new 'static 'array float 4 0.0 8192.0 -4096.0 1.0)) + :nodes (new 'static 'array int8 7 3 3 3 3 3 3 3) + :shield-anim 5 + ) + :shield (new 'static 'vehicle-shield-info + :inner (new 'static 'ellipsoid :data (new 'static 'array float 4 16384.0 20480.0 24576.0 0.0)) + :offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + :outer-multiple 1.25 + ) + :explosion #f + :explosion-part #xe4 + :debris #f + :helmet-offset (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 1.0)) + ) + ) + +;; failed to figure out what this is: +(set! (-> *v-drone-constants* explosion) *wcar-explosion-info*) + +;; failed to figure out what this is: +(set! (-> *v-drone-constants* debris) #f) + + + + diff --git a/test/decompiler/reference/jakx/levels/desert/wvehicle/wvehicle-part_REF.gc b/test/decompiler/reference/jakx/levels/desert/wvehicle/wvehicle-part_REF.gc new file mode 100644 index 0000000000..dea4df3fc6 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/desert/wvehicle/wvehicle-part_REF.gc @@ -0,0 +1,2155 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-waterfall-splash + :id 225 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 764 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 764 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 80.0) + (:y (meters 0) (meters 2)) + (:z (meters 3) (meters 6)) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-z (meters 0.16666667) (meters 0.26666668)) + (:scalevel-x (meters 0.05)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters -0.0026666666)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:conerot-y (degrees 8) (degrees 5)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function birth-func-set-pos-vel +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun birth-func-set-pos-vel ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (let ((v1-0 *particle-birth-work*) + (s5-0 (new 'stack-no-clear 'inline-array 'vector 2)) + ) + (vector-float*! (-> s5-0 0) (-> v1-0 d-pos) (-> v1-0 tt)) + (+! (-> v1-0 tt) (-> v1-0 t-step)) + (+! (-> arg2 launchrot x) (-> s5-0 0 x)) + (+! (-> arg2 launchrot y) (-> s5-0 0 y)) + (+! (-> arg2 launchrot z) (-> s5-0 0 z)) + (set! (-> s5-0 1 quad) (-> *particle-birth-work* vel-range 0 quad)) + (when (< 1.0 (-> s5-0 1 w)) + (+! (-> s5-0 1 x) (* 2.0 (-> s5-0 1 w) (+ -0.5 (rand-vu)))) + (+! (-> s5-0 1 y) (* 2.0 (-> s5-0 1 w) (+ -0.5 (rand-vu)))) + (+! (-> s5-0 1 z) (* 2.0 (-> s5-0 1 w) (+ -0.5 (rand-vu)))) + ) + (set! (-> arg1 vel-sxvel x) (-> s5-0 1 x)) + (set! (-> arg1 vel-sxvel y) (-> s5-0 1 y)) + (set! (-> arg1 vel-sxvel z) (-> s5-0 1 z)) + ) + 0 + (none) + ) + +;; definition for function birth-func-adopt-velocity-vehicle +;; WARN: Return type mismatch vector vs none. +(defun birth-func-adopt-velocity-vehicle ((arg0 sparticle-system) + (arg1 sparticle-cpuinfo) + (arg2 sprite-vec-data-3d) + (arg3 sparticle-launcher) + (arg4 sparticle-launch-state) + ) + (let ((a0-1 (-> arg4 control proc))) + (when a0-1 + (let ((v1-1 (new 'stack-no-clear 'vector))) + (set! (-> v1-1 x) (-> arg1 vel-sxvel x)) + (set! (-> v1-1 y) (-> arg1 vel-sxvel y)) + (set! (-> v1-1 z) (-> arg1 vel-sxvel z)) + (set! (-> v1-1 w) 1.0) + (vector+float*! v1-1 v1-1 (-> a0-1 root transv) 0.0033333334) + (set! (-> arg1 vel-sxvel x) (-> v1-1 x)) + (set! (-> arg1 vel-sxvel y) (-> v1-1 y)) + (set! (-> arg1 vel-sxvel z) (-> v1-1 z)) + ) + (-> arg1 vel-sxvel) + ) + ) + (none) + ) + +;; definition for function sparticle-adopt-accel-vehicle +(defun sparticle-adopt-accel-vehicle ((arg0 sparticle-system) (arg1 sparticle-cpuinfo)) + (let ((a3-0 (-> arg1 key 0 proc))) + (when a3-0 + (let ((v1-2 (new 'stack-no-clear 'vector))) + (set! (-> v1-2 x) (-> arg1 vel-sxvel x)) + (set! (-> v1-2 y) (-> arg1 vel-sxvel y)) + (set! (-> v1-2 z) (-> arg1 vel-sxvel z)) + (set! (-> v1-2 w) 1.0) + (vector+float*! v1-2 v1-2 (the-as vector (&-> a3-0 stack 512)) (* 0.0033333334 (seconds-per-frame))) + (set! (-> arg1 vel-sxvel x) (-> v1-2 x)) + (set! (-> arg1 vel-sxvel y) (-> v1-2 y)) + (set! (-> arg1 vel-sxvel z) (-> v1-2 z)) + ) + (-> arg1 vel-sxvel) + ) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-wheel-fire + :id 226 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 765 :falloff-to (meters 600) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 765 + :init-specs ((:texture (flame02 level-default-sprite)) + (:birth-func 'birth-func-adopt-velocity-vehicle) + (:num 1.0) + (:scale-x (meters 3) (meters 2)) + (:rot-z (degrees 0) 1 (degrees 180)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:scalevel-x (meters -0.016666668) (meters -0.016666668)) + (:rotvel-z (degrees -0.06666667) (degrees 0.13333334)) + (:scalevel-y :copy scalevel-x) + (:fade-g -1.0) + (:fade-b -2.0) + (:fade-a 0.85333335 0.85333335) + (:accel-y (meters 0.001) (meters 0.00066666666)) + (:friction 0.99) + (:timer (seconds 0.167) (seconds 0.83)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-adopt-accel-vehicle) + (:next-time (seconds 0.25)) + (:next-launcher 766) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 766 + :init-specs ((:fade-a -0.8 -1.7066667)) + ) + +;; failed to figure out what this is: +(defpartgroup group-vehicle-wheel-oil + :id 227 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 767 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 767 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-adopt-velocity-vehicle) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 255.0) + (:scalevel-x (meters 0.016666668) (meters 0.026666667)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0013333333)) + (:friction 0.97) + (:timer (seconds 0.5)) + (:flags (glow)) + (:func 'sparticle-adopt-accel-vehicle) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-kg-big-explosion + :id 228 + :duration (seconds 4) + :linger-duration (seconds 3) + :flags (sp0) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 769 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 770 :period (seconds 30) :length (seconds 0.035)) + (sp-item 771 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 772 :period (seconds 30) :length (seconds 0.035)) + (sp-item 773 :period (seconds 30) :length (seconds 0.035)) + (sp-item 774 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 775 :period (seconds 30) :length (seconds 0.167)) + (sp-item 776 :period (seconds 30) :length (seconds 0.5)) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 777 :flags (sp3) :binding 768) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 768 :flags (sp2) :period (seconds 4) :length (seconds 2)) + ) + ) + +;; failed to figure out what this is: +(defpart 769 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 20)) + (:rot-x (degrees 225)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:fade-a -0.10666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + ) + ) + +;; failed to figure out what this is: +(defpart 770 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 10.0 10.0) + (:scale-x (meters 0.8) (meters 1.2)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.16666667) (meters 0.33333334)) + (:scalevel-x (meters -0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.9) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 771 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 30.0) + (:scale-x (meters 3) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 160.0) + (:b 40.0) + (:a 128.0) + (:vel-y (meters 0) (meters 0.06666667)) + (:scalevel-x (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.114285715) + (:fade-b -0.042857144) + (:fade-a -0.18285714 -0.18285714) + (:friction 0.93) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 772 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 5.0) + (:scale-x (meters 3) (meters 2)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 8.0 8.0) + (:g :copy r) + (:b :copy r) + (:a 64.0) + (:vel-y (meters 0.33333334) (meters 0.13333334)) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:friction 0.7) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 glow)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 773 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 30.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 1.0) + (:g 1.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.05)) + (:friction 0.97) + (:timer (seconds 2)) + (:flags (glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 0) (degrees 360)) + (:conerot-z (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 70.0 70.0 70.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 40.0 40.0 40.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 40.0 40.0 40.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 40.0 40.0 40.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 64.0 32.0 33.0 34.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 -32.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.7 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.4285715 -3.3333333 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-car-explosion-dust-in-curve-settings*, type particle-curve-settings +(define *part-car-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 1.5) + :lifetime-offset (seconds 1) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 773 init-specs 14 initial-valuef) + (the-as float *part-car-explosion-dust-in-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* color-start) *range-carexplo-dust-color*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* alpha-start) *range-carexplo-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-x-start) *range-carexplo-dust-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-y-start) *range-carexplo-dust-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* a-scalar) *curve-carexplo-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-x-scalar) *curve-carexplo-dust-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-dust-in-curve-settings* scale-y-scalar) *curve-carexplo-dust-scale-y*) + +;; failed to figure out what this is: +(defpart 775 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 5.0) + (:scale-x (meters 3) (meters 2)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.33333334) (meters 0.13333334)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.7) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 776 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 8.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:friction 0.9) + (:timer (seconds 1)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 20) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 3.0 5.0 6.0 7.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-scale-y* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 3.0 5.0 6.0 7.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.05 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -0.3076923 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-car-explosion-texture-curve-settings*, type particle-curve-settings +(define *part-car-explosion-texture-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.5) + :lifetime-offset (seconds 0.6) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 776 init-specs 16 initial-valuef) + (the-as float *part-car-explosion-texture-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* color-start) *range-carexplo-color*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* alpha-start) *range-carexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* scale-x-start) *range-carexplo-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* scale-y-start) *range-carexplo-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* a-scalar) *curve-carexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* scale-x-scalar) *curve-carexplo-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-car-explosion-texture-curve-settings* scale-y-scalar) *curve-carexplo-scale-y*) + +;; failed to figure out what this is: +(defpart 774 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 20)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 40.0) + (:a 128.0) + (:omega (degrees 6767.9995)) + (:scalevel-x (meters -0.16666667)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 777 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 4) (meters 4)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:scalevel-x (meters -0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 170)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 768 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-inherit-size) + (:num 1.0) + (:scale-x (meters 0.00024414062) (meters 0.00012207031)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:fade-a -0.18285714 -0.18285714) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-big-explosion-fireball + :id 229 + :flags (sp0) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 778 :flags (sp1 sp3)) + (sp-item 779 :flags (sp6) :period (seconds 9) :length (seconds 0.5)) + (sp-item 780 :flags (sp6) :period (seconds 9) :length (seconds 2)) + (sp-item 781 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 150) + (sp-item 782 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 300) + (sp-item 783 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 450) + (sp-item 784 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 600) + (sp-item 785 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 750) + (sp-item 786 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 900) + (sp-item 787 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1050) + (sp-item 788 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1200) + (sp-item 789 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1350) + (sp-item 790 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1500) + (sp-item 790 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1650) + (sp-item 790 :flags (sp6) :period (seconds 9) :length (seconds 0.5) :offset 1800) + ) + ) + +;; failed to figure out what this is: +(defpart 778 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters -2)) + (:scale-x (meters 15)) + (:rot-x (degrees 6.7500005)) + (:scale-y (meters 20)) + (:r 120.0) + (:g 100.0) + (:b 100.0) + (:a 255.0) + (:omega (degrees 22511.25)) + (:scalevel-x (meters -0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-b -0.16666667) + (:fade-a -0.425) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 779 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 20.0) + (:g 100.0 20.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 791 + :init-specs ((:scalevel-x (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.02 -0.12) + (:fade-g -0.12 -0.12 :store) + (:fade-b '*sp-temp*) + (:next-time (seconds 1.335)) + (:next-launcher 792) + ) + ) + +;; failed to figure out what this is: +(defpart 792 + :init-specs ((:scalevel-x (meters -0.02)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters 0.00033333333)) + (:next-time (seconds 0.167)) + (:next-launcher 793) + ) + ) + +;; failed to figure out what this is: +(defpart 793 + :init-specs ((:fade-a -1.28)) + ) + +;; failed to figure out what this is: +(defpart 780 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 0.3 0.3) + (:z (meters 1)) + (:scale-x (meters 0.05)) + (:rot-x (degrees 22.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0) + (:b 60.0) + (:a 64.0 64.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 use-global-acc)) + (:next-time (seconds 0.335)) + (:next-launcher 794) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 794 + :init-specs ((:scalevel-x (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:next-time (seconds 1.335)) + (:next-launcher 795) + ) + ) + +;; failed to figure out what this is: +(defpart 795 + :init-specs ((:scalevel-x (meters -0.02)) (:scalevel-y :copy scalevel-x) (:accel-y (meters 0.00033333333))) + ) + +;; failed to figure out what this is: +(defpart 781 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 20.0) + (:g 100.0 20.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 782 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 30.0) + (:g 90.0 30.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 783 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 20.0) + (:g 80.0 30.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 784 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 20.0) + (:g 70.0 20.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 785 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 80.0 15.0) + (:g 60.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 786 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0 15.0) + (:g 50.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 787 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 55.0 10.0) + (:g 40.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 788 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 45.0 10.0) + (:g 40.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 789 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 35.0 10.0) + (:g 30.0 10.0) + (:b :copy g) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 790 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 2.0) + (:z (meters 1)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0 10.0) + (:g 10.0) + (:b 10.0) + (:a 128.0) + (:vel-y (meters 0.013333334)) + (:scalevel-x (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00016666666)) + (:accel-z (meters -0.00016666666)) + (:timer (seconds 2.167)) + (:flags (sp-cpuinfo-flag-0)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x407800 #x400e00 #x400e00)) + (:next-time (seconds 0.335)) + (:next-launcher 791) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-kg-huge-explosion + :id 230 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (4.0 4.0 4.0) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-kg-explosion + :id 231 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (0.75 0.75 0.75) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-kg-mid-explosion + :id 232 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (0.5 0.5 0.5) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-kg-small-explosion + :id 233 + :duration (seconds 2) + :linger-duration (seconds 1) + :flags (sp0 sp5 sp6 sp7) + :bounds (static-bspherem 0 0 0 15) + :rotate ((degrees 0) (degrees 90) (degrees 0)) + :scale (0.3 0.3 0.3) + :parts ((sp-item 796 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 797 :flags (sp5 sp6) :period (seconds 3) :length (seconds 0.017)) + (sp-item 798 :flags (sp6) :period (seconds 3) :length (seconds 0.05)) + (sp-item 799 :fade-after (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.035) :offset 10) + (sp-item 800 :fade-after (meters 60) :falloff-to (meters 60) :flags (sp6) :period (seconds 3) :length (seconds 0.167) :offset 20) + (sp-item 801 :fade-after (meters 200) :falloff-to (meters 200) :flags (sp6) :period (seconds 3) :length (seconds 0.085) :offset 20) + (sp-item 802 :fade-after (meters 150) :falloff-to (meters 150) :flags (sp6) :period (seconds 3) :length (seconds 0.067) :offset 30) + ) + ) + +;; failed to figure out what this is: +(defpart 797 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 24.0) + (:scalevel-x (meters 0.10666667)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -4.266667) + (:fade-b -4.266667) + (:fade-a 0.0) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 use-global-acc sp-cpuinfo-flag-21)) + (:next-time (seconds 0.25)) + (:next-launcher 803) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 803 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.85333335) + (:fade-g -1.7066667) + (:fade-b -1.7066667) + (:fade-a -0.64) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 802 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 2.0 0.2) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 3600) :store) + (:scale-y (meters 0.8) (meters 0.2)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:next-time (seconds 0.085)) + (:next-launcher 804) + (:conerot-x '*sp-temp*) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 801 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 3.0) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 32.0 32.0) + (:vel-y (meters 0.02) (meters 0.01)) + (:scalevel-x (meters 0.01) (meters 0.13333334)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.36) + (:fade-b -4.24) + (:fade-a -0.22068965) + (:friction 0.95) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-21)) + (:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #x400a00 #x401000)) + (:next-time (seconds 0.085)) + (:next-launcher 804) + (:conerot-x (degrees 0) (degrees 3600)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 804 + :init-specs ((:fade-r 0.0) + (:fade-g 0.0) + (:fade-b 0.0) + (:next-time (seconds 0.017) (seconds 0.065)) + (:next-launcher 805) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 805 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.44) + (:fade-g -2.36) + (:fade-b -2.64) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 806) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 806 + :init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -1.2944444) + (:fade-g -0.7111111) + (:fade-b -0.094444446) + (:fade-a -0.06545454 -0.06545454) + (:next-time (seconds 0.5) (seconds 0.097)) + (:next-launcher 807) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 807 + :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.1125) (:rotate-y (degrees 0))) + ) + +;; failed to figure out what this is: +(defpart 796 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 5)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 96.0) + (:scalevel-x (meters 0.5)) + (:rotvel-z (degrees 0.3)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -1.28) + (:fade-b -5.1) + (:fade-a 0.0) + (:timer (seconds 0.217)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:next-time (seconds 0.1)) + (:next-launcher 808) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 808 + :init-specs ((:scalevel-x (meters -0.2857143)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -3.6571429) + (:fade-b 0.0) + (:fade-a -2.7428572) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 800 + :init-specs ((:texture (specs level-default-sprite)) + (:num 8.0 2.0) + (:x (meters 0.25)) + (:scale-x (meters 1) (meters 0.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 16.0 48.0) + (:vel-y (meters 0.083333336) (meters 0.083333336)) + (:scalevel-x (meters 0.006666667) (meters 0.0016666667)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g -0.18) + (:fade-b -2.12) + (:accel-y (meters -0.00016666666) (meters -0.00033333333)) + (:friction 0.87) + (:timer (seconds 3.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-21)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 809) + (:conerot-x (degrees 0) (degrees 3600)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 809 + :init-specs ((:scalevel-x (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-r 0.0) + (:fade-g 0.02) + (:fade-b 0.23555556) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 810) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 810 + :init-specs ((:fade-r -0.5543478) (:fade-g -0.5543478) (:fade-a -0.13913043) (:rotate-y (degrees 0))) + ) + +;; failed to figure out what this is: +(defpart 798 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:num 8.0 1.0) + (:x (meters 0) (meters 0.6)) + (:scale-x (meters 2.5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0 20.0) + (:g 70.0 20.0) + (:b 70.0 20.0) + (:a 0.0 40.0) + (:vel-y (meters 0) (meters 0.1)) + (:scalevel-x (meters 0.033333335) (meters 0.02)) + (:rotvel-z (degrees -0.12) (degrees 0.24)) + (:scalevel-y :copy scalevel-x) + (:fade-r 3.3) + (:fade-g 3.12) + (:fade-b 1.18) + (:fade-a 1.76) + (:friction 0.88) + (:timer (seconds 2.367)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:next-time (seconds 0.117) (seconds 0.047)) + (:next-launcher 811) + (:conerot-x (degrees 0) (degrees 3600)) + (:conerot-y (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 811 + :init-specs ((:scalevel-x (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.53333336) + (:fade-g -1.9666667) + (:fade-b -2.2) + (:fade-a -0.41666666) + (:next-time (seconds 0.15) (seconds 0.047)) + (:next-launcher 812) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 812 + :init-specs ((:scalevel-x (meters 0)) + (:scalevel-y :copy scalevel-x) + (:fade-r -0.38833332) + (:fade-g -0.21333334) + (:fade-b -0.028333334) + (:fade-a -0.38833332) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 799 + :init-specs ((:texture (motion-blur-part level-default-sprite)) + (:num 4.0 2.0) + (:scale-x (meters 0.2) (meters 0.5)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.2) (meters 0.1)) + (:r 128.0 128.0) + (:g 96.0) + (:b 64.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.13333334) (meters 0.02)) + (:fade-g 1.6) + (:fade-b 3.2) + (:fade-a -1.6) + (:timer (seconds 0.3)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0)) + ) + ) + +;; definition for function sparticle-motion-blur-dirt +;; INFO: function output is handled by mips2c +(def-mips2c sparticle-motion-blur-dirt (function sparticle-system sparticle-cpuinfo vector none)) + +;; definition for function spt-birth-func-brightness-buggy-rocks +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-buggy-rocks ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 101) 30)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 10)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 30)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpart 813 + :init-specs ((:texture (dirt01 level-default-sprite)) + (:birth-func 'spt-birth-func-part-buggy-rocks) + (:num 1.0) + (:x (meters 0) (meters 0.2)) + (:scale-x (meters 0.1) (meters 0.2)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.033333335) (meters 0.01)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.001)) + (:timer (seconds 1.5)) + (:flags (glow)) + (:userdata :data (new 'static 'boxed-array :type int32 + 10 + 1 + 0 + #x408d00 + #x408e00 + #x408f00 + #x409000 + #x409100 + #x409200 + #x409300 + #x409400 + #x409500 + #x409600 + #x409700 + #x409800 + #x409900 + #x409a00 + #x409b00 + #x409c00 + ) + ) + (:func 'sparticle-texture-animate) + (:conerot-x (degrees -5) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-birth-func-part-buggy-rocks +(defun spt-birth-func-part-buggy-rocks ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (spt-birth-func-brightness-buggy-rocks arg0 arg1 arg2) + (none) + ) + +;; failed to figure out what this is: +(defpart 293 + :init-specs ((:texture (dirt01 level-default-sprite)) + (:birth-func 'spt-birth-func-part-dbuggy-debris) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:y (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y (meters 1)) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.002)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 aux-list glow left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 + 10 + 1 + 0 + #x408d00 + #x408e00 + #x408f00 + #x409000 + #x409100 + #x409200 + #x409300 + #x409400 + #x409500 + #x409600 + #x409700 + #x409800 + #x409900 + #x409a00 + #x409b00 + #x409c00 + ) + ) + (:func 'sparticle-texture-animate) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; definition for function spt-birth-func-part-dbuggy-debris +(defun spt-birth-func-part-dbuggy-debris ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (birth-func-set-pos-vel arg0 arg1 arg2 arg3 arg4) + (spt-birth-func-brightness-buggy-rocks arg0 arg1 arg2) + (none) + ) + +;; definition for function spt-birth-func-brightness-buggy-snow +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-buggy-snow ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 31) 180)) + (s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + (s4-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + (v1-5 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-5))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpart 295 + :init-specs ((:texture (dirt01 level-default-sprite)) + (:birth-func 'spt-birth-func-part-wv-snow) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:y (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 0.15) (meters 0.15)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y (meters 0.15) (meters 0.15)) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 128.0) + (:omega (degrees 0.0675) (degrees 0.0225)) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.002)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 aux-list left-multiply-quat)) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; definition for function spt-birth-func-part-wv-snow +(defun spt-birth-func-part-wv-snow ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (birth-func-set-pos-vel arg0 arg1 arg2 arg3 arg4) + (none) + ) + +;; failed to figure out what this is: +(defpart 296 + :init-specs ((:texture (woodchip level-default-sprite)) + (:birth-func 'spt-birth-func-part-wv-grass) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:y (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y (meters 1)) + (:r 250.0) + (:g 250.0) + (:b 250.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:rotvel-z (degrees -2.4) (degrees 4.8)) + (:accel-y (meters -0.002)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 aux-list glow left-multiply-quat)) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; definition for function spt-birth-func-part-wv-grass +(defun spt-birth-func-part-wv-grass ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (birth-func-set-pos-vel arg0 arg1 arg2 arg3 arg4) + (none) + ) + +;; failed to figure out what this is: +(defpart 297 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-set-pos-vel) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 2)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:vel-y (meters 0.033333335)) + (:scalevel-x (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.96) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 298 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.05) + (:scale-x (meters 0.5)) + (:scale-y (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 16.0 16.0) + (:scalevel-x (meters 0.008333334) (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.07111111 -0.07111111) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 right-multiply-quat)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-part-wv-water-splash + :id 234 + :duration (seconds 5) + :flags (sp0) + :bounds (static-bspherem 0 -12 0 14) + :parts ((sp-item 814 :falloff-to (meters 500) :flags (sp6) :period (seconds 10) :length (seconds 0.2)) + (sp-item 815 :falloff-to (meters 500) :flags (sp6) :period (seconds 10) :length (seconds 0.2)) + (sp-item 816 :falloff-to (meters 500) :flags (is-3d sp6) :period (seconds 10) :length (seconds 0.335)) + ) + ) + +;; failed to figure out what this is: +(defpart 815 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 2.0) + (:x (meters 0) (meters 2)) + (:y (meters -2)) + (:scale-x (meters 0.2) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.01) (meters 0.016666668)) + (:scalevel-x (meters 0.0033333334) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:friction 0.98 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat sp-cpuinfo-flag-21)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x400a00 #x407800)) + (:conerot-x (degrees -2) (degrees 4)) + (:conerot-z (degrees -2) (degrees 4)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 814 + :init-specs ((:texture (water-radiate level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x 4) + (:rot-z (degrees 90)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-z (meters 0.033333335)) + (:accel-y (meters -0.0016666667)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow sp-cpuinfo-flag-21)) + (:userdata 0.0) + (:func 'live-func-curve) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wv-wsplash-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 128.0 158.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wv-wsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 64.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 64.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wv-wsplash-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 2.0 4.0 5.0 6.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-wv-wsplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 4.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-wv-wsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.1 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 0.0 -3.3333333 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-wv-wsplash-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 8.0 6.0 4.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -6.666667 -6.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-wv-wsplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 4.0 5.0 6.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-wv-water-splash-curve-settings*, type particle-curve-settings +(define *part-wv-water-splash-curve-settings* + (new 'static 'particle-curve-settings :lifetime-base (seconds 1.95) :lifetime-offset (seconds 0.1)) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 814 init-specs 16 initial-valuef) + (the-as float *part-wv-water-splash-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* color-start) *range-wv-wsplash-color*) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* alpha-start) *range-wv-wsplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* scale-x-start) *range-wv-wsplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* scale-y-start) *range-wv-wsplash-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* a-scalar) *curve-wv-wsplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* scale-x-scalar) *curve-wv-wsplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-wv-water-splash-curve-settings* scale-y-scalar) *curve-wv-wsplash-scale-y*) + +;; failed to figure out what this is: +(defpart 816 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.1) + (:y (meters 0.5)) + (:scale-x (meters 2) (meters 0.5)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y (meters 2) (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:scalevel-x (meters 0.01) (meters 0.0033333334)) + (:scalevel-y (meters 0.01) (meters 0.0033333334)) + (:fade-a -0.10666667) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 817 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:scale-x (meters 0) (meters 0.1)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:scalevel-x (meters 0.00033333333) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 818 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 5.0) + (:x (meters 0) (meters 1)) + (:scale-x (meters 0.2) (meters 0.2)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-y (meters 0.016666668) (meters 0.033333335)) + (:scalevel-x (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:conerot-x (degrees -40) (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 819 + :init-specs ((:texture (ripples level-default-sprite)) + (:num 0.5 1.0) + (:x (meters 1) (meters 5)) + (:scale-x (meters 0.1) (meters 0.2)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.001) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat sp-cpuinfo-flag-21)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 820 + :init-specs ((:texture (lakedrop level-default-sprite)) + (:num 2.0 2.0) + (:scale-x (meters 0.05) (meters 0.05)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-y (meters 0.026666667) (meters 0.026666667)) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-21)) + (:func 'check-water-level-drop) + (:conerot-x (degrees -2) (degrees 4)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 294 + :init-specs ((:texture (dirtpuff01 level-default-sprite)) + (:birth-func 'birth-func-set-pos-vel) + (:num 0.4) + (:scale-x (meters 2)) + (:rot-z (degrees 0) (degrees 3598.0002)) + (:scale-y (meters 2)) + (:r 150.0) + (:g 120.0) + (:b 90.0) + (:a 20.0) + (:vel-y (meters 0) (meters 0.013333334)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.07111111 -0.07111111) + (:accel-y (meters 0) (meters 0.000033333334)) + (:friction 0.98) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 1)) + (:next-launcher 821) + (:launchrot-x (degrees -90)) + (:conerot-x (degrees -10) (degrees 20)) + (:rotate-x (degrees 30)) + (:rotate-z (degrees -20) (degrees 40)) + ) + ) + +;; failed to figure out what this is: +(defpart 821 + :init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-part-wv-lava-splash + :id 235 + :duration (seconds 5) + :flags (sp0) + :bounds (static-bspherem 0 -12 0 14) + :parts ((sp-item 822 :flags (sp6) :period (seconds 10) :length (seconds 0.2)) + (sp-item 823 :flags (is-3d sp3 sp6) :period (seconds 10) :length (seconds 0.017)) + (sp-item 824 :flags (is-3d sp3 sp6) :period (seconds 10) :length (seconds 0.017)) + ) + ) + +;; failed to figure out what this is: +(defpart 822 + :init-specs ((:texture (flame02 level-default-sprite)) + (:birth-func 'birth-func-flip-based-on-scale) + (:num 2.0) + (:x (meters 0) (meters 4)) + (:scale-x (meters -8) 1 (meters 16)) + (:scale-y (meters -8) 1 (meters 16)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.0033333334) (meters 0.033333335)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y (meters 0.033333335)) + (:fade-a -0.42666668 -0.42666668) + (:friction 0.98 0.01) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.167)) + (:next-launcher 825) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 825 + :init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y (meters 0.0033333334) (meters 0.033333335))) + ) + +;; failed to figure out what this is: +(defpart 823 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 3.0) + (:x (meters 0) (meters 1)) + (:y (meters 0.1)) + (:scale-x (meters 5) (meters 0.5)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y (meters 5) (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y (meters 0.0033333334) (meters 0.0033333334)) + (:fade-a -0.10666667) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x405500 #x405500 #x401000 #x405d00)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 824 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 3.0) + (:x (meters 0) (meters 1)) + (:y (meters 0.1)) + (:scale-x (meters 5) (meters 0.5)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y (meters 5) (meters 0.5)) + (:r 32.0) + (:g 32.0) + (:b 32.0) + (:a 128.0) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y (meters 0.0033333334) (meters 0.0033333334)) + (:fade-a -0.10666667) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-4)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x405500 #x405500 #x401000 #x405d00)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/garage/garage-part_REF.gc b/test/decompiler/reference/jakx/levels/garage/garage-part_REF.gc new file mode 100644 index 0000000000..a04f100316 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/garage/garage-part_REF.gc @@ -0,0 +1,403 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-garage-steam + :id 463 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1515 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1515 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 2.0) + (:scale-x (meters 0.1) (meters 0.001)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 100.0) + (:b 100.0) + (:a 0.0) + (:omega (degrees 0.18)) + (:vel-z (meters 0.016666668) (meters 0.013333334)) + (:scalevel-x (meters 0.006666667) (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.32 0.32) + (:friction 0.95) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.167)) + (:next-launcher 1516) + (:conerot-y (degrees -45) (degrees 90)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1516 + :init-specs ((:fade-a -0.32 -0.32)) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-panellight-red + :id 464 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1517 :flags (sp6) :period (seconds 1) :length (seconds 0.017))) + ) + +;; failed to figure out what this is: +(defpart 1517 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.0 1 1.0) + (:scale-x (meters 0.15)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 0.0) + (:b 0.0) + (:a 100.0 20.0) + (:timer (seconds 0.5)) + (:flags (use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-panellight-yellow + :id 465 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1518 :flags (sp6) :period (seconds 0.667) :length (seconds 0.017) :offset 50)) + ) + +;; failed to figure out what this is: +(defpart 1518 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.0 1 1.0) + (:scale-x (meters 0.15)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 0.0) + (:a 60.0 10.0) + (:timer (seconds 0.25)) + (:flags (use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-panellight-blue + :id 466 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1519 :flags (sp6) :period (seconds 1.335) :length (seconds 0.017) :offset 25)) + ) + +;; failed to figure out what this is: +(defpart 1519 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.0 1 1.0) + (:scale-x (meters 0.15)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 128.0) + (:a 100.0 20.0) + (:timer (seconds 0.417)) + (:flags (use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-panellight-purple + :id 467 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1520 :flags (sp6) :period (seconds 0.835) :length (seconds 0.017) :offset 75)) + ) + +;; failed to figure out what this is: +(defpart 1520 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.0 1 1.0) + (:scale-x (meters 0.15)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 60.0) + (:g 0.0) + (:b 100.0) + (:a 100.0 20.0) + (:timer (seconds 0.667)) + (:flags (use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-panellight-green + :id 468 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1521 :flags (sp6) :period (seconds 1.5) :length (seconds 0.017) :offset 85)) + ) + +;; failed to figure out what this is: +(defpart 1521 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.0 1 1.0) + (:scale-x (meters 0.15)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 128.0) + (:b 0.0) + (:a 60.0 10.0) + (:timer (seconds 0.335)) + (:flags (use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-screen-big + :id 469 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1522 :flags (is-3d sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1522 + :init-specs ((:texture (screen-00 menu2-sprite)) + (:num 1.0) + (:y (meters 0.01)) + (:scale-x (meters 1.2)) + (:scale-y (meters 0.7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 + 15 + 1 + 0 + #x65909d00 + #x65909e00 + #x65909f00 + #x6590a000 + #x6590a100 + #x6590a200 + #x6590a300 + #x6590a400 + #x6590a500 + #x6590a600 + #x6590a700 + #x6590a800 + #x6590a900 + #x6590aa00 + #x6590ab00 + #x6590ac00 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-screen-small-top + :id 470 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1523 :flags (is-3d sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1523 + :init-specs ((:texture (screen-00 menu2-sprite)) + (:num 1.0) + (:z (meters 0.01)) + (:scale-x (meters 0.7)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 16.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 + 5 + 1 + 0 + #x65909d00 + #x65909e00 + #x65909f00 + #x6590a000 + #x6590a100 + #x6590a200 + #x6590a300 + #x6590a400 + #x6590a500 + #x6590a600 + #x6590a700 + #x6590a800 + #x6590a900 + #x6590aa00 + #x6590ab00 + #x6590ac00 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-screen-small-btm + :id 471 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1524 :flags (is-3d sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1524 + :init-specs ((:texture (screen-00 menu2-sprite)) + (:num 1.0) + (:z (meters 0.01)) + (:scale-x (meters 0.7)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 + 10 + 1 + 0 + #x65909d00 + #x65909e00 + #x65909f00 + #x6590a000 + #x6590a100 + #x6590a200 + #x6590a300 + #x6590a400 + #x6590a500 + #x6590a600 + #x6590a700 + #x6590a800 + #x6590a900 + #x6590aa00 + #x6590ab00 + #x6590ac00 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-lightglow + :id 472 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1525 :flags (sp5 sp6)) (sp-item 1526 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1525 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1) (meters 0.1)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 30.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpart 1526 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-smalltv-glow + :id 473 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 1527 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1527 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10) (meters 0.1)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-garage-largetv-glow + :id 474 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 1528 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1528 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 20) (meters 0.1)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/haven/atoll/atoll-part_REF.gc b/test/decompiler/reference/jakx/levels/haven/atoll/atoll-part_REF.gc new file mode 100644 index 0000000000..c4987620e0 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/haven/atoll/atoll-part_REF.gc @@ -0,0 +1,212 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-part-atoll-ocean-splash + :id 478 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1531 :falloff-to (meters 1000) :period (seconds 5) :length (seconds 0.2)) + (sp-item 1532 :falloff-to (meters 1000) :flags (is-3d) :period (seconds 5) :length (seconds 2) :offset 250) + (sp-item 1533 :falloff-to (meters 1000) :period (seconds 5) :length (seconds 0.2) :offset 20) + ) + ) + +;; failed to figure out what this is: +(defpart 1531 + :init-specs ((:texture (water-radiate level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 3.0) + (:y (meters -3)) + (:scale-x (meters 1)) + (:rot-z (degrees 90)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.26666668) (meters 0.033333335)) + (:vel-z (meters 0.033333335) (meters 0.033333335)) + (:accel-y (meters -0.0026666666)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-atoll-splash-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 90.0 130.0 110.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-atoll-splash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 127.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-atoll-splash-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 4.0 12.0 13.0 14.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 8.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-atoll-splash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 4.0 6.0 7.0 8.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-atoll-splash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.1 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 -1.1111112 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-atoll-splash-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.2 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 10.0 10.0 11.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 45.0 0.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-atoll-splash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 8.0 10.0 11.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 14.0 4.0 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-atoll-ocean-splash-curve-settings*, type particle-curve-settings +(define *part-atoll-ocean-splash-curve-settings* + (new 'static 'particle-curve-settings :lifetime-base (seconds 1.5) :lifetime-offset (seconds 1)) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1531 init-specs 17 initial-valuef) + (the-as float *part-atoll-ocean-splash-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* color-start) *range-atoll-splash-color*) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* alpha-start) *range-atoll-splash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* scale-x-start) *range-atoll-splash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* scale-y-start) *range-atoll-splash-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* a-scalar) *curve-atoll-splash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* scale-x-scalar) *curve-atoll-splash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-atoll-ocean-splash-curve-settings* scale-y-scalar) *curve-atoll-splash-scale-y*) + +;; failed to figure out what this is: +(defpart 1532 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:x (meters 0) (meters 10)) + (:y (meters 1.5)) + (:scale-x (meters 10) (meters 3)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y (meters 10) (meters 3)) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:scalevel-x (meters 0.1) (meters 0.016666668)) + (:scalevel-y (meters 0.1) (meters 0.016666668)) + (:fade-a -0.21333334) + (:timer (seconds 8)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:rotate-y (degrees 0) (degrees 360)) + ) + ) + +;; failed to figure out what this is: +(defpart 1533 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 6.0) + (:x (meters 0) (meters 1)) + (:y (meters 5)) + (:scale-x (meters 8) (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.06666667) (meters 0.2)) + (:scalevel-x (meters 0.01) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.064 -0.064) + (:accel-y (meters -0.0016666667)) + (:friction 0.99) + (:timer (seconds 6.667)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x406300 #x407800)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/haven/haven-part_REF.gc b/test/decompiler/reference/jakx/levels/haven/haven-part_REF.gc new file mode 100644 index 0000000000..f7da15c12d --- /dev/null +++ b/test/decompiler/reference/jakx/levels/haven/haven-part_REF.gc @@ -0,0 +1,309 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-haven-gen-light + :id 385 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1318 :falloff-to (meters 400) :flags (sp3 sp6)) + (sp-item 1319 :falloff-to (meters 400) :flags (sp3 sp6)) + (sp-item 1320 :falloff-to (meters 400) :flags (sp6) :period (seconds 10) :length (seconds 0.335)) + ) + ) + +;; failed to figure out what this is: +(defpart 1318 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 30.0) + (:y (meters 2) (meters 26)) + (:scale-x (meters 1) (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0) + (:g 60.0) + (:b 50.0) + (:a 64.0 64.0) + (:vel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.0016666667)) + (:friction 0.9) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1321) + (:conerot-z (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1321 + :init-specs ((:scalevel-x (meters 0.006666667)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpart 1319 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 100.0) + (:y (meters 10) (meters 16)) + (:scale-x (meters 0.1) (meters 0.1)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:omega (degrees 0.0675)) + (:vel-x (meters 0.016666668) (meters 0.06666667)) + (:fade-a -0.14222223 -0.14222223) + (:accel-y (meters -0.0016666667)) + (:friction 0.98 0.01) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-z (degrees -60) (degrees 80)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1320 + :init-specs ((:texture (lightning-anim-01 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 10.0) + (:y (meters 2) (meters 26)) + (:scale-x (meters 1) (meters 6)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 100.0) + (:b 80.0) + (:a 128.0) + (:timer (seconds 0.035) (seconds 0.13)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 15 1 0 #x404700 #x404800 #x404900)) + (:func 'sparticle-texture-animate) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-birth-func-brightness-sewer-water +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-sewer-water ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 60)) + (s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 41)) + (s4-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 30)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; definition for function spt-birth-func-brightness-sewer-water-foam +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-sewer-water-foam ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 90)) + (s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 21)) + (s4-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 30)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-haven-sewerwater + :id 386 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1322 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1323 :falloff-to (meters 800) :flags (sp6)) + (sp-item 1324 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1325 :falloff-to (meters 600) :flags (is-3d sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1322 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 0.8) + (:y (meters 4)) + (:z (meters 0)) + (:scale-x (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:omega (degrees 0.045)) + (:vel-z (meters 0.2) (meters 0.016666668)) + (:accel-y (meters -0.0033333334) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.835)) + (:flags (aux-list left-multiply-quat right-multiply-quat)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.167) (seconds 0.33)) + (:next-launcher 1326) + (:conerot-y (degrees 0) (degrees 1)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees -90) (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 1326 + :init-specs ((:r 60.0 100.0) + (:g 160.0) + (:b 60.0 100.0) + (:a 60.0 60.0) + (:next-time (seconds 0.035) (seconds 0.03)) + (:next-launcher 1327) + ) + ) + +;; failed to figure out what this is: +(defpart 1327 + :init-specs ((:r 0.0) (:g 0.0) (:b 0.0) (:a 0.0) (:next-time (seconds 0.035) (seconds 0.33)) (:next-launcher 1326)) + ) + +;; failed to figure out what this is: +(defpart 1323 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-sewer-water) + (:num 1.0) + (:z (meters -3)) + (:scale-x (meters 6) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:vel-z (meters 0.2) (meters 0.016666668)) + (:scalevel-x (meters 0.016666668) (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0033333334) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-y (degrees 0) (degrees 1)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1324 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-sewer-water-foam) + (:num 4.0) + (:x (meters -8) (meters 16)) + (:y (meters -23)) + (:z (meters 35) (meters 16)) + (:scale-x (meters 6) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.006666667) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.335) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-2 aux-list glow left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1325 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:x (meters -2) (meters 4)) + (:y (meters -24)) + (:z (meters 40) (meters 4)) + (:scale-x (meters 20) (meters 4)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 20.0) + (:g 130.0) + (:b 90.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.06666667) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-sewerwater-falls-splash + :id 387 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1328 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1329 :falloff-to (meters 600) :flags (is-3d sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1328 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-sewer-water) + (:num 8.0) + (:x (meters -10) (meters 25)) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:scalevel-x (meters 0.006666667) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0026666666) (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:conerot-z (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1329 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-sewer-water) + (:num 1.0) + (:x (meters -10) (meters 20)) + (:scale-x (meters 3)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 64.0) + (:scalevel-x (meters 0.06666667) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/icelands/peak-part_REF.gc b/test/decompiler/reference/jakx/levels/icelands/peak-part_REF.gc new file mode 100644 index 0000000000..921c1349f7 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/icelands/peak-part_REF.gc @@ -0,0 +1,545 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-snowball-explode + :id 428 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1424 :flags (sp3 sp6)) (sp-item 1425 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1424 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 100.0) + (:z (meters 20)) + (:scale-x (meters 20)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 40.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0.13333334) (meters 0.5)) + (:scalevel-x (meters 0.016666668) (meters 0.033333335)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.013333334) (meters -0.0033333334)) + (:friction 0.96 0.02) + (:timer (seconds 1.667)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees 0) (degrees -40)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees -90) (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 1425 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 10.0) + (:z (meters 20)) + (:scale-x (meters 100)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 40.0) + (:g :copy r) + (:b :copy r) + (:a 64.0) + (:vel-y (meters 0.13333334) (meters 0.33333334)) + (:scalevel-x (meters 0.16666667) (meters 0.33333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters -0.0033333334) (meters -0.0033333334)) + (:friction 0.96 0.02) + (:timer (seconds 1.667)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:conerot-x (degrees 0) (degrees -40)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees -90) (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-snowball-moving + :id 429 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1426 :flags (sp6)) (sp-item 1427 :flags (sp6)) (sp-item 1428 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1426 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters -5)) + (:y (meters -18)) + (:scale-x (meters 8) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 150.0 10.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters -0.005)) + (:fade-a -0.14222223 -0.14222223) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1427 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters 5)) + (:y (meters -18)) + (:scale-x (meters 8) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 150.0 10.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters -0.005)) + (:fade-a -0.14222223 -0.14222223) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1428 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters -10) (meters 20)) + (:y (meters 18)) + (:scale-x (meters 10) (meters 10)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:vel-x (meters 0.16666667) (meters 0.16666667)) + (:scalevel-x (meters 0.16666667)) + (:scalevel-y (meters 0.016666668) (meters 0.033333335)) + (:fade-a 0.64 0.64) + (:friction 0.99 0.01) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1429) + (:conerot-z (degrees -10) (degrees 20)) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1429 + :init-specs ((:fade-a -0.32 -0.32) (:accel-z (meters 0) (meters 0.0046666665))) + ) + +;; failed to figure out what this is: +(defpartgroup group-peak-blowing-snow-fast + :id 430 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1430 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1431 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1432 :falloff-to (meters 300) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-peak-blowing-snow-powder + :id 431 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1430 :falloff-to (meters 600) :flags (sp6)) (sp-item 1431 :falloff-to (meters 600) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1430 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.0 1 0.2) + (:z (meters 0)) + (:scale-x (meters 5) (meters 10)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0.13333334) (meters 0.2)) + (:vel-z (meters 0.033333335)) + (:scalevel-x (meters 0.16666667)) + (:scalevel-y (meters 0.016666668) (meters 0.033333335)) + (:fade-a 0.32 0.32) + (:accel-y (meters 0.0016666667) (meters 0.0016666667)) + (:friction 0.99 0.01) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1433) + (:conerot-x (degrees 0) (degrees 3.0000002)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1433 + :init-specs ((:fade-a -0.16 -0.16) (:accel-z (meters 0) (meters 0.0046666665))) + ) + +;; failed to figure out what this is: +(defpart 1431 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 0.0 1 0.2) + (:z (meters 0) (meters 1)) + (:scale-x (meters 5) (meters 5)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0.13333334) (meters 0.2)) + (:scalevel-x (meters 0.16666667)) + (:fade-a 0.64 0.64) + (:friction 0.99 0.01) + (:timer (seconds 2)) + (:flags (glow)) + (:next-time (seconds 0.167)) + (:next-launcher 1434) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1434 + :init-specs ((:fade-a -0.32 -0.32)) + ) + +;; failed to figure out what this is: +(defpart 1432 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 0.1 2.0) + (:z (meters 0) (meters 1)) + (:scale-x (meters 0.4) (meters 0.1)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:omega (degrees 0.0225)) + (:vel-y (meters 0.13333334) (meters 0.2)) + (:fade-a 1.28 1.28) + (:accel-z (meters 0) (meters -0.0016666667)) + (:friction 0.99 0.01) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.167)) + (:next-launcher 1435) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1435 + :init-specs ((:fade-a -0.08533333 -0.08533333) (:next-time (seconds 0.017)) (:next-launcher 1436)) + ) + +;; failed to figure out what this is: +(defpart 1436 + :init-specs ((:accel-x (meters -0.006666667) (meters 0.013333334)) + (:accel-y (meters -0.006666667) (meters 0.013333334)) + (:accel-z (meters 0) (meters -0.0033333334)) + (:next-time (seconds 0.017) (seconds 0.065)) + (:next-launcher 1436) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-peak-billowing-snow-curl-small + :id 432 + :flags (sp0 sp4) + :bounds (static-bspherem 0 40 0 200) + :parts ((sp-item 1437 :falloff-to (meters 1000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1437 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters -60) (meters 120)) + (:y (meters -30)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 10)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-z (meters 1)) + (:scalevel-x (meters 0.16666667) (meters 0.33333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.16 0.16) + (:accel-y (meters 0.033333335)) + (:accel-z (meters 0) (meters -0.013333334)) + (:friction 0.95) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:next-time (seconds 0.335)) + (:next-launcher 1438) + (:conerot-x (degrees 0) (degrees 3.0000002)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1438 + :init-specs ((:rotvel-z (degrees -0.4) (degrees -0.4)) + (:fade-a -0.053333335 -0.053333335) + (:accel-z (meters 0) (meters 0.0046666665)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-peak-billowing-snow-curl-large + :id 433 + :flags (sp0 sp4) + :bounds (static-bspherem 0 40 0 200) + :parts ((sp-item 1439 :falloff-to (meters 1000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1439 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters -100) (meters 200)) + (:y (meters -30)) + (:z (meters 0)) + (:scale-x (meters 20) (meters 10)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-z (meters 1) (meters 0.33333334)) + (:scalevel-x (meters 0.16666667) (meters 0.33333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.16 0.16) + (:accel-y (meters 0.033333335)) + (:accel-z (meters 0) (meters -0.013333334)) + (:friction 0.95) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:next-time (seconds 0.335)) + (:next-launcher 1440) + (:conerot-x (degrees 0) (degrees 3.0000002)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1440 + :init-specs ((:rotvel-z (degrees -0.4) (degrees -0.4)) + (:fade-a -0.053333335 -0.053333335) + (:accel-z (meters 0) (meters 0.0046666665)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-peak-ice-shimmer-a + :id 434 + :flags (sp0 sp4) + :bounds (static-bspherem 0 40 0 200) + :parts ((sp-item 1441 :flags (sp6) :period (seconds 2) :length (seconds 0.017))) + ) + +;; failed to figure out what this is: +(defpart 1441 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 35)) + (:z (meters 0)) + (:scale-x (meters 3)) + (:rot-x (degrees 67.5)) + (:rot-z (degrees 30)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:vel-y (meters -0.6666667)) + (:scalevel-x (meters 0.5)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.167)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 8192.0) + (:next-time (seconds 0.085)) + (:next-launcher 1442) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1442 + :init-specs ((:scalevel-x (meters -0.16666667)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-peak-ice-shimmer-b + :id 435 + :flags (sp0 sp4) + :bounds (static-bspherem 0 40 0 200) + :parts ((sp-item 1443 :flags (sp6) :period (seconds 3) :length (seconds 0.017))) + ) + +;; failed to figure out what this is: +(defpart 1443 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 25)) + (:z (meters 0)) + (:scale-x (meters 3)) + (:rot-x (degrees 67.5)) + (:rot-z (degrees -50.000004)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:vel-y (meters -0.6666667)) + (:scalevel-x (meters 0.6666667)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.167)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 8192.0) + (:next-time (seconds 0.085)) + (:next-launcher 1444) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1444 + :init-specs ((:scalevel-x (meters -0.33333334)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-peak-ice-shimmer-c + :id 436 + :flags (sp0 sp4) + :bounds (static-bspherem 0 40 0 200) + :parts ((sp-item 1445 :flags (sp6) :period (seconds 3.5) :length (seconds 0.017))) + ) + +;; failed to figure out what this is: +(defpart 1445 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 50)) + (:scale-x (meters 3)) + (:rot-x (degrees 67.5)) + (:rot-z (degrees 50.000004)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0) + (:vel-y (meters -0.6666667)) + (:scalevel-x (meters 0.33333334)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 8192.0) + (:next-time (seconds 0.25)) + (:next-launcher 1446) + (:rotate-x (degrees -5)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1446 + :init-specs ((:scalevel-x (meters -0.33333334)) (:scalevel-y :copy scalevel-x)) + ) + +;; definition of type peak-states +(deftype peak-states (structure) + ((light light-state :inline) + (flame flames-state :inline) + ) + ) + +;; definition for method 3 of type peak-states +(defmethod inspect ((this peak-states)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'peak-states) + (format #t "~1Tlight: #~%" (-> this light)) + (format #t "~1Tflame: #~%" (-> this flame)) + (label cfg-4) + this + ) + +;; definition for function update-mood-peak +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defbehavior update-mood-peak time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (copy-mood-exterior arg0) + (when (= (-> *level* level arg2 display?) 'display) + (let ((a1-3 (-> arg0 current-fog erase-color)) + (v1-2 (new 'static 'vector :data (new 'static 'array float 4 96.0 96.0 96.0 128.0))) + (a2-1 (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0))) + ) + (set! (-> a1-3 quad) (-> arg0 light-group 0 ambi color quad)) + (let ((t0-0 a1-3)) + (let ((a0-6 a1-3)) + (let ((a3-2 (-> arg0 light-group 0 dir0 color))) + (let ((t1-0 (fmax (-> arg0 light-group 0 dir0 direction y) (-> arg0 light-group 0 dir1 direction y)))) + (.mov vf7 t1-0) + ) + (.lvf vf5 (&-> a3-2 quad)) + ) + (.lvf vf4 (&-> a0-6 quad)) + ) + (.add.x.vf.w vf6 vf0 vf0) + (.mul.x.vf.xyz acc vf5 vf7) + (.add.mul.w.vf.xyz vf6 vf4 vf0 acc) + (.svf (&-> t0-0 quad) vf6) + ) + (vector*! a1-3 a1-3 v1-2) + (vector-min! a1-3 a1-3 a2-1) + ) + ) + (when (and (= (-> *level* level arg2 status) 'active) + (< (the-as uint (-> *time-of-day-context* mode)) (the-as uint 9)) + ) + (-> arg0 state) + (update-mood-light arg0 5 0 -1.0 0.0 arg1 0.0 2.0) + (update-mood-flames arg0 6 1 8 1.0 0.000390625 1.5) + (set! (-> arg0 times 7 w) 1.0) + ) + 0 + (none) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/icelands/snow-part_REF.gc b/test/decompiler/reference/jakx/levels/icelands/snow-part_REF.gc new file mode 100644 index 0000000000..ad39eb0404 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/icelands/snow-part_REF.gc @@ -0,0 +1,328 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-snow-dinobreak + :id 501 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1626 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + (sp-item 1627 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + ) + ) + +;; failed to figure out what this is: +(defpart 1626 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 10.0) + (:y (meters 0) (meters 8)) + (:z (meters -15) (meters 30)) + (:scale-x (meters 5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 110.0) + (:b 100.0) + (:a 32.0 32.0) + (:vel-x (meters -0.05) (meters 0.1)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:accel-y (meters -0.00066666666)) + (:friction 0.9) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1627 + :init-specs ((:texture (woodchip level-default-sprite)) + (:num 50.0) + (:y (meters 0) (meters 8)) + (:z (meters -10) (meters 20)) + (:scale-x (meters 0.2) (meters 1.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 100.0) + (:a 128.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:timer (seconds 2)) + (:flags (glow)) + (:conerot-x (degrees -45) (degrees 90)) + (:conerot-z (degrees -45) (degrees 90)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-snow-torch + :id 502 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 1628 :fade-after (meters 800) :falloff-to (meters 1000) :flags (sp6)) + (sp-item 1629 :fade-after (meters 800) :falloff-to (meters 1000) :flags (sp6)) + (sp-item 1630 :fade-after (meters 300) :falloff-to (meters 400)) + (sp-item 1631 :falloff-to (meters 200) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1628 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 2.0 1.0) + (:x (meters 0) (meters 3)) + (:y (meters 1)) + (:scale-x (meters 1)) + (:rot-z (degrees -20) (degrees 40)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 0.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters -0.006666667) (meters 0.0033333334)) + (:accel-y (meters 0.0026666666) (meters 0.0016666667)) + (:timer (seconds 0.005)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees -90) (degrees 180)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-color-snow-torch-flame* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 128.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-alpha-snow-torch-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 96.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 159.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-snow-torch-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 10.0 15.0 16.0 17.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 5.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-scale-snow-torch-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 10.0 15.0 16.0 17.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 5.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *r-curve-snow-torch-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 1.0 1.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.6 0.0 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *g-curve-snow-torch-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 -1.0 -2.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *b-curve-snow-torch-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 0.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 -5.0000005 0.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-alpha-snow-torch-flame* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.4 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 1.0 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 3.3333335 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-snow-torch-flame-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.6 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.3 0.6 0.5 0.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.6 -1.0 -0.75000006 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-snow-torch-flame-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.4 0.5 0.6)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.4 0.5 0.3333334 1.0)) + ) + ) + ) + +;; definition for symbol *part-snow-torch-flame-curve-settings*, type particle-curve-settings +(define *part-snow-torch-flame-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.3) + :lifetime-offset (seconds 0.4) + :flags (particle-curve-flags pcf1) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1628 init-specs 16 initial-valuef) + (the-as float *part-snow-torch-flame-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* color-start) *range-color-snow-torch-flame*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* alpha-start) *range-alpha-snow-torch-flame*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* scale-x-start) *range-scale-snow-torch-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* scale-y-start) *range-scale-snow-torch-flame-y*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* r-scalar) *r-curve-snow-torch-flame*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* g-scalar) *g-curve-snow-torch-flame*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* b-scalar) *b-curve-snow-torch-flame*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* a-scalar) *curve-alpha-snow-torch-flame*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* scale-x-scalar) *curve-snow-torch-flame-x*) + +;; failed to figure out what this is: +(set! (-> *part-snow-torch-flame-curve-settings* scale-y-scalar) *curve-snow-torch-flame-y*) + +;; failed to figure out what this is: +(defpart 1629 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.4) + (:y (meters 8)) + (:scale-x (meters 40) (meters 6)) + (:rot-x (degrees 22.5)) + (:rot-z (degrees 0) (degrees 3600)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 24.0 8.0) + (:omega (degrees 18011.25)) + (:timer (seconds 0.167) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:userdata 2048.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1631 + :init-specs ((:num 1.0) + (:x (meters -5) (meters 10)) + (:y (meters 10)) + (:z (meters -5) (meters 10)) + (:rot-x 8) + (:r 16384.0) + (:g 8192.0) + (:b 8192.0) + (:vel-y (meters 0.0033333334)) + (:fade-b -10.922667) + (:accel-y (meters 0.0033333334)) + (:timer (seconds 1)) + (:flags (distort)) + (:next-time (seconds 0.5)) + (:next-launcher 1632) + ) + ) + +;; failed to figure out what this is: +(defpart 1632 + :init-specs ((:fade-b 10.922667)) + ) + +;; failed to figure out what this is: +(defpart 1630 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.005 0.08) + (:x (meters 0) (meters 8)) + (:y (meters 8)) + (:scale-x (meters 1) (meters 1)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 8.0) + (:a 255.0) + (:vel-y (meters 0.1) (meters 0.06666667)) + (:fade-g -0.16666667) + (:fade-b -5.0) + (:fade-a -1.7) + (:friction 0.99 0.02) + (:timer (seconds 1) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3598.0002)) + (:conerot-radius (meters 1) (meters 2)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/intro/intro-part_REF.gc b/test/decompiler/reference/jakx/levels/intro/intro-part_REF.gc new file mode 100644 index 0000000000..f5bc9be426 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/intro/intro-part_REF.gc @@ -0,0 +1,7233 @@ +;;-*-Lisp-*- +(in-package goal) + +;; this file is debug only +(declare-file (debug)) + +;; failed to figure out what this is: +(defskelgroup skel-thuga thuga 0 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 10) + :shadow 2 + :origin-joint-index 3 + :shadow-joint-index 3 + ) + +;; failed to figure out what this is: +(defskelgroup skel-thugb thugb 0 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 10) + :shadow 2 + :origin-joint-index 3 + :shadow-joint-index 3 + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-missile-thrust + :id 56 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 342 :flags (is-3d sp5 sp6)) (sp-item 343 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 342 + :init-specs ((:texture (gun-yellow-muzzleflash-small level-default-sprite)) + (:num 18.0) + (:z (meters 0.6)) + (:scale-x (meters 0.5)) + (:rot-z (degrees 0) 2 (degrees 45)) + (:scale-y (meters 1) (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 343 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:x (meters 0)) + (:z (meters 0.5)) + (:scale-x (meters 2) (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 0.0) + (:a 80.0 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-missile-smoke + :id 57 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 344 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 344 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 64.0 64.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:scalevel-x (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.28 -1.28) + (:timer (seconds 0.335)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-muzzle-flash + :id 58 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 345 :flags (is-3d sp5 sp6)) (sp-item 346 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 345 + :init-specs ((:texture (gun-yellow-muzzleflash-small level-default-sprite)) + (:num 0.8) + (:z (meters 1.5)) + (:scale-x (meters 0.5) (meters 0.5)) + (:rot-z (degrees 0) 2 (degrees 45)) + (:scale-y (meters 3) (meters 0.5)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 346 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 0.8) + (:scale-x (meters 2) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 130.0) + (:b 80.0) + (:a 255.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-bullet-sparks + :id 59 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 347 :flags (sp5 sp6)) (sp-item 348 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 347 + :init-specs ((:texture (hitspark level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.2)) + (:rot-x (degrees 22.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 130.0) + (:b 80.0) + (:a 128.0) + (:scalevel-x (meters 0.1) (meters 0.1)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.035) (seconds 0.015)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 348 + :init-specs ((:texture (tinyspeck level-default-sprite)) + (:num 8.0 8.0) + (:scale-x (meters 2)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 130.0) + (:b 80.0) + (:a 255.0) + (:omega (degrees 0.1125)) + (:vel-y (meters 0.06666667) (meters 0.13333334)) + (:friction 0.8) + (:timer (seconds 0.035) (seconds 0.047)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-bullet-sparks-local + :id 60 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 349 :flags (sp6)) (sp-item 350 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 349 + :init-specs ((:texture (hitspark level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 180.0) + (:b 180.0) + (:a 128.0) + (:timer (seconds 0.05)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 350 + :init-specs ((:texture (tinyspeck level-default-sprite)) + (:num 8.0 8.0) + (:scale-x (meters 0.4)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 110.0) + (:b 80.0) + (:a 255.0) + (:omega (degrees 0.0675)) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:friction 0.8) + (:timer (seconds 0.085)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-part-sparks-bits-local) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-func-part-sparks-bits-local +(defun spt-func-part-sparks-bits-local ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (sparticle-motion-blur arg0 arg1 arg2) + (spt-func-relative-pos arg0 arg1 (the-as sprite-vec-data-3d arg2)) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-tire-skid + :id 61 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 351 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 351 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:y (meters -0.5)) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0 50.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-y (meters 0.0033333334)) + (:vel-z (meters -0.06666667)) + (:scalevel-x (meters 0.053333335)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.94) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 352) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 352 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-tire-skid-stop + :id 62 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 353 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 353 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 60.0 50.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.013333334)) + (:vel-z (meters 0.56666666)) + (:scalevel-x (meters 0.053333335)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.94) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 354) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 354 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-tire-skid-brake + :id 63 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 355 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 355 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.5) + (:y (meters -0.5)) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 130.0) + (:b 130.0) + (:a 64.0 64.0) + (:vel-y (meters 0.01)) + (:vel-z (meters 0)) + (:scalevel-x (meters 0.026666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.94) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 356) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 356 + :init-specs ((:scalevel-x (meters 0.006666667) (meters 0.0033333334)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-vehicle-tire-skid + :id 64 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 357 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 357 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:y (meters -0.5)) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 110.0) + (:b 110.0) + (:a 16.0 16.0) + (:vel-y (meters 0.0033333334)) + (:vel-z (meters -0.06666667)) + (:scalevel-x (meters 0.053333335)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.94) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 358) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 358 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-car-explo-closeup + :id 65 + :flags (sp0) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 360 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 361 :period (seconds 30) :length (seconds 0.035)) + (sp-item 362 :period (seconds 30) :length (seconds 0.035) :offset 20) + (sp-item 363 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 364 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 365 :period (seconds 30) :length (seconds 0.167)) + (sp-item 366 :period (seconds 30) :length (seconds 0.035)) + (sp-item 367 :period (seconds 30) :length (seconds 0.5)) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 368 :flags (sp3) :binding 359) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 359 :flags (sp2) :period (seconds 4) :length (seconds 2)) + ) + ) + +;; failed to figure out what this is: +(defpart 364 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 40)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 40.0) + (:a 128.0) + (:omega (degrees 6767.9995)) + (:scalevel-x (meters -0.16666667)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 360 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 40)) + (:rot-x (degrees 675)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:omega (degrees 22511.25)) + (:fade-a -0.10666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + ) + ) + +;; failed to figure out what this is: +(defpart 366 + :init-specs ((:texture (sparkbit level-default-sprite)) + (:num 200.0) + (:scale-x (meters 0.1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0 128.0) + (:vel-y (meters 0.33333334) (meters 0.6666667)) + (:rotvel-z (degrees -6.0000005) (degrees 12.000001)) + (:fade-g -0.13333334) + (:fade-b -0.05) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00033333333) (meters -0.006666667)) + (:friction 0.9 0.03) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 70)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 361 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 100.0) + (:scale-x (meters 0.5) (meters 1)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0 50.0) + (:b 30.0 1 100.0) + (:a 64.0 64.0) + (:omega (degrees 0.0675)) + (:vel-y (meters 0.33333334) (meters 1)) + (:scalevel-x (meters -0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.9 0.03) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 362 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 30.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667)) + (:friction 0.97) + (:timer (seconds 2)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-z (degrees 0) (degrees 360)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-cu-dust-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 30.0 30.0 30.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-cu-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 64.0 32.0 33.0 34.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 -32.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-cu-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-cu-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-cu-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.3 -0.8 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.6 1.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 0.79999995 -5.0000005 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-cu-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-cu-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-intro-car-explo-closeup-dust-in-curve-settings*, type particle-curve-settings +(define *part-intro-car-explo-closeup-dust-in-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 2) + :lifetime-offset (seconds 1) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 362 init-specs 14 initial-valuef) + (the-as float *part-intro-car-explo-closeup-dust-in-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* color-start) *range-carexplo-cu-dust-color*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* alpha-start) *range-carexplo-cu-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* scale-x-start) + *range-carexplo-cu-dust-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* scale-y-start) + *range-carexplo-cu-dust-scale-y* + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* a-scalar) *curve-carexplo-cu-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* scale-x-scalar) + *curve-carexplo-cu-dust-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-dust-in-curve-settings* scale-y-scalar) + *curve-carexplo-cu-dust-scale-y* + ) + +;; failed to figure out what this is: +(defpart 363 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 30.0) + (:scale-x (meters 6) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 160.0) + (:b 40.0) + (:a 128.0) + (:vel-y (meters 0) (meters 0.26666668)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.114285715) + (:fade-b -0.042857144) + (:fade-a -0.18285714 -0.18285714) + (:friction 0.93) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 365 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 5.0) + (:scale-x (meters 6) (meters 4)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.6666667) (meters 0.26666668)) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.7) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 367 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 8.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.26666668) (meters 0.13333334)) + (:friction 0.9) + (:timer (seconds 1)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 20) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-cu-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-cu-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-cu-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-cu-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-intro-carexplo-cu-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.05 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -0.3076923 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-intro-carexplo-cu-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-intro-carexplo-cu-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-intro-car-explo-closeup-texture-curve-settings*, type particle-curve-settings +(define *part-intro-car-explo-closeup-texture-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.5) + :lifetime-offset (seconds 0.6) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 367 init-specs 16 initial-valuef) + (the-as float *part-intro-car-explo-closeup-texture-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* color-start) *range-intro-carexplo-cu-color*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* alpha-start) *range-intro-carexplo-cu-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* scale-x-start) + *range-intro-carexplo-cu-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* scale-y-start) + *range-intro-carexplo-cu-scale-y* + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* a-scalar) *curve-intro-carexplo-cu-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* scale-x-scalar) + *curve-intro-carexplo-cu-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explo-closeup-texture-curve-settings* scale-y-scalar) + *curve-intro-carexplo-cu-scale-y* + ) + +;; failed to figure out what this is: +(defpart 368 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 8) (meters 8)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.13333334) (meters 0.1)) + (:scalevel-x (meters -0.06666667)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 359 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-inherit-size) + (:num 1.0) + (:scale-x (meters 0.00024414062) (meters 0.00012207031)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:fade-a -0.18285714 -0.18285714) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-car-explo-closeup + :id 66 + :flags (sp0 sp12) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 369 :flags (sp3 sp6) :period (seconds 30) :length (seconds 0.017)) + (sp-item 370 :flags (sp3 sp6) :period (seconds 30) :length (seconds 0.017)) + (sp-item 371 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 372 :period (seconds 30) :length (seconds 0.5)) + ) + ) + +;; failed to figure out what this is: +(defpart 371 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:y (meters 1.8)) + (:z (meters 9)) + (:scale-x (meters 5)) + (:rot-x (degrees 6.7500005)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 40.0) + (:a 128.0) + (:scalevel-x (meters -0.033333335)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 1228.8) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 369 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 40)) + (:rot-x (degrees 675)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:omega (degrees 22511.25)) + (:fade-a -0.10666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 370 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 600.0) + (:scale-x (meters 0.1)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0 50.0) + (:b 30.0 1 100.0) + (:a 255.0) + (:vel-z (meters 0.06666667) (meters 0.16666667)) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.28333333) + (:accel-y (meters -0.001)) + (:accel-z (meters -0.0033333334)) + (:friction 0.9 0.09) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'spt-func-relative-pos) + (:conerot-x (degrees 0) (degrees 20)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 372 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:num 8.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 2)) + (:scale-x (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:vel-y (meters 0) (meters 0.13333334)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-x (meters -0.0033333334)) + (:friction 0.9) + (:timer (seconds 1)) + (:flags (left-multiply-quat)) + (:func 'spt-func-relative-pos) + (:conerot-x (degrees 20) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-debris-smoke + :id 67 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 373 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 373 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 3) (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 8.0 32.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:scalevel-x (meters 0.01) (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags ()) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-debris-fire + :id 68 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 374 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 374 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 1.0) + (:x (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:scalevel-x (meters -0.016666668) (meters -0.033333335)) + (:rotvel-z (degrees -0.6) (degrees 1.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.28 -2.55) + (:accel-y (meters 0.0016666667) (meters 0.0033333334)) + (:timer (seconds 0.167) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-debris-fire-glow + :id 69 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 375 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 375 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10) (meters 1)) + (:rot-x (degrees 22.5)) + (:scale-y (meters 20) (meters 1)) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 60.0 20.0) + (:omega (degrees 22511.25)) + (:fade-a -4.0) + (:timer (seconds 0.067)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-crash-b-fire + :id 70 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 376 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 376 + :init-specs ((:texture (flame02 level-default-sprite)) + (:num 4.0) + (:x (meters -3) (meters 6)) + (:y (meters -0.5) (meters 1)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0) + (:vel-z (meters 0.33333334)) + (:scalevel-x (meters -0.1) (meters -0.06666667)) + (:rotvel-z (degrees -0.6) (degrees 1.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.64 -0.64) + (:accel-y (meters 0.0016666667) (meters 0.0033333334)) + (:timer (seconds 0.167) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; definition for function spt-birth-func-brightness-outro-smoke +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-outro-smoke ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 121) 50)) + (s3-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 40)) + (s4-0 (+ (logand 0 (rand-uint31-gen *random-generator*)) 120)) + (v1-6 (+ (logand 0 (rand-uint31-gen *random-generator*)) 170)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 (the-as int s4-0)))) + (set! (-> arg2 rotate-z) (the float (- s5-0 (the-as int v1-6)))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-rising-smoke + :id 71 + :linger-duration (seconds 0) + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 377 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 377 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-outro-smoke) + (:num 2.0) + (:x (meters 0) (meters 4)) + (:y (meters 0) (meters -2)) + (:scale-x (meters 1) (meters 1)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0.0016666667) (meters 0.0016666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.21333334 0.21333334) + (:accel-y (meters 0.0013333333) (meters 0.0013333333)) + (:friction 0.85) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 1)) + (:next-launcher 378) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 378 + :init-specs ((:scalevel-x (meters 0.00033333333) (meters 0.00033333333)) + (:scalevel-y (meters 0.00033333333) (meters 0.00033333333)) + (:fade-a 0.0) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-car-steam + :id 72 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 379 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 379 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 2.0) + (:scale-x (meters 0.1) (meters 0.001)) + (:scale-y :copy scale-x) + (:r 250.0) + (:g 250.0) + (:b 250.0) + (:a 0.0) + (:omega (degrees 0.0675)) + (:vel-y (meters 0.033333335) (meters 0.013333334)) + (:scalevel-x (meters 0.006666667) (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.32 0.32) + (:friction 0.95 0.02) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.167)) + (:next-launcher 380) + (:conerot-x (degrees 0) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 380 + :init-specs ((:fade-a -0.32 -0.32) (:func 'nothing)) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-dripping-gas + :id 73 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 381 :flags (sp6)) (sp-item 382 :flags (sp6)) (sp-item 383 :flags (is-3d sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 381 + :init-specs ((:texture (water-drop level-default-sprite)) + (:num 1.0) + (:x (meters 0) (meters 0.3)) + (:scale-x (meters 0.02) (meters 0.02)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 0.0) + (:a 128.0) + (:omega (degrees 0.0225)) + (:accel-y (meters -0.001) (meters -0.00066666666)) + (:timer (seconds 0.5)) + (:flags ()) + (:func 'sparticle-motion-blur) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 382 + :init-specs ((:texture (water-drop level-default-sprite)) + (:num 2.0) + (:x (meters 0) (meters 0.5)) + (:y (meters -1)) + (:scale-x (meters 0.02) (meters 0.04)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 0.0) + (:a 64.0) + (:omega (degrees 0.045)) + (:vel-y (meters 0.01) (meters 0.026666667)) + (:accel-y (meters -0.005)) + (:timer (seconds 2)) + (:flags ()) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 10) (degrees 50.000004)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 383 + :init-specs ((:texture (dirt09 level-default-sprite)) + (:num 1.0) + (:y (meters -1.05)) + (:z (meters -0.1)) + (:scale-x (meters 5)) + (:scale-y :copy scale-x) + (:r 10.0) + (:g 20.0) + (:b 60.0) + (:a 120.0) + (:scalevel-x (meters 0.00033333333)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 31.667)) + (:flags (sp-cpuinfo-flag-4 glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-car-fire + :id 74 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 384 :flags (sp6)) (sp-item 385 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 384 + :init-specs ((:texture (flame02 level-default-sprite)) + (:num 4.0) + (:x (meters 0) (meters 1.5)) + (:y (meters -0.2) (meters -1)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1) (meters 1)) + (:r 128.0) + (:g 100.0 20.0) + (:b 64.0 100.0) + (:a 0.0) + (:vel-y (meters -0.006666667) (meters -0.006666667)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.8 0.8) + (:accel-y (meters 0.001) (meters 0.00066666666)) + (:friction 0.96) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 386) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 386 + :init-specs ((:scalevel-x (meters -0.0033333334) (meters -0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.21333334 -0.07111111) + (:fade-b -0.85333335 -0.28444445) + (:fade-a -0.85333335 -0.28444445) + ) + ) + +;; failed to figure out what this is: +(defpart 385 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.5) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.10666667 0.10666667) + (:accel-y (meters 0.00016666666) (meters 0.00016666666)) + (:timer (seconds 13.335)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 1)) + (:next-launcher 387) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 387 + :init-specs ((:fade-a -0.07111111 -0.07111111)) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-final-explosion + :id 75 + :flags (sp0) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 390 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 391 :period (seconds 30) :length (seconds 0.035)) + (sp-item 392 :period (seconds 30) :length (seconds 0.035) :offset 20) + (sp-item 393 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 394 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 395 :period (seconds 30) :length (seconds 0.167)) + (sp-item 396 :period (seconds 30) :length (seconds 0.5)) + (sp-item 397 :flags (sp3) :binding 388) + (sp-item 398 :flags (sp3) :binding 388) + (sp-item 399 :flags (sp3) :binding 388) + (sp-item 388 :flags (sp2) :period (seconds 30) :length (seconds 2)) + (sp-item 388 :flags (sp2) :period (seconds 30) :length (seconds 2)) + (sp-item 388 :flags (sp2) :period (seconds 30) :length (seconds 2)) + (sp-item 400 :flags (sp3) :binding 389) + (sp-item 401 :flags (sp3) :binding 389) + (sp-item 402 :flags (sp3) :binding 389) + (sp-item 389 :flags (sp2)) + (sp-item 389 :flags (sp2)) + (sp-item 389 :flags (sp2)) + (sp-item 403 :flags (is-3d sp3 sp6)) + (sp-item 404 :flags (sp6)) + (sp-item 405 :flags (sp6)) + (sp-item 406 :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 400 + :init-specs ((:texture (lava-drop-02 level-default-sprite)) + (:num 1.0) + (:x (meters -18)) + (:y (meters 15)) + (:scale-x (meters 0.05)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:rotvel-z (degrees 2)) + (:accel-y (meters -0.0011333333)) + (:friction 0.95) + (:timer (seconds 5)) + (:flags (aux-list)) + (:rotate-y (degrees 10)) + ) + ) + +;; failed to figure out what this is: +(defpart 401 + :init-specs ((:texture (lava-drop-02 level-default-sprite)) + (:num 1.0) + (:x (meters -8)) + (:y (meters 15)) + (:scale-x (meters 0.05)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:rotvel-z (degrees -2)) + (:accel-y (meters -0.0010666667)) + (:friction 0.95) + (:timer (seconds 5)) + (:flags (aux-list)) + (:rotate-y (degrees -20)) + ) + ) + +;; failed to figure out what this is: +(defpart 402 + :init-specs ((:texture (lava-drop-02 level-default-sprite)) + (:num 1.0) + (:x (meters -12)) + (:y (meters 20)) + (:scale-x (meters 0.05)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:rotvel-z (degrees 2)) + (:accel-y (meters -0.001)) + (:friction 0.95) + (:timer (seconds 5)) + (:flags (aux-list)) + (:rotate-y (degrees -70)) + ) + ) + +;; failed to figure out what this is: +(defpart 389 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 0.3 0.3) + (:scale-x (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 40.0 20.0) + (:b 0.0) + (:a 128.0) + (:fade-g -0.6666667) + (:fade-a -0.85333335 -0.85333335) + (:accel-y (meters -0.000033333334) (meters -0.00016666666)) + (:friction 0.99) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 404 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 0.1 0.4) + (:y (meters -1.05)) + (:z (meters 0)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0)) + (:scale-y (meters 0.2) (meters 0.2)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-x (meters -0.006666667) (meters 0.01)) + (:scalevel-y (meters 0.006666667) (meters 0.01)) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.00033333333) (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 407) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 405 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 0.1 0.4) + (:x (meters -3)) + (:y (meters -1.05)) + (:z (meters -5)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0)) + (:scale-y (meters 0.2) (meters 0.2)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-x (meters -0.006666667) (meters 0.01)) + (:scalevel-y (meters 0.006666667) (meters 0.01)) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.00033333333) (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 407) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 406 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 0.1 0.4) + (:x (meters -6)) + (:y (meters -1.05)) + (:z (meters -1)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0)) + (:scale-y (meters 0.2) (meters 0.2)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-x (meters -0.006666667) (meters 0.01)) + (:scalevel-y (meters 0.006666667) (meters 0.01)) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.00033333333) (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 407) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 407 + :init-specs ((:fade-a -2.55 -2.55)) + ) + +;; failed to figure out what this is: +(defpart 403 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:y (meters -1.05)) + (:z (meters -0.1)) + (:scale-x (meters 30)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:timer (seconds 31.667)) + (:flags (sp-cpuinfo-flag-4 glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 394 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 20)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 40.0) + (:a 128.0) + (:omega (degrees 6767.9995)) + (:scalevel-x (meters -0.16666667)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 390 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 20)) + (:rot-x (degrees 675)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:omega (degrees 22511.25)) + (:fade-a -0.10666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + ) + ) + +;; failed to figure out what this is: +(defpart 408 + :init-specs ((:texture (sparkbit level-default-sprite)) + (:num 200.0) + (:scale-x (meters 0.1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0 128.0) + (:vel-y (meters 0.33333334) (meters 0.6666667)) + (:rotvel-z (degrees -6.0000005) (degrees 12.000001)) + (:fade-g -0.13333334) + (:fade-b -0.05) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00033333333) (meters -0.006666667)) + (:friction 0.9 0.03) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 70)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 391 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 100.0) + (:scale-x (meters 0.5) (meters 1)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0 50.0) + (:b 30.0 1 100.0) + (:a 64.0 64.0) + (:omega (degrees 0.0675)) + (:vel-y (meters 0.33333334) (meters 0.33333334)) + (:scalevel-x (meters -0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.9 0.03) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 392 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 30.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667)) + (:friction 0.97) + (:timer (seconds 2)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-z (degrees -90) (degrees 180)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-fnl-dust-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 30.0 30.0 30.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-fnl-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 64.0 65.0 66.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 -64.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-fnl-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-fnl-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-fnl-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.3 -0.8 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.6 1.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 0.79999995 -5.0000005 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-fnl-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-fnl-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-outro-b-final-explosion-dust-in-curve-settings*, type particle-curve-settings +(define *part-outro-b-final-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 2) + :lifetime-offset (seconds 1) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 392 init-specs 14 initial-valuef) + (the-as float *part-outro-b-final-explosion-dust-in-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* color-start) *range-carexplo-fnl-dust-color*) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* alpha-start) *range-carexplo-fnl-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* scale-x-start) + *range-carexplo-fnl-dust-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* scale-y-start) + *range-carexplo-fnl-dust-scale-y* + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* a-scalar) *curve-carexplo-fnl-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* scale-x-scalar) + *curve-carexplo-fnl-dust-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-dust-in-curve-settings* scale-y-scalar) + *curve-carexplo-fnl-dust-scale-y* + ) + +;; failed to figure out what this is: +(defpart 393 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 30.0) + (:scale-x (meters 3) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 160.0) + (:b 40.0) + (:a 255.0) + (:vel-y (meters 0) (meters 0.1)) + (:scalevel-x (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.114285715) + (:fade-b -0.042857144) + (:fade-a -0.3642857 -0.3642857) + (:friction 0.93) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 395 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 40.0) + (:scale-x (meters 1)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y (meters 2)) + (:r 255.0) + (:g 100.0) + (:b 40.0) + (:a 128.0) + (:vel-y (meters 0.23333333) (meters 0.33333334)) + (:scalevel-x (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.2) + (:fade-b -0.6666667) + (:fade-a -0.42666668 -0.42666668) + (:friction 0.8) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 20) (degrees -130)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 396 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 8.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:friction 0.9) + (:timer (seconds 1)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 20) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-outro-carexplo-fnl-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-outro-carexplo-fnl-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-outro-carexplo-fnl-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 3.0 5.0 6.0 7.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-outro-carexplo-fnl-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 3.0 5.0 6.0 7.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-outro-carexplo-fnl-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.05 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -0.3076923 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-outro-carexplo-fnl-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-outro-carexplo-fnl-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-outro-b-final-explosion-texture-curve-settings*, type particle-curve-settings +(define *part-outro-b-final-explosion-texture-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.5) + :lifetime-offset (seconds 0.6) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 396 init-specs 16 initial-valuef) + (the-as float *part-outro-b-final-explosion-texture-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* color-start) *range-outro-carexplo-fnl-color*) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* alpha-start) *range-outro-carexplo-fnl-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* scale-x-start) + *range-outro-carexplo-fnl-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* scale-y-start) + *range-outro-carexplo-fnl-scale-y* + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* a-scalar) *curve-outro-carexplo-fnl-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* scale-x-scalar) + *curve-outro-carexplo-fnl-scale-x* + ) + +;; failed to figure out what this is: +(set! (-> *part-outro-b-final-explosion-texture-curve-settings* scale-y-scalar) + *curve-outro-carexplo-fnl-scale-y* + ) + +;; failed to figure out what this is: +(defpart 397 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 5)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.13333334)) + (:scalevel-x (meters -0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.97) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 10)) + (:rotate-y (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 398 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 6)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.16666667)) + (:scalevel-x (meters -0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.97) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 40)) + (:rotate-y (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 399 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.13333334)) + (:scalevel-x (meters -0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.97) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 80)) + (:rotate-y (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 388 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-inherit-size) + (:num 1.0) + (:scale-x (meters 0.00024414062) (meters 0.00012207031)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 100.0 20.0) + (:b 0.0 32.0) + (:a 128.0) + (:fade-g -0.14285715) + (:fade-a -0.18285714 -0.18285714) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-crash-b-wheel + :id 76 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 409 :flags (sp6)) (sp-item 410 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 409 + :init-specs ((:texture (flame01 level-default-sprite)) + (:num 2.0) + (:y (meters 0) (meters 0.5)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1) (meters 1)) + (:r 255.0) + (:g 100.0) + (:b 0.0) + (:a 0.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters -0.0033333334) (meters -0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 5.12 5.12) + (:accel-y (meters 0.001)) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.085)) + (:next-launcher 411) + (:rotate-x (degrees 0) (degrees 3600)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 411 + :init-specs ((:fade-a -2.55 -2.55)) + ) + +;; failed to figure out what this is: +(defpart 410 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.5) + (:y (meters 0) (meters 1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 20.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 0) (meters 0.01)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-roll-fire + :id 77 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 412 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 412 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 1.0) + (:x (meters 0) (meters 3)) + (:scale-x (meters 1.5) (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 1.5) (meters 0.2)) + (:r 128.0) + (:g 128.0) + (:b 64.0) + (:a 128.0) + (:scalevel-x (meters -0.033333335)) + (:rotvel-z (degrees -0.6) (degrees 1.2)) + (:scalevel-y :copy scalevel-x) + (:fade-g -1.28) + (:fade-b -1.28 -1.28) + (:accel-y (meters 0.0033333334) (meters 0.0033333334)) + (:timer (seconds 0.1) (seconds 0.03)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:rotate-y (degrees 0) (degrees 3600)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-roll-glow + :id 78 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 413 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 413 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 30) (meters 1)) + (:rot-x (degrees 225)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 30.0) + (:omega (degrees 45011.25)) + (:fade-a -1.2) + (:timer (seconds 0.167)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-debris-landing-dust + :id 79 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 414 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 414 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 6.0) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 32.0 32.0) + (:vel-y (meters 0.2)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters 0.00033333333) (meters 0.0016666667)) + (:friction 0.8 0.05) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:conerot-x (degrees 80) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-debris-landing-sparks + :id 80 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 415 :flags (sp6)) (sp-item 414 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 415 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 20.0) + (:x (meters -1) (meters 2)) + (:y (meters 0)) + (:z (meters -1) (meters 2)) + (:scale-x (meters 0.05)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:omega (degrees 0.01125)) + (:vel-x (meters -0.16666667) (meters -0.06666667)) + (:fade-a -2.55 -2.55) + (:accel-y (meters -0.0023333333)) + (:friction 0.91) + (:timer (seconds 0.167) (seconds 0.33)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-y (degrees -10) (degrees 20)) + (:conerot-z (degrees 0) (degrees -40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-car-little-explo + :id 81 + :flags (sp0) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 416 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 417 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 418 :period (seconds 30) :length (seconds 0.167)) + (sp-item 419 :period (seconds 30) :length (seconds 0.035)) + ) + ) + +;; failed to figure out what this is: +(defpart 416 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 20)) + (:rot-x (degrees 675)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:omega (degrees 22511.25)) + (:fade-a -0.10666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + ) + ) + +;; failed to figure out what this is: +(defpart 417 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 30.0) + (:scale-x (meters 3) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 160.0) + (:b 40.0) + (:a 128.0) + (:vel-y (meters 0) (meters 0.13333334)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.114285715) + (:fade-b -0.042857144) + (:fade-a -0.18285714 -0.18285714) + (:friction 0.93) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 418 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 5.0) + (:scale-x (meters 3) (meters 2)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.33333334) (meters 0.13333334)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.7) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 419 + :init-specs ((:texture (sparkbit level-default-sprite)) + (:num 50.0) + (:scale-x (meters 0.1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0 128.0) + (:vel-y (meters 0.16666667) (meters 0.33333334)) + (:rotvel-z (degrees -6.0000005) (degrees 12.000001)) + (:fade-g -0.13333334) + (:fade-b -0.05) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00033333333) (meters -0.006666667)) + (:friction 0.9 0.03) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 70)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-barrel-dust + :id 82 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 420 :flags (sp6)) (sp-item 421 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 420 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 20.0) + (:scale-x (meters 4) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 64.0 64.0) + (:vel-y (meters 0.33333334) (meters 0.33333334)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00033333333) (meters -0.0016666667)) + (:friction 0.8 0.05) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 421 + :init-specs ((:texture (woodchip level-default-sprite)) + (:num 40.0) + (:x (meters -10) (meters 20)) + (:y (meters 0) (meters 10)) + (:scale-x (meters 0.1) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0) + (:g 32.0) + (:b 32.0) + (:a 128.0) + (:vel-z (meters 0.1) (meters 0.033333335)) + (:rotvel-z (degrees -2) (degrees 4)) + (:accel-y (meters -0.0016666667) (meters -0.0033333334)) + (:friction 0.99) + (:timer (seconds 4)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees -90) (degrees 90)) + (:conerot-y (degrees -90) (degrees 180)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-tunnel-dust + :id 83 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 422 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 422 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 20.0 10.0) + (:vel-z (meters -0.06666667)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.05 -0.05) + (:accel-y (meters 0) (meters 0.00016666666)) + (:friction 0.95) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.335)) + (:next-launcher 423) + (:conerot-x (degrees 10) (degrees 30)) + (:conerot-y (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-mine-tunnel-burning-car + :id 84 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 424 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 424 + :init-specs ((:texture (flame02 level-default-sprite)) + (:num 4.0) + (:x (meters -2) (meters 4)) + (:z (meters 3)) + (:scale-x (meters 2) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 100.0 20.0) + (:b 90.0 20.0) + (:a 0.0) + (:vel-x (meters 0.033333335)) + (:scalevel-x (meters -0.033333335) (meters -0.033333335)) + (:rotvel-z (degrees -0.3) (degrees 0.6)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.64 0.64) + (:accel-x (meters -0.0016666667)) + (:friction 0.9) + (:timer (seconds 0.167) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-mine-tunnel-burning-car-smoke + :id 85 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 425 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 425 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 4) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 0.0 32.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:scalevel-x (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-mine-tunnel-burning-car-glow + :id 86 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 426 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 426 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:z (meters -4)) + (:scale-x (meters 20) (meters 1)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 40.0 10.0) + (:omega (degrees 22511.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-tunnel-mine-glow + :id 87 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 427 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 427 + :init-specs ((:texture (radial-gradient-purple level-default-sprite)) + (:num 0.08) + (:y (meters 0.03)) + (:scale-x (meters 0.8)) + (:rot-x (degrees 11.25)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 16.0) + (:a 128.0) + (:omega (degrees 9011.25)) + (:timer (seconds 0.085)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 2048.0) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-mine-landing-sparks + :id 88 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 428 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 428 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:x (meters -1) (meters 2)) + (:y (meters 0)) + (:z (meters 0) (meters 3)) + (:scale-x (meters 0.03)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:omega (degrees 0.0045)) + (:vel-z (meters 0.4) (meters 0.16666667)) + (:fade-a -2.55 -2.55) + (:accel-y (meters -0.0023333333)) + (:friction 0.91) + (:timer (seconds 0.167) (seconds 0.33)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees -20)) + (:conerot-y (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-mine-landing-dust + :id 89 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 429 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 429 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 32.0) + (:vel-z (meters 0.2)) + (:scalevel-x (meters 0.006666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:accel-y (meters 0.00033333333) (meters 0.00033333333)) + (:friction 0.8 0.05) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:conerot-y (degrees 0) (degrees 80)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-mine-tunnel-car-explosion + :id 90 + :flags (sp0) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 431 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 432 :period (seconds 30) :length (seconds 0.035)) + (sp-item 433 :period (seconds 30) :length (seconds 0.035) :offset 20) + (sp-item 434 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 435 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 436 :period (seconds 30) :length (seconds 0.167)) + (sp-item 437 :period (seconds 30) :length (seconds 0.035)) + (sp-item 438 :period (seconds 30) :length (seconds 0.5)) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 439 :flags (sp3) :binding 430) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + (sp-item 430 :flags (sp2) :period (seconds 4) :length (seconds 2)) + ) + ) + +;; failed to figure out what this is: +(defpart 435 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 40)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0) + (:b 40.0) + (:a 128.0) + (:omega (degrees 6767.9995)) + (:scalevel-x (meters -0.16666667)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.267)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + ) + ) + +;; failed to figure out what this is: +(defpart 431 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 4)) + (:scale-x (meters 40)) + (:rot-x (degrees 675)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 40.0) + (:a 64.0) + (:omega (degrees 22511.25)) + (:fade-a -0.10666667) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + ) + ) + +;; failed to figure out what this is: +(defpart 437 + :init-specs ((:texture (sparkbit level-default-sprite)) + (:num 200.0) + (:scale-x (meters 0.1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.4) (meters 1.2)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0 128.0) + (:vel-y (meters 0.33333334) (meters 0.6666667)) + (:rotvel-z (degrees -6.0000005) (degrees 12.000001)) + (:fade-g -0.13333334) + (:fade-b -0.05) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00033333333) (meters -0.006666667)) + (:friction 0.9 0.03) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 70)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 432 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 100.0) + (:scale-x (meters 0.5) (meters 1)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0 50.0) + (:b 30.0 1 100.0) + (:a 64.0 64.0) + (:omega (degrees 0.0675)) + (:vel-y (meters 0.33333334) (meters 1)) + (:scalevel-x (meters -0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.9 0.03) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 434 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 30.0) + (:scale-x (meters 6) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 160.0) + (:b 40.0) + (:a 128.0) + (:vel-y (meters 0) (meters 0.26666668)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.114285715) + (:fade-b -0.042857144) + (:fade-a -0.18285714 -0.18285714) + (:friction 0.93) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 440 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 5.0) + (:scale-x (meters 6) (meters 4)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g :copy r) + (:b :copy r) + (:a 64.0) + (:vel-y (meters 0.33333334) (meters 0.13333334)) + (:scalevel-x (meters 0.13333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:friction 0.7) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-4 aux-list)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 433 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 30.0) + (:z (meters 20)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.06666667)) + (:friction 0.97) + (:timer (seconds 2)) + (:flags (aux-list glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-z (degrees 0) (degrees 360)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 30.0 30.0 30.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 0.0 0.0 0.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 64.0 32.0 33.0 34.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 -32.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-carexplo-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 8.0 20.0 21.0 22.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 12.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-dust-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.3 -0.8 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 0.6 1.0 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 2.0 0.79999995 -5.0000005 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-dust-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-carexplo-dust-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.5 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.2 0.8 1.2 2.2)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.2 0.8000001 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-intro-car-explosion-dust-in-curve-settings*, type particle-curve-settings +(define *part-intro-car-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 2) + :lifetime-offset (seconds 1) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 433 init-specs 15 initial-valuef) + (the-as float *part-intro-car-explosion-dust-in-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* color-start) *range-carexplo-dust-color*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* alpha-start) *range-carexplo-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* scale-x-start) *range-carexplo-dust-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* scale-y-start) *range-carexplo-dust-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* a-scalar) *curve-carexplo-dust-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* scale-x-scalar) *curve-carexplo-dust-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-dust-in-curve-settings* scale-y-scalar) *curve-carexplo-dust-scale-y*) + +;; failed to figure out what this is: +(defpart 436 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 5.0) + (:scale-x (meters 6) (meters 4)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.6666667) (meters 0.26666668)) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:friction 0.7) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 438 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 8.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.26666668) (meters 0.13333334)) + (:friction 0.9) + (:timer (seconds 1)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 20) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 128.0 129.0 130.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 6.0 10.0 11.0 12.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 4.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-intro-carexplo-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.05 -0.7 -1.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.8 0.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 -0.3076923 -2.6666665 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-intro-carexplo-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-intro-carexplo-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.8 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 1.5 2.5)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.25 2.5000002 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-intro-car-explosion-texture-curve-settings*, type particle-curve-settings +(define *part-intro-car-explosion-texture-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.5) + :lifetime-offset (seconds 0.6) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 438 init-specs 16 initial-valuef) + (the-as float *part-intro-car-explosion-texture-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* color-start) *range-intro-carexplo-color*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* alpha-start) *range-intro-carexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* scale-x-start) *range-intro-carexplo-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* scale-y-start) *range-intro-carexplo-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* a-scalar) *curve-intro-carexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* scale-x-scalar) *curve-intro-carexplo-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture-curve-settings* scale-y-scalar) *curve-intro-carexplo-scale-y*) + +;; failed to figure out what this is: +(defpart 439 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 8) (meters 8)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 200.0) + (:a 128.0) + (:vel-y (meters 0.13333334) (meters 0.1)) + (:scalevel-x (meters -0.06666667)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 0) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 430 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-inherit-size) + (:num 1.0) + (:scale-x (meters 0.00024414062) (meters 0.00012207031)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:fade-a -0.18285714 -0.18285714) + (:timer (seconds 2.335)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-tire-skid-smoke + :id 91 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 441 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 441 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:y (meters -0.5)) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 110.0) + (:b 110.0) + (:a 16.0 16.0) + (:vel-x (meters -0.36666667)) + (:vel-y (meters 0.06666667)) + (:vel-z (meters 0.4)) + (:scalevel-x (meters 0.053333335)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.94) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 442) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 442 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-tire-skid-smoke2 + :id 92 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 443 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 443 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:y (meters -0.5)) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 110.0) + (:b 110.0) + (:a 16.0 16.0) + (:vel-x (meters -0.36666667)) + (:vel-y (meters 0.06666667)) + (:vel-z (meters 0.06666667)) + (:scalevel-x (meters 0.02)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.32) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.94) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-car-explosion-wall + :id 93 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 431 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 445 :period (seconds 30) :length (seconds 0.035)) + (sp-item 446 :period (seconds 30) :length (seconds 0.035)) + (sp-item 435 :flags (sp3) :period (seconds 30) :length (seconds 0.017)) + (sp-item 447 :period (seconds 30) :length (seconds 0.167)) + (sp-item 448 :period (seconds 30) :length (seconds 0.5)) + (sp-item 449 :flags (sp3) :binding 444) + (sp-item 449 :flags (sp3) :binding 444) + (sp-item 449 :flags (sp3) :binding 444) + (sp-item 444 :flags (sp2) :period (seconds 4) :length (seconds 1)) + (sp-item 444 :flags (sp2) :period (seconds 4) :length (seconds 1)) + (sp-item 444 :flags (sp2) :period (seconds 4) :length (seconds 1)) + ) + ) + +;; failed to figure out what this is: +(defpart 445 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 50.0) + (:scale-x (meters 0.4) (meters 0.3)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 80.0 50.0) + (:b 30.0 1 100.0) + (:a 64.0 64.0) + (:omega (degrees 0.045)) + (:vel-y (meters 0.33333334) (meters 0.5)) + (:scalevel-x (meters -0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.08888889) + (:fade-b -0.033333335) + (:fade-a -0.14222223 -0.14222223) + (:accel-y (meters -0.00033333333) (meters -0.0033333334)) + (:friction 0.9 0.03) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees -20) (degrees 60)) + (:conerot-z (degrees 0) (degrees 60)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 446 + :init-specs ((:texture (sparkbit level-default-sprite)) + (:num 100.0) + (:scale-x (meters 0.1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.2) (meters 0.6)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0 128.0) + (:vel-y (meters 0.33333334) (meters 0.6666667)) + (:rotvel-z (degrees -6.0000005) (degrees 12.000001)) + (:fade-g -0.13333334) + (:fade-b -0.05) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00033333333) (meters -0.0033333334)) + (:friction 0.9 0.03) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 90)) + (:conerot-z (degrees 0) (degrees 60)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 448 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 8.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 2)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.4) (meters 0.13333334)) + (:friction 0.91) + (:timer (seconds 1)) + (:flags ()) + (:userdata 0.0) + (:func 'live-func-curve) + (:conerot-x (degrees 20) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo2-scale-x* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 20.0 40.0 41.0 42.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-intro-carexplo2-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 20.0 40.0 41.0 42.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 1.0 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-intro-car-explosion-texture2-curve-settings*, type particle-curve-settings +(define *part-intro-car-explosion-texture2-curve-settings* (new 'static 'particle-curve-settings + :lifetime-base (seconds 0.9) + :lifetime-offset (seconds 0.6) + :flags (particle-curve-flags pcf0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 448 init-specs 16 initial-valuef) + (the-as float *part-intro-car-explosion-texture2-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* color-start) *range-intro-carexplo-color*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* alpha-start) *range-intro-carexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* scale-x-start) *range-intro-carexplo2-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* scale-y-start) *range-intro-carexplo2-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* a-scalar) *curve-intro-carexplo-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* scale-x-scalar) *curve-intro-carexplo-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-intro-car-explosion-texture2-curve-settings* scale-y-scalar) *curve-intro-carexplo-scale-y*) + +;; failed to figure out what this is: +(defpart 449 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 12) (meters 6)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:vel-y (meters 0.26666668) (meters 0.033333335)) + (:scalevel-x (meters -0.026666667) (meters -0.026666667)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.97 0.02) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:conerot-x (degrees 20) (degrees 60)) + (:conerot-z (degrees 0) (degrees 30)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 444 + :init-specs ((:texture (explo-texture level-default-sprite)) + (:birth-func 'birth-func-inherit-size) + (:num 1.0) + (:scale-x (meters 0.00024414062) (meters 0.000048828126)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 128.0) + (:b 32.0) + (:a 128.0) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 447 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 20.0) + (:scale-x (meters 3) (meters 2)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 80.0 20.0) + (:b 30.0) + (:a 128.0) + (:vel-y (meters 0.5) (meters 0.06666667)) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.13333334) + (:fade-b -0.05) + (:fade-a -0.21333334 -0.21333334) + (:friction 0.93) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'sparticle-2d-spline-align-instant) + (:conerot-x (degrees -20) (degrees 180)) + (:conerot-z (degrees 0)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-railing-collision + :id 94 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 450 :flags (sp6)) (sp-item 451 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 450 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 10.0) + (:y (meters 0)) + (:z (meters -8) (meters 16)) + (:scale-x (meters 3) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 64.0) + (:b 64.0) + (:a 32.0 32.0) + (:vel-y (meters 0.06666667) (meters 0.16666667)) + (:scalevel-x (meters 0.006666667) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:friction 0.8) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 451 + :init-specs ((:texture (dirt01 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 10.0) + (:y (meters 0) (meters 4)) + (:z (meters -5) (meters 10)) + (:scale-x (meters 0.1) (meters 0.8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 32.0 32.0) + (:g :copy r) + (:b :copy r) + (:a 128.0) + (:vel-y (meters 1)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:friction 0.98) + (:timer (seconds 0.335)) + (:flags (left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 + 5 + 1 + 0 + #x408d00 + #x408e00 + #x408f00 + #x409000 + #x409100 + #x409200 + #x409300 + #x409400 + #x409500 + #x409600 + #x409700 + #x409800 + #x409900 + #x409a00 + #x409b00 + #x409c00 + ) + ) + (:conerot-x (degrees -20) (degrees 40)) + (:conerot-z (degrees 70) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-car-splash-far + :id 95 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 452 :period (seconds 5) :length (seconds 0.2))) + ) + +;; failed to figure out what this is: +(defpart 452 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 20.0) + (:x (meters 0) (meters 1)) + (:y (meters 5)) + (:scale-x (meters 8) (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-y (meters 0.06666667) (meters 0.2)) + (:scalevel-x (meters 0.0033333334) (meters 0.01)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.14222223 -0.14222223) + (:accel-y (meters -0.0033333334)) + (:friction 0.99) + (:timer (seconds 1.5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x406300 #x407800)) + (:func 'check-drop-group-center) + (:conerot-x (degrees -90) (degrees 180)) + (:conerot-z (degrees 40) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-car-water-splash + :id 96 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 80) + :parts ((sp-item 453 :flags (is-3d) :period (seconds 10) :length (seconds 0.335)) + (sp-item 454 :flags (sp6) :period (seconds 10) :length (seconds 0.335)) + ) + ) + +;; failed to figure out what this is: +(defpart 453 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.4) + (:x (meters -2)) + (:scale-x (meters 1)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:scalevel-x (meters 0.16666667) (meters 0.06666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:next-time (seconds 0.167) (seconds 0.165)) + (:next-launcher 455) + (:rotate-y (degrees 20)) + ) + ) + +;; failed to figure out what this is: +(defpart 455 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.033333335)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpart 454 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 20.0) + (:x (meters -6) (meters 8)) + (:scale-x (meters 3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-z (meters 0.33333334) (meters 0.33333334)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.013333334)) + (:friction 0.92) + (:timer (seconds 2)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees 0) (degrees -80)) + (:conerot-y (degrees -50.000004) (degrees 60)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-fishtank-bubbles + :id 97 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 456)) + ) + +;; failed to figure out what this is: +(defpart 456 + :init-specs ((:texture (bubble level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-fishtank-bubbles) + (:num 2.0 2.0) + (:x (meters 0) (meters 0.5)) + (:y (meters 0)) + (:scale-x (meters 0.05) (meters 0.1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 255.0) + (:a 16.0 32.0) + (:omega (degrees 157.5)) + (:vel-y (meters 0.006666667) (meters 0.013333334)) + (:accel-y (meters 0.00016666666) (meters 0.00006666667)) + (:friction 0.96 0.02) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-0 left-multiply-quat)) + (:func 'spt-func-on-omega-height-die) + (:next-time (seconds 0.167)) + (:next-launcher 457) + (:conerot-x (degrees 0) (degrees 20)) + (:rotate-y (degrees -30) (degrees 60)) + ) + ) + +;; failed to figure out what this is: +(defpart 457 + :init-specs ((:r 64.0 128.0) + (:g :copy r) + (:b 255.0) + (:a 16.0 1 64.0) + (:scalevel-x (meters -0.00033333333) (meters 0.00066666666)) + (:scalevel-y (meters -0.00033333333) (meters 0.00066666666)) + (:accel-x (meters -0.0013333333)) + (:accel-z (meters -0.0013333333)) + (:next-time (seconds 0.167) (seconds 0.065)) + (:next-launcher 458) + ) + ) + +;; failed to figure out what this is: +(defpart 458 + :init-specs ((:r 64.0 128.0) + (:g :copy r) + (:b 255.0) + (:a 16.0 1 32.0) + (:scalevel-x (meters -0.00033333333) (meters 0.00066666666)) + (:scalevel-y (meters -0.00033333333) (meters 0.00066666666)) + (:accel-x (meters 0.0013333333)) + (:accel-z (meters 0.0013333333)) + (:next-time (seconds 0.167) (seconds 0.065)) + (:next-launcher 457) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-pouring-liquid + :id 98 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 459 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 459 + :init-specs ((:texture (bubble level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.03)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 128.0) + (:omega (degrees 0.0225)) + (:vel-y (meters 0.0016666667)) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 0.067)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-pouring-liquid2 + :id 99 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 460 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 460 + :init-specs ((:texture (bubble level-default-sprite)) + (:num 2.0) + (:scale-x (meters 0.03)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 64.0 64.0) + (:omega (degrees 0.0225)) + (:vel-y (meters 0.0016666667) (meters 0.00066666666)) + (:accel-y (meters -0.00026666667)) + (:timer (seconds 0.2)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-splashing-liquid + :id 100 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 461 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 461 + :init-specs ((:texture (bubble level-default-sprite)) + (:num 0.3 0.1) + (:scale-x (meters 0.01) (meters 0.01)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 128.0) + (:omega (degrees 0.0045)) + (:vel-y (meters 0.005) (meters 0.0016666667)) + (:accel-y (meters -0.00066666666)) + (:timer (seconds 0.335)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-splashing-liquid-fog + :id 101 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 462 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 462 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.1 0.5) + (:y (meters 0.1)) + (:scale-x (meters 0.1) (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:vel-y (meters 0.006666667)) + (:scalevel-x (meters 0.0013333333)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.32 0.32) + (:accel-y (meters -0.00033333333)) + (:friction 0.8) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 463) + (:conerot-x (degrees 80) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 463 + :init-specs ((:fade-a -0.128 -0.128)) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-flying-liquid + :id 102 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 464 :flags (sp6)) (sp-item 465 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 464 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 20.0) + (:scale-x (meters 0.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 20.0 20.0) + (:vel-y (meters 0.016666668) (meters 0.03)) + (:scalevel-x (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.13333334 -0.13333334) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.98 0.01) + (:timer (seconds 1)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 8)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 465 + :init-specs ((:texture (bubble level-default-sprite)) + (:num 20.0) + (:scale-x (meters 0.06)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 128.0) + (:vel-y (meters 0.016666668) (meters 0.03)) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.98 0.01) + (:timer (seconds 0.2)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 8)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-big-splashing-liquid + :id 103 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 466 :flags (sp6)) (sp-item 467 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 466 + :init-specs ((:texture (water-radiate level-default-sprite)) + (:num 5.0) + (:y (meters 0.1) (meters 0.8)) + (:scale-x (meters 0.4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 100.0 100.0) + (:vel-y (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -1.0 -1.0) + (:accel-y (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:func 'sparticle-2d-spline-align-instant) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 467 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 5.0) + (:scale-x (meters 0.4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 20.0 20.0) + (:vel-y (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-lighter-flame + :id 104 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 1 0 6) + :parts ((sp-item 468 :flags (sp6)) (sp-item 469 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 468 + :init-specs ((:texture (glow-hotdot level-default-sprite)) + (:num 0.3 0.3) + (:y (meters 0.05)) + (:scale-x (meters 0.05) (meters 0.05)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 180.0) + (:b 100.0) + (:a 255.0) + (:scalevel-y (meters 0.0016666667) (meters 0.0016666667)) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.99 0.02) + (:timer (seconds 0.167) (seconds 0.03)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0) (degrees 3598.0002)) + ) + ) + +;; failed to figure out what this is: +(defpart 469 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:y (meters 0.1)) + (:scale-x (meters 0.5) (meters 0.1)) + (:rot-x (degrees 6.7500005)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0 4.0) + (:b 0.0) + (:a 80.0) + (:omega (degrees 11261.25)) + (:fade-a -3.0) + (:timer (seconds 0.167)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.067)) + (:next-launcher 470) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 470 + :init-specs ((:fade-a 0.0)) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-cig-cherry-up + :id 105 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 1 0 6) + :parts ((sp-item 471 :flags (sp3 sp6)) (sp-item 472 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 471 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.025)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 1.7066667) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.25)) + (:next-launcher 473) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 473 + :init-specs ((:fade-a -5.12)) + ) + +;; failed to figure out what this is: +(defpart 472 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 1.0666667) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.25)) + (:next-launcher 474) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 474 + :init-specs ((:fade-a -3.2)) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-cig-cherry + :id 106 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 1 0 6) + :parts ((sp-item 475 :flags (sp6)) (sp-item 476 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 475 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 0.03) + (:scale-x (meters 0.025)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 40.0 60.0) + (:b 40.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.42666668 0.42666668) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 477) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 477 + :init-specs ((:fade-a -0.42666668)) + ) + +;; failed to figure out what this is: +(defpart 476 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 30.0 2.0) + (:omega (degrees 11261.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-125-cig-cherry + :id 107 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 1 0 6) + :parts ((sp-item 478 :flags (sp6)) (sp-item 479 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 478 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 0.03) + (:scale-x (meters 0.025)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 130.0) + (:g 40.0 60.0) + (:b 40.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.42666668 0.42666668) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 480) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 480 + :init-specs ((:fade-a -0.42666668)) + ) + +;; failed to figure out what this is: +(defpart 479 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.1)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 40.0 2.0) + (:omega (degrees 11261.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-cig-smoke + :id 108 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 481 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 481 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0) (meters 0.01)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 80.0 80.0) + (:g :copy r) + (:b :copy r) + (:a 4.0 4.0) + (:scalevel-x (meters 0.00006666667) (meters 0.00016666666)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.0026666666 -0.0026666666) + (:accel-y (meters 0.000033333334) (meters 0.000033333334)) + (:friction 0.9) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2)) + (:next-time (seconds 3.335)) + (:next-launcher 482) + ) + ) + +;; failed to figure out what this is: +(defpart 482 + :init-specs ((:scalevel-x (meters 0.0000033333336) (meters 0.0000033333336)) + (:scalevel-y (meters 0.0000033333336) (meters 0.0000033333336)) + (:friction 0.85) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-125-cig-smoke + :id 109 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 483 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 483 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0) (meters 0.01)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 80.0 80.0) + (:g :copy r) + (:b :copy r) + (:a 8.0 8.0) + (:scalevel-x (meters 0.00006666667) (meters 0.00016666666)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.0053333333 -0.0053333333) + (:accel-y (meters 0.000033333334) (meters 0.000033333334)) + (:friction 0.9) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2)) + (:next-time (seconds 3.335)) + (:next-launcher 484) + ) + ) + +;; failed to figure out what this is: +(defpart 484 + :init-specs ((:scalevel-x (meters 0.0000033333336) (meters 0.0000033333336)) + (:scalevel-y (meters 0.0000033333336) (meters 0.0000033333336)) + (:friction 0.85) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-cig-smoke-blow + :id 110 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 485 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 485 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.03) (meters 0.03)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0 120.0) + (:g :copy r) + (:b :copy r) + (:a 4.0 4.0) + (:vel-z (meters 0.0033333334)) + (:scalevel-x (meters 0.00033333333) (meters 0.00066666666)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y (meters 0.00033333333) (meters 0.00066666666)) + (:fade-a -0.00053333334 -0.00053333334) + (:accel-x (meters 0.000016666667) (meters 0.000016666667)) + (:accel-y (meters 0.000016666667) (meters 0.000016666667)) + (:accel-z (meters -0.000016666667) (meters -0.000016666667)) + (:friction 0.95 0.02) + (:timer (seconds 20)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 1.667)) + (:next-launcher 486) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 486 + :init-specs ((:scalevel-x (meters 0.00016666666) (meters 0.00016666666)) + (:scalevel-y (meters 0.00016666666) (meters 0.00016666666)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-cig-smoke-blow-laugh + :id 111 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 487 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 487 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:z (meters -0.05)) + (:scale-x (meters 0.03) (meters 0.03)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0 120.0) + (:g :copy r) + (:b :copy r) + (:a 4.0 16.0) + (:vel-z (meters 0.0033333334)) + (:scalevel-x (meters 0.00033333333) (meters 0.00033333333)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y (meters 0.00033333333) (meters 0.00033333333)) + (:fade-a -0.0033333334 -0.0033333334) + (:accel-x (meters 0.000016666667) (meters 0.000016666667)) + (:accel-y (meters 0.000016666667) (meters 0.000016666667)) + (:accel-z (meters -0.000006666667) (meters -0.000006666667)) + (:friction 0.94 0.02) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 1.667)) + (:next-launcher 486) + (:rotate-x (degrees -20)) + (:rotate-y (degrees 80)) + (:rotate-z (degrees -40)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-cig-ashes + :id 112 + :flags (sp0) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 488) (sp-item 489)) + ) + +;; failed to figure out what this is: +(defpart 488 + :init-specs ((:texture (tinyspeck level-default-sprite)) + (:num 2.0) + (:scale-x (meters 0.03) (meters 0.05)) + (:rot-x (degrees 2.25)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 120.0) + (:g 0.0 80.0) + (:b 0.0) + (:a 40.0 40.0) + (:omega (degrees 11261.25)) + (:scalevel-y (meters 0.00066666666) (meters 0.00066666666)) + (:fade-a -0.53333336 -0.06666667) + (:accel-x (meters -0.00006666667) (meters 0.00013333333)) + (:accel-y (meters -0.00033333333) (meters -0.00033333333)) + (:accel-z (meters -0.00006666667) (meters 0.00013333333)) + (:friction 0.95 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc left-multiply-quat)) + (:userdata 409.6) + ) + ) + +;; failed to figure out what this is: +(defpart 489 + :init-specs ((:texture (specs level-default-sprite)) + (:birth-func 'birth-func-flip-based-on-scale) + (:num 1.0 4.0) + (:scale-x (meters -0.02) 1 (meters 0.04)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters -0.02) 1 (meters 0.04)) + (:r 40.0 100.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:omega (degrees 0.0225)) + (:scalevel-x (meters 0.00066666666)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667) + (:accel-y (meters -0.00033333333) (meters -0.00033333333)) + (:friction 0.95 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2)) + (:func 'sparticle-motion-blur) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-rustyh-oncar-headlights + :id 113 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 490 :flags (sp5 sp6)) (sp-item 491 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 490 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 491 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-oncar-vehicle-dust + :id 114 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 492 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 492 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 80.0) + (:g 60.0) + (:b 50.0) + (:a 30.0 10.0) + (:vel-z (meters -0.06666667)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.06666667 -0.06666667) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.95) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x407800 #x407800 #x407800 #x400c00)) + (:next-time (seconds 0.335)) + (:next-launcher 493) + (:conerot-x (degrees 20) (degrees 10)) + (:conerot-y (degrees -10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 493 + :init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-flying-froth + :id 115 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 494 :flags (sp6)) (sp-item 495 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 494 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 10.0) + (:scale-x (meters 0.05)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 20.0 20.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters 0.00066666666) (meters 0.0013333333)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.13333334 -0.13333334) + (:accel-y (meters -0.00066666666)) + (:friction 0.97 0.02) + (:timer (seconds 1)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 8)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 495 + :init-specs ((:texture (bubble level-default-sprite)) + (:num 10.0) + (:scale-x (meters 0.01) (meters 0.02)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 64.0) + (:b 16.0) + (:a 128.0) + (:vel-y (meters 0.006666667) (meters 0.006666667)) + (:fade-a -0.42666668 -0.42666668) + (:accel-y (meters -0.00066666666)) + (:friction 0.98 0.01) + (:timer (seconds 1)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-cig-smoke-b + :id 116 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 496 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 496 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.01) (meters 0.02)) + (:rot-x 4) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 20.0 80.0) + (:g :copy r) + (:b :copy r) + (:a 8.0 16.0) + (:scalevel-x (meters 0.00006666667) (meters 0.00016666666)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.010666667 -0.010666667) + (:accel-y (meters 0.0000033333336) (meters 0.000036666668)) + (:friction 0.9) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2)) + (:next-time (seconds 3.335)) + (:next-launcher 497) + ) + ) + +;; failed to figure out what this is: +(defpart 497 + :init-specs ((:scalevel-x (meters 0.0000033333336) (meters 0.0000033333336)) + (:scalevel-y (meters 0.0000033333336) (meters 0.0000033333336)) + (:friction 0.85) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-cig-cherry-drag + :id 117 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 1 0 6) + :parts ((sp-item 498 :flags (sp3 sp6)) (sp-item 499 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 498 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.025)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.64) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.667)) + (:next-launcher 500) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 500 + :init-specs ((:fade-a -1.28)) + ) + +;; failed to figure out what this is: +(defpart 499 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.4) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.667)) + (:next-launcher 501) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 501 + :init-specs ((:fade-a -0.8)) + ) + +;; failed to figure out what this is: +(defpartgroup group-cig-ashes-fly + :id 118 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 502 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 502 + :init-specs ((:texture (tinyspeck level-default-sprite)) + (:num 6.0) + (:scale-x (meters 0.1)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 120.0) + (:g 0.0 80.0) + (:b 0.0) + (:a 80.0 80.0) + (:omega (degrees 0.0225)) + (:vel-z (meters 0.05) (meters 0.016666668)) + (:scalevel-y (meters 0.00066666666) (meters 0.00066666666)) + (:fade-a -1.0666667 -1.0666667) + (:accel-y (meters -0.0016666667)) + (:friction 0.6 0.2) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.05)) + (:next-launcher 503) + (:conerot-y (degrees 0) (degrees 10)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 503 + :init-specs ((:func 'nothing)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-rustyh-headlights + :id 119 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 504 :flags (sp3 sp6)) (sp-item 505 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 504 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:scalevel-x (meters 0.0016666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.17) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpart 505 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0.005)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.086666666) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-fish-tank-glass + :id 120 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 506 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 506 + :init-specs ((:texture (glass-shard-01 rustyh-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 5.0) + (:z (meters 3)) + (:scale-x (meters 0.05) (meters 0.3)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.05) (meters 0.3)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-z (meters 0.0016666667) (meters 0.06666667)) + (:rotvel-x (degrees -0.016666668) (degrees 0.033333335)) + (:rotvel-y (degrees -0.016666668) (degrees 0.033333335)) + (:rotvel-z (degrees -0.016666668) (degrees 0.033333335)) + (:accel-y (meters -0.00016666666) (meters -0.00016666666)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x4c800b00 #x4c800c00 #x4c800d00 #x4c800e00)) + (:next-time (seconds 0.017) (seconds 1.665)) + (:next-launcher 507) + (:conerot-y (degrees -40) (degrees 80)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 507 + :init-specs ((:fade-a 6.0) (:next-time (seconds 0.1)) (:next-launcher 508)) + ) + +;; failed to figure out what this is: +(defpart 508 + :init-specs ((:fade-a -6.0) (:next-time (seconds 0.1)) (:next-launcher 509)) + ) + +;; failed to figure out what this is: +(defpart 509 + :init-specs ((:a 32.0 32.0) (:fade-a 0.0) (:next-time (seconds 1.335) (seconds 1.665)) (:next-launcher 507)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-fish-tank-water-explode + :id 121 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 510 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 510 + :init-specs ((:texture (big-water-drops rustyh-sprite)) + (:num 5.0) + (:z (meters 1)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 135.0) + (:b 120.0) + (:a 16.0 16.0) + (:vel-z (meters 0.016666668) (meters 0.016666668)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00008333333) (meters -0.00008333333)) + (:friction 0.98 0.01) + (:timer (seconds 2.835)) + (:flags (left-multiply-quat right-multiply-quat)) + (:conerot-y (degrees -40) (degrees 80)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-water-floor-splash + :id 122 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 511 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 511 + :init-specs ((:texture (laser-hit2-add level-default-sprite)) + (:num 40.0) + (:x (meters -1.2) (meters 2.4)) + (:y (meters 0.1)) + (:z (meters -0.3) (meters 0.6)) + (:scale-x (meters 0.1) (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0 128.0) + (:scalevel-x (meters 0.0033333334) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -5.1 -5.1) + (:timer (seconds 0.085) (seconds 0.08)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:rotate-y (degrees -8)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-water-car-splash + :id 123 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 512 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 512 + :init-specs ((:texture (big-water-drops rustyh-sprite)) + (:num 20.0) + (:x (meters 0) (meters 10)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 135.0) + (:b 120.0) + (:a 32.0 32.0) + (:vel-y (meters 0.033333335) (meters 0.016666668)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0016666667)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-wood-bits + :id 124 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 513 :flags (sp3 sp6)) (sp-item 514 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 513 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters 0.1)) + (:z (meters 0.1)) + (:scale-x (meters 0.2)) + (:scale-y :copy scale-x) + (:r 80.0) + (:g 64.0) + (:b 64.0) + (:a 32.0) + (:scalevel-x (meters 0.001)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.010666667) + (:accel-y (meters -0.00006666667)) + (:friction 0.9) + (:timer (seconds 10)) + (:flags (left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 514 + :init-specs ((:texture (woodchip level-default-sprite)) + (:num 20.0) + (:y (meters -0.01) (meters 0.02)) + (:scale-x (meters 0.005) (meters 0.02)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0) + (:g 32.0) + (:b 32.0) + (:a 128.0) + (:vel-z (meters 0.0016666667) (meters 0.0033333334)) + (:rotvel-z (degrees -10) (degrees 20)) + (:accel-y (meters -0.00016666666)) + (:friction 0.99) + (:timer (seconds 4)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees -90) (degrees 180)) + (:conerot-y (degrees -90) (degrees 180)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-wood-barrel-shatter + :id 125 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 515 :flags (sp6)) (sp-item 516 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 515 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 5.0) + (:y (meters 0)) + (:scale-x (meters 3) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 55.0) + (:g 40.0) + (:b 40.0) + (:a 16.0 16.0) + (:vel-y (meters 0.06666667) (meters 0.16666667)) + (:scalevel-x (meters 0.006666667) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.026666667 -0.026666667) + (:friction 0.8) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 516 + :init-specs ((:texture (woodchip level-default-sprite)) + (:num 30.0) + (:y (meters 0)) + (:scale-x (meters 0.1) (meters 0.3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0) + (:g 32.0) + (:b 32.0) + (:a 128.0) + (:vel-y (meters 0.1) (meters 0.13333334)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-wood-bar-shatter + :id 126 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 517 :flags (sp6)) (sp-item 518 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 517 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 5.0) + (:x (meters -2) (meters 4)) + (:y (meters 0)) + (:scale-x (meters 3) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 55.0) + (:g 40.0) + (:b 40.0) + (:a 16.0 16.0) + (:vel-y (meters 0.06666667) (meters 0.16666667)) + (:scalevel-x (meters 0.006666667) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.026666667 -0.026666667) + (:friction 0.8) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:conerot-x (degrees 0) (degrees 360)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 518 + :init-specs ((:texture (woodchip level-default-sprite)) + (:num 30.0) + (:x (meters -20) (meters 40)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 0.3) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0) + (:g 32.0) + (:b 32.0) + (:a 128.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:timer (seconds 2)) + (:flags (left-multiply-quat)) + (:conerot-x (degrees -45) (degrees 90)) + (:conerot-z (degrees -45) (degrees 90)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-bottle-glass + :id 127 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 519 :flags (is-3d sp6)) (sp-item 520 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 519 + :init-specs ((:texture (glass-shard-01 rustyh-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 10.0) + (:scale-x (meters 0.03) (meters 0.5)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.03) (meters 0.5)) + (:r 70.0) + (:g 40.0) + (:b 10.0) + (:a 64.0) + (:vel-y (meters 0.0016666667) (meters 0.016666668)) + (:rotvel-x (degrees -1) (degrees 2)) + (:rotvel-y (degrees -1) (degrees 2)) + (:rotvel-z (degrees -1) (degrees 2)) + (:accel-y (meters -0.0005) (meters -0.0005)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x4c800b00 #x4c800c00 #x4c800d00 #x4c800e00)) + (:next-time (seconds 0.017) (seconds 1.665)) + (:next-launcher 507) + (:conerot-x (degrees 0) (degrees 60)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 520 + :init-specs ((:texture (glass-shard-01 rustyh-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 10.0) + (:scale-x (meters 0.03) (meters 0.5)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.03) (meters 0.5)) + (:r 10.0) + (:g 60.0) + (:b 110.0) + (:a 64.0) + (:vel-y (meters 0.0016666667) (meters 0.016666668)) + (:rotvel-x (degrees -1) (degrees 2)) + (:rotvel-y (degrees -1) (degrees 2)) + (:rotvel-z (degrees -1) (degrees 2)) + (:accel-y (meters -0.0005) (meters -0.0005)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x4c800b00 #x4c800c00 #x4c800d00 #x4c800e00)) + (:next-time (seconds 0.017) (seconds 1.665)) + (:next-launcher 507) + (:conerot-x (degrees 0) (degrees 60)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-fish-tank-glass2 + :id 128 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 521 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 521 + :init-specs ((:texture (glass-shard-01 rustyh-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 20.0) + (:x (meters -2) (meters 4)) + (:y (meters -1) (meters 2)) + (:scale-x (meters 0.05) (meters 0.3)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 0.05) (meters 0.3)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-y (meters 0.0016666667) (meters 0.033333335)) + (:rotvel-x (degrees -1) (degrees 2)) + (:rotvel-y (degrees -1) (degrees 2)) + (:rotvel-z (degrees -1) (degrees 2)) + (:accel-y (meters -0.0005) (meters -0.0005)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x4c800b00 #x4c800c00 #x4c800d00 #x4c800e00)) + (:next-time (seconds 0.017) (seconds 1.665)) + (:next-launcher 507) + (:conerot-x (degrees -90) (degrees 180)) + (:conerot-z (degrees -40) (degrees 80)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-fish-tank-water-part1 + :id 129 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 522 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 522 + :init-specs ((:texture (big-water-drops rustyh-sprite)) + (:num 5.0) + (:y (meters -1)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 135.0) + (:b 120.0) + (:a 8.0 8.0) + (:vel-y (meters 0.016666668) (meters 0.05)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00083333335) (meters -0.00083333335)) + (:friction 0.98 0.01) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:conerot-z (degrees -80) (degrees 30)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-fish-tank-water-part2 + :id 130 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 523 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 523 + :init-specs ((:texture (big-water-drops rustyh-sprite)) + (:num 5.0) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 135.0) + (:b 120.0) + (:a 8.0 8.0) + (:vel-y (meters 0.016666668) (meters 0.05)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.00083333335) (meters -0.00083333335)) + (:friction 0.98 0.01) + (:timer (seconds 2)) + (:flags (left-multiply-quat right-multiply-quat)) + (:conerot-z (degrees 50.000004) (degrees 30)) + (:rotate-y (degrees -22.5)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-dust + :id 131 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 524 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 524 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 30.0 10.0) + (:vel-z (meters -0.06666667)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.06666667 -0.06666667) + (:accel-y (meters 0) (meters 0.00016666666)) + (:friction 0.95) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.335)) + (:next-launcher 423) + (:conerot-x (degrees 10) (degrees 30)) + (:conerot-y (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 423 + :init-specs ((:scalevel-x (meters 0.006666667) (meters 0.006666667)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-oncar-headlights + :id 132 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 525 :flags (sp5 sp6)) (sp-item 526 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 525 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 1.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpart 526 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-exhaust + :id 133 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 527 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 527 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.01 0.3) + (:scale-x (meters 0.2) (meters 0.3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy g) + (:a 0.0) + (:vel-z (meters -0.033333335) (meters -0.06666667)) + (:scalevel-x (meters 0.0033333334) (meters 0.013333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.8) + (:accel-y (meters 0.00066666666)) + (:friction 0.8 0.1) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 528) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 528 + :init-specs ((:fade-a -1.6 -1.6)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-peel-out + :id 134 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 529 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 529 + :init-specs ((:texture (edge-cloud level-default-sprite)) + (:num 1.0) + (:y (meters -0.5)) + (:scale-x (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 130.0) + (:b 80.0) + (:a 32.0 32.0) + (:vel-z (meters -0.06666667)) + (:scalevel-x (meters 0.01)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667) + (:accel-y (meters 0) (meters 0.00016666666)) + (:accel-z (meters 0.006666667)) + (:friction 0.95) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:next-time (seconds 0.335)) + (:next-launcher 530) + (:conerot-x (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 530 + :init-specs ((:scalevel-x (meters 0.006666667) (meters 0.006666667)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-opening-turbo-thrust + :id 135 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 531 :flags (is-3d sp5 sp6)) (sp-item 532 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 531 + :init-specs ((:texture (blue-thrust level-default-sprite)) + (:num 18.0) + (:z (meters 1)) + (:scale-x (meters 1.5)) + (:rot-z (degrees 0) 2 (degrees 45)) + (:scale-y (meters 3) (meters 3)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 532 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:x (meters -0.3)) + (:z (meters -1)) + (:scale-x (meters 4) (meters 2)) + (:scale-y :copy scale-x) + (:r 0.0) + (:g 64.0) + (:b 128.0) + (:a 30.0 60.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-landing-sparks + :id 136 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 533 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 533 + :init-specs ((:texture (radial-gradient-yellow level-default-sprite)) + (:num 2.0) + (:x (meters -2) (meters 4)) + (:y (meters -0.8)) + (:z (meters 0) (meters 3)) + (:scale-x (meters 0.05)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 255.0) + (:omega (degrees 0.01125)) + (:vel-z (meters 0.4) (meters 0.16666667)) + (:fade-a -2.55 -2.55) + (:accel-y (meters -0.0023333333)) + (:friction 0.91) + (:timer (seconds 0.167) (seconds 0.33)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees -20)) + (:conerot-y (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-landing-dust + :id 137 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 534 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 534 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 64.0) + (:vel-z (meters 0.2)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters 0.00033333333) (meters 0.00033333333)) + (:friction 0.8 0.05) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:conerot-y (degrees 0) (degrees 80)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-dust-fall + :id 138 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 535 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 535 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 30.0 10.0) + (:vel-z (meters 0.2)) + (:scalevel-x (meters 0.016666668) (meters 0.016666668)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.033333335 -0.033333335) + (:accel-y (meters -0.0016666667) (meters -0.0016666667)) + (:friction 0.9 0.05) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-intro-vehicle-dust-trail + :id 139 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 536 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 536 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 10.0 10.0) + (:vel-z (meters 0.06666667)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.013333334 -0.013333334) + (:accel-y (meters -0.00033333333)) + (:friction 0.94 0.05) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-razer-cig-cherry-up + :id 140 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 1 0 6) + :parts ((sp-item 537 :flags (sp3 sp6)) (sp-item 538 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 537 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.025)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.85333335) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 539) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 539 + :init-specs ((:fade-a -2.56)) + ) + +;; failed to figure out what this is: +(defpart 538 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.53333336) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 540) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 540 + :init-specs ((:fade-a -1.6)) + ) + +;; failed to figure out what this is: +(defpartgroup group-razer-cig-smoke-blow + :id 141 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 541 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 541 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.03) (meters 0.03)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0 120.0) + (:g :copy r) + (:b :copy r) + (:a 16.0 16.0) + (:vel-z (meters 0.0033333334)) + (:scalevel-x (meters 0.0016666667) (meters 0.00066666666)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y (meters 0.0016666667) (meters 0.00066666666)) + (:fade-a -0.0021333334 -0.0021333334) + (:accel-x (meters 0.000033333334) (meters 0.000033333334)) + (:accel-y (meters 0.000016666667) (meters 0.000016666667)) + (:accel-z (meters 0.000033333334) (meters 0.000033333334)) + (:friction 0.95 0.02) + (:timer (seconds 20)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 1.667)) + (:next-launcher 542) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 542 + :init-specs ((:scalevel-x (meters 0.00016666666) (meters 0.00016666666)) + (:scalevel-y (meters 0.00016666666) (meters 0.00016666666)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-introb-pouring-liquid + :id 142 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 543 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 543 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.02)) + (:scale-y :copy scale-x) + (:r 40.0) + (:g 8.0) + (:b 5.0) + (:a 128.0) + (:omega (degrees 0.00675)) + (:vel-y (meters 0.002)) + (:accel-y (meters -0.0016666667)) + (:timer (seconds 0.085)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-157-splashing-liquid + :id 143 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 544 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 544 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:y (meters -0.02)) + (:scale-x (meters 0.01) (meters 0.01)) + (:scale-y :copy scale-x) + (:r 50.0) + (:g 30.0) + (:b 10.0) + (:a 8.0 64.0) + (:omega (degrees 0.01125)) + (:vel-y (meters 0) (meters 0.0026666666)) + (:accel-y (meters -0.00033333333)) + (:timer (seconds 0.335)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-x (degrees 0) (degrees 30)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-157-splashing-liquid-sparkles + :id 144 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 545 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 545 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:y (meters -0.02)) + (:scale-x (meters 0.003) (meters 0.003)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:omega (degrees 0.0045)) + (:vel-y (meters 0) (meters 0.0026666666)) + (:accel-y (meters -0.00033333333)) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.035) (seconds 0.165)) + (:next-launcher 546) + (:conerot-x (degrees 0) (degrees 30)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 546 + :init-specs ((:a 0.0 64.0) (:next-time (seconds 0.035) (seconds 0.03)) (:next-launcher 547)) + ) + +;; failed to figure out what this is: +(defpart 547 + :init-specs ((:a 0.0) (:next-time (seconds 0.035) (seconds 0.165)) (:next-launcher 546)) + ) + +;; failed to figure out what this is: +(defpartgroup group-104-cig-cherry-up + :id 145 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 1 0 6) + :parts ((sp-item 548 :flags (sp3 sp6)) (sp-item 549 :flags (sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 548 + :init-specs ((:texture (explosion-nebula level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.025)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.85333335) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 550) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 550 + :init-specs ((:fade-a -0.85333335)) + ) + +;; failed to figure out what this is: +(defpart 549 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.5)) + (:rot-x (degrees 2.25)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 32.0) + (:b 0.0) + (:a 0.0) + (:omega (degrees 11261.25)) + (:fade-a 0.53333336) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 409.6) + (:func 'spt-func-relative-pos) + (:next-time (seconds 0.5)) + (:next-launcher 551) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 551 + :init-specs ((:fade-a -0.53333336)) + ) + +;; failed to figure out what this is: +(defpartgroup group-104-cig-smoke-blow + :id 146 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 24) + :parts ((sp-item 552 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 552 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 2.0) + (:scale-x (meters 0.03) (meters 0.03)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 40.0 120.0) + (:g :copy r) + (:b :copy r) + (:a 4.0 4.0) + (:vel-z (meters 0.006666667) (meters 0.006666667)) + (:scalevel-x (meters 0.00066666666) (meters 0.005)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y (meters 0.00066666666) (meters 0.005)) + (:accel-x (meters 0.000016666667) (meters 0.000016666667)) + (:accel-y (meters 0.000016666667) (meters 0.000016666667)) + (:accel-z (meters -0.000016666667) (meters -0.000016666667)) + (:friction 0.93 0.03) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 1.667)) + (:next-launcher 553) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 553 + :init-specs ((:scalevel-x (meters 0.00016666666) (meters 0.00016666666)) + (:scalevel-y (meters 0.00016666666) (meters 0.00016666666)) + (:fade-a -0.006666667 -0.006666667) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-dashboard + :id 147 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 554 :flags (sp6)) (sp-item 555 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 554 + :init-specs ((:texture (lightning-tile level-default-sprite)) + (:num 0.4) + (:x (meters -0.4) (meters 0.5)) + (:y (meters -0.2) (meters 0.4)) + (:z (meters -0.1)) + (:scale-x (meters 0.02) (meters 0.02)) + (:scale-y (meters 0.05) (meters 0.05)) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 128.0) + (:vel-x (meters -0.00066666666) (meters 0.0013333333)) + (:vel-y (meters -0.00066666666) (meters 0.00083333335)) + (:accel-x (meters -0.000016666667) (meters 0.000033333334)) + (:timer (seconds 0.5) (seconds 0.497)) + (:flags (sp-cpuinfo-flag-3 right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 15 1 0 #x40b800 #x40b900 #x40ba00)) + (:func 'spt-func-part-outro-b-dashboard) + (:next-time (seconds 0.035)) + (:next-launcher 556) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 556 + :init-specs ((:scale-x (meters 0.01) (meters 0.04)) + (:scale-y (meters 0.03) (meters 0.1)) + (:a 20.0 100.0) + (:next-time (seconds 0.035)) + (:next-launcher 556) + ) + ) + +;; definition for function spt-func-part-outro-b-dashboard +(defun spt-func-part-outro-b-dashboard ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (spt-func-relative-pos arg0 arg1 (the-as sprite-vec-data-3d arg2)) + (sparticle-2d-spline-align-instant arg0 arg1 (the-as sprite-vec-data-2d arg2)) + (none) + ) + +;; failed to figure out what this is: +(defpart 555 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 0.05 0.1) + (:x (meters -0.4) (meters 0.5)) + (:y (meters -0.2) (meters 0.4)) + (:z (meters -0.1)) + (:scale-x (meters 0.1) (meters 0.15)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 100.0) + (:b 255.0) + (:a 255.0) + (:scalevel-x (meters -0.006666667)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.017) (seconds 0.097)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-dashboard-sparks + :id 148 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 557 :flags (sp6) :period (seconds 0.667) :length (seconds 0.017))) + ) + +;; failed to figure out what this is: +(defpart 557 + :init-specs ((:texture (radial-gradient-blue level-default-sprite)) + (:num 8.0 8.0) + (:scale-x (meters 0.02)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a :copy r) + (:omega (degrees 0.00675)) + (:vel-z (meters -0.00033333333) (meters -0.01)) + (:accel-y (meters -0.00033333333)) + (:friction 0.9) + (:timer (seconds 0.5)) + (:flags (sp-cpuinfo-flag-3 left-multiply-quat)) + (:func 'spt-func-part-outro-b-dashboard-sparks) + (:conerot-x (degrees 0) (degrees 50.000004)) + (:rotate-x (degrees 30)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; definition for function spt-func-part-outro-b-dashboard-sparks +(defun spt-func-part-outro-b-dashboard-sparks ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector)) + (spt-func-relative-pos arg0 arg1 (the-as sprite-vec-data-3d arg2)) + (sparticle-motion-blur arg0 arg1 arg2) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-dashboard-back + :id 149 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 558 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 558 + :init-specs ((:texture (ray-glow level-default-sprite)) + (:num 0.05 0.1) + (:x (meters -0.4) (meters 0.5)) + (:y (meters -0.2) (meters 0.6)) + (:z (meters -0.1)) + (:scale-x (meters 0.5) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 50.0 50.0) + (:g :copy r) + (:b 255.0) + (:a 255.0) + (:scalevel-x (meters -0.01)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 0.017) (seconds 0.097)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3)) + (:func 'spt-func-relative-pos) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-dashboard-back-smoke + :id 150 + :flags (sp0 sp4 sp12) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 559 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 559 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.6) + (:x (meters -0.4)) + (:scale-x (meters 0.1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 32.0 64.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.0033333334)) + (:vel-z (meters 0.0033333334)) + (:scalevel-x (meters 0.001)) + (:scalevel-y :copy scalevel-x) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:func 'spt-func-relative-pos) + (:conerot-y (degrees -20) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-b-dashboard-back-smoke-ws + :id 151 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 560 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 560 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters -0.4)) + (:scale-x (meters 1) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 64.0 64.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.06666667)) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:friction 0.9 0.05) + (:timer (seconds 0.035)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-outro-vehicle-dust + :id 152 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 561 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 561 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 30.0 10.0) + (:vel-z (meters -0.06666667)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.06666667 -0.06666667) + (:accel-y (meters 0) (meters 0.00016666666)) + (:friction 0.95) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 0.335)) + (:next-launcher 562) + (:conerot-x (degrees 10) (degrees 30)) + (:conerot-y (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 562 + :init-specs ((:scalevel-x (meters 0.006666667) (meters 0.006666667)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-rayn-vehicle-dust + :id 153 + :flags (sp0 sp4 sp13) + :bounds (static-bspherem 0 0 0 64) + :parts ((sp-item 563 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 563 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0) + (:g 80.0) + (:b 70.0) + (:a 30.0 10.0) + (:vel-z (meters -0.016666668)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.06666667 -0.06666667) + (:accel-y (meters 0) (meters 0.00016666666)) + (:friction 0.95) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 0.335)) + (:next-launcher 564) + (:conerot-x (degrees -10) (degrees 20)) + (:conerot-y (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 564 + :init-specs ((:scalevel-x (meters 0.006666667) (meters 0.006666667)) (:scalevel-y :copy scalevel-x)) + ) + +;; failed to figure out what this is: +(defpartgroup group-winners-circle-light-glow + :id 154 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 565 :flags (sp5 sp6)) + (sp-item 566 :flags (sp5 sp6)) + (sp-item 567 :flags (sp5 sp6)) + (sp-item 568 :flags (sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 565 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:x (meters -1)) + (:scale-x (meters 2) (meters 0.1)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 70.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 566 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:x (meters 1)) + (:scale-x (meters 2) (meters 0.1)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 70.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 567 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:x (meters -1)) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 568 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:x (meters 1)) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-winners-circle-floor-light-glow + :id 155 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 569 :flags (sp5 sp6)) (sp-item 570 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 569 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 2) (meters 0.1)) + (:rot-x (degrees 4.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 570 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-winner-light-glow + :id 156 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 4) + :parts ((sp-item 571 :flags (sp5 sp6)) + (sp-item 572 :flags (sp5 sp6)) + (sp-item 573 :flags (sp5 sp6)) + (sp-item 574 :flags (sp5 sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 571 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:x (meters -0.5)) + (:scale-x (meters 2) (meters 0.1)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 40.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 572 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:x (meters 0.5)) + (:scale-x (meters 2) (meters 0.1)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 40.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 819.2) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 573 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:x (meters -0.5)) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 574 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:num 1.0) + (:x (meters 0.5)) + (:scale-x (meters 4)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 60.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-1 + :id 157 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 575 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 575 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #xf41)) + (:num 1.0) + (:scale-x (meters 0.8)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.15)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-2 + :id 158 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 576 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 576 + :init-specs ((:texture (new 'static 'texture-id :index #x14 :page #xf41)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.43)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-3 + :id 159 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 577 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 577 + :init-specs ((:texture (new 'static 'texture-id :page #xf41)) + (:num 0.0165) + (:scale-x (meters 0.7)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.25)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 30.0) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 + 20 + 1 + 0 + -200278016 + -200277760 + -200277504 + -200277248 + -200276992 + -200276736 + -200276480 + -200276224 + -200275968 + -200275712 + -200275456 + -200275200 + -200274944 + -200274688 + -200274432 + -200274176 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-4 + :id 160 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 578 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 578 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #xf41)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.65)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-5 + :id 161 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 579 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 579 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #xf41)) + (:num 1.0) + (:scale-x (meters 0.8)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.43)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-6 + :id 162 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 580 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 580 + :init-specs ((:texture (new 'static 'texture-id :index #x14 :page #xf41)) + (:num 1.0) + (:z (meters 0.01)) + (:scale-x (meters 0.35)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.2)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-7 + :id 163 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 581 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 581 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #xf41)) + (:num 1.0) + (:scale-x (meters 0.2)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.3)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:fade-a -0.16666667) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-33-1 + :id 164 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 582 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 582 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #xf42)) + (:num 1.0) + (:z (meters 0.03)) + (:scale-x (meters 0.8)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.15)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-33-2 + :id 165 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 583 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 583 + :init-specs ((:texture (new 'static 'texture-id :index #x14 :page #xf42)) + (:num 1.0) + (:z (meters 0.03)) + (:scale-x (meters 1)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.43)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-33-3 + :id 166 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 584 :flags (is-3d sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 584 + :init-specs ((:texture (new 'static 'texture-id :page #xf42)) + (:num 1.0) + (:z (meters 0.03)) + (:scale-x (meters 0.7)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.25)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 30.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 + 20 + 1 + 0 + -199229440 + -199229184 + -199228928 + -199228672 + -199228416 + -199228160 + -199227904 + -199227648 + -199227392 + -199227136 + -199226880 + -199226624 + -199226368 + -199226112 + -199225856 + -199225600 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-33-4 + :id 167 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 585 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 585 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #xf42)) + (:num 1.0) + (:z (meters 0.03)) + (:scale-x (meters 1)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.65)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-33-5 + :id 168 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 586 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 586 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #xf42)) + (:num 1.0) + (:z (meters 0.03)) + (:scale-x (meters 0.8)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.43)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-33-6 + :id 169 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 587 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 587 + :init-specs ((:texture (new 'static 'texture-id :index #x14 :page #xf42)) + (:num 1.0) + (:z (meters 0.01)) + (:scale-x (meters 0.35)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.2)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-33-7 + :id 170 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 588 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 588 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #xf42)) + (:num 1.0) + (:z (meters 0.03)) + (:scale-x (meters 0.2)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.3)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:fade-a -0.16666667) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-38-1 + :id 171 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 589 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 589 + :init-specs ((:texture (new 'static 'texture-id :index #x15 :page #xf43)) + (:num 1.0) + (:scale-x (meters 0.8)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.15)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-38-2 + :id 172 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 590 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 590 + :init-specs ((:texture (new 'static 'texture-id :index #x14 :page #xf43)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.43)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-38-3 + :id 173 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 591 :flags (is-3d sp3 sp6))) + ) + +;; failed to figure out what this is: +(defpart 591 + :init-specs ((:texture (new 'static 'texture-id :page #xf43)) + (:num 1.0) + (:scale-x (meters 0.7)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.25)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 30.0) + (:timer (seconds -0.005)) + (:flags (sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 + 20 + 1 + 0 + -198180864 + -198180608 + -198180352 + -198180096 + -198179840 + -198179584 + -198179328 + -198179072 + -198178816 + -198178560 + -198178304 + -198178048 + -198177792 + -198177536 + -198177280 + -198177024 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-38-4 + :id 174 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 592 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 592 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #xf43)) + (:num 1.0) + (:scale-x (meters 1)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.65)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-38-5 + :id 175 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 593 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 593 + :init-specs ((:texture (new 'static 'texture-id :index #x16 :page #xf43)) + (:num 1.0) + (:scale-x (meters 0.8)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.43)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-38-6 + :id 176 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 594 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 594 + :init-specs ((:texture (new 'static 'texture-id :index #x14 :page #xf43)) + (:num 1.0) + (:z (meters 0.01)) + (:scale-x (meters 0.35)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.2)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-diagnostic-screen-38-7 + :id 177 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 595 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 595 + :init-specs ((:texture (new 'static 'texture-id :index #x17 :page #xf43)) + (:num 1.0) + (:z (meters 0.03)) + (:scale-x (meters 0.2)) + (:rot-x (degrees 90)) + (:scale-y (meters 0.3)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0 10.0) + (:fade-a -0.16666667) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-broken-fishtank-leak + :id 178 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 596 :flags (sp6)) (sp-item 597 :flags (sp6)) (sp-item 598 :flags (sp6)) (sp-item 599 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 596 + :init-specs ((:texture (water-drop level-default-sprite)) + (:num 1.0) + (:x (meters -3.2)) + (:y (meters 1.85)) + (:z (meters -1.4)) + (:scale-x (meters 0.05)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 16.0 16.0) + (:omega (degrees 0.045)) + (:vel-z (meters 0.0033333334) (meters 0.0033333334)) + (:accel-y (meters -0.00033333333) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.667)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 597 + :init-specs ((:texture (water-drop level-default-sprite)) + (:num 1.0) + (:x (meters 2.55)) + (:y (meters 2.5)) + (:z (meters -1.4)) + (:scale-x (meters 0.05)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 16.0 16.0) + (:omega (degrees 0.045)) + (:vel-z (meters 0.0033333334) (meters 0.0033333334)) + (:accel-y (meters -0.00033333333) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.667)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 598 + :init-specs ((:texture (water-drop level-default-sprite)) + (:num 1.0) + (:x (meters 0)) + (:y (meters 2.9)) + (:z (meters -1.4)) + (:scale-x (meters 0.05)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 16.0 16.0) + (:omega (degrees 0.045)) + (:vel-z (meters 0.0033333334) (meters 0.0033333334)) + (:accel-y (meters -0.00033333333) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.667)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 599 + :init-specs ((:texture (water-drop level-default-sprite)) + (:num 1.0) + (:x (meters -2.2)) + (:y (meters 7.2)) + (:z (meters -1.4)) + (:scale-x (meters 0.05)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 16.0 16.0) + (:omega (degrees 0.045)) + (:vel-z (meters 0.0033333334) (meters 0.0033333334)) + (:accel-y (meters -0.00033333333) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 1.335)) + (:flags (left-multiply-quat)) + (:func 'sparticle-motion-blur) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees -20)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/kras/coliseum/coliseum-part_REF.gc b/test/decompiler/reference/jakx/levels/kras/coliseum/coliseum-part_REF.gc new file mode 100644 index 0000000000..114ace8056 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/kras/coliseum/coliseum-part_REF.gc @@ -0,0 +1,1096 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function spt-birth-func-brightness-coliseum-statue-dust +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-coliseum-statue-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 51) 150)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; definition for function spt-birth-func-brightness-coliseum-bridge-dust +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-coliseum-bridge-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 51) 90)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; definition for function spt-birth-func-brightness-coliseum-bridge-leg-dust +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-coliseum-bridge-leg-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 91) 50)) + (s3-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 10)) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-8 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 35)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-8))) + ) + (none) + ) + +;; definition for function spt-birth-func-brightness-coliseum-hanger-dust +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-coliseum-hanger-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 61) 60)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-coli-center-arch + :id 335 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1164 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1164 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 80.0) + (:x (meters -10) (meters 20)) + (:y (meters 30)) + (:scale-x (meters 8)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 32.0 64.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-x (meters -0.06666667) (meters 0.13333334)) + (:scalevel-x (meters 0.016666668) (meters 0.016666668)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters -0.0016666667)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x407800 #x408000 #x408000)) + (:rotate-x (degrees -80) (degrees 160)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-female-statue-collapse + :id 336 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1165 :period (seconds 10) :length (seconds 0.167)) + (sp-item 1166 :period (seconds 10) :length (seconds 0.335) :offset 25) + (sp-item 1167 :flags (sp6) :period (seconds 10) :length (seconds 0.667) :offset 100) + ) + ) + +;; failed to figure out what this is: +(defpart 1165 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-statue-dust) + (:num 10.0) + (:x (meters 30) (meters 20)) + (:y (meters 20) (meters 100)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y (meters 0.016666668)) + (:fade-a -0.042666666 -0.042666666) + (:accel-y (meters -0.0033333334)) + (:friction 0.95 0.02) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1166 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 10.0) + (:x (meters 0) (meters 40)) + (:y (meters 20) (meters 100)) + (:scale-x (meters 8) (meters 8)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y (meters 0.033333335) (meters 0.033333335)) + (:fade-a 0.21333334 -0.21333334) + (:accel-y (meters -0.0033333334)) + (:friction 0.95 0.02) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 1)) + (:next-launcher 1168) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1168 + :init-specs ((:fade-a -0.042666666 -0.042666666)) + ) + +;; failed to figure out what this is: +(defpart 1167 + :init-specs ((:texture (edge-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 5.0) + (:x (meters 10)) + (:y (meters 15) (meters 5)) + (:scale-x (meters 10) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-x (meters 0.06666667) (meters 0.16666667)) + (:scalevel-x (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.064 -0.064) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.98) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-z (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-statue-base-damage + :id 337 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1169 :flags (sp6) :period (seconds 5) :length (seconds 0.067)) + (sp-item 1170 :flags (sp6) :period (seconds 5) :length (seconds 0.067)) + (sp-item 1171 :flags (sp6) :period (seconds 5) :length (seconds 0.067)) + (sp-item 1172 :flags (sp6) :period (seconds 5) :length (seconds 0.067)) + ) + ) + +;; failed to figure out what this is: +(defpart 1169 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 20.0) + (:x (meters 6) (meters 10)) + (:y (meters -4) (meters -10)) + (:z (meters 6)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y (meters 0.016666668)) + (:fade-a 1.28 -1.28) + (:accel-y (meters -0.0016666667)) + (:friction 0.95 0.02) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1173) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1170 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 20.0) + (:x (meters 6)) + (:y (meters -4) (meters -10)) + (:z (meters 6) (meters 10)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0.006666667)) + (:scalevel-y (meters 0.0033333334) (meters 0.0033333334)) + (:fade-a 1.28 -1.28) + (:accel-y (meters -0.0016666667)) + (:friction 0.95 0.02) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1173) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1173 + :init-specs ((:fade-a -0.11130435 -0.11130435)) + ) + +;; failed to figure out what this is: +(defpart 1171 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 10.0) + (:x (meters 6) (meters 10)) + (:y (meters -10) (meters -4)) + (:z (meters 6)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-z (meters -0.033333335) (meters -0.06666667)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00066666666)) + (:friction 0.97 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1172 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 10.0) + (:x (meters 6)) + (:y (meters -10) (meters -4)) + (:z (meters 6) (meters 10)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-x (meters -0.033333335) (meters -0.06666667)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00066666666)) + (:friction 0.97 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-z (degrees -20) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-atlas-collapse + :id 338 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1174 :period (seconds 10) :length (seconds 0.167)) + (sp-item 1175 :period (seconds 10) :length (seconds 0.335) :offset 300) + (sp-item 1176 :flags (sp6) :period (seconds 10) :length (seconds 0.335) :offset 150) + ) + ) + +;; failed to figure out what this is: +(defpart 1174 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 10.0) + (:x (meters -20) (meters 40)) + (:y (meters 20) (meters 40)) + (:z (meters -20) (meters 40)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y (meters 0.016666668)) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters -0.0033333334)) + (:friction 0.97 0.02) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1175 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 2.0) + (:y (meters 0)) + (:scale-x (meters 10) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.23333333) (meters 0.06666667)) + (:scalevel-x (meters 0.06666667) (meters 0.033333335)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.96) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees 80) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1176 + :init-specs ((:texture (edge-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 4.0) + (:y (meters 0)) + (:scale-x (meters 10) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.26666668)) + (:scalevel-x (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.96) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees 80) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-base-damage + :id 339 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1177 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + (sp-item 1178 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + ) + ) + +;; failed to figure out what this is: +(defpart 1177 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-statue-dust) + (:num 40.0) + (:y (meters -1) (meters 0.8)) + (:z (meters 2) (meters 1)) + (:scale-x (meters 2) (meters 1)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0.033333335)) + (:scalevel-y (meters 0.006666667)) + (:fade-a 1.28 -1.28) + (:accel-y (meters -0.00066666666)) + (:friction 0.95 0.02) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1173) + (:rotate-y (degrees -60) (degrees 120)) + ) + ) + +;; failed to figure out what this is: +(defpart 1178 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 10.0) + (:y (meters -1) (meters 0.6)) + (:z (meters 3)) + (:scale-x (meters 3) (meters 3)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-z (meters 0.0016666667) (meters 0.0016666667)) + (:scalevel-x (meters 0.016666668)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:accel-y (meters -0.00016666666)) + (:friction 0.95 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees -60) (degrees 120)) + (:rotate-y (degrees -60) (degrees 120)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-toplight + :id 340 + :flags (sp4) + :bounds (static-bspherem 0 0 0 200) + :parts ((sp-item 1179 :flags (is-3d sp5 sp6) :hour-mask #b111111111111000000) + (sp-item 1180 :flags (is-3d sp5 sp6) :hour-mask #b111111111111000000) + (sp-item 1181 :flags (sp5 sp6) :hour-mask #b111111111111000000) + ) + ) + +;; failed to figure out what this is: +(defpart 1181 + :init-specs ((:texture (glow level-default-sprite)) + (:birth-func 'spartacus-birth-func-set-color) + (:num 1.0) + (:scale-x (meters 200) (meters 1)) + (:rot-x (degrees 225)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 40.0 5.0) + (:omega (degrees 67511.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 40960.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1179 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 0)) + (:y (meters 30)) + (:z (meters 0)) + (:scale-x (meters 800)) + (:rot-x (degrees 0)) + (:rot-y (degrees -50.000004)) + (:rot-z (degrees -90)) + (:scale-y (meters 200)) + (:r 80.0) + (:g 100.0) + (:b 128.0) + (:a 20.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1180 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 0)) + (:y (meters 30)) + (:z (meters 0)) + (:scale-x (meters 800)) + (:rot-x (degrees 0)) + (:rot-y (degrees 50.000004)) + (:rot-z (degrees -90)) + (:scale-y (meters 200)) + (:r 80.0) + (:g 100.0) + (:b 128.0) + (:a 20.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1182 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 0)) + (:y (meters 0)) + (:z (meters 9.8)) + (:scale-x (meters 10)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 20)) + (:r 128.0) + (:g 128.0) + (:b 64.0) + (:a 20.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees -45)) + ) + ) + +;; failed to figure out what this is: +(defpart 1183 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters 0)) + (:y (meters 0)) + (:z (meters 9)) + (:scale-x (meters 10)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 20)) + (:r 128.0) + (:g 128.0) + (:b 64.0) + (:a 20.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 90)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-big-bowl-fire + :id 341 + :flags (sp0 sp4 sp15) + :bounds (static-bspherem 0 0 0 40) + :parts ((sp-item 1184 :falloff-to (meters 2000) :flags (sp6)) (sp-item 1185 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1184 + :init-specs ((:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters 0) (meters 15)) + (:y (meters 6)) + (:scale-x (meters 8) (meters 2)) + (:rot-z (degrees 0) 1 (degrees 180)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-x (meters 0.083333336) (meters 0.033333335)) + (:scalevel-x (meters -0.026666667) (meters -0.033333335)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.06666667) + (:fade-b -0.2) + (:fade-a 1.275) + (:accel-x (meters -0.0033333334)) + (:accel-y (meters 0.002) (meters 0.0026666666)) + (:friction 0.98) + (:timer (seconds 0.667) (seconds 0.83)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 launch-along-z sp-cpuinfo-flag-21)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x401100 #x40bb00)) + (:next-time (seconds 0.5)) + (:next-launcher 1186) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1186 + :init-specs ((:scalevel-x (meters -0.0033333334) (meters -0.0033333334)) + (:scalevel-y (meters -0.016666668) (meters -0.016666668)) + (:fade-a -0.8 -1.7066667) + (:accel-x (meters 0.00066666666)) + ) + ) + +;; failed to figure out what this is: +(defpart 1185 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.2 0.1) + (:y (meters 16)) + (:scale-x (meters 120) (meters 8)) + (:rot-x (degrees 45)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0) + (:g 40.0) + (:b 8.0) + (:a 0.0) + (:omega (degrees 67511.25)) + (:fade-a 0.15 0.2) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-3 use-global-acc sp-cpuinfo-flag-21)) + (:userdata 4096.0) + (:next-time (seconds 0.335)) + (:next-launcher 1187) + ) + ) + +;; failed to figure out what this is: +(defpart 1187 + :init-specs ((:fade-a -0.15 -0.1)) + ) + +;; failed to figure out what this is: +(defpartgroup group-atlas-globe-impact + :id 342 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1188 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1188 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-hanger-dust) + (:num 10.0) + (:x (meters -10) (meters 20)) + (:y (meters -10) (meters 20)) + (:z (meters -10) (meters 20)) + (:scale-x (meters 15)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-x (meters -0.016666668) (meters 0.033333335)) + (:scalevel-y (meters 0.016666668) (meters 0.033333335)) + (:fade-a -0.053333335 -0.053333335) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.97 0.02) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:rotate-x (degrees -55)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-atlas-globe-impact-ground + :id 343 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1189 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1189 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 20.0) + (:scale-x (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.2) (meters 0.06666667)) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.16 -0.16) + (:friction 0.9) + (:timer (seconds 2)) + (:flags ()) + (:conerot-x (degrees 80) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-rail-dust + :id 344 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1190 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1190 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 4.0) + (:y (meters 2) (meters 2)) + (:z (meters 0) (meters -20)) + (:scale-x (meters 5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-x (meters -0.05) (meters 0.1)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.96) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-gate-dust + :id 345 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1191 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1191 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 80.0) + (:x (meters -10) (meters 20)) + (:y (meters 20)) + (:scale-x (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 32.0 64.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:vel-x (meters -0.06666667) (meters 0.13333334)) + (:scalevel-x (meters 0.006666667) (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters -0.0016666667)) + (:friction 0.99) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:rotate-x (degrees -80) (degrees 160)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-column-dust + :id 346 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1192 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1192 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 40.0) + (:x (meters 0) (meters 3)) + (:y (meters 0) (meters 20)) + (:scale-x (meters 4) (meters 8)) + (:scale-y :copy scale-x) + (:r 32.0 64.0) + (:g :copy r) + (:b :copy r) + (:a 32.0 32.0) + (:scalevel-x (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:accel-x (meters 0.00033333333)) + (:accel-y (meters -0.0016666667)) + (:accel-z (meters 0.00033333333)) + (:friction 0.97) + (:timer (seconds 4)) + (:flags ()) + (:next-time (seconds 1)) + (:next-launcher 1193) + (:conerot-y (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1193 + :init-specs ((:scalevel-x (meters 0.033333335)) + (:accel-x (meters 0.00066666666)) + (:accel-y (meters 0.00033333333)) + (:accel-z (meters 0.00066666666)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-hanger-dust + :id 347 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1194 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1194 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-hanger-dust) + (:num 10.0) + (:x (meters -1) (meters 2)) + (:y (meters 0) (meters 4)) + (:z (meters 0) (meters 25)) + (:scale-x (meters 15)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:vel-x (meters -0.016666668) (meters 0.033333335)) + (:scalevel-y (meters 0.016666668) (meters 0.033333335)) + (:fade-a -0.053333335 -0.053333335) + (:accel-y (meters -0.0016666667) (meters -0.00066666666)) + (:friction 0.97 0.02) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:rotate-x (degrees -55)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-hanging-bowl-dust + :id 348 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1195 :flags (sp6) :period (seconds 10) :length (seconds 0.067))) + ) + +;; failed to figure out what this is: +(defpart 1195 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 10.0) + (:x (meters 0) (meters 5)) + (:y (meters -22) (meters 4)) + (:scale-x (meters 4) (meters 8)) + (:scale-y :copy scale-x) + (:r 80.0) + (:g 70.0) + (:b 50.0) + (:a 32.0 32.0) + (:vel-x (meters 0.033333335) (meters 0.06666667)) + (:scalevel-x (meters 0.006666667)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:accel-y (meters -0.0033333334)) + (:friction 0.97 0.02) + (:timer (seconds 4)) + (:flags ()) + (:next-time (seconds 1)) + (:next-launcher 1196) + (:conerot-y (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1196 + :init-specs ((:scalevel-x (meters 0.033333335))) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-bridge-dust + :id 349 + :linger-duration (seconds 10) + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 12) + :parts ((sp-item 1197 :period (seconds 10) :length (seconds 0.167) :offset 50) + (sp-item 1198 :period (seconds 10) :length (seconds 0.167) :offset 125) + (sp-item 1199 :flags (sp6) :period (seconds 10) :length (seconds 0.167)) + ) + ) + +;; failed to figure out what this is: +(defpart 1199 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:num 10.0) + (:x (meters -20) (meters 40)) + (:y (meters 20) (meters 20)) + (:z (meters -20) (meters 40)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 150.0) + (:g 120.0) + (:b 100.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.06666667)) + (:scalevel-y (meters 0.016666668)) + (:fade-a -0.10666667 -0.10666667) + (:accel-y (meters -0.0033333334)) + (:friction 0.97 0.02) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1197 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 5.0) + (:y (meters 0)) + (:scale-x (meters 10) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.23333333) (meters 0.06666667)) + (:scalevel-x (meters 0.06666667) (meters 0.033333335)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.96) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees 80) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1198 + :init-specs ((:texture (edge-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 10.0) + (:y (meters 0)) + (:scale-x (meters 10) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.26666668)) + (:scalevel-x (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.96) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees 80) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-coliseum-bridge-leg-dust + :id 350 + :linger-duration (seconds 10) + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 12) + :parts ((sp-item 1200 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + (sp-item 1201 :period (seconds 10) :length (seconds 0.085) :offset 150) + ) + ) + +;; failed to figure out what this is: +(defpart 1200 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-leg-dust) + (:num 10.0) + (:x (meters 0) (meters 4)) + (:y (meters 0) (meters 16)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:scalevel-x (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.053333335) + (:accel-x (meters 0.00033333333)) + (:accel-y (meters -0.0016666667)) + (:accel-z (meters 0.00033333333)) + (:friction 0.97) + (:timer (seconds 4)) + (:flags ()) + (:conerot-y (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1201 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-coliseum-bridge-dust) + (:num 2.0) + (:y (meters 0)) + (:scale-x (meters 5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters 0) (meters 0.00033333333)) + (:friction 0.96) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-x (degrees 80) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/kras/cross/kcross-part_REF.gc b/test/decompiler/reference/jakx/levels/kras/cross/kcross-part_REF.gc new file mode 100644 index 0000000000..9ffb3010a2 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/kras/cross/kcross-part_REF.gc @@ -0,0 +1,265 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function spt-birth-func-brightness-kcross-fence-dust +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-kcross-fence-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 51) 90)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; definition for function spt-birth-func-brightness-kcross-fence-splinters +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-kcross-fence-splinters ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 101) 70)) + (s3-0 (logand 0 (rand-uint31-gen *random-generator*))) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 20)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 6) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 (the-as int s3-0)))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-kcross-fence-dust + :id 475 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1698 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + (sp-item 1699 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + ) + ) + +;; failed to figure out what this is: +(defpart 1698 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-kcross-fence-dust) + (:num 10.0) + (:x (meters -20) (meters 40)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-z (meters -0.05) (meters 0.1)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters -0.00066666666)) + (:friction 0.9) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1699 + :init-specs ((:texture (woodchip level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-kcross-fence-splinters) + (:num 70.0) + (:x (meters -20) (meters 40)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 0.3) (meters 1.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:timer (seconds 2)) + (:flags (glow)) + (:conerot-x (degrees -45) (degrees 90)) + (:conerot-z (degrees -45) (degrees 90)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-kcross-fence-dust-small + :id 476 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1700 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + (sp-item 1701 :flags (sp6) :period (seconds 10) :length (seconds 0.067)) + ) + ) + +;; failed to figure out what this is: +(defpart 1700 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-kcross-fence-dust) + (:num 10.0) + (:x (meters -10) (meters 20)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 5) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-z (meters -0.05) (meters 0.1)) + (:scalevel-x (meters 0.016666668) (meters 0.006666667)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.08 -0.08) + (:accel-y (meters -0.00066666666)) + (:friction 0.9) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1701 + :init-specs ((:texture (woodchip level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-kcross-fence-splinters) + (:num 70.0) + (:x (meters -10) (meters 20)) + (:y (meters 0) (meters 4)) + (:scale-x (meters 0.3) (meters 1.2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.06666667)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters -0.0033333334)) + (:timer (seconds 2)) + (:flags (glow)) + (:conerot-x (degrees -45) (degrees 90)) + (:conerot-z (degrees -45) (degrees 90)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-kcross-toplight + :id 522 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 200) + :parts ((sp-item 1702 :flags (is-3d sp5 sp6) :hour-mask #b111111111111000000) + (sp-item 1703 :flags (is-3d sp5 sp6) :hour-mask #b111111111111000000) + (sp-item 1704 :flags (sp5 sp6) :hour-mask #b111111111111000000) + (sp-item 1705 :flags (sp5 sp6) :hour-mask #b111111111111000000) + ) + ) + +;; failed to figure out what this is: +(defpart 1706 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 0.0) + (:b 0.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + ) + ) + +;; failed to figure out what this is: +(defpart 1704 + :init-specs ((:texture (glow level-default-sprite)) + (:birth-func 'spartacus-birth-func-set-color) + (:num 1.0) + (:scale-x (meters 150) (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 30.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1705 + :init-specs ((:texture (rainbow-halo level-default-sprite)) + (:birth-func 'spartacus-birth-func-set-color) + (:num 1.0) + (:scale-x (meters 250) (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 20.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1702 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters -20)) + (:y (meters 0)) + (:z (meters 0)) + (:scale-x (meters 500)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 200)) + (:r 80.0) + (:g 100.0) + (:b 128.0) + (:a 20.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees -50.000004)) + (:rotate-y (degrees 180)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1703 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters -20)) + (:y (meters 0)) + (:z (meters 0)) + (:scale-x (meters 500)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 200)) + (:r 80.0) + (:g 100.0) + (:b 128.0) + (:a 20.0 2.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 50.000004)) + (:rotate-y (degrees 180)) + (:rotate-z (degrees 0)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/kras/dethdrome/drome-part_REF.gc b/test/decompiler/reference/jakx/levels/kras/dethdrome/drome-part_REF.gc new file mode 100644 index 0000000000..6959916f2b --- /dev/null +++ b/test/decompiler/reference/jakx/levels/kras/dethdrome/drome-part_REF.gc @@ -0,0 +1,620 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-drome-mist + :id 413 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 1000) + :parts ((sp-item 1394 :falloff-to (meters 400) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1394 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.3) + (:y (meters -10) (meters 20)) + (:z (meters 3)) + (:scale-x (meters 10) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 50.0) + (:g 40.0 20.0) + (:b 90.0) + (:a 0.0) + (:vel-x (meters 0) (meters 0.33333334)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.21333334) + (:accel-x (meters 0.0033333334) (meters 0.0033333334)) + (:accel-y (meters -0.00083333335) (meters 0.0016666667)) + (:friction 0.85 0.01) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2)) + (:next-time (seconds 1)) + (:next-launcher 1395) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1395 + :init-specs ((:scalevel-x (meters 0.00033333333)) (:scalevel-y :copy scalevel-x) (:fade-a -0.053333335 -0.026666667)) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-steam + :id 414 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 1000) + :parts ((sp-item 1396 :falloff-to (meters 400) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1396 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.3) + (:scale-x (meters 10) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 110.0) + (:g 100.0) + (:b 220.0) + (:a 0.0) + (:vel-x (meters 0.13333334) (meters 0.06666667)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 1.28) + (:accel-y (meters -0.001)) + (:friction 0.96 0.03) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1397) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1397 + :init-specs ((:scalevel-x (meters 0.0016666667) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-bridge-night-glow-blinking + :id 415 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 10) + :parts ((sp-item 1398 :flags (sp6) :period (seconds 3) :length (seconds 0.017) :hour-mask #b111111111110000000)) + ) + +;; failed to figure out what this is: +(defpart 1398 + :init-specs ((:texture (glow level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10) (meters 1)) + (:rot-x (degrees 22.5)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 20.0) + (:b 20.0) + (:a 0.0) + (:omega (degrees 45011.25)) + (:fade-a 0.42666668) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:next-time (seconds 1)) + (:next-launcher 1399) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1399 + :init-specs ((:fade-a -0.42666668)) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-warning-light + :id 416 + :flags (sp4) + :bounds (static-bspherem 0 0 0 10) + :parts ((sp-item 1400 :flags (sp6) :period (seconds 1) :length (seconds 0.035) :offset 220)) + ) + +;; failed to figure out what this is: +(defpart 1400 + :init-specs ((:texture (radial-gradient-red level-default-sprite)) + (:num 1.0) + (:y (meters -0.5)) + (:scale-x (meters 10)) + (:rot-x (degrees 45)) + (:scale-y :copy scale-x) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 0.0) + (:omega (degrees 22511.25)) + (:fade-a 0.21333334) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:next-time (seconds 0.5)) + (:next-launcher 1401) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1401 + :init-specs ((:fade-a -0.21333334)) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-canyon-mist + :id 417 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 1000) + :parts ((sp-item 1402 :falloff-to (meters 1000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1402 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 1.0) + (:x (meters -20)) + (:y (meters -10) (meters 20)) + (:z (meters -30) (meters 80)) + (:scale-x (meters 30)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 80.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0.033333335)) + (:scalevel-x (meters 0.0033333334) (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.21333334) + (:accel-x (meters 0.00033333333)) + (:friction 0.998) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 1)) + (:next-launcher 1403) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1403 + :init-specs ((:scalevel-x (meters 0.00033333333)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.026666667 -0.026666667) + (:accel-y (meters -0.000033333334) (meters -0.00006666667)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-waterfall-mist-wide-fall + :id 418 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 300) + :parts ((sp-item 1404 :falloff-to (meters 1000) :flags (sp6)) (sp-item 1405 :falloff-to (meters 1000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1404 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 0.3 0.2) + (:z (meters -40) (meters 80)) + (:scale-x (meters 10) (meters 20)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 80.0 160.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y (meters 0.006666667) (meters 0.006666667)) + (:fade-a 0.06666667 0.1) + (:accel-x (meters -0.000008333333) (meters 0.000016666667)) + (:accel-y (meters -0.0023333333)) + (:friction 0.99 0.005) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x408000 #x408000 #x400f00 #x406400)) + (:next-time (seconds 1)) + (:next-launcher 1406) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1406 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.033333335)) (:fade-a 0.0)) + ) + +;; failed to figure out what this is: +(defpart 1405 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.05 0.05) + (:z (meters -70) (meters 100)) + (:scale-x (meters 10) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-x (meters 0.033333335)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.053333335 0.053333335) + (:accel-y (meters -0.00016666666) (meters -0.00033333333)) + (:friction 0.995) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 2)) + (:next-launcher 1407) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1407 + :init-specs ((:fade-a -0.021333333 -0.021333333)) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-waterfall-mist-medium-fall + :id 419 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 250) + :parts ((sp-item 1408 :falloff-to (meters 1000) :flags (sp6)) (sp-item 1409 :falloff-to (meters 1000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1408 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 0.2 0.2) + (:z (meters -15) (meters 30)) + (:scale-x (meters 5) (meters 10)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 80.0 160.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y (meters 0.006666667) (meters 0.006666667)) + (:fade-a 0.06666667 0.1) + (:accel-x (meters -0.000008333333) (meters 0.000016666667)) + (:accel-y (meters -0.0023333333)) + (:friction 0.99 0.005) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x408000 #x408000 #x400f00 #x406400)) + (:next-time (seconds 1)) + (:next-launcher 1410) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1410 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.033333335)) (:fade-a 0.0)) + ) + +;; failed to figure out what this is: +(defpart 1409 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.05 0.05) + (:x (meters 0) (meters 30)) + (:scale-x (meters 30) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters -0.006666667)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.026666667 0.026666667) + (:accel-y (meters -0.00016666666) (meters -0.00016666666)) + (:friction 0.995 0.004) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 2)) + (:next-launcher 1411) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1411 + :init-specs ((:fade-a -0.021333333 -0.021333333)) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-waterfall-mist-small-fall + :id 420 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 250) + :parts ((sp-item 1412 :falloff-to (meters 1000) :flags (sp6)) (sp-item 1413 :falloff-to (meters 1000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1412 + :init-specs ((:texture (ceiling-dust level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 0.2 0.2) + (:z (meters -15) (meters 30)) + (:scale-x (meters 5) (meters 10)) + (:rot-z (degrees -90)) + (:scale-y :copy scale-x) + (:r 80.0 160.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y (meters 0.006666667) (meters 0.006666667)) + (:fade-a 0.06666667 0.1) + (:accel-x (meters -0.000008333333) (meters 0.000016666667)) + (:accel-y (meters -0.0023333333)) + (:friction 0.99 0.005) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x408000 #x408000 #x400f00 #x406400)) + (:next-time (seconds 1)) + (:next-launcher 1414) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1414 + :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.033333335)) (:fade-a 0.0)) + ) + +;; failed to figure out what this is: +(defpart 1413 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.05 0.05) + (:x (meters 0) (meters 30)) + (:scale-x (meters 30) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters -0.006666667)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.026666667 0.026666667) + (:accel-y (meters -0.00016666666) (meters -0.00016666666)) + (:friction 0.995 0.004) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 2)) + (:next-launcher 1415) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1415 + :init-specs ((:fade-a -0.021333333 -0.021333333)) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-waterfall-wide-mist-rise + :id 421 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 200) + :parts ((sp-item 1416 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1417 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1418 :falloff-to (meters 600) :flags (is-3d sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1416 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.1 0.05) + (:x (meters 0) (meters 30)) + (:scale-x (meters 30) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0.13333334)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.21333334 0.21333334) + (:accel-y (meters 0.00016666666) (meters 0.00016666666)) + (:friction 0.98 0.01) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 0.5)) + (:next-launcher 1419) + (:conerot-x (degrees 80) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1419 + :init-specs ((:fade-a -0.021333333 -0.021333333)) + ) + +;; failed to figure out what this is: +(defpart 1417 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters 0) (meters 10)) + (:y (meters 0)) + (:z (meters -25) (meters 50)) + (:scale-x (meters 10) (meters 10)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 100.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.06666667) (meters 0.06666667)) + (:scalevel-x (meters 0.01) (meters 0.01)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.10666667) + (:accel-y (meters -0.0033333334)) + (:friction 0.98 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x400a00 #x407800)) + (:func 'check-drop-group-center) + (:conerot-x (degrees -10) (degrees 20)) + (:conerot-z (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1418 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:x (meters -2) (meters 4)) + (:y (meters 0.3)) + (:z (meters -20) (meters 40)) + (:scale-x (meters 30) (meters 5)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y (meters 30) (meters 5)) + (:r 100.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:scalevel-x (meters 0.13333334) (meters 0.016666668)) + (:scalevel-y (meters 0.13333334) (meters 0.016666668)) + (:fade-a -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-drome-waterfall-mist-rise + :id 422 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 200) + :parts ((sp-item 1420 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1421 :falloff-to (meters 600) :flags (sp6)) + (sp-item 1422 :falloff-to (meters 600) :flags (is-3d sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1420 + :init-specs ((:texture (big-cloud level-default-sprite)) + (:num 0.1 0.05) + (:x (meters 0) (meters 30)) + (:scale-x (meters 30) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 180.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-y (meters 0.13333334)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.21333334 0.21333334) + (:accel-y (meters 0.00016666666) (meters 0.00016666666)) + (:friction 0.98 0.01) + (:timer (seconds 10)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:next-time (seconds 0.5)) + (:next-launcher 1423) + (:conerot-x (degrees 80) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1423 + :init-specs ((:fade-a -0.021333333 -0.021333333)) + ) + +;; failed to figure out what this is: +(defpart 1421 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters 0) (meters 10)) + (:y (meters 0)) + (:z (meters -25) (meters 50)) + (:scale-x (meters 10) (meters 10)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 90.0 100.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.06666667) (meters 0.06666667)) + (:scalevel-x (meters 0.01) (meters 0.01)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.053333335 -0.10666667) + (:accel-y (meters -0.0033333334)) + (:friction 0.98 0.02) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x400a00 #x407800)) + (:func 'check-drop-group-center) + (:conerot-x (degrees -10) (degrees 20)) + (:conerot-z (degrees -10) (degrees 20)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1422 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:x (meters -2) (meters 4)) + (:y (meters 0.3)) + (:z (meters -20) (meters 40)) + (:scale-x (meters 30) (meters 5)) + (:rot-y (degrees 0) (degrees 3600)) + (:scale-y (meters 30) (meters 5)) + (:r 100.0 70.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:scalevel-x (meters 0.13333334) (meters 0.016666668)) + (:scalevel-y (meters 0.13333334) (meters 0.016666668)) + (:fade-a -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow right-multiply-quat)) + (:rotate-y (degrees 0)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/kras/rusty-hook/brdroom-part_REF.gc b/test/decompiler/reference/jakx/levels/kras/rusty-hook/brdroom-part_REF.gc new file mode 100644 index 0000000000..c6dacae79b --- /dev/null +++ b/test/decompiler/reference/jakx/levels/kras/rusty-hook/brdroom-part_REF.gc @@ -0,0 +1,108 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-brdroom-fountain + :id 521 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 5) + :parts ((sp-item 1692 :flags (sp6)) (sp-item 1693 :flags (is-3d sp6)) (sp-item 1694 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 1692 + :init-specs ((:texture (tinyspeck level-default-sprite)) + (:num 5.0) + (:z (meters -0.5) (meters 0.5)) + (:scale-x (meters 0.5) (meters 0.5)) + (:scale-y :copy scale-x) + (:r 64.0) + (:g 64.0) + (:b 64.0) + (:a 32.0 32.0) + (:omega (degrees 0.45)) + (:vel-z (meters 0.033333335) (meters 0.006666667)) + (:accel-z (meters -0.0013333333)) + (:timer (seconds 1)) + (:flags ()) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.017) (seconds 0.165)) + (:next-launcher 1695) + (:conerot-x (degrees 0) (degrees 10)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1695 + :init-specs ((:r 64.0 128.0) + (:g 64.0 128.0) + (:b 64.0 128.0) + (:a 32.0 128.0) + (:next-time (seconds 0.035)) + (:next-launcher 1696) + ) + ) + +;; failed to figure out what this is: +(defpart 1696 + :init-specs ((:r 64.0) + (:g 64.0) + (:b 64.0) + (:a 32.0 32.0) + (:next-time (seconds 0.335) (seconds 0.33)) + (:next-launcher 1695) + ) + ) + +;; failed to figure out what this is: +(defpart 1693 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.1 0.1) + (:scale-x (meters 0.2) (meters 1)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:scalevel-x (meters 0.005) (meters 0.0016666667)) + (:scalevel-y (meters 0.005) (meters 0.0016666667)) + (:fade-a 0.64 0.64) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 right-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1697) + (:rotate-y (degrees 90)) + ) + ) + +;; failed to figure out what this is: +(defpart 1697 + :init-specs ((:fade-a -0.10666667 -0.10666667)) + ) + +;; failed to figure out what this is: +(defpart 1694 + :init-specs ((:texture (ripples level-default-sprite)) + (:num 1.0) + (:y (meters -2) (meters 4)) + (:z (meters -2) (meters 4)) + (:scale-x (meters 0.1)) + (:rot-y (degrees 0) (degrees 360)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.005) (meters 0.0016666667)) + (:scalevel-y (meters 0.005) (meters 0.0016666667)) + (:fade-a -0.64 -0.64) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 right-multiply-quat)) + (:rotate-y (degrees 90)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/kras/rusty-hook/rustyh-part_REF.gc b/test/decompiler/reference/jakx/levels/kras/rusty-hook/rustyh-part_REF.gc new file mode 100644 index 0000000000..79dff19bbb --- /dev/null +++ b/test/decompiler/reference/jakx/levels/kras/rusty-hook/rustyh-part_REF.gc @@ -0,0 +1,286 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function spt-birth-func-brightness-fishtank-bubbles +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-fishtank-bubbles ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 51) 150)) + (s3-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 40)) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 21) 10)) + (v1-7 (mod (the-as int (rand-uint31-gen *random-generator*)) 6)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-7))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-fishtank-bubbles + :id 503 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 1633)) + ) + +;; failed to figure out what this is: +(defpart 1633 + :init-specs ((:texture (bubble level-default-sprite)) + (:birth-func 'spt-birth-func-brightness-fishtank-bubbles) + (:num 0.5 0.5) + (:x (meters 0) (meters 0.5)) + (:y (meters 0)) + (:scale-x (meters 0.1) (meters 0.1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:omega (degrees 157.5)) + (:vel-y (meters 0.006666667) (meters 0.013333334)) + (:accel-y (meters 0.00033333333)) + (:friction 0.96 0.02) + (:timer (seconds 3)) + (:flags (sp-cpuinfo-flag-0 glow left-multiply-quat)) + (:func 'spt-func-on-omega-height-die) + (:next-time (seconds 0.167)) + (:next-launcher 1634) + (:conerot-x (degrees 0) (degrees 20)) + (:rotate-y (degrees -30) (degrees 60)) + ) + ) + +;; failed to figure out what this is: +(defpart 1634 + :init-specs ((:a 32.0 100.0) + (:scalevel-x (meters -0.0016666667) (meters 0.0033333334)) + (:scalevel-y (meters -0.0016666667) (meters 0.0033333334)) + (:accel-x (meters -0.00033333333) 1 (meters 0.00066666666)) + (:accel-z (meters -0.00033333333) 1 (meters 0.00066666666)) + (:next-time (seconds 0.035) (seconds 0.03)) + (:next-launcher 1634) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-smalltv + :id 504 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 1635 :flags (is-3d sp6)) (sp-item 1636 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 1635 + :init-specs ((:texture (tv-static-4 rustyh-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters -0.7)) + (:y (meters -0.05)) + (:scale-x (meters -1.4) 1 (meters 2.8)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters -1.3) 1 (meters 2.6)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:timer (seconds 0.017)) + (:flags ()) + (:userdata :data (new 'static 'boxed-array :type int32 + 5 + 1 + 0 + #x4c800000 + #x4c800100 + #x4c800200 + #x4c800300 + #x4c800400 + #x4c800500 + #x4c800600 + #x4c800700 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1636 + :init-specs ((:texture (tv-static-7 rustyh-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters 0.7)) + (:y (meters -0.05)) + (:scale-x (meters -1.4) 1 (meters 2.8)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters -1.3) 1 (meters 2.6)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0) + (:timer (seconds 0.017)) + (:flags ()) + (:userdata :data (new 'static 'boxed-array :type int32 + 5 + 1 + 0 + #x4c800400 + #x4c800300 + #x4c800200 + #x4c800100 + #x4c800000 + #x4c800700 + #x4c800600 + #x4c800500 + ) + ) + (:func 'sparticle-texture-animate) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-rustyh-largetv + :id 505 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 60) + :parts ((sp-item 1637 :flags (is-3d sp5 sp6)) + (sp-item 1638 :flags (is-3d sp5 sp6)) + (sp-item 1639 :flags (is-3d sp6) :period (seconds 4) :length (seconds 0.017)) + (sp-item 1640 :flags (is-3d sp6) :period (seconds 6) :length (seconds 0.017)) + (sp-item 1641 :flags (is-3d sp6) :period (seconds 5) :length (seconds 0.017)) + ) + ) + +;; failed to figure out what this is: +(defpart 1637 + :init-specs ((:texture (tvrace-scanline rustyh-sprite)) + (:num 1.0) + (:x (meters -0.3)) + (:y (meters 0)) + (:z (meters 0.08)) + (:scale-x (meters 8.8)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 4)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 32.0 32.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1638 + :init-specs ((:texture (common-white common)) + (:num 1.0) + (:x (meters -0.3)) + (:y (meters 0)) + (:z (meters 0.02)) + (:scale-x (meters 8.8)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 4)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:timer (seconds 0.017)) + (:flags ()) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1639 + :init-specs ((:texture (tv-race-car rustyh-sprite)) + (:num 1.0) + (:x (meters -5.5)) + (:y (meters -0.8) (meters 0.1)) + (:z (meters 0.028)) + (:scale-x (meters 1.5)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-x (meters 0.033333335)) + (:timer (seconds 1.035)) + (:flags (aux-list)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1640 + :init-specs ((:texture (tv-race-car rustyh-sprite)) + (:num 1.0) + (:x (meters -5.5)) + (:y (meters -0.2) (meters 0.1)) + (:z (meters 0.026)) + (:scale-x (meters 1.2)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 0.7)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-x (meters 0.03)) + (:timer (seconds 1.135)) + (:flags (aux-list)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1641 + :init-specs ((:texture (tv-race-car rustyh-sprite)) + (:num 1.0) + (:x (meters -5.5)) + (:y (meters 0.2) (meters 0.1)) + (:z (meters 0.024)) + (:scale-x (meters 0.9)) + (:rot-x (degrees 90)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 0.5)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-x (meters 0.028333334)) + (:timer (seconds 1.2)) + (:flags (aux-list)) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/spargus/canyon/canyon-part_REF.gc b/test/decompiler/reference/jakx/levels/spargus/canyon/canyon-part_REF.gc new file mode 100644 index 0000000000..47b30ad888 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/spargus/canyon/canyon-part_REF.gc @@ -0,0 +1,433 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function spt-birth-func-brightness-part-canyon-leaf-fall +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-part-canyon-leaf-fall ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 10)) + (s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 21)) + (s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 71) 20)) + (v1-7 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 70)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-7))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-canyon-leaf-fall + :id 437 + :flags (sp0 sp1 sp4) + :bounds (static-bspherem 0 -40 0 80) + :parts ((sp-item 1447 :flags (is-3d))) + ) + +;; failed to figure out what this is: +(defpart 1447 + :init-specs ((:texture (gen-03 level-default-sprite)) + (:birth-func 'birth-func-texture-group-2d) + (:num 0.05) + (:x (meters 0) (meters 80)) + (:y (meters 0)) + (:scale-x (meters 0.5) (meters 3)) + (:rot-x 4) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y (meters 0.5) (meters 3)) + (:r 32.0 50.0) + (:g 32.0 32.0) + (:b 32.0) + (:a 128.0) + (:rotvel-x (degrees -0.2) (degrees 0.4)) + (:rotvel-y (degrees -0.2) 1 (degrees 0.4)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:accel-y (meters -0.00066666666) (meters -0.00066666666)) + (:friction 0.99) + (:timer (seconds 10)) + (:flags (glow right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x407d00 #x407e00 #x407f00)) + (:next-time (seconds 1)) + (:next-launcher 1448) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1448 + :init-specs ((:rotvel-x (degrees -1.3333334) (degrees 2.6666667)) + (:rotvel-y (degrees -0.2) 1 (degrees 0.4)) + (:rotvel-z (degrees -1.3333334) (degrees 2.6666667)) + (:accel-x (meters -0.0016666667) (meters 0.0033333334)) + (:accel-y (meters 0.000033333334) (meters -0.0013333333)) + (:accel-z (meters -0.0016666667) (meters 0.0033333334)) + (:next-time (seconds 0.5) (seconds 0.497)) + (:next-launcher 1448) + ) + ) + +;; failed to figure out what this is: +(defpart 1449 + :init-specs ((:fade-a -0.08533333) (:flags (sp-cpuinfo-flag-2 right-multiply-quat))) + ) + +;; definition for function spt-birth-func-part-canyon-leaf-fall +(defun spt-birth-func-part-canyon-leaf-fall ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo) (arg3 object) (arg4 object)) + (birth-func-texture-group-2d arg0 arg1 arg2 arg3 arg4) + (spt-birth-func-brightness-part-canyon-leaf-fall arg0 arg1 arg2) + (none) + ) + +;; definition for function spt-canyon-check-ground-lie-flat +;; INFO: Used lq/sq +;; WARN: Return type mismatch quaternion vs none. +(defun spt-canyon-check-ground-lie-flat ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (local-vars (v1-12 float) (v1-13 float) (v1-18 float) (v1-19 float) (s5-1 quaternion)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let* ((v1-1 (-> arg1 key 0)) + (f0-1 (+ 819.2 (-> v1-1 origin trans y))) + (f30-0 (+ 8192.0 f0-1)) + ) + (when (< (-> arg2 launchrot y) f0-1) + (let ((s4-0 (new 'stack-no-clear 'quaternion))) + (let ((s3-0 (new 'stack-no-clear 'matrix))) + (set! (-> arg1 next-launcher) (-> *part-id-table* 1449)) + (set! (-> arg1 next-time) (the-as uint 5)) + (set! (-> arg1 acc quad) (the-as uint128 0)) + (set! (-> arg1 vel-sxvel quad) (the-as uint128 0)) + (set! (-> arg1 rot-syvel quad) (the-as uint128 0)) + (quaternion-identity! (-> arg1 rotvel3d)) + (let* ((v1-10 s4-0) + (a0-3 arg2) + (f0-2 (-> a0-3 conerot x)) + (f1-3 (-> a0-3 conerot y)) + (f2-0 (-> a0-3 conerot z)) + ) + (set! (-> v1-10 x) f0-2) + (set! (-> v1-10 y) f1-3) + (set! (-> v1-10 z) f2-0) + (set! (-> v1-10 w) (sqrtf (- (- (- 1.0 (square f2-0)) (square f1-3)) (square f0-2)))) + ) + (matrix-u-f-compose s3-0 *y-vector* (vector-z-quaternion! (new 'stack-no-clear 'vector) s4-0)) + (matrix->quaternion s4-0 s3-0) + ) + (let ((v1-11 arg2)) + (cond + ((< (-> s4-0 w) 0.0) + (.lvf vf1 (&-> v1-11 conerot quad)) + (.lvf vf2 (&-> s4-0 quad)) + (.sub.vf.xyz vf1 vf0 vf2) + (.svf (&-> v1-11 conerot quad) vf1) + (.mov v1-12 vf1) + ) + (else + (.lvf vf1 (&-> v1-11 conerot quad)) + (.lvf vf2 (&-> s4-0 quad)) + (.add.vf.xyz vf1 vf0 vf2) + (.svf (&-> v1-11 conerot quad) vf1) + (.mov v1-13 vf1) + ) + ) + ) + ) + (set! (-> arg1 sp-func) (the-as (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) 0)) + 0 + ) + (set! s5-1 + (when (< (-> arg2 launchrot y) f30-0) + (set! s5-1 (new 'stack-no-clear 'quaternion)) + (let ((s4-1 (new 'stack-no-clear 'quaternion))) + (let ((s3-1 (new 'stack-no-clear 'matrix))) + (let* ((v1-15 s5-1) + (a0-9 arg2) + (f0-8 (-> a0-9 conerot x)) + (f1-7 (-> a0-9 conerot y)) + (f2-3 (-> a0-9 conerot z)) + ) + (set! (-> v1-15 x) f0-8) + (set! (-> v1-15 y) f1-7) + (set! (-> v1-15 z) f2-3) + (set! (-> v1-15 w) (sqrtf (- (- (- 1.0 (square f2-3)) (square f1-7)) (square f0-8)))) + ) + (matrix-u-f-compose s3-1 *y-vector* (vector-z-quaternion! (new 'stack-no-clear 'vector) s5-1)) + (matrix->quaternion s4-1 s3-1) + ) + (quaternion-pseudo-seek s5-1 s5-1 s4-1 (* 3.034074 (seconds-per-frame))) + ) + (cond + ((< (-> s5-1 w) 0.0) + (.lvf vf1 (&-> arg2 conerot quad)) + (.lvf vf2 (&-> s5-1 quad)) + (.sub.vf.xyz vf1 vf0 vf2) + (.svf (&-> arg2 conerot quad) vf1) + (.mov v1-18 vf1) + ) + (else + (.lvf vf1 (&-> arg2 conerot quad)) + (.lvf vf2 (&-> s5-1 quad)) + (.add.vf.xyz vf1 vf0 vf2) + (.svf (&-> arg2 conerot quad) vf1) + (.mov v1-19 vf1) + ) + ) + s5-1 + ) + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-can-leaves-floor + :id 438 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1450 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 1450 + :init-specs ((:texture (gen-03 level-default-sprite)) + (:birth-func 'birth-func-texture-group-2d) + (:num 0.3 1.0) + (:x (meters -10) (meters 20)) + (:z (meters -10) (meters 20)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-x 4) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y (meters 0.5) (meters 1)) + (:r 32.0 50.0) + (:g 32.0 32.0) + (:b 32.0) + (:a 128.0) + (:vel-z (meters 0.06666667)) + (:rotvel-x (degrees -4) (degrees 8)) + (:rotvel-y (degrees -4) 1 (degrees 8)) + (:rotvel-z (degrees -4) (degrees 8)) + (:accel-y (meters 0.0033333334) (meters 0.0033333334)) + (:friction 0.94 0.02) + (:timer (seconds 4)) + (:flags (glow right-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x407d00 #x407e00 #x407f00)) + (:func 'check-drop-group-center) + (:next-time (seconds 0.167)) + (:next-launcher 1451) + (:conerot-x (degrees -10) (degrees 20)) + ) + ) + +;; failed to figure out what this is: +(defpart 1451 + :init-specs ((:rotvel-x (degrees -2.6666667) (degrees 5.3333335)) + (:rotvel-y (degrees -0.4) 1 (degrees 0.8)) + (:rotvel-z (degrees -2.6666667) (degrees 5.3333335)) + (:accel-x (meters -0.0016666667) (meters 0.0033333334)) + (:accel-y (meters 0.000033333334) (meters -0.0013333333)) + (:accel-z (meters -0.0016666667) (meters 0.0033333334)) + (:next-time (seconds 0.5) (seconds 0.497)) + (:next-launcher 1451) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-canyon-ocean-splash + :id 439 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1452 :falloff-to (meters 1000) :flags (sp6) :period (seconds 5) :length (seconds 0.2)) + (sp-item 1453 :falloff-to (meters 1000) :flags (sp6) :period (seconds 5) :length (seconds 0.2) :offset 20) + ) + ) + +;; failed to figure out what this is: +(defpart 1452 + :init-specs ((:texture (water-radiate level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 3.0) + (:x (meters -30)) + (:y (meters 0)) + (:scale-x (meters 1)) + (:rot-z (degrees 90)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.13333334) (meters 0.033333335)) + (:vel-z (meters 0.033333335) (meters 0.033333335)) + (:accel-y (meters -0.0016666667)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-cynsplash-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 90.0 130.0 110.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-cynsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 127.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-cynsplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 5.0 8.0 9.0 10.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-cynsplash-scale-y* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 30.0 40.0 41.0 42.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-cynsplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.1 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 -1.1111112 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-cynsplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.2 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 8.0 8.0 9.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 35.0 0.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-cynsplash-scale-y* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 4.0 5.0 6.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-canyon-ocean-splash-curve-settings*, type particle-curve-settings +(define *part-canyon-ocean-splash-curve-settings* + (new 'static 'particle-curve-settings :lifetime-base (seconds 1.5) :lifetime-offset (seconds 1)) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1452 init-specs 18 initial-valuef) + (the-as float *part-canyon-ocean-splash-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* color-start) *range-cynsplash-color*) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* alpha-start) *range-cynsplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* scale-x-start) *range-cynsplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* scale-y-start) *range-cynsplash-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* a-scalar) *curve-cynsplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* scale-x-scalar) *curve-cynsplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-canyon-ocean-splash-curve-settings* scale-y-scalar) *curve-cynsplash-scale-y*) + +;; failed to figure out what this is: +(defpart 1453 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 20.0) + (:x (meters -30) (meters 10)) + (:y (meters 0)) + (:z (meters -30) (meters 60)) + (:scale-x (meters 5) (meters 5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 120.0 40.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.1)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.128 -0.128) + (:accel-y (meters -0.0016666667)) + (:friction 0.99) + (:timer (seconds 2.667)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x407800)) + (:conerot-z (degrees 0) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-canyon-ocean-splash-2 + :id 440 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1452 :falloff-to (meters 1000) :flags (sp6) :period (seconds 5) :length (seconds 0.2) :offset 150) + (sp-item 1453 :falloff-to (meters 1000) :flags (sp6) :period (seconds 5) :length (seconds 0.2) :offset 170) + ) + ) + +;; failed to figure out what this is: +0 diff --git a/test/decompiler/reference/jakx/levels/spargus/desert/desarena-part_REF.gc b/test/decompiler/reference/jakx/levels/spargus/desert/desarena-part_REF.gc new file mode 100644 index 0000000000..d2ef6f834a --- /dev/null +++ b/test/decompiler/reference/jakx/levels/spargus/desert/desarena-part_REF.gc @@ -0,0 +1,133 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-desa-torch + :id 334 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 2) + :parts ((sp-item 1156 :falloff-to (meters 1000) :flags (sp6)) + (sp-item 1157 :fade-after (meters 200) :flags (sp6)) + (sp-item 1158 :falloff-to (meters 100) :flags (sp6)) + (sp-item 1159 :falloff-to (meters 1000) :flags (sp6)) + ) + ) + +;; failed to figure out what this is: +(defpart 1156 + :init-specs ((:texture (flame02 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 0.5) + (:x (meters 0) (meters -1)) + (:scale-x (meters 1) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0 128.0) + (:g :copy r) + (:b :copy r) + (:a 0.0) + (:vel-z (meters 0.013333334)) + (:scalevel-x (meters -0.0033333334) (meters -0.006666667)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:fade-g -0.6666667) + (:fade-b -0.6666667) + (:fade-a 0.85333335 0.85333335) + (:accel-y (meters 0.00033333333) (meters 0.00066666666)) + (:friction 1.02) + (:timer (seconds 0.335) (seconds 0.33)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat sp-cpuinfo-flag-21)) + (:userdata :data (new 'static 'boxed-array :type int32 10 1 0 #x401100 #x40bb00)) + (:next-time (seconds 0.25)) + (:next-launcher 1160) + (:conerot-y (degrees 10)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1160 + :init-specs ((:fade-a -0.13333334 -1.7066667)) + ) + +;; failed to figure out what this is: +(defpart 1157 + :init-specs ((:texture (glow level-default-sprite)) + (:num 0.2 0.1) + (:y (meters 1)) + (:scale-x (meters 10) (meters 5)) + (:rot-x (degrees 6.7500005)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 70.0) + (:g 40.0) + (:b 8.0) + (:a 0.0) + (:omega (degrees 4511.25)) + (:fade-a 0.6 0.6) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 4096.0) + (:next-time (seconds 0.167)) + (:next-launcher 1161) + ) + ) + +;; failed to figure out what this is: +(defpart 1161 + :init-specs ((:fade-a -0.4 -0.4)) + ) + +;; failed to figure out what this is: +(defpart 1159 + :init-specs ((:texture (explosion-edge level-default-sprite)) + (:num 1.0) + (:y (meters 0.7)) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees -70) (degrees -40)) + (:scale-y (meters 2) (meters 1)) + (:r 0.0) + (:g 0.0) + (:b 255.0) + (:a 0.0) + (:fade-a 0.8 2.0) + (:timer (seconds 0.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:next-time (seconds 0.167)) + (:next-launcher 1162) + ) + ) + +;; failed to figure out what this is: +(defpart 1162 + :init-specs ((:fade-a -4.0 -4.0)) + ) + +;; failed to figure out what this is: +(defpart 1158 + :init-specs ((:num 0.2) + (:x (meters 0) (meters 2)) + (:z (meters 2) (meters 6)) + (:rot-x 8) + (:r 8192.0) + (:g 4096.0) + (:b 4096.0) + (:vel-z (meters 0.033333335)) + (:fade-b 13.653334) + (:accel-y (meters 0.0016666667)) + (:friction 0.99) + (:timer (seconds 0.335)) + (:flags (distort left-multiply-quat)) + (:next-time (seconds 0.167)) + (:next-launcher 1163) + (:conerot-x (degrees 0) (degrees 20)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1163 + :init-specs ((:fade-b -13.653334)) + ) diff --git a/test/decompiler/reference/jakx/levels/spargus/spargus-part_REF.gc b/test/decompiler/reference/jakx/levels/spargus/spargus-part_REF.gc new file mode 100644 index 0000000000..872a2eeefc --- /dev/null +++ b/test/decompiler/reference/jakx/levels/spargus/spargus-part_REF.gc @@ -0,0 +1,411 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function spt-birth-func-brightness-spargus-sewer-water +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-spargus-sewer-water ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 60)) + (s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 21)) + (s4-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 21)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 40)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; definition for function spt-birth-func-brightness-spargus-sewer-water-foam +;; WARN: Return type mismatch float vs none. +(defun spt-birth-func-brightness-spargus-sewer-water-foam ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) + (let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 41) 90)) + (s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 21)) + (s4-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 11)) + (v1-6 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 11) 30)) + ) + (set! (-> arg2 rotate-x) (the float (- s5-0 s3-0))) + (set! (-> arg2 rotate-y) (the float (- s5-0 s4-0))) + (set! (-> arg2 rotate-z) (the float (- s5-0 v1-6))) + ) + (none) + ) + +;; failed to figure out what this is: +(defpartgroup group-spargus-sewerwater + :id 441 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1454 :falloff-to (meters 600) :flags (sp6)) (sp-item 1455 :falloff-to (meters 600) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1454 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 0.8) + (:y (meters 2)) + (:z (meters 0)) + (:scale-x (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 0.0) + (:omega (degrees 0.045)) + (:vel-z (meters -0.1) (meters 0.016666668)) + (:accel-y (meters -0.0033333334) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.835)) + (:flags (aux-list left-multiply-quat right-multiply-quat)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.167) (seconds 0.33)) + (:next-launcher 1456) + (:conerot-y (degrees 0) (degrees 1)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees -90) (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 1456 + :init-specs ((:r 60.0 100.0) + (:g 160.0) + (:b 60.0 100.0) + (:a 60.0 60.0) + (:next-time (seconds 0.035) (seconds 0.03)) + (:next-launcher 1457) + ) + ) + +;; failed to figure out what this is: +(defpart 1457 + :init-specs ((:r 0.0) (:g 0.0) (:b 0.0) (:a 0.0) (:next-time (seconds 0.035) (seconds 0.33)) (:next-launcher 1456)) + ) + +;; failed to figure out what this is: +(defpart 1455 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 1.0) + (:x (meters -3) (meters 6)) + (:y (meters -2)) + (:z (meters 0)) + (:scale-x (meters 3) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 100.0 20.0) + (:vel-z (meters -0.1) (meters 0.016666668)) + (:scalevel-x (meters 0.026666667) (meters 0.01)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0033333334) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow left-multiply-quat)) + (:conerot-y (degrees 0) (degrees 1)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1458 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 4.0) + (:x (meters -8) (meters 16)) + (:y (meters -23)) + (:z (meters 35) (meters 16)) + (:scale-x (meters 6) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-y (meters 0.033333335) (meters 0.033333335)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.006666667) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.335) (seconds 0.165)) + (:flags (sp-cpuinfo-flag-2 aux-list glow left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1459 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:x (meters -2) (meters 4)) + (:y (meters -24)) + (:z (meters 40) (meters 4)) + (:scale-x (meters 20) (meters 4)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 20.0) + (:g 130.0) + (:b 90.0) + (:a 64.0 64.0) + (:scalevel-x (meters 0.06666667) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-spargus-ocean-splash + :id 442 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1460 :falloff-to (meters 600) :flags (sp6) :period (seconds 5) :length (seconds 0.2)) + (sp-item 1461 :falloff-to (meters 600) :flags (sp6) :period (seconds 5) :length (seconds 0.2) :offset 20) + ) + ) + +;; failed to figure out what this is: +(defpart 1460 + :init-specs ((:texture (water-radiate level-default-sprite)) + (:birth-func 'birth-func-curve) + (:num 3.0) + (:y (meters 10)) + (:scale-x (meters 1)) + (:rot-z (degrees 90)) + (:scale-y (meters 1)) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.26666668) (meters 0.033333335)) + (:vel-z (meters 0.033333335) (meters 0.033333335)) + (:accel-y (meters -0.0016666667)) + (:friction 0.96) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:userdata 0.0) + (:func 'live-func-curve) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-ssplash-color* + (new 'static 'curve-color-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'inline-array vector 4 + (new 'static 'vector :data (new 'static 'array float 4 90.0 130.0 110.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + (new 'static 'vector :data (new 'static 'array float 4 255.0 255.0 255.0 128.0)) + ) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 1.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-ssplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 128.0 255.0 256.0 257.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 127.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-ssplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 10.0 16.0 17.0 18.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 6.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *range-ssplash-scale-y* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 60.0 80.0 81.0 82.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 20.0 1.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-ssplash-alpha* + (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.1 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 0.0 1.0 0.0 1.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 10.0 -1.1111112 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-ssplash-scale-x* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -0.2 -1.0 -2.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 10.0 10.0 11.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 45.0 0.0 1.0 1.0)) + ) + ) + ) + +;; failed to figure out what this is: +(if #t + (set! *curve-ssplash-scale-y* (new 'static 'curve2d-fast + :xs (new 'static 'vector :data (new 'static 'array float 4 0.0 -1.0 -2.0 -3.0)) + :ys (new 'static 'vector :data (new 'static 'array float 4 1.0 4.0 5.0 6.0)) + :one-over-x-deltas (new 'static 'vector :data (new 'static 'array float 4 3.0 1.0 1.0 1.0)) + ) + ) + ) + +;; definition for symbol *part-spargus-ocean-splash-curve-settings*, type particle-curve-settings +(define *part-spargus-ocean-splash-curve-settings* + (new 'static 'particle-curve-settings :lifetime-base (seconds 1.5) :lifetime-offset (seconds 1)) + ) + +;; failed to figure out what this is: +(set! (-> *part-id-table* 1460 init-specs 17 initial-valuef) + (the-as float *part-spargus-ocean-splash-curve-settings*) + ) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* color-start) *range-ssplash-color*) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* alpha-start) *range-ssplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* scale-x-start) *range-ssplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* scale-y-start) *range-ssplash-scale-y*) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* r-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* g-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* b-scalar) #f) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* a-scalar) *curve-ssplash-alpha*) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* scale-x-scalar) *curve-ssplash-scale-x*) + +;; failed to figure out what this is: +(set! (-> *part-spargus-ocean-splash-curve-settings* scale-y-scalar) *curve-ssplash-scale-y*) + +;; failed to figure out what this is: +(defpart 1461 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 20.0) + (:x (meters -40) (meters 80)) + (:y (meters 15)) + (:scale-x (meters 8) (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 64.0 64.0) + (:vel-y (meters 0.06666667) (meters 0.2)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:rotvel-z (degrees -0.1) (degrees 0.2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.064 -0.064) + (:accel-y (meters -0.0016666667)) + (:friction 0.99) + (:timer (seconds 6.667)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-14 glow)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x407800)) + (:func 'check-drop-group-center) + (:conerot-z (degrees 0) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-spargus-lighthouse + :id 388 + :duration (seconds 166.827) + :flags (sp4) + :bounds (static-bspherem 0 0 0 100) + :parts ((sp-item 1464 :flags (sp3 sp6) :binding 1462) + (sp-item 1462 :flags (sp2 sp3 sp6) :binding 1463) + (sp-item 1463 :flags (sp2 sp5 sp6) :hour-mask #b111111111111000000) + ) + ) + +;; failed to figure out what this is: +(defpart 1464 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 5)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 0.0) + (:b 0.0) + (:a 128.0) + (:timer (seconds -0.005)) + (:flags ()) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1462 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:z (meters 20)) + (:scale-x (meters 1)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 0.0) + (:b 0.0) + (:a 128.0) + (:omega (degrees 0)) + (:vel-x (meters 0.0053333333)) + (:timer (seconds -0.005)) + (:flags (ready-to-launch)) + ) + ) + +;; failed to figure out what this is: +(defpart 1463 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 100)) + (:rot-x (degrees 112.5)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 255.0) + (:omega (degrees 45011.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 ready-to-launch use-global-acc)) + (:userdata 409600.0) + ) + ) diff --git a/test/decompiler/reference/jakx/levels/temple/temple-part_REF.gc b/test/decompiler/reference/jakx/levels/temple/temple-part_REF.gc new file mode 100644 index 0000000000..34dbb51be2 --- /dev/null +++ b/test/decompiler/reference/jakx/levels/temple/temple-part_REF.gc @@ -0,0 +1,732 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(defpartgroup group-temple-lamp-light + :id 443 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 30) + :parts ((sp-item 1465 :flags (sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1465 + :init-specs ((:texture (glow-soft level-default-sprite)) + (:num 1.0) + (:scale-x (meters 10) (meters 1)) + (:rot-x (degrees 11.25)) + (:scale-y (meters 20) (meters 1)) + (:r 10.0) + (:g 80.0) + (:b 255.0) + (:a 100.0 5.0) + (:omega (degrees 18011.25)) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 use-global-acc)) + (:userdata 20480.0) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-waterfalls + :id 444 + :flags (sp0 sp4) + :bounds (static-bspherem 0 -40 0 300) + :parts ((sp-item 1466 :falloff-to (meters 400) :flags (sp6)) (sp-item 1467 :falloff-to (meters 600) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1466 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 0.8) + (:x (meters -8) (meters 16)) + (:y (meters 3)) + (:scale-x (meters 0.5) (meters 0.5)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 60.0 100.0) + (:g 60.0 100.0) + (:b 60.0 100.0) + (:a 0.0) + (:omega (degrees 0.045)) + (:vel-z (meters 0.05) (meters 0.016666668)) + (:accel-y (meters -0.004) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 1.667)) + (:flags (sp-cpuinfo-flag-3 aux-list left-multiply-quat right-multiply-quat)) + (:func 'sparticle-motion-blur) + (:next-time (seconds 0.335) (seconds 0.08)) + (:next-launcher 1468) + (:conerot-y (degrees 0) (degrees 1)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1468 + :init-specs ((:r 10.0 200.0) + (:g 10.0 200.0) + (:b 10.0 200.0) + (:a 128.0) + (:next-time (seconds 0.035) (seconds 0.097)) + (:next-launcher 1469) + ) + ) + +;; failed to figure out what this is: +(defpart 1469 + :init-specs ((:r 0.0) (:g 0.0) (:b 0.0) (:a 0.0) (:next-time (seconds 0.035) (seconds 0.33)) (:next-launcher 1468)) + ) + +;; failed to figure out what this is: +(defpart 1467 + :init-specs ((:texture (water-drops level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 3.0) + (:x (meters -8) (meters 16)) + (:y (meters 2)) + (:scale-x (meters 2) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y (meters 4) (meters 1)) + (:r 120.0 50.0) + (:g 255.0) + (:b :copy r) + (:a 30.0 30.0) + (:vel-z (meters 0.083333336) (meters 0.016666668)) + (:scalevel-x (meters 0.016666668) (meters 0.06666667)) + (:scalevel-y (meters 0.0033333334) (meters 0.0033333334)) + (:accel-y (meters -0.0016666667)) + (:friction 0.99) + (:timer (seconds 1.335)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x406300 #x408000 #x400f00 #x406400)) + (:func 'sparticle-2d-spline-align-instant) + (:next-time (seconds 0.085)) + (:next-launcher 1470) + (:conerot-y (degrees 0) (degrees 1)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1470 + :init-specs ((:accel-y (meters -0.008333334) (meters -0.0033333334)) (:friction 0.97)) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-waterfalls-splash + :id 445 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1471 :falloff-to (meters 400) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1471 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 4.0) + (:x (meters 0) (meters 20)) + (:scale-x (meters 4) (meters 8)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 120.0 50.0) + (:g 140.0 30.0) + (:b :copy r) + (:a 20.0 20.0) + (:vel-y (meters 0.033333335) (meters 0.1)) + (:scalevel-x (meters 0.033333335) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.006666667) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 0.667)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1472 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:x (meters 0) (meters 6)) + (:scale-x (meters 20) (meters 4)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 100.0 30.0) + (:g :copy r) + (:b :copy r) + (:a 64.0 64.0) + (:scalevel-x (meters 0.06666667) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.21333334 -0.21333334) + (:timer (seconds 2)) + (:flags (sp-cpuinfo-flag-2 glow)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-wavesplash + :id 446 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1473 :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1473 + :init-specs ((:texture (harddot level-default-sprite)) + (:num 1.0) + (:scale-x (meters 0.3)) + (:scale-y :copy scale-x) + (:r 128.0) + (:g 128.0) + (:b 128.0) + (:a 128.0) + (:vel-y (meters 0.01)) + (:timer (seconds 2)) + (:flags ()) + (:conerot-x (degrees -45) (degrees 90)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-lavasplash + :id 447 + :flags (sp0 sp4) + :bounds (static-bspherem 0 30 0 60) + :parts ((sp-item 1474 :falloff-to (meters 1000) :flags (sp6) :period (seconds 2) :length (seconds 0.167)) + (sp-item 1475 :falloff-to (meters 1000) :flags (sp6) :period (seconds 2) :length (seconds 0.167)) + (sp-item 1476 :falloff-to (meters 1000) :flags (sp6) :period (seconds 2) :length (seconds 0.167)) + ) + ) + +;; failed to figure out what this is: +(defpart 1474 + :init-specs ((:texture (lava-drop-01 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0 5.0) + (:x (meters 0) (meters 10)) + (:scale-x (meters 1) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 20.0 60.0) + (:b 0.0) + (:a 127.0 128.0) + (:vel-y (meters 0.1) (meters 0.2)) + (:scalevel-x (meters -0.00033333333) (meters 0.00066666666)) + (:rotvel-z (degrees -2) (degrees 4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0026666666) (meters -0.00066666666)) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40c100 #x40c200 #x40c300)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 6.0000005)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1475 + :init-specs ((:texture (lava-drop-01 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0 5.0) + (:x (meters -30) (meters 60)) + (:z (meters 0) (meters 5)) + (:scale-x (meters 2) (meters 2)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 20.0 60.0) + (:b 0.0) + (:a 127.0 128.0) + (:vel-y (meters 0.033333335) (meters 0.1)) + (:scalevel-x (meters -0.00033333333) (meters 0.00066666666)) + (:rotvel-z (degrees -2) (degrees 4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0026666666) (meters -0.00066666666)) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40c100 #x40c200 #x40c300)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 6.0000005)) + (:conerot-z (degrees -20) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1476 + :init-specs ((:texture (lava-drop-01 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0 1.0) + (:x (meters -30) (meters 60)) + (:z (meters 0) (meters 5)) + (:scale-x (meters 0.5) (meters 1)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 20.0 60.0) + (:b 0.0) + (:a 127.0 128.0) + (:vel-y (meters 0.06666667) (meters 0.13333334)) + (:scalevel-x (meters -0.00033333333) (meters 0.00066666666)) + (:rotvel-z (degrees -2) (degrees 4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0026666666) (meters -0.00066666666)) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40c100 #x40c200 #x40c300)) + (:func 'check-drop-group-center) + (:conerot-x (degrees 0) (degrees 6.0000005)) + (:conerot-z (degrees -20) (degrees 40)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-lavafalls + :id 448 + :flags (sp0 sp4) + :bounds (static-bspherem 0 -60 0 400) + :parts ((sp-item 1477 :falloff-to (meters 1000) :flags (sp6)) (sp-item 1478 :falloff-to (meters 600) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1477 + :init-specs ((:texture (lava-drop-03 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 2.0) + (:x (meters -5) (meters 10)) + (:y (meters 3)) + (:scale-x (meters 6) (meters 10)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 30.0 30.0) + (:b 0.0) + (:a 128.0) + (:vel-z (meters 0.05)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:fade-g -0.015384615) + (:accel-y (meters -0.0013333333)) + (:timer (seconds 1.335)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40c200 #x40c300 #x408800)) + (:next-time (seconds 0.085)) + (:next-launcher 1479) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1479 + :init-specs ((:scalevel-x (meters 0.06666667)) + (:scalevel-y (meters 0.033333335)) + (:accel-y (meters -0.006666667) (meters -0.0033333334)) + ) + ) + +;; failed to figure out what this is: +(defpart 1478 + :init-specs ((:texture (lava-drop-02 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters -5) (meters 10)) + (:y (meters 4)) + (:z (meters 4)) + (:scale-x (meters 2) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 50.0) + (:g 200.0) + (:b 200.0) + (:a 127.0 128.0) + (:vel-z (meters 0.05)) + (:scalevel-x (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0013333333)) + (:timer (seconds 1.335)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-4 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40c200 #x40c300)) + (:next-time (seconds 0.085)) + (:next-launcher 1480) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1480 + :init-specs ((:accel-y (meters -0.006666667) (meters -0.0033333334))) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-lavafalls-cheap + :id 449 + :flags (sp0 sp4) + :bounds (static-bspherem 0 -60 0 200) + :parts ((sp-item 1481 :falloff-to (meters 1000) :flags (sp6)) (sp-item 1482 :falloff-to (meters 300) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1481 + :init-specs ((:texture (lava-drop-03 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters -5) (meters 10)) + (:y (meters 3)) + (:scale-x (meters 6) (meters 10)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 30.0 30.0) + (:b 0.0) + (:a 128.0) + (:vel-z (meters 0.05)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:fade-g -0.015384615) + (:accel-y (meters -0.0013333333)) + (:timer (seconds 1.335)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40c200 #x40c300 #x408800)) + (:next-time (seconds 0.085)) + (:next-launcher 1483) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1483 + :init-specs ((:scalevel-x (meters 0.06666667)) + (:scalevel-y (meters 0.033333335)) + (:accel-y (meters -0.006666667) (meters -0.0033333334)) + ) + ) + +;; failed to figure out what this is: +(defpart 1482 + :init-specs ((:texture (lava-drop-02 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0) + (:x (meters -5) (meters 10)) + (:y (meters 4)) + (:z (meters 4)) + (:scale-x (meters 2) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 50.0) + (:g 200.0) + (:b 200.0) + (:a 127.0 128.0) + (:vel-z (meters 0.05)) + (:scalevel-x (meters 0.0033333334)) + (:rotvel-z (degrees -0.2) (degrees 0.4)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.0013333333)) + (:timer (seconds 1.335)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-4 left-multiply-quat)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x40c200 #x40c300)) + (:next-time (seconds 0.085)) + (:next-launcher 1484) + (:conerot-y (degrees -5) (degrees 10)) + (:rotate-y (degrees 0)) + ) + ) + +;; failed to figure out what this is: +(defpart 1484 + :init-specs ((:accel-y (meters -0.006666667) (meters -0.0033333334))) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-lavaburst + :id 450 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1485 :falloff-to (meters 600) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1485 + :init-specs ((:texture (water-drops level-default-sprite)) + (:num 5.0) + (:x (meters 5) (meters 30)) + (:scale-x (meters 10) (meters 4)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 30.0 30.0) + (:b 0.0) + (:a 127.0 128.0) + (:vel-y (meters 0.06666667) (meters 0.13333334)) + (:scalevel-x (meters 0.033333335) (meters 0.033333335)) + (:scalevel-y :copy scalevel-x) + (:accel-y (meters -0.006666667) (meters -0.00033333333)) + (:friction 0.99) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 left-multiply-quat)) + (:conerot-x (degrees -20) (degrees 40)) + (:rotate-y (degrees 0) (degrees 180)) + ) + ) + +;; failed to figure out what this is: +(defpart 1486 + :init-specs ((:texture (splash-foam level-default-sprite)) + (:num 0.2) + (:x (meters 0) (meters 6)) + (:y (meters 0.5)) + (:scale-x (meters 40) (meters 4)) + (:rot-y (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 255.0) + (:g 40.0 80.0) + (:b 0.0) + (:a 127.0 128.0) + (:scalevel-x (meters 0.06666667) (meters 0.0033333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.2125 -0.2125) + (:timer (seconds 4)) + (:flags (sp-cpuinfo-flag-2)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-lava-firebelch + :id 451 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1487 :falloff-to (meters 600) :period (seconds 3) :length (seconds 0.335))) + ) + +;; failed to figure out what this is: +(defpart 1487 + :init-specs ((:texture (flame02 level-default-sprite)) + (:birth-func 'birth-func-texture-group) + (:num 1.0 1.0) + (:z (meters 10)) + (:scale-x (meters 10) (meters 10)) + (:rot-z (degrees 0) (degrees 360)) + (:scale-y :copy scale-x) + (:r 155.0) + (:g 80.0 30.0) + (:b 0.0 50.0) + (:a 128.0) + (:vel-y (meters 0.06666667) (meters 0.033333335)) + (:scalevel-x (meters -0.016666668) (meters -0.016666668)) + (:rotvel-z (degrees -1) (degrees 2)) + (:scalevel-y :copy scalevel-x) + (:fade-a -0.42666668 -0.42666668) + (:accel-y (meters 0.0016666667) (meters 0.0033333334)) + (:friction 0.99 0.01) + (:timer (seconds 1)) + (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)) + (:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x401100 #x40bb00 #x400f00)) + (:conerot-x (degrees -40)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-lava-heathaze + :id 452 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1488 :falloff-to (meters 1000) :flags (sp6))) + ) + +;; failed to figure out what this is: +(defpart 1488 + :init-specs ((:num 0.2) + (:x (meters 20)) + (:y (meters 2) (meters 6)) + (:rot-x 8) + (:r 81920.0) + (:g 40960.0) + (:b 40960.0) + (:vel-y (meters 0.033333335)) + (:fade-b 68.26667) + (:accel-y (meters 0.0033333334)) + (:friction 0.99) + (:timer (seconds 1)) + (:flags (distort)) + (:next-time (seconds 0.5)) + (:next-launcher 1489) + (:conerot-x (degrees 0) (degrees 20)) + (:rotate-y (degrees 0) (degrees 3600)) + ) + ) + +;; failed to figure out what this is: +(defpart 1489 + :init-specs ((:fade-b -68.26667)) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-caustic + :id 453 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 20) + :parts ((sp-item 1490 :flags (is-3d sp6)) (sp-item 1491 :flags (is-3d sp6))) + ) + +;; failed to figure out what this is: +(defpart 1490 + :init-specs ((:texture (caustic level-default-sprite)) + (:num 0.01) + (:x (meters -0.5)) + (:y (meters -1)) + (:z (meters -10) (meters 20)) + (:scale-x (meters 20)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters 0.01) (meters 0.0033333334)) + (:vel-z (meters -0.0033333334) (meters -0.01)) + (:scalevel-x (meters 0) (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.033333335) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 1)) + (:next-launcher 1492) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 90)) + ) + ) + +;; failed to figure out what this is: +(defpart 1492 + :init-specs ((:fade-a 0.2) (:next-time (seconds 0.167)) (:next-launcher 1493)) + ) + +;; failed to figure out what this is: +(defpart 1493 + :init-specs ((:fade-a -0.1) (:next-time (seconds 0.335)) (:next-launcher 1494)) + ) + +;; failed to figure out what this is: +(defpart 1494 + :init-specs ((:fade-a 0.1) (:next-time (seconds 0.335)) (:next-launcher 1495)) + ) + +;; failed to figure out what this is: +(defpart 1495 + :init-specs ((:fade-a -0.2) (:next-time (seconds 0.167)) (:next-launcher 1496)) + ) + +;; failed to figure out what this is: +(defpart 1496 + :init-specs ((:fade-a 0.1) (:next-time (seconds 0.335)) (:next-launcher 1497)) + ) + +;; failed to figure out what this is: +(defpart 1497 + :init-specs ((:fade-a -0.2) (:next-time (seconds 0.167)) (:next-launcher 1498)) + ) + +;; failed to figure out what this is: +(defpart 1491 + :init-specs ((:texture (caustic level-default-sprite)) + (:num 0.01) + (:x (meters -0.5)) + (:y (meters 0) (meters 10)) + (:z (meters -10) (meters 20)) + (:scale-x (meters 20)) + (:rot-x (degrees 0) (degrees 360)) + (:rot-y (degrees 0)) + (:rot-z (degrees 90)) + (:scale-y :copy scale-x) + (:r 180.0) + (:g 255.0) + (:b 255.0) + (:a 0.0) + (:vel-y (meters 0) (meters 0.006666667)) + (:vel-z (meters 0.01) (meters 0.01)) + (:scalevel-x (meters 0) (meters 0.013333334)) + (:scalevel-y :copy scalevel-x) + (:fade-a 0.06666667) + (:timer (seconds 5)) + (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow left-multiply-quat right-multiply-quat)) + (:next-time (seconds 1)) + (:next-launcher 1498) + (:rotate-x (degrees 0)) + (:rotate-y (degrees 90)) + ) + ) + +;; failed to figure out what this is: +(defpart 1498 + :init-specs ((:fade-a -0.016666668 -0.016666668)) + ) + +;; failed to figure out what this is: +(defpartgroup group-temple-lightcone + :id 454 + :flags (sp0 sp4) + :bounds (static-bspherem 0 0 0 80) + :parts ((sp-item 1499 :flags (is-3d sp5 sp6)) (sp-item 1500 :flags (is-3d sp5 sp6))) + ) + +;; failed to figure out what this is: +(defpart 1499 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters -100)) + (:y (meters 0)) + (:z (meters 0)) + (:scale-x (meters 320)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 80)) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 30.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:rotate-x (degrees 45)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees -90)) + ) + ) + +;; failed to figure out what this is: +(defpart 1500 + :init-specs ((:texture (light-burst level-default-sprite)) + (:num 1.0) + (:x (meters -100)) + (:y (meters 0)) + (:z (meters 0)) + (:scale-x (meters 320)) + (:rot-x (degrees 0)) + (:rot-y (degrees 0)) + (:rot-z (degrees 0)) + (:scale-y (meters 80)) + (:r 200.0) + (:g 200.0) + (:b 200.0) + (:a 30.0) + (:timer (seconds 0.017)) + (:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14)) + (:rotate-x (degrees -45)) + (:rotate-y (degrees 0)) + (:rotate-z (degrees -90)) + ) + ) diff --git a/test/decompiler/test_VuDisasm.cpp b/test/decompiler/test_VuDisasm.cpp index 13e55a3671..a4f6c2b73d 100644 --- a/test/decompiler/test_VuDisasm.cpp +++ b/test/decompiler/test_VuDisasm.cpp @@ -30,20 +30,20 @@ std::string get_expected(const std::string& name) { } } // namespace -// TEST(VuDisasm, DumpResults_Jak3) { +// TEST(VuDisasm, DumpResults_JakX_Draft) { // struct VuData { // std::string name; // std::vector data; // VuDisassembler::VuKind kind; // std::string disasm; -// + // VuData(const std::string& name, VuDisassembler::VuKind kind) -// : name(name), data(get_test_data("jak3/" + name)), kind(kind) { +// : name(name), data(get_test_data("jakx/" + name)), kind(kind) { // VuDisassembler vu_disasm(kind); // disasm = vu_disasm.to_string(vu_disasm.disassemble(data.data(), data.size() * 4, false)); // } // }; -// auto path = file_util::get_file_path({"test/decompiler/vu_reference/jak3"}); +// auto path = file_util::get_file_path({"test/decompiler/vu_reference/jakx"}); // for (const auto& entry : fs::directory_iterator(path)) { // if (entry.is_regular_file() && // entry.path().filename().string().find("result") == std::string::npos) { @@ -56,20 +56,22 @@ std::string get_expected(const std::string& name) { // } // } -// TEST(VuDisasm, DumpResults_Jak2) { +// TODO - add the jakx tests here, have only compared the programs so far with jak3 + +// TEST(VuDisasm, DumpResults_Jak3_Draft) { // struct VuData { // std::string name; // std::vector data; // VuDisassembler::VuKind kind; // std::string disasm; -// + // VuData(const std::string& name, VuDisassembler::VuKind kind) -// : name(name), data(get_test_data("jak2/" + name)), kind(kind) { +// : name(name), data(get_test_data("jak3/" + name)), kind(kind) { // VuDisassembler vu_disasm(kind); // disasm = vu_disasm.to_string(vu_disasm.disassemble(data.data(), data.size() * 4, false)); // } // }; -// auto path = file_util::get_file_path({"test/decompiler/vu_reference/jak2"}); +// auto path = file_util::get_file_path({"test/decompiler/vu_reference/jak3"}); // for (const auto& entry : fs::directory_iterator(path)) { // if (entry.is_regular_file() && // entry.path().filename().string().find("result") == std::string::npos) { @@ -264,6 +266,32 @@ TEST(VuDisasm, ForegroundVu0_Jak3) { EXPECT_EQ(disasm.to_string(prog), get_expected("jak3/foreground-vu0")); } +// TEST(VuDisasm, DumpResults_Jak2) { +// struct VuData { +// std::string name; +// std::vector data; +// VuDisassembler::VuKind kind; +// std::string disasm; +// +// VuData(const std::string& name, VuDisassembler::VuKind kind) +// : name(name), data(get_test_data("jak2/" + name)), kind(kind) { +// VuDisassembler vu_disasm(kind); +// disasm = vu_disasm.to_string(vu_disasm.disassemble(data.data(), data.size() * 4, false)); +// } +// }; +// auto path = file_util::get_file_path({"test/decompiler/vu_reference/jak2"}); +// for (const auto& entry : fs::directory_iterator(path)) { +// if (entry.is_regular_file() && +// entry.path().filename().string().find("result") == std::string::npos) { +// auto name = entry.path().filename().stem().string(); +// auto kind = name.find("vu0") != std::string::npos ? VuDisassembler::VuKind::VU0 +// : VuDisassembler::VuKind::VU1; +// VuData prog(name, kind); +// file_util::write_text_file(path + "/" + prog.name + "-result.txt", prog.disasm); +// } +// } +// } + TEST(VuDisasm, ShadowVu0_Jak2) { auto data = get_test_data("jak2/shadow-vu0"); VuDisassembler disasm(VuDisassembler::VuKind::VU0);